ideahub_mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IDEAHUB_ACTOR | No | Fallback actor id (e.g., `human:you` or `agent:name`). | |
| IDEAHUB_SCOPE | No | Fallback scope when cwd isn't a git repo. | |
| IDEAHUB_MCP_HOME | No | Data directory (SQLite store, logs, backups). | ~/.ideahub_mcp/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Cheap health probe. Returns server name, package version, and store path. Use to confirm the ideahub_mcp server is connected and responsive. |
| captureA | Capture a new durable idea. Use when: you reach a stable synthesis; you discover a reusable pattern; you want a standalone idea that should survive task boundaries; a checkpoint has hardened into a first-class concept. If you only need a lightweight in-progress trace, use |
| checkpointA | Write a lightweight working-memory trace during a task. Use when: you form a non-trivial synthesis mid-task; you make a decision the session will depend on; you want a durable breadcrumb without promoting it to a full idea yet; you want to leave a visible trace of what changed in your understanding during the task. Do not use for final, standalone ideas that should survive the task — use |
| dumpA | Dump the scoped corpus as a single text blob under a token budget. Use for orientation — 'what does this repo/user think about?'. Newest ideas first, latest note inlined by default, archived excluded by default. By default excludes kind='checkpoint' rows; pass include_checkpoints=True to include them. |
| searchA | Full-text search ideas with FTS5 + bm25 ranking. Returns snippet, score, and id. Scope-optional; archived excluded by default. By default excludes kind='checkpoint' rows; pass include_checkpoints=True to include them. |
| listA | List ideas with filters (scope, actor, originator, tags_any, tags_all, since, until). Returns id, scope, actor, preview (120 chars), and created_at. Archived excluded by default. By default excludes kind='checkpoint' rows; pass include_checkpoints=True to include them. |
| getA | Get a single idea by id with its notes and outbound links. |
| relatedA | Find ideas related to the given id. Scoring: (1) tag overlap DESC, (2) shared originator (True first), (3) recency DESC. Within source scope unless cross_scope=True; archived excluded by default. By default excludes kind='checkpoint' rows; pass include_checkpoints=True to include them. |
| annotateA | Append a note to an existing idea when current work confirms, sharpens, corrects, or extends it. Use when: the current task materially updates an existing idea; you want to attach new evidence or a correction; you do not want to create a separate idea. Optional |
| promoteA | Promote a checkpoint to a durable idea. Use when: a working-memory trace turns out to be load-bearing — the synthesis has hardened, the decision is stable, the observation is reusable. The id is preserved, so existing links, annotations, and task_ref groupings carry forward unchanged. A |
| archiveA | Archive an idea (sets archived_at, writes kind='archive' note with reason). Idempotent. Archived ideas are excluded by default from list/search/dump. |
| linkA | Connect two ideas when current work reveals they are structurally related, evolved, duplicated, superseding, part of a whole, or answering a question. |
| recognizeA | Inspect the actor table. Pass id for detail on one actor; omit to list all. |
| registerA | Register an actor without writing an idea. Use before passing a person as |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| status_resource |
TDQS
Scored across 14 tools
The core write paths (capture vs. checkpoint vs. annotate) are explicitly differentiated by durability and target, and read paths (get, related, search, list, dump) differ by input mode and output shape. Remaining friction: link vs. related (write vs. read of the same relation), and register vs. recognize (actor write vs. read) aren't signalled by their names, so an agent must read descriptions to avoid misselection.
Nearly all tools are single lowercase words in a consistent style (capture, checkpoint, annotate, promote, archive, link, search, list, dump). Two outliers break the verb pattern: 'related' is an adjective for a lookup, and 'recognize' is a vague verb that actually means 'inspect/list actors' — ideally list_actor/get_actor.
14 tools for a memory-store domain with two resource types (ideas/checkpoints and actors) is well-scoped. Each tool maps to a distinct lifecycle operation (capture, checkpoint, promote, annotate, archive, link, plus query and health/actor utilities), with no obvious filler.
Coverage is strong: full idea lifecycle from checkpoint to promotion to archival, note appending, typed linking, multiple retrieval modes, and actor registration/lookup. Gaps are minor but real: no way to edit an idea's content or tags in place, no unarchive/undo for archiving, and no delete — agents must route corrections through annotate.