All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
- forgejo: verified against package tools/list (30 tools) - semaphore: full rewrite with 50+ actual tools & signatures (was listing nonexistent tools like create_view, missing 30+ real tools) - github: complete tool listing (35 tools) instead of vague placeholder - portainer: full tool listing (32 tools) with params instead of vague list - woodpecker: already accurate (verified against package, 33 tools) - postgresql: already accurate (5 tools) All tools verified against actual packages via tools/list RPC calls or source code inspection.
89 lines
5.2 KiB
Markdown
89 lines
5.2 KiB
Markdown
# portainer-mcp
|
|
|
|
MCP server for Portainer (Docker/K8s management).
|
|
|
|
Source: [`portainer-mcp`](https://pypi.org/project/portainer-mcp/) (v0.5.1)
|
|
|
|
## Environment Variables
|
|
|
|
| Variable | Required | Description |
|
|
|----------|----------|-------------|
|
|
| `PORTAINER_URL` | Yes | Base URL of the Portainer instance (e.g. `https://portainer.corentic.eu`) |
|
|
| `PORTAINER_USERNAME` | Yes | Portainer username (use `admin` if using API key) |
|
|
| `PORTAINER_PASSWORD` | Yes | Portainer password or API key |
|
|
| `PORTAINER_VERIFY_SSL` | No | Verify SSL certificate (`true`/`false`, default: `true`) |
|
|
| `PORTAINER_DEFAULT_ENDPOINT` | No | Default endpoint ID (default: `1`) |
|
|
| `PORTAINER_TIMEOUT` | No | Request timeout in seconds (default: `30`) |
|
|
| `PORTAINER_LONG_TIMEOUT` | No | Long request timeout in seconds (default: `300`) |
|
|
|
|
## Usage
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name portainer-mcp \
|
|
-p 8110:8110 \
|
|
-e PORTAINER_URL=https://portainer.corentic.eu \
|
|
-e PORTAINER_USERNAME=admin \
|
|
-e PORTAINER_PASSWORD=your_api_key_or_password \
|
|
-e PORTAINER_VERIFY_SSL=false \
|
|
forgejo.corentic.eu/corentic/mcp-fleet-portainer:latest
|
|
```
|
|
|
|
## Tools
|
|
|
|
### Auth & System
|
|
- **`portainer_status`** — Verify connection to Portainer and auth status
|
|
- **`portainer_docker_info`** — Docker system info. Params: `endpoint_id`
|
|
- **`portainer_docker_disk_usage`** — Docker disk usage. Params: `endpoint_id`
|
|
|
|
### Endpoints (Environments)
|
|
- **`portainer_endpoints_list`** — List all environments (Docker/K8s endpoints)
|
|
- **`portainer_endpoint_inspect`** — Inspect endpoint details. Params: `endpoint_id`
|
|
|
|
### Containers
|
|
- **`portainer_containers_list`** — List containers. Params: `endpoint_id`, `all`, `limit`, `filters`
|
|
- **`portainer_container_inspect`** — Inspect container. Params: `endpoint_id`, `container_id`
|
|
- **`portainer_container_start`** — Start container. Params: `endpoint_id`, `container_id`
|
|
- **`portainer_container_stop`** — Stop container. Params: `endpoint_id`, `container_id`
|
|
- **`portainer_container_restart`** — Restart container. Params: `endpoint_id`, `container_id`
|
|
- **`portainer_container_remove`** — Remove container. Params: `endpoint_id`, `container_id`, `force`, `remove_volumes`
|
|
- **`portainer_container_logs`** — Get container logs. Params: `endpoint_id`, `container_id`, `tail`, `stdout`, `stderr`
|
|
- **`portainer_container_logs_grep`** — Search container logs for pattern. Params: `endpoint_id`, `container_id`, `pattern`, `tail`, `stdout`, `stderr`
|
|
- **`portainer_container_stats`** — Get container stats (CPU, memory, etc.). Params: `endpoint_id`, `container_id`
|
|
- **`portainer_container_exec`** — Execute command in container. Params: `endpoint_id`, `container_id`, `command`, `workdir`, `timeout`
|
|
|
|
### Stacks
|
|
- **`portainer_stacks_list`** — List stacks. Params: `endpoint_id`
|
|
- **`portainer_stack_inspect`** — Inspect stack. Params: `stack_id`
|
|
- **`portainer_stack_deploy`** — Deploy stack from compose. Params: `endpoint_id`, `name`, `compose_content`, `env_vars`
|
|
- **`portainer_stack_update`** — Update stack compose. Params: `stack_id`, `endpoint_id`, `compose_content`, `env_vars`, `prune`, `pull_image`
|
|
- **`portainer_stack_delete`** — Delete stack. Params: `stack_id`, `endpoint_id`
|
|
- **`portainer_stack_start`** — Start stack. Params: `stack_id`, `endpoint_id`
|
|
- **`portainer_stack_stop`** — Stop stack. Params: `stack_id`, `endpoint_id`
|
|
- **`portainer_stack_logs_errors`** — Scan stack container logs for errors. Params: `endpoint_id`, `stack_name`
|
|
- **`portainer_laravel_errors`** — Scan for Laravel errors in stack containers. Params: `endpoint_id`, `stack_name`
|
|
- **`portainer_laravel_tinker`** — Run Laravel tinker in container. Params: `endpoint_id`, `stack_name`, `command`, `service`
|
|
|
|
### Images
|
|
- **`portainer_images_list`** — List images. Params: `endpoint_id`, `with_usage`
|
|
- **`portainer_image_inspect`** — Inspect image. Params: `endpoint_id`, `image_ref`
|
|
- **`portainer_image_pull`** — Pull image from registry. Params: `endpoint_id`, `image`, `registry_auth`
|
|
- **`portainer_image_remove`** — Remove image. Params: `endpoint_id`, `image_ref`, `force`
|
|
|
|
### Networks
|
|
- **`portainer_networks_list`** — List networks. Params: `endpoint_id`
|
|
- **`portainer_network_inspect`** — Inspect network. Params: `endpoint_id`, `network_id`
|
|
- **`portainer_network_create`** — Create network. Params: `endpoint_id`, `name`, `driver`, `subnet`, `gateway`
|
|
- **`portainer_network_remove`** — Remove network. Params: `endpoint_id`, `network_id`
|
|
- **`portainer_network_connect`** — Connect container to network. Params: `endpoint_id`, `network_id`, `container_id`
|
|
- **`portainer_network_disconnect`** — Disconnect container from network. Params: `endpoint_id`, `network_id`, `container_id`, `force`
|
|
|
|
### Volumes
|
|
- **`portainer_volumes_list`** — List volumes. Params: `endpoint_id`
|
|
- **`portainer_volume_inspect`** — Inspect volume. Params: `endpoint_id`, `volume_id`
|
|
- **`portainer_volume_create`** — Create volume. Params: `endpoint_id`, `name`, `driver`, `labels`
|
|
- **`portainer_volume_remove`** — Remove volume. Params: `endpoint_id`, `volume_id`, `force`
|
|
|
|
### Users
|
|
- **`portainer_users_list`** — List Portainer users
|
|
- **`portainer_user_inspect`** — Inspect user. Params: `user_id`
|