Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog
Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

AllMCPs on GitHub (opens in a new tab)
Launched onTiny Startupstinystartups.com
Explore
  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Random discovery New
  • Submit a server
  • Pricing & Boost Boost
Learn
  • Guides hub
  • What is MCP?
  • Install guide
  • Build an MCP server
  • Deploy an MCP server
  • Security guide
  • Troubleshooting
  • MCP for SEO & AEO
  • Protocol versioning
  • Transports: stdio vs HTTP
  • Blog & updates
Tools
  • All developer tools
  • Config generator
  • Config validator
  • Config auditor
  • MCP playground
  • Token calculator
  • OpenAPI → MCP
  • Badge generator
For agents
  • REST API docs
  • Trust & traffic Live
  • Remote MCP server SSE ↗ (opens in a new tab)
  • llms.txt ↗ (opens in a new tab)
  • Catalog JSON ↗ (opens in a new tab)
Company
  • About
  • Advertise Sponsor
  • Contact
  • GitHub ↗ (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZoneAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistLaunched on Tiny StartupsFeatured on ShowMeBestAIFeatured on ShowMeBestAIFind us on LaunchZoneFind us on LaunchZone
© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. Browse
  3. Keymem
  4. vs Kanboard MCP
Side-by-Side Model Context Protocol Comparison

Keymem vs Kanboard MCP

In-depth architectural comparison of the Keymem and Kanboard 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

Keymem
Workplace & Productivity · Local stdio
Quality: 64/100 (Good) | Auth: No auth required
Kanboard MCP
Workplace & Productivity · Local stdio
Quality: 60/100 (Good) | Auth: API Key required
Verdict Summary: Choose Keymem if you need specialized Workplace & Productivity tools running via a local process. Choose Kanboard MCP if your workspace requires Workplace & Productivity integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.

Which MCP Server Should You Choose?

Keymem logo

Choose Keymem when:

  • You need dedicated capabilities in the Workplace & Productivity domain.
  • You prefer local stdio subprocess transport architecture.
  • Your security boundary fits: No auth required (Free / Open Source).
  • Primary tools included: recall, browse_keys, read_key.
Explore Keymem Details
Kanboard MCP logo

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.
  • Primary tools included: add_project_user, attach_file_to_task, close_task.

Feature & Specification Comparison

Specification
Keymem logo
Keymem
donggyun112
Workplace & Productivity
Kanboard MCP logo
Kanboard MCP
ernestocorona
Workplace & Productivity
SummaryAssociative key-graph memory for LLM agents — recall by association, not vector similarity.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.
Category & ScopeWorkplace & Productivity

Tools & Capabilities Breakdown

Keymem Tools (12)

recall
Search long-term memory for what is already known about the user, project, or topic — call this before your first reply and whenever the topic shifts. Always pass the active namespace when known. Returns matching key clusters only (not memory content): canonical concept, aliases, key type, match score, linked-memory count, hub status, and specificity. For a core lookup, complete read_key(key_id, original_query, namespace) then read_memory(memory_id, via_key_id, namespace): only the full read grows depth/access, reinforces the traversed edge, and learns aliases. Use short focused noun queries and decompose multi-fact questions into several recall calls. inject:true is only an unconfirmed passive preview and must not replace that traversal; injected memories are not reinforced. inject_top_k defaults to 1; inject_max_chars defaults to 2000 and marks truncated previews. An empty result returns {status:'no_match', nearest_keys} — the closest stored concepts below the gate; retry with one of those concepts when relevant.
browse_keys
Browse the vocabulary of one namespace when recall has no hit or you need an entry point. Returns active key clusters with hubs first, then by linked-memory count. This is index metadata only; continue with read_key(key_id, query, namespace) and read_memory(memory_id, via_key_id, namespace).
read_key
List the memories stored under one key (concept), ranked. Returns the canonical key, its aliases, and hub metadata plus ranked memory IDs and metadata — never memory content. Always pass the original focused query and active namespace when known: handles are then ranked by content relevance, which is essential for hubs. Call read_memory(memory_id, via_key_id=key_id, namespace) on the selected handle to confirm the fact and reinforce the path. Use limit/offset to page without flooding context.

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).

Keymem Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "donggyun112-keymem": {
      "command": "npx",
      "args": [
        "-y",
        "keymem"
      ]
    }
  }
}
Kanboard MCP Configuration
mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ernestocorona-kanboard-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@ernestocorona/kanboard-mcp"
      ],
      "env": {
        "KANBOARD_URL": "YOUR_KANBOARD_URL_HERE",
        "KANBOARD_USERNAME": "YOUR_KANBOARD_USERNAME_HERE",
        "KANBOARD_API_TOKEN": "YOUR_KANBOARD_API_TOKEN_HERE"
      }
    }
  }
}

Frequently Asked Questions

Keymem is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Kanboard MCP belongs to Workplace & Productivity using local stdio subprocess. Select Keymem when you need capabilities focused on workplace & productivity and Kanboard MCP when you require tools for workplace & productivity.

More alternatives to KeymemMore alternatives to Kanboard MCPWorkplace & Productivity category hub

Related MCP Server Comparisons

Popular comparisons with Keymem

  • MCP Server logoKeymem vs MCP Server
  • Adeu logoKeymem vs Adeu
  • Delega MCP logoKeymem vs Delega MCP
  • MCP Odoo logoKeymem vs MCP Odoo

Popular comparisons with Kanboard MCP

  • OmniFocus logoKanboard MCP vs OmniFocus
Explore Kanboard MCP Details
Workplace & Productivity
Quality signal64/100 (Good)60/100 (Good)
Transport ProtocolLocal Subprocess (stdio)Local Subprocess (stdio)
Auth RequirementNo auth requiredAPI Key required
Pricing ModelFree / Open SourceFree / Open Source
Required Env VarsNone required
KANBOARD_URLKANBOARD_USERNAMEKANBOARD_API_TOKEN
Compatible Clients
Claude DesktopCursorWindsurfClineVS Code
Claude DesktopCursorWindsurfClineVS Code
Install path signalnpx · highnpx · high
Engagement & Health 2 views 0 copies 0 upvotes 3 stars 3 views 0 copies 0 upvotes 9 stars
Verified / OfficialCommunity ListingCommunity Listing
Open full listingView Keymem ListingView Kanboard MCP Listing
read_memory
Read the full content of one stored memory (selected via read_key). Returns the memory and all connected key clusters so exploration can continue Key → Memory → Key. Pass via_key_id from the selected key: only that traversed edge is Hebbian-reinforced, and depth/access count increase only when this full read occurs.
remember
MANDATORY END-OF-TURN GATE: before replying, save every durable fact newly revealed this turn (names, preferences, decisions, corrections, project facts, goals). A durable fact left unsaved is a bug; save silently in the same turn. Save nothing only after consciously confirming that nothing durable appeared. Before writing, recall() the topic in the same namespace and reuse returned canonical concepts or aliases. Use 3-6 diverse ATOMIC concept keys of 1-2 words each, never memory-specific phrases (use 'Nexora' and 'portfolio', not 'Nexora portfolio'); 3+-word keys are flagged in hints.phrase_keys and are measurably 91% unreachable singletons. CROSS-LINGUAL: register both language forms together (for example '포트폴리오' and 'portfolio'). Shared broad keys become navigable hubs. namespace groups memories by project/context; ttl_seconds sets expiry; related_to adds explicit memory links; source attaches provenance and is auto-stamped with the server session, a timestamp, and — when a host agent (Claude Code, Codex) transcript is active — host_session/host_agent/host_turn so the memory can be traced back to its original conversation via get_conversation. The response may include hints.near_keys (existing concepts your keys nearly duplicate — prefer reusing those concepts) and hints.language_note (add the missing-language variants).
correct
Update outdated information. Use when user corrects you or info changes (e.g. moved cities, changed job). Old version is preserved but weakened — never lost. Omit keys to keep the same search terms. related_to links the updated memory to other memory IDs.
related
Find other memories associated with a memory you already have (by ID). Returns neighboring memories connected by shared keys or explicit links. For normal agent-driven navigation prefer read_memory(), inspect its returned keys, then call read_key().
forget
Permanently delete a memory. Only use for completely wrong information. For outdated info, use correct() instead — it preserves history.
list_memories
List all stored memories. namespace filters by project/context. Expired memories are excluded. Prefer recall() for normal retrieval.
remember_batch
MANDATORY END-OF-TURN GATE: when a turn reveals multiple durable facts, save them silently before replying. A durable fact left unsaved is a bug. Recall each topic first, reuse canonical concept-level keys (ATOMIC, 1-2 words each — never phrases), and register cross-lingual forms together. Each item: {content, keys, key_types?, namespace?, ttl_seconds?, related_to?}. Returns saved IDs and is more efficient than multiple remember() calls.
cleanup_expired
Delete all memories past their ttl. Returns count of deleted memories. Call periodically to keep memory clean.
memory_stats
Get counts of keys, memories, and links in the system.

Kanboard MCP Tools (39)

add_project_user
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.
create_comment
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
  • Delega MCP logoKanboard MCP vs Delega MCP
  • Reclaim MCP Server logoKanboard MCP vs Reclaim MCP Server
  • UpTier logoKanboard MCP vs UpTier