portainer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORTAINER_URL | Yes | Portainer base URL (e.g. https://portainer.example.com:9443) | |
| PORTAINER_PASSWORD | Yes | Portainer password | |
| PORTAINER_USERNAME | Yes | Portainer username | |
| PORTAINER_VERIFY_SSL | No | Set to 'false' for self-signed certificates | true |
| PORTAINER_DEFAULT_ENDPOINT | No | Default endpoint ID for container/image/stack operations | 1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| portainer_statusA | Check Portainer connection and authentication status. |
| portainer_endpoints_listB | List all Portainer environments (endpoints). |
| portainer_endpoint_inspectC | Get details of a specific Portainer environment (endpoint). Args: endpoint_id: The ID of the endpoint to inspect |
| portainer_stacks_listA | List all Portainer stacks. |
| portainer_stack_inspectA | Get details of a stack including its compose file content. Args: stack_id: The ID of the stack to inspect |
| portainer_stack_deployA | Deploy a new stack from a docker-compose string. Args: name: Name of the new stack compose_content: Docker Compose file content (YAML string) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_stack_updateA | Update an existing stack, optionally with new compose content. Args: stack_id: The ID of the stack to update compose_content: New Docker Compose content (YAML). If omitted, redeploys existing. endpoint_id: Endpoint ID (derived from the stack itself if omitted) |
| portainer_stack_deleteA | Delete a stack. Args: stack_id: The ID of the stack to delete |
| portainer_stack_startC | Start a stopped stack. Args: stack_id: The ID of the stack to start |
| portainer_stack_stopB | Stop a running stack. Args: stack_id: The ID of the stack to stop |
| portainer_containers_listA | List containers on an endpoint. Args: endpoint_id: Target endpoint ID (uses default if omitted) show_all: If true, show all containers including stopped ones name_filter: Only return containers whose name contains this substring (server-side Docker filter) |
| portainer_container_inspectA | Get detailed information about a container. Args: container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_startB | Start a stopped container. Args: container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_stopB | Stop a running container. Args: container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_restartB | Restart a container. Args: container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_removeA | Remove a container. Args: container_id: Container ID or name force: Force removal of a running container (default false) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_logsA | Get container logs. Args: container_id: Container ID or name tail: Number of lines from the end of the logs (default 100, max 1000) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_logs_grepA | Search container logs for lines matching a regex pattern. Returns only matching lines (with optional context). Useful for finding specific errors, status codes, or keywords without downloading the full log. Args: container_id: Container ID or name pattern: Regex pattern to search for (case-insensitive) tail: Number of log lines to fetch before filtering (default 500, max 1000) context_lines: Lines of context around each match (default 0, max 5) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_stack_logs_errorsA | Scan all running containers in a stack for errors. Fetches logs from every running container whose name starts with the given stack name and filters for common error patterns: HTTP 4xx/5xx, exceptions, fatal/critical/emergency log levels, panics, OOM, PHP errors, segfaults, etc. Args: stack_name: Stack name prefix (e.g. "taylor", "blog", "somnlyx") tail: Log lines per container to scan (default 500, max 1000) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_laravel_errorsA | Get Laravel application-level errors from storage/logs/laravel.log. Executes inside each running backend/horizon container of a stack to read the actual Laravel error log (not nginx access log). Returns production.ERROR entries with exception messages and context. Use this AFTER portainer_stack_logs_errors to get root cause details behind HTTP 500 errors seen in nginx access logs. Args: stack_name: Stack name prefix (e.g. "taylor", "blog", "somnlyx") tail: Number of error lines to return per container (default 50, max 200) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_laravel_tinkerA | Execute PHP code via Laravel Tinker inside a stack's backend container. Finds a running backend container for the given stack and runs
Args: stack_name: Stack name prefix (e.g. "taylor", "blog", "somnlyx") code: PHP code to execute (will be passed to tinker --execute) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_statsA | Get live CPU, memory, and network stats for a container. Args: container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_container_execA | Execute a command inside a running container and return its output. Args: container_id: Container ID or name command: Shell command to execute (run via sh -c) workdir: Working directory inside the container user: User to run the command as (e.g. 'root', '1000:1000') endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_images_listA | List Docker images on an endpoint. Args: endpoint_id: Target endpoint ID (uses default if omitted) reference_filter: Only return images matching this reference (e.g. 'nginx' or 'nginx:1.25'; server-side Docker filter) |
| portainer_image_inspectA | Get detailed information about a Docker image. Args: image_id: Image ID or name:tag endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_image_pullA | Pull a Docker image from a registry. Args: image_name: Image name (e.g. 'nginx', 'ghcr.io/org/app') tag: Image tag (default 'latest') registry_auth: Optional base64-encoded JSON ({"username":..,"password":..,"serveraddress":..}) forwarded as X-Registry-Auth. Required for private registries. endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_image_removeA | Remove a Docker image. Args: image_id: Image ID or name:tag endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_volumes_listA | List Docker volumes on an endpoint. Args: endpoint_id: Target endpoint ID (uses default if omitted) name_filter: Only return volumes whose name contains this substring (server-side Docker filter) |
| portainer_volume_inspectA | Get detailed information about a Docker volume. Args: volume_name: Volume name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_volume_createA | Create a Docker volume. Args: name: Volume name driver: Volume driver (default 'local') labels: Optional labels as key-value pairs endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_volume_removeA | Remove a Docker volume. Args: volume_name: Volume name force: Force removal even if in use (default false) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_networks_listA | List Docker networks on an endpoint. Args: endpoint_id: Target endpoint ID (uses default if omitted) name_filter: Only return networks whose name contains this substring (server-side Docker filter) |
| portainer_network_inspectB | Get detailed information about a Docker network. Args: network_id: Network ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_network_createA | Create a Docker network. Args: name: Network name driver: Network driver (default 'bridge'; use 'overlay' for Swarm) internal: Restrict external access (default false) labels: Optional labels as key-value pairs endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_network_removeA | Remove a Docker network. Args: network_id: Network ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_network_connectB | Connect a container to a network. Args: network_id: Network ID or name container_id: Container ID or name endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_network_disconnectA | Disconnect a container from a network. Args: network_id: Network ID or name container_id: Container ID or name force: Force disconnect (default false) endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_docker_infoA | Get Docker system information for an endpoint (OS, CPU, memory, containers count, etc). Args: endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_docker_disk_usageA | Get Docker disk usage (containers, images, volumes, build cache). Args: endpoint_id: Target endpoint ID (uses default if omitted) |
| portainer_users_listB | List all Portainer users. |
| portainer_user_inspectA | Get details of a specific Portainer user. Args: user_id: The ID of the user to inspect |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ginkida/portainer-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server