- Fix tag create: AddTag → CreateTag
- Fix tag update: UpdateTag → UpdateTagColor, param {id} → {tag}
- Fix sync_resource create/update: CreateSyncResource → CreateResourceSync,
UpdateSyncResource → UpdateResourceSync
- Add GET/DELETE param remapping for tag ({tag}), variable ({name}),
user_group ({user_group}) — same pattern as INSPECT_PARAM_KEY
- Update api.md with corrected endpoint names
- Add scripts/test_write_lifecycle.py — full CRUD lifecycle test
covering 15 resource types across 4 tiers, urllib-only
All fixes verified live against Core v2.3.3 error responses.
Komodo MCP Server
MCP server for the Komodo build/deploy platform. Exposes 11 tools that map to Komodo's full RPC API surface (~336 endpoints) via the Model Context Protocol.
Setup
Prerequisites
- Node.js 22+
- A running Komodo instance with API access
Authentication
The server supports two authentication methods:
API Key (Preferred):
| Variable | Required | Description |
|---|---|---|
KOMODO_BASE_URL |
Yes | Base URL of your Komodo instance |
KOMODO_API_KEY |
Yes | API key from Komodo UI Settings |
KOMODO_API_SECRET |
Yes | API secret from Komodo UI Settings |
JWT Login:
| Variable | Required | Description |
|---|---|---|
KOMODO_BASE_URL |
Yes | Base URL of your Komodo instance |
KOMODO_USERNAME |
Yes | Komodo login username |
KOMODO_PASSWORD |
Yes | Komodo login password |
| Variable | Required | Default | Description |
|---|---|---|---|
PORT |
No | 9800 |
Port for the HTTP/SSE transport |
KOMODO_URL is accepted as a legacy alias for KOMODO_BASE_URL.
Install & Build
npm install
npm run build
Run
npm start
Or for development with live reload:
npm run dev
The server starts on http://0.0.0.0:9800/mcp with a health check at /health.
MCP Client Configuration
Add to your MCP client config (e.g. mcp.json or equivalent):
{
"mcpServers": {
"komodo": {
"url": "http://localhost:9800/mcp"
}
}
}
Tools
komodo_list
List or search Komodo resources.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | Resource type (see below) |
search |
string | No | Search query — uses Search* endpoint instead of List* |
project |
string | No | Filter by project name or ID |
Returns a JSON array of matching resources.
komodo_get
Get a single resource by ID or name.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | Resource type |
id |
string | Yes | Resource ID or name |
komodo_create
Create a new resource.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | Resource type |
params |
object | No | Fields for the corresponding Create* endpoint |
komodo_update
Update an existing resource by ID.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | Resource type |
id |
string | Yes | Resource ID or name |
params |
object | No | Fields to update |
komodo_delete
Delete a resource by ID or name.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | Resource type |
id |
string | Yes | Resource ID or name |
komodo_execute
Execute a Komodo operation. 100+ operations available.
| Parameter | Type | Required | Description |
|---|---|---|---|
operation |
enum | Yes | Operation to run |
id |
string | No | Resource ID or name |
params |
object | No | Additional operation parameters |
Operations (100+):
| Category | Operations |
|---|---|
| Build & Deploy | run_build, deploy_stack, deploy_stack_service, deploy, deploy_stack_if_changed, destroy_stack, destroy_container, destroy_deployment |
| Repo | build_repo, clone_repo, pull_repo, pull_deployment, cancel_repo_build, clear_repo_cache |
| Procedure & Action | run_procedure, run_procedure_stage, run_action, cancel_action, cancel_build, cancel_procedure |
| Stack | run_stack_refresh_cache, run_stack_refresh_content, run_stack_pull, run_stack_pull_deployment, run_stack_stop, run_stack_restart, run_stack_pause, run_stack_unpause, run_stack_remove_orphan_containers, run_stack_toggle_service_dependencies, run_stack_auto_update, run_stack_commit, start_stack, run_resource_sync, run_sync_deployment |
| Container Lifecycle | start_container, stop_container, restart_container, pause_container, unpause_container, start_all_containers, stop_all_containers, restart_all_containers, pause_all_containers, unpause_all_containers |
| Deployment Lifecycle | start_deployment, stop_deployment, restart_deployment, pause_deployment, unpause_deployment |
| Server | run_server_refresh, run_server_refresh_containers, run_server_update_periphery, run_server_prune_images, run_server_prune_containers, run_server_prune_networks, run_server_stats, run_server_run_command, run_server_scripts, run_server_copy, run_server_move, rotate_all_server_keys |
| Docker Cleanup | prune_buildx, prune_docker_builders, prune_system, prune_volumes, delete_image, delete_network, delete_volume |
| Swarm | remove_swarm_nodes, remove_swarm_services, remove_swarm_configs, remove_swarm_secrets, remove_swarm_stacks, create_swarm_config, create_swarm_secret, rotate_swarm_config, rotate_swarm_secret, update_swarm_node |
| Batch | batch_run_build, batch_deploy_stack, batch_deploy_stack_if_changed, batch_deploy, batch_pull_stack, batch_pull_repo, batch_build_repo, batch_clone_repo, batch_run_procedure, batch_run_action, batch_destroy_deployment, batch_destroy_stack |
| Admin | global_auto_update, backup_core_database, rotate_core_keys, send_alert, test_alerter, sleep, get_mcp_token |
komodo_logs
Get logs for a deployment, stack, container, or swarm service.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | deployment, stack, container, or swarm_service |
id |
string | Yes | Resource ID or name |
tail |
number | No | Number of recent log lines |
komodo_summary
Get summary stats for a resource type.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | build, deployment, server, stack, alerter, procedure, sync_resource, repo, builder, swarm, action |
komodo_inspect
Inspect a Docker object.
| Parameter | Type | Required | Description |
|---|---|---|---|
inspect_type |
enum | Yes | container, image, network, volume, swarm, swarm_node, etc. |
id |
string | Yes | Object ID or name |
server |
string | No | Server name (for server-scoped objects) |
komodo_search_logs
Search logs with a query string.
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_type |
enum | Yes | container, deployment, stack, swarm_service |
id |
string | Yes | Resource ID or name |
query |
string | Yes | Search query to filter log lines |
tail |
number | No | Number of recent log lines |
komodo_list_detail
Extended listing for specific Docker/infrastructure objects.
| Parameter | Type | Required | Description |
|---|---|---|---|
list_type |
enum | Yes | What to list (see below) |
server |
string | No | Server name filter |
pattern |
string | No | Filter pattern |
List types: containers, all_containers, images, networks, volumes, system_processes, schedules, permissions, api_keys, secrets, updates, build_versions, compose_projects, full_stacks, full_builds, full_servers, full_deployments, full_procedures, full_repos, full_builders, full_swarms, full_actions, full_alerters, full_resource_syncs
Resource Types
All tools that accept resource_type support these values:
| Value | Komodo Resource |
|---|---|
stack |
Docker Compose stacks |
build |
Build configurations |
server |
Managed servers |
procedure |
Automation procedures |
deployment |
Deployments |
alerter |
Alert configurations |
image_registry_account |
Container registry accounts |
sync_resource |
Sync resources |
user |
Users |
tag |
Tags |
execution |
Execution history |
access_request |
Access requests |
action |
Automation actions |
repo |
Git repositories |
builder |
Build configurations |
swarm |
Docker Swarm clusters |
variable |
Environment variables |
user_group |
Permission groups |
alert |
Alert history |
terminal |
Web terminals |
git_provider_account |
Git provider connections |
Architecture
- Transport: HTTP/SSE via
StreamableHTTPServerTransport(MCP protocol) - Auth: API Key headers (preferred) or JWT login with auto-refresh
- API: Komodo RPC-style — all calls are
POST /{read|write|execute}/{RequestName} - Coverage: ~336 of ~336 Komodo API endpoints (100%)
License
Private — BuzzbeeSCD