kanboard-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@kanboard-mcpshow my open tasks in project 'Dev'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
kanboard-mcp
A multi-tenant MCP server for self-hosted Kanboard. One deployed instance serves a whole team: each request carries the caller's own Kanboard credential, so every action runs as that user — with their permissions and their authorship. The server is stateless and stores no tokens.
Built on the official kanboard
API client and FastMCP.
Why this exists
The official
kanboard.io/api/mcpis cloud-only — it can't talk to a self-hosted instance.Self-hosted Kanboard ships no MCP endpoint, only the JSON-RPC API.
Existing community bridges are single-tenant stdio — one shared identity, not suitable for a team.
This server fills that gap: central, HTTP, per-user.
Related MCP server: Kanboard MCP Server
How auth works
Every request must carry a Kanboard credential. Use each person's personal API token (Kanboard → your profile → API) with their real username, so actions respect that user's permissions. Three accepted schemes:
Scheme | Header(s) |
Explicit |
|
HTTP Basic |
|
Bearer |
|
The app-wide
jsonrpctoken works too but is admin-level and bypasses per-user permissions — don't hand it to end users.
Run locally
uv sync
cp .env.example .env # set KANBOARD_URL
uv run kanboard-mcp # serves http://127.0.0.1:8000/mcpRun with Docker
docker build -t kanboard-mcp .
docker run --rm -p 8000:8000 -e KANBOARD_URL=https://kanboard.example.com/jsonrpc.php kanboard-mcpFront it with TLS (reverse proxy or tunnel); keep the container bound to the
proxy only. The container ships a Docker HEALTHCHECK against GET /health
(unauthenticated liveness probe — returns {"status": "ok", ...}).
Cloudflare Tunnel
Publish the container through cloudflared so nothing is exposed directly;
credentials in headers then always travel over TLS to Cloudflare's edge:
# cloudflared config.yml ingress entry
- hostname: kanboard-mcp.example.com
service: http://127.0.0.1:8000Bind the published port to loopback (-p 127.0.0.1:8000:8000) so only the
tunnel can reach it.
Connect a client
Claude Code
claude mcp add --transport http kanboard https://kanboard-mcp.example.com/mcp \
--header "Authorization: Bearer <your-username>:<your-personal-token>"Claude Desktop — add a remote MCP server with the same URL and header.
Verify with the whoami tool — it should return your Kanboard user.
Configuration
Env var | Required | Default | Description |
| ✅ | — | Kanboard JSON-RPC endpoint ( |
|
| Bind address | |
|
| Bind port | |
|
| Per-request timeout (s) | |
|
|
|
No token is ever read from the environment — credentials are per-request only.
Tools
36 tools covering day-to-day task management, always as the calling user:
Me —
whoami,get_my_dashboard,get_my_overdue_tasksProjects —
list_my_projects,create_project,get_project,get_board,get_assignable_users,get_project_activityBoard structure —
add_column,update_column,add_swimlaneTasks —
get_task,search_tasks,get_task_files,create_task,update_task,move_task,close_task,open_task,move_task_to_project,duplicate_task_to_projectTags & categories —
get_project_tags,get_task_tags,set_task_tags,get_all_categories,create_categorySubtasks —
get_task_subtasks,create_subtask,update_subtaskComments —
get_task_comments,add_comment,update_commentTask links —
list_link_types,get_task_links,create_task_link
Deliberate omissions: no remove*/delete tools, and no binary file transfer
(attachments can be listed, not uploaded or downloaded). Adding more is a few
lines each — the underlying client exposes every Kanboard API method by
dynamic dispatch. See src/kanboard_mcp/tools.py.
Development
uv sync --extra dev
uv run pytest
uv run ruff checkLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA production-grade multi-tenant MCP server that provides different tools and configurations to different clients using API key-based routing.Last updated1
- Alicense-qualityDmaintenanceA Model Context Protocol (MCP) server that exposes Kanboard API functionality to Large Language Models (LLMs), enabling AI assistants to interact with Kanboard project management system.Last updated1MIT
- Alicense-qualityCmaintenanceMCP server for Kaneo task management API. Lets your AI coding assistant manage tasks, projects, labels, and comments in Kaneo.Last updated324MIT
- Alicense-qualityFmaintenanceA scalable multi-tenant platform for hosting MCP servers with built-in OAuth/API key authentication and 23+ native connector plugins (e.g., GitHub, Jira, Slack), enabling isolation and integration with external services.Last updated44MIT
Related MCP Connectors
MCP Server for agents to onboard, pay, and provision services autonomously with InFlow
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for InsForge BaaS — database, storage, edge functions, and deployments
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/johlan456/kanboard-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server