Manage Kanboard projects, tasks, boards, comments, files, subtasks, and members through MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
This server is confirmed live β we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Kanboard MCP.
add_project_userAdd a user to a Kanboard project with the given role. Role defaults to 'project-member' if not specified. Use list_project_users to find user ids and list_projects to find project ids; to unlink a member use remove_project_user. Returns { user_id, project_id, role } on success.
attach_file_to_taskUpload a file to a Kanboard task as an attachment. Provide either file_path (local file) or content_base64 (inline base64 content) β not both. project_id is resolved automatically from the task (no need to provide it). Maximum file size: 5 MB (5,242,880 bytes) β larger files return VALIDATION_ERROR before any HTTP request is made. Returns { file_id } on success.
close_taskClose (archive) an active Kanboard task. The task is set inactive and leaves the active board but is preserved β this is NOT a delete. Reversible: restore it with reopen_task. To permanently remove a task instead, use delete_task. Returns { ok: true, task_id } on success.
create_columnAdd a column to a Kanboard project board. Project resolved from explicit project_id/project_identifier or .kanboard.yaml. To reorder it use move_column, to rename or change its WIP limit use update_column, to remove it use delete_column. Returns { column_id } on success.
create_commentCreate a comment on a Kanboard task. The comment author is automatically set to the authenticated user (via getMe() cache); do NOT pass user_id β it is injected server-side. To edit a comment's body use update_comment; to remove one use delete_comment. Returns { comment_id } on success.
create_projectCreate a new Kanboard project. Requires a name (1β255 chars). Optionally provide a description, short identifier, owner user id, start_date / end_date (ISO 8601 string or epoch seconds), and email. After creating, adjust the board with create_column / create_swimlane, add members with add_project_user, and edit attributes with update_project. Returns { project_id } on success.
The ernestocorona/kanboard-mcp MCP server connects an MCP client to a Kanboard instance and exposes tools for reading and changing project data. Its operations cover projects, columns, swimlanes, tasks, subtasks, comments, file attachments, categories, and project members. Agents can inspect projects and tasks, create or update work items, assign users, manage board structure, and retrieve overdue or personally assigned tasks.
Project context can be supplied with a numeric project ID or a short project identifier. Several tools can instead resolve the project from a .kanboard.yaml file in the project root. That file can also provide defaults for task fields such as the column, owner, category, and swimlane.
The ernestocorona/kanboard-mcp MCP server communicates with clients over MCP stdio and calls Kanboard through its JSON-RPC API. It supports two authentication patterns: a personal token that represents the authenticated Kanboard user, and an application token for a service identity such as a bot or CI process. The authenticated identity affects visible projects, task ownership, comments, and user-scoped queries.
Task creation supports both individual requests and JSON-RPC batching. create_tasks_batch accepts between 1 and 100 tasks in one call, but the operation is non-atomic: some tasks can succeed while others fail, so callers should inspect both result arrays. Read requests retry on selected transient HTTP responses, while mutations are not retried. Each request has a timeout, configurable through KANBOARD_TIMEOUT_MS, with a default of 15 seconds.
The package is published as @ernestocorona/kanboard-mcp and requires Node.js 22 or later. A direct MCP client configuration can run it with:
KANBOARD_URL, KANBOARD_USERNAME, and KANBOARD_API_TOKEN identify the Kanboard endpoint and credentials. The server can also run from the published multi-architecture Docker image on GHCR, or from a source checkout after building the project. It is ESM-only. The selftest command checks the server version, authentication, and visible projects.
The available tools include:
Attachments accept either a local file path or inline Base64 content, but not both, and are limited to 5 MB. Closed tasks remain preserved and can be reopened; deletion is a separate permanent operation.
Destructive operations require an explicit confirm: true value and cannot be undone through the server. This applies to deleting projects, tasks, subtasks, columns, swimlanes, comments, and task files. Batch task creation can leave partial results after an error. Some queries depend on Kanboard permissions: listing visible projects only returns projects the authenticated user can access, and listing all overdue tasks requires an administrator token.
The server does not retry mutations, so callers should avoid automatically repeating a write after an uncertain network failure without checking the result. MCP clients must keep the process stdin connected when using stdio; Docker runs require the interactive stdin flag. Logs use structured output with secret redaction, but credentials should still be provided through environment configuration rather than task prompts.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ernestocorona-kanboard-mcp)<a href="https://allmcps.com/mcp/ernestocorona-kanboard-mcp"><img src="https://allmcps.com/api/badge/ernestocorona-kanboard-mcp?style=directory" alt="Kanboard MCP on AllMCPs" /></a>