ideahub_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., "@ideahub_mcpcapture an idea for a new MCP tool"
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.
ideahub_mcp
An agent-first MCP server for capturing and recalling ideas — the agent's and their human's.
The primary user is a model. Tools are short, imperative, example-laden; errors carry a repair path; scope and actor resolve from context so the agent doesn't have to ask.
Tools
Tool | Purpose |
| Durable idea. Use when work produces something worth preserving beyond the task. |
| Lightweight working-memory trace. Use mid-task for observations, decisions, next steps. |
| Promote a checkpoint to a durable idea, preserving its id, links, and provenance. |
| Text-blob summary of the scoped corpus under a token budget. |
| FTS5 + bm25 ranked search with snippets. Auto-tokenizes by default. |
| Filter ideas by scope, actor, tags, date range. |
| Full detail for one idea, with notes and outbound links. |
| Nearest neighbors by tag overlap → shared originator → recency. |
| Append a free-text note to an idea without mutating it. |
| Hide an idea; write a typed |
| Connect two ideas ( |
| Inspect the actor table. |
| Cheap no-side-effect health probe for connection/debugging. |
Related MCP server: MegaMemory
Writeback Loop
ideahub_mcp is designed to behave like working memory for an agent, not just searchable storage. Two write verbs close that loop:
capturewrites a durable idea that should survive the task.checkpointwrites a lightweight in-flight trace — observations, decisions, assumptions, open questions — without the semantic weight of a full idea.
When a checkpoint hardens into something load-bearing, promote flips its kind to idea while preserving the id, so existing links, annotations, and task_ref groupings carry forward unchanged. Promotion is one-way; an idea cannot be demoted.
All write-path verbs (capture, checkpoint, annotate, link) accept an optional task_ref — a free-form string that groups every write from the same task. It is normalized to lowercase kebab-case at the boundary, so "Writeback Phase 1", "writeback_phase_1", and "writeback-phase-1" collapse onto the same key.
capture and checkpoint return scored annotate_candidates and related_candidates in their response so the model sees where a fresh trace probably belongs (usually as an annotation on an existing idea) without having to search. The candidates parameter (default 5, max 10, 0 to skip) lets a caller cap or skip that envelope when fire-and-forget is the right move.
Checkpoints are default-excluded from search, list, and dump so cheap traces do not bleed into orientation surfaces — opt in with include_checkpoints=True.
Deduplication
capture runs two dedup paths before inserting:
Fast path — same actor, same content, same scope, within 5 seconds: silently returns the existing id. This catches accidental double-fires.
Content-hash path — same scope, same SHA-256 over normalized content (whitespace-collapsed, lowercased), any actor, any time, against live (non-archived)
kind='idea'rows: returns the existing id, merges incoming tags into the row, and appends akind='dup_attempt'note recording the second actor and tag delta.
Hash dedup makes re-derivation of the same idea observable in the row's note stream rather than silently creating duplicates.
Search
search defaults to query_mode='auto', which tokenizes the query and quotes each token so FTS5 operators (-, :, *, etc.) are treated as content. This is the right mode for searching kebab-case identifiers — task_refs, branch names, ULIDs.
For phrase queries, NEAR, or column-qualified syntax, pass query_mode='raw'. Raw mode validates the query and raises a loud error on syntax failure rather than the silent empty-result FTS5 returns by default.
Discovery And Health
ideahub_mcp is intentionally tool-first, not resource-first. A client may show a healthy connection even when list_resources() is sparse or empty.
To make discovery cheap and host-agnostic, the server exposes:
ping: a no-side-effect tool for "is the server connected and responsive?"ideahub://status: a status resource that reports package version, storage paths, and the current tool surface.
That design supports hosts that favor different MCP surfaces. Some clients reason primarily over tools. Others probe resources first. A healthy server should be easy to verify in either style.
For the full compatibility rubric, see docs/mcp-health.md.
Install
uvx ideahub_mcp # try it
uv tool install ideahub_mcp # keep it aroundClaude Code
Add to ~/.claude/settings.json:
{
"mcpServers": {
"ideahub": {
"command": "uvx",
"args": ["ideahub_mcp"],
"env": {
"IDEAHUB_MCP_HOME": "/Users/you/.ideahub_mcp",
"IDEAHUB_ACTOR": "human:you"
}
}
}
}Configuration
Var | Default | Purpose |
|
| Data directory (SQLite store, logs, backups). |
| — | Fallback actor id ( |
| — | Fallback scope when cwd isn't a git repo. |
Actor resolution: explicit arg → MCP clientInfo.name → IDEAHUB_ACTOR → error.
Scope resolution: explicit arg → IDEAHUB_SCOPE → repo:<git-toplevel> → global.
Storage
One SQLite file with WAL, FTS5, and hand-rolled migrations. No ORM. Daily snapshots to $IDEAHUB_MCP_HOME/backups/ with 14-day retention.
Develop
uv sync --dev
uv run pytest
uv run ruff check .
uv run pyrightLicense
MIT.
Available Tools
13 toolsannotateA
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 kind labels the note semantically (confirmation, counterexample, observation, follow-up, question, correction). Optional task_ref groups all writes from the same task and is normalized to lowercase kebab-case at the boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| content | Yes | ||
| kind | No | ||
| actor | No | ||
| originator | No | ||
| task_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are basic (readOnlyHint false, etc.). The description adds behavioral details such as task_ref normalization to lowercase kebab-case and semantic labels for kind. No contradictions. Some traits like mutation are implied but not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with a list of use cases. Each sentence adds value, no fluff, and the main action is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 6 parameters, 0% schema coverage, and an output schema, the description covers the tool's purpose, usage, and two key parameters. However, actor and originator are missing. Overall still informative enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains kind (lists semantic types) and task_ref (grouping + normalization). But actor and originator are not explained, leaving gaps. id and content are self-explanatory from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Append a note') and resource ('existing idea'), and distinguishes when to use this tool vs. creating a separate idea. It clearly states the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when current work updates an existing idea, to attach new evidence/correction, and when not to create a separate idea. Also implies alternatives (e.g., capture for new ideas).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
archiveAIdempotent
Archive an idea (sets archived_at, writes kind='archive' note with reason). Idempotent. Archived ideas are excluded by default from list/search/dump.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| reason | Yes | ||
| actor | No | ||
| originator | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description confirms idempotency (matching idempotentHint=True) and discloses writing a note and setting archived_at. Annotations show no readOnly or destructive hints, and description adds specific behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with three key points: purpose, idempotency, exclusion behavior. No redundancy, front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main effects and behavioral context. Output schema exists, so return values are handled. Could mention prerequisites or error conditions, but overall sufficient for a simple archival tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains 'reason' parameter via 'write kind=... note with reason' but does not address 'actor' or 'originator'. 'id' is implicit. Adds some value but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Archive an idea' with specific side effects (sets archived_at, writes note). It also explains the consequence for default listings. This distinguishes it from siblings like 'annotate'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: 'Archived ideas are excluded by default from list/search/dump.' This implies when to use archive (to hide ideas). However, no explicit alternatives or when-not-to-use are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
captureAIdempotent
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 checkpoint instead. content is required. scope and actor default from cwd and environment. Optional task_ref groups all writes from the same task; it is normalized to lowercase kebab-case at the boundary, so 'Writeback Phase 1', 'writeback_phase_1', and 'writeback-phase-1' collapse onto the same key. Returns annotate_candidates and related_candidates so the next memory move is obvious. candidates (default 5, max 10, 0 to skip) controls how many annotate/related suggestions are returned — set to 0 for a fire-and-forget trace where you don't intend to act on suggestions, or raise to 10 when actively triaging. Deduplication: same actor + same content within 5 seconds is silently treated as the same write. Beyond the 5-second window, or across actors, content with the same SHA-256 hash (whitespace-collapsed, lowercased) in the same scope dedupes against the original idea — incoming tags are merged in and a dup_attempt note is appended for provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| scope | No | ||
| tags | No | ||
| originator | No | ||
| task_ref | No | ||
| candidates | No | ||
| actor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm mutating (readOnlyHint=false) and idempotent (idempotentHint=true). Description adds rich behavioral details: 5-second dedup window, SHA-256 dedup beyond window, tag merging, and 'dup_attempt' note. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured with 'Use when:' and clear breakdowns. Each sentence provides essential information. Slightly verbose due to detailed dedup rules, but efficiency is high given complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage, parameter behaviors, deduplication, and return value. Explains edge cases (fire-and-forget, raising candidates) and provenance. Almost no gaps remain for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description compensates: states 'content is required', explains defaults for scope/actor, normalizes task_ref to kebab-case, and documents candidates (default 5, max 10, 0 to skip). Missing detail on tags and originator, but still adds significant value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Capture a new durable idea' and distinguishes the tool from sibling 'checkpoint' by specifying when to use each. It also mentions the return value (candidates), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists conditions for use ('stable synthesis', 'reusable pattern', 'standalone idea') and contrasts with 'checkpoint'. Provides guidance on 'candidates' parameter (set to 0 for fire-and-forget, raise to 10 for triaging) and explains deduplication behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 capture for those. Optional task_ref groups all writes from the same task; it is normalized to lowercase kebab-case at the boundary, so casing and whitespace variants collapse onto the same key. Optional kind_label is a semantic hint (observation | decision | assumption | question | next_step). Returns scored annotate_candidates (existing ideas this trace may update) and related_candidates so the next memory move is obvious. candidates (default 5, max 10, 0 to skip) controls how many annotate/related suggestions are returned — set to 0 for a fire-and-forget trace where you don't intend to act on suggestions, or raise to 10 when actively triaging.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| scope | No | ||
| tags | No | ||
| originator | No | ||
| task_ref | No | ||
| kind_label | No | ||
| candidates | No | ||
| actor | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false (write operation) and non-destructive, non-idempotent. The description adds valuable context: the trace is 'lightweight', not final; it returns candidates; task_ref normalization to lowercase kebab-case; kind_label enum; candidates parameter behavior. No contradiction found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs, front-loaded with purpose, then usage conditions, then parameter details. It is reasonably concise, though could be slightly tighter. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 params, 1 required, no schema descriptions, and an output schema (not visible), the description covers usage, key parameter behavior, and return values (annotate_candidates, related_candidates). It misses explanation for some optional params but overall is thorough enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions in schema). The description explains task_ref (normalization), kind_label (enum values), and candidates (default, max, meaning of 0). However, it does not cover content, scope, tags, originator, actor. Partial but helpful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Write a lightweight working-memory trace during a task.' It uses specific verbs and resources, and distinguishes itself from the sibling 'capture' tool by specifying that 'capture' is for final standalone ideas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use scenarios (e.g., 'non-trivial synthesis mid-task', 'decision the session will depend on') and when-not-to-use ('Do not use for final, standalone ideas'). It also names an alternative tool ('capture'). This gives clear guidance for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dumpARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| since | No | ||
| actor | No | ||
| originator | No | ||
| limit_tokens | No | ||
| include_all_notes | No | ||
| include_archived | No | ||
| include_checkpoints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description valuably supplements the annotations (already indicating safe read-only operation) by detailing default behaviors: newest-first ordering, inlining of latest note, exclusion of archived and checkpoint rows unless overridden. This goes beyond what annotations provide, though it could mention potential truncation under token budget.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at three sentences, front-loading the core purpose and usage. It avoids redundancy but could be slightly more structured (e.g., listing defaults separately).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 8 parameters and the presence of an output schema, the description provides adequate context for orientation usage but fails to explain several parameters (scope, since, actor, originator, include_all_notes) and does not describe the return format or token budget behavior. This leaves the agent with incomplete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It explains the meaning of 'include_archived' and 'include_checkpoints' (default false, toggle behavior) and implicitly the 'limit_tokens' parameter via 'token budget'. However, other parameters like 'scope', 'since', 'actor', 'originator', and 'include_all_notes' are left unexplained, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb ('Dump'), resource ('scoped corpus'), and outcome ('single text blob under a token budget'). It also explicitly ties it to orientation ('what does this repo/user think about?'), distinguishing it from sibling tools like search or list that are more query-oriented.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('for orientation'), its default ordering ('newest ideas first'), and default exclusions ('archived excluded', 'checkpoints excluded'). However, it does not specify when not to use it or suggest alternative tools for more targeted queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getARead-onlyIdempotent
Get a single idea by id with its notes and outbound links.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide read-only, non-destructive, idempotent hints. Description adds value by specifying return fields (notes and outbound links). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words. Front-loads action and scope. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return format details are not needed. Description fully covers what the tool does given its simplicity and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Though schema has 0% coverage for 'id' parameter, description implicitly defines it as the idea identifier. With only one required param, this is sufficient compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get', resource 'idea', qualifiers 'by id', and includes what is returned ('notes and outbound links'). Distinguishes from sibling tools like 'list' and 'search'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly clear: use when you need a single idea's details by its ID. No explicit exclusions or comparisons, but context with sibling tools makes it straightforward.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkAIdempotent
Connect two ideas when current work reveals they are structurally related, evolved, duplicated, or superseding one another. kind ∈ {related, supersedes, evolved_from, duplicate}. related is canonicalized (smaller id becomes source). Self-links rejected. Optional task_ref groups all writes from the same task and is normalized to lowercase kebab-case at the boundary.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes | ||
| kind | Yes | ||
| task_ref | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: self-links rejected, canonicalization of 'related' type, and normalization of task_ref to lowercase kebab-case. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise: three sentences cover purpose, kinds, constraints, and normalization. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core behavior and constraints but omits error handling (e.g., self-links, duplicate links) and does not explain the output schema. Given the output schema exists, return values are not required, but side effects and edge cases are lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero schema description coverage, the description must compensate, but it only partially explains parameters. It details 'kind' and 'task_ref' but does not describe 'source_id' and 'target_id' beyond being IDs of ideas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool connects two ideas and enumerates the four kinds of relationships. It also includes canonicalization and self-link rejection. However, the sibling tool 'related' shares a name with one of the kinds, which may cause ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives contextual clues for when to use (when current work reveals a relationship) but does not explicitly mention when not to use or compare with alternative tools like the sibling 'related'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
listARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | ||
| actor | No | ||
| originator | No | ||
| tags_any | No | ||
| tags_all | No | ||
| since | No | ||
| until | No | ||
| limit | No | ||
| include_archived | No | ||
| include_checkpoints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds behavioral context beyond annotations, such as default exclusions of archived items and checkpoint rows, which is valuable for agent decision-making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first sentence lists filters and return fields, second explains key defaults. It is concise, front-loaded, and free of redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, an output schema exists, and no nested objects, the description covers return fields and two defaults but omits details on parameter formatting and interaction. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate but only lists parameter names without explaining semantics like date format, tag matching logic, or behavior when multiple filters combine. This leaves significant ambiguity despite naming parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists ideas with filters and specifies the return fields. It distinguishes from siblings by focusing on listing with filters, but does not explicitly differentiate from the 'search' sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on defaults (excluded archived and checkpoints) and how to include them via parameters. However, it lacks clear directions on when to use this tool versus alternatives like 'search' or 'get', and no explicit when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingARead-onlyIdempotent
Cheap health probe. Returns server name, package version, and store path. Use to confirm the ideahub_mcp server is connected and responsive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. Description adds value by specifying return values and 'cheap' hint. No contradictions. Additional detail like 'fast' could have been included, but overall good.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose and return, second states use case. No unnecessary words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health probe with no parameters and output schema existing, the description provides enough context: what it returns and when to use. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is trivially 100%. Baseline for zero parameters is 4. Description does not need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is a 'Cheap health probe' that returns specific info (server name, package version, store path) and confirms server connectivity. Distinguishes from sibling tools which are for data operations like 'dump' or 'get'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use to confirm the ideahub_mcp server is connected and responsive.' Provides clear context for use, though it does not mention alternatives or when not to use. Given the simplicity, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
promoteADestructive
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 kind='promotion' note records the original kind_label for provenance. Promotion is one-way: an idea cannot be demoted back to a checkpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| actor | No | ||
| originator | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds details beyond annotations: preservation of links, notes, and provenance via 'kind=\'promotion\''. Annotations indicate destructiveHint=true, which is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a key note about one-way behavior. No unnecessary words; front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and outcome well but lacks parameter documentation. With output schema present, return values are covered, but missing input semantics reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of parameters like 'id', 'actor', or 'originator', leaving semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Promote a checkpoint to a durable idea' with a specific verb and resource. Distinguishes from siblings by explaining the context and one-way nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (load-bearing working-memory trace) and that promotion is one-way, providing clear context for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recognizeARead-onlyIdempotent
Inspect the actor table. Pass id for detail on one actor; omit to list all.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it as read-only and idempotent. Description adds the behavioral distinction between single record and full list, which is valuable context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Information is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately covers the tool's functionality for a simple single-parameter tool. Does not mention return format or pagination, but output schema likely addresses that. Slight gap in not specifying any limits on the list mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description fully compensates by explaining the id parameter's effect: passing it retrieves detail on one actor, omitting it lists all. This is clear and unambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool inspects the actor table, with a specific verb and resource. Distinguishes from siblings by naming 'actor table,' but does not explicitly contrast with tools like 'list' or 'get' that may also operate on actors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear instructions on how to use the id parameter (pass for detail, omit for list), but does not advise on when to prefer this tool over alternatives like 'search' or 'list' among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchARead-onlyIdempotent
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. query_mode (default 'auto') controls how query is interpreted: 'auto' tokenizes and quotes the query so hyphens, colons, asterisks and other FTS5 operators are treated as content (use this when searching for kebab-case identifiers like task_refs or branch names); 'raw' passes the query through unchanged for FTS5 phrase, NEAR, or column-qualified syntax and raises a loud error on syntax failure.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| scope | No | ||
| since | No | ||
| limit | No | ||
| include_archived | No | ||
| include_checkpoints | No | ||
| query_mode | No | auto |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds valuable context: it explains the ranking method, default exclusions (archived, checkpoints), query_mode behavior including error raising on syntax failure in 'raw' mode. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 150 words) and front-loaded with the core purpose. Each sentence adds essential information: search technology, return values, scope, exclusions, query_mode details. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, 0% schema coverage) and presence of an output schema, the description covers key behaviors (ranking, returns, exclusions, query modes). It omits details on sorting and precise parameter formats, but the output schema can supplement return information. Overall, it provides sufficient context for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, and it does significantly. It explains the purpose of include_archived, include_checkpoints, and query_mode, along with detailed behavior for 'auto' vs 'raw'. However, it does not detail the expected format of 'query' or 'since', leaving some ambiguity for those parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs full-text search on ideas with specific technology (FTS5 + bm25 ranking) and returns snippet, score, and id. It distinguishes from siblings like 'list' or 'get' by focusing on search. The verb+resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on parameter usage (e.g., scope optional, archived excluded by default, include_checkpoints) but does not explicitly contrast with sibling tools or state when not to use it. The guidance is implied through parameter descriptions but lacks direct alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: capture for new ideas, checkpoint for temporary traces, annotate for notes, promote for upgrading checkpoints, get/list/search/dump for retrieval, link for relationships, archive for soft deletion, and ping/recognize for admin. No two tools overlap in their core function.
Tool names are all lowercase single words, mostly verbs (capture, archive, promote, etc.) with a few nouns (list, search, related). The pattern is simple and predictable, though not strictly verb_noun. Slight inconsistency exists between 'get' (noun) and 'capture' (verb), but it's minor.
13 tools cover the full lifecycle of idea management: creation (capture, checkpoint), retrieval (get, list, search, dump, related, recognize), modification (annotate, promote, link), deletion (archive), and health (ping). The count is well-scoped for the domain.
The tool set covers creation, retrieval, linking, and soft archiving, but lacks a dedicated update tool for modifying an idea's core content. Annotations and promotions can indirectly update, but there's no way to edit the original content. This gap may cause agent failures when content needs correction.
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 Connectors
An MCP memory server. One memory your agents share — across models, devices and apps.
MCP server for building and testing AI agents with multi-model experimentation and insights.
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables users to transform AI conversations into a structured, searchable knowledge base by saving ideas, code snippets, bookmarks, and reminders. It supports persistent storage through Supabase or PostgreSQL and includes webhook integrations for automating workflows with external tools.
- AlicenseNot gradedqualityBmaintenanceAn MCP server that lets coding agents build and query a persistent knowledge graph of concepts, architecture, and decisions, enabling them to remember across sessions.340513MIT
- AlicenseAqualityDmaintenanceMCP server for long-term agent memory, providing persistent memory, searchable knowledge, and evolving identity for AI agents.53Apache 2.0
- FlicenseNot gradedqualityFmaintenanceA local-first, team-ready MCP server providing durable memory for LLM-based coding workflows with multiple storage backends and fast search.4
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/CobraChickenAI/ideahub_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server