In-depth architectural comparison of the Kanboard Mcp and Horizun Revit MCP MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
Kanboard Mcp
Workplace & Productivity · Local stdio
Quality: 60/100 (Good) | Auth: API Key required
Horizun Revit MCP
Workplace & Productivity · Remote HTTP/SSE
Quality: 53/100 (Good) | Auth: No auth required
Verdict Summary: Choose Kanboard Mcp if you need specialized Workplace & Productivity tools running via a local process. Choose Horizun Revit MCP if your workspace requires Workplace & Productivity integration with remote web transport. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose Kanboard Mcp when:
You need dedicated capabilities in the Workplace & Productivity domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: KANBOARD_URL, KANBOARD_USERNAME, KANBOARD_API_TOKEN, KANBOARD_TIMEOUT_MS.
TypeScript MCP server for Kanboard with multi-project routing via .kanboard.yaml. 37 tools, 982 unit tests, Docker multi-arch on GHCR, provenance-signed npm releases via OIDC, Diátaxis-structured docs, MIT licensed.
Open-source MCP server for Autodesk Revit: typed BIM edits, families, exports and Power BI.
Add 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_task
Upload 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_task
Close (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_column
Add 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.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
Kanboard Mcp is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Horizun Revit MCP belongs to Workplace & Productivity using remote streaming HTTP/SSE transport. Select Kanboard Mcp when you need capabilities focused on workplace & productivity and Horizun Revit MCP when you require tools for workplace & productivity.
Create 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_project
Create 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.
create_subtask
Create a subtask under an existing Kanboard task. Status: 0 = todo (default), 1 = in progress, 2 = done. To list a task's subtasks use list_subtasks; to edit one use update_subtask. Returns { subtask_id, task_id } on success.
create_swimlane
Add a swimlane to a Kanboard project. Project resolved from explicit project_id/project_identifier or .kanboard.yaml. To reorder it use move_swimlane, to rename it use update_swimlane, to remove it use delete_swimlane. Returns { swimlane_id } on success.
create_task
Create a new task in a Kanboard project. Project is resolved from explicit project_id or project_identifier, or from .kanboard.yaml. Optional fields (column_id, owner_id, category_id, swimlane_id) fall back to .kanboard.yaml defaults when not provided. To create many tasks at once use create_tasks_batch; to move the task afterward use move_task_position. Returns { task_id, project_id } on success.
create_tasks_batch
Bulk-create tasks in a Kanboard project using a single JSON-RPC batch request. Accepts 1–100 tasks per call. Non-atomic: partial failure is possible — check failed[] for per-task errors. Optional fields (column_id, owner_id, category_id, swimlane_id) fall back to .kanboard.yaml defaults when not provided. Returns { created: [...], failed: [...] } — never throws on partial failure.
delete_column
Permanently delete a Kanboard column from a project board. DESTRUCTIVE and irreversible — requires explicit `confirm: true`. To rename a column or change its WIP limit use update_column; to reorder it use move_column. Returns { ok: true, column_id } on success.
delete_comment
Permanently delete a Kanboard comment. DESTRUCTIVE and irreversible — requires explicit `confirm: true`. To edit a comment's text instead of deleting it use update_comment. Returns { ok: true, comment_id } on success.
+27 more tools listed on main page
Horizun Revit MCP Tools (46)
horizun_health
Is the bridge alive, and WHICH Revit is on the other end — year, build, our own version and commit, and the document active right now (an explicit null when none is).
get_document_info
The open document, its counts and identity.
horizun_open_document
Open a model, refusing a file saved in another Revit version (opening upgrades it irreversibly) and refusing a workshared central unless asked twice.
horizun_save_document
Save, then prove it: the file's timestamp and size before and after. On a workshared model it says, loudly, that this is not a synchronize.
horizun_relinquish_all
Give back everything this user owns, and count what is still owned afterwards rather than assume zero.
horizun_capture_view
Export a view and hand the IMAGE back, so the caller can look at the model instead of only reading it.
horizun_execute_python
The execution fallback: Python against the whole API on the UI thread, stdlib included. **Enabled by default**; an explicit off in `settings.json` is respected. `preflight=true` validates permission, document, size, hash and syntax without executing; the structured `__output__` evidence contract cl…
horizun_model_scan
The census, under the honesty contract.
horizun_write_params_verified
Parameter writes, each re-read after commit.
horizun_delete_verified
Deletion with the cascade counted, `dry_run` first.