Release 0.2.0: README, CHANGELOG, version bump

- README: complete 22-tool reference table across 6 categories;
  updated feature list to reflect all additions and bug fixes
- CHANGELOG: added with [0.2.0] and [0.1.0] entries
- pyproject.toml: 0.1.0 → 0.2.0
- CLAUDE.md: corrected tool count 17 → 22

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-14 07:11:08 +02:00
parent d9f0e75d0a
commit 81d5acd83e
4 changed files with 90 additions and 22 deletions
+41 -20
View File
@@ -1,16 +1,19 @@
# mcp-synology-container
An MCP (Model Context Protocol) server for managing Docker projects on a Synology NAS via Container Manager. Enables Claude Desktop to list, start, stop, redeploy, and modify Docker Compose projects directly.
An MCP (Model Context Protocol) server for managing Docker on a Synology NAS via Container Manager. Enables Claude Desktop to inspect, start, stop, redeploy, and modify Docker Compose projects directly — including live resource stats, log tailing, network management, and disk usage.
## Features
- **Project management**: list, start, stop, redeploy Container Manager projects
- **Container inspection**: list containers, view status and resource usage, fetch logs
- **Compose file editing**: read, modify image tags, update env vars, or replace compose files entirely
- **Image update checks**: see which images have updates available
- **Project management**: list, start, stop, redeploy Container Manager projects (status-aware)
- **Container inspection**: status with IPs/ports/mounts, live resource stats, log tailing, exec
- **Compose file editing**: read, replace, update image tags and env vars
- **Image management**: list images with sizes, check for updates, delete unused images
- **Network management**: list, create, and delete Docker networks
- **System overview**: disk usage (images, containers), prune dangling resources
- **Hash-prefix handling**: transparent resolution of DSM hash-prefixed container names
- **2FA support**: device token flow for Synology accounts with OTP enabled
- **OS keyring integration**: credentials stored securely, never in config files
- **Confirmation required** for all destructive operations (stop, redeploy, exec, compose writes)
- **Confirmation required** for all destructive operations
## Requirements
@@ -121,41 +124,59 @@ Credentials from environment variables take priority over the keyring.
## MCP Tools
See [docs/tools.md](docs/tools.md) for the full tool reference.
22 tools across 6 categories.
### Projects
| Tool | Description | Confirmation |
|---|---|---|
| `list_projects` | List all Container Manager projects | — |
| `get_project_status` | Detailed project status | — |
| `start_project` | Start a project | — |
| `stop_project` | Stop a project | required |
| `redeploy_project` | Pull images + restart project | required |
| `list_projects` | List all Container Manager projects with status and container count | — |
| `get_project_status` | Detailed status, path, services, and container IDs | — |
| `start_project` | Start a stopped project | — |
| `stop_project` | Stop a running project (halts all containers) | required |
| `redeploy_project` | Stop and restart a project; auto-detects current state (RUNNING/STOPPED/BUILD_FAILED) | required |
### Containers
| Tool | Description | Confirmation |
|---|---|---|
| `list_containers` | List containers (optionally filtered by project) | — |
| `get_container_status` | Status, uptime, resource limits | — |
| `get_container_logs` | Fetch container log output | — |
| `exec_in_container` | Execute command in container | required |
| `list_containers` | List containers, optionally filtered by project | — |
| `get_container_status` | Status, running state, image, IP addresses, port bindings, mounts | — |
| `get_container_logs` | Fetch log output with optional keyword filter | — |
| `exec_in_container` | Execute a shell command inside a running container | required |
| `container_stats` | Live CPU %, RAM used/limit, network I/O, block I/O | — |
### Compose Files
| Tool | Description | Confirmation |
|---|---|---|
| `read_compose` | Read the compose file of a project | — |
| `update_image_tag` | Update image tag for a service | required |
| `update_env_var` | Add/update an environment variable | required |
| `update_compose` | Replace entire compose file | required |
| `update_image_tag` | Update the image tag for a specific service | required |
| `update_env_var` | Add or update an environment variable for a service | required |
| `update_compose` | Replace the entire compose file | required |
### Images
| Tool | Description | Confirmation |
|---|---|---|
| `check_image_updates` | Check for available image updates | — |
| `list_images` | List local images sorted by size (largest first); marks images in use and available updates | — |
| `delete_image` | Delete a local image by `name:tag` or hash; refuses if image is in use | required |
| `check_image_updates` | Check which images have updates available; optionally filter by project | — |
### System
| Tool | Description | Confirmation |
|---|---|---|
| `system_df` | Docker disk usage: image count/size, running/stopped containers, reclaimable space | — |
| `system_prune` | Remove dangling images, stopped containers, and unused networks | required |
### Networks
| Tool | Description | Confirmation |
|---|---|---|
| `list_networks` | List all Docker networks with driver, subnet, gateway, and attached containers | — |
| `create_network` | Create a new Docker network (bridge or other driver) | required |
| `delete_network` | Delete a network; refuses if any container is attached | required |
## Development