Hermes Kanban MCP (hermes-kanban-mcp-vn)
Restricted stdio MCP bridge that submits durable work to an existing Hermes Kanban board. It does not create another task database and does not expose arbitrary shell, workspace, profile or model selection.
Architecture: MCP Hub --stdio/uvx--> MCP --HTTPS bearer--> restricted backend --fixed argv--> Hermes Kanban.
The dashboard token is intentionally not used because it grants broad dashboard access. Both sides enforce board/assignee allowlists. Keep the backend private (loopback, VPN, or authenticated reverse proxy). ready requires the profile on disk plus explicit inclusion in HERMES_KANBAN_READY_ASSIGNEES after runtime/provider checks. Creating a task does not authorize production deployment, destructive actions, outbound messages, or spending.
MCP Hub install (after PM approval and publish)
{"mcpServers":{"hermes-kanban":{"command":"uvx","args":["hermes-kanban-mcp-vn==0.1.0"],"env":{"HERMES_KANBAN_URL":"https://hermes-kanban.internal.example","HERMES_KANBAN_TOKEN":"<secret-from-hub-secret-store>","HERMES_KANBAN_ALLOWED_ASSIGNEES":"developer,project-manager","HERMES_KANBAN_ALLOWED_BOARDS":"default","HERMES_KANBAN_TIMEOUT":"20"}}}}
Never commit tokens or put them in command arguments.
Backend contract
Run on the Hermes host with the same board storage/config as /opt/hermes/bin/hermes:
HERMES_KANBAN_BACKEND_TOKEN='<secret>' HERMES_KANBAN_CLI=/opt/hermes/bin/hermes \
HERMES_KANBAN_ALLOWED_ASSIGNEES=developer,project-manager \
HERMES_KANBAN_READY_ASSIGNEES=developer,project-manager \
HERMES_KANBAN_ALLOWED_BOARDS=default \
uvx --from hermes-kanban-mcp-vn==0.1.0 hermes-kanban-backend
Authenticated routes: GET /v1/agents, POST /v1/tasks, GET /v1/tasks/{id}, POST /v1/tasks/{id}/comments. /healthz contains no board data. Use TLS and permit only MCP Hub source addresses.
Verify and publish
uv sync --extra dev
uv run pytest -q
uv run ruff check src tests scripts
uv run ruff format --check src tests scripts
uv run mypy src
uv build
uv run python scripts/mcp_smoke.py
The protocol smoke uses a loopback fake backend; it is not proof of live Hermes integration. After PM approval Linus publishes with UV_PUBLISH_TOKEN='<secret-store>' uv publish, starts the restricted backend, pins the Hub package version, and validates on an isolated board. Roll back by restoring the previous Hub package pin and stopping the backend; existing tasks remain durable.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_kanban_mcp_vn-0.1.0.tar.gz.
File metadata
- Download URL: hermes_kanban_mcp_vn-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d87c53d0dfabc9aa90c2299b3ed21a7e492bfc3e0a6c02dfed31896494c91cf
|
|
| MD5 |
49070e7db1dd59d6a072fe3c7d4a6f7e
|
|
| BLAKE2b-256 |
34175d0987ff8bfcccb7c9b9a903d0a072ff59303dfc623798942f7c9f7f25e7
|
File details
Details for the file hermes_kanban_mcp_vn-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_kanban_mcp_vn-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b461d175baf0166a5e561d1e34a1c7c96ebf3919b008b040689b1be49bac38d
|
|
| MD5 |
8f8ec3a941a91195e86ddfbe82f9ff9d
|
|
| BLAKE2b-256 |
af8881fe36a2f5c8c3b9297b4cd2925c5d0ba9cdac245d014575a9cb2611bd9b
|