Portainer MCP Server
About
A Model Context Protocol (MCP) server implementation for Portainer, enabling AI assistants to interact with Docker containers and services through Portainer's API.
Details
- Author
- BirajMainali
- Downloads
- 421
- Categories
- Other
Jump to
- Docker container management (create, start, delete, fetch logs)
- Docker image management (fetch, delete unused, clear build cache)
- Docker network operations (inspect, fetch)
- Docker service management (fetch, logs)
- Resource limit management for containers
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Portainer MCP ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Installation requires Deno and a running Portainer instance with API access. After cloning the repository, set the environment variables PORTAINER_URL, PORTAINER_API_KEY, and PORTAINER_ENV_ID. The server can be run with deno run or compiled into an executable. In an MCP client (e.g., Claude Desktop), configure the tool to use the compiled executable and pass the appropriate arguments.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"portainer mcp server": {
"poratiner-ce-mcp-server": {
"command": "deno",
"args": [
"compile",
"--allow-env",
"--allow-read",
"--allow-net",
"--env-file=.env",
"src/main.ts"
]
}
}
}
}
McpServers
{
"poratiner-ce-mcp-server": {
"command": "deno",
"args": [
"compile",
"--allow-env",
"--allow-read",
"--allow-net",
"--env-file=.env",
"src/main.ts"
]
}
}
Portainer MCP Server
A Model Context Protocol (MCP) server implementation for Portainer, enabling AI assistants to interact with Docker containers and services through Portainer's API.
Features
- Docker container management (create, start, delete, fetch logs)
- Docker image management (fetch, delete unused, clear build cache)
- Docker network operations (inspect, fetch)
- Docker service management (fetch, logs)
- Resource limit management for containers
Project Structure
portainer-ce-mcp/
├── src/
│ ├── api/
│ │ └── portainer.ts # Portainer API integration
│ ├── constants/
│ │ └── index.ts # Tool names and other constants
│ ├── types/
│ │ └── index.ts # TypeScript type definitions
│ └── main.ts # Main server implementation
├── package.json # Project dependencies
├── package-lock.json # Dependency lock file
├── deno.json # Deno configuration
└── README.md # Project documentation
Prerequisites
- Deno
- Portainer instance with API access
- Docker installed and running
Installation
1. Clone the repository:
git https://github.com/BirajMainali/poratiner-ce-mcp-server.git
cd portainer-ce-mcp
Configuration
The server requires the following environment variables:
- PORTAINER_URL: The URL of your Portainer instance
- PORTAINER_API_KEY: Your Portainer API key
- PORTAINER_ENV_ID: Your Poratiner Environment Id
API Tools
The server provides the following tools for AI assistants:
Container Management
-FETCH_DOCKER_CONTAINERS: List all containers
- CREATE_DOCKER_CONTAINER: Create a new container
- START_DOCKER_CONTAINER: Start a container
- DELETE_DOCKER_CONTAINER: Remove a container
- FETCH_CONTAINER_LOGS: Get container logs
- UPDATE_CONTAINER_RESOURCE_LIMITS: Update container resources
- DELETE_STOPPED_CONTAINERS: Clean up stopped containers
Image Management
-FETCH_IMAGES: List all images
- DELETE_IMAGE_BUILD_CACHE: Clear build cache
- DELETE_UNUSED_IMAGES: Remove unused images
Network Operations
-FETCH_NETWORKS: List all networks
- INSPECT_NETWORK: Get network details
Service Management
-FETCH_SERVICES: List all services
- FETCH_SERVICE_LOG: Get service logs
Development
Building
deno compile --allow-env --allow-read --allow-net --env-file=.env src/main.ts
Inspect MCP Server
npx @modelcontextprotocol/inspector deno run --allow-env --allow-read --allow-net --env-file=.env src/main.ts
MCP Config
{
"mcpServers": {
"poratiner": {
"command": "C:\\MCP\\portainer-ce-mcp\\src.exe", // use executable path
"args": [
"y"
]
}
}
}
License
MIT
Contributing
1. Fork the repository
2. Create your feature branch (git checkout -b feature/amazing-feature)
3. Commit your changes (git commit -m 'Add some amazing feature')
4. Push to the branch (git push origin feature/amazing-feature)
5. Open a Pull Request
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



