poratiner-ce-mcp-server
0
Portainer MCP Server is a Model Context Protocol server for managing Docker containers and services via Portainer's API. It facilitates AI assistants in container management, image handling, and network operations.
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
- 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 instancePORTAINER_API_KEY
: Your Portainer API keyPORTAINER_ENV_ID
: Your Poratiner Environment Id
API Tools
The server provides the following tools for AI assistants:
Container Management
FETCH_DOCKER_CONTAINERS
: List all containersCREATE_DOCKER_CONTAINER
: Create a new containerSTART_DOCKER_CONTAINER
: Start a containerDELETE_DOCKER_CONTAINER
: Remove a containerFETCH_CONTAINER_LOGS
: Get container logsUPDATE_CONTAINER_RESOURCE_LIMITS
: Update container resourcesDELETE_STOPPED_CONTAINERS
: Clean up stopped containers
Image Management
FETCH_IMAGES
: List all imagesDELETE_IMAGE_BUILD_CACHE
: Clear build cacheDELETE_UNUSED_IMAGES
: Remove unused images
Network Operations
FETCH_NETWORKS
: List all networksINSPECT_NETWORK
: Get network details
Service Management
FETCH_SERVICES
: List all servicesFETCH_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
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request