Open-Brain
Open Brain
Graph-structured MCP memory. 37.2% on LongMemEval baseline — a benchmark most memory systems don't publish.
A self-hostable memory server for MCP clients (Claude, ChatGPT, any assistant that speaks MCP). Thoughts flow in from Telegram, pipelines, or direct capture, and land in a Newman-IDF weighted entity graph — not a flat document store. An automated Dream cycle runs in the background: deduplicating near-duplicates, tracking theme drift, synthesizing insights across clusters, and archiving stale content. 17 MCP tools. PostgreSQL + pgvector. You own your data.
How It Works
flowchart LR
TG[Telegram Message] --> TGBot[telegram-bot\nEdge Function]
MCP[AI Client\nClaude/ChatGPT] --> MCPServer[open-brain-mcp\nEdge Function]
Pipeline[RSS/HF Papers/\nEmergent Mind] --> RunPipeline[run-pipeline\nEdge Function]
TGBot --> OR1[OpenRouter\nEmbedding + Metadata]
MCPServer --> OR2[OpenRouter\nEmbedding + Search]
RunPipeline --> OR3[OpenRouter\nTriage + Embed]
OR1 --> DB[(Postgres\n+ pgvector)]
OR2 --> DB
OR3 --> DB
MCPServer --> DB
TGBot --> TGReply[Telegram Reply\nwith Metadata]Capture Path
When you send a message to the Telegram bot, the telegram-bot Edge Function picks it up via webhook. It sends the message to OpenRouter in parallel for two things: generating a vector embedding (a numerical representation of meaning) and extracting metadata like topics, people mentioned, action items, theme, quality score, and named entities. The thought is checked for semantic duplicates, stored in your database with auto-linked connections to related thoughts, and the bot replies with a summary of what it captured.
Pipeline Path
The run-pipeline Edge Function automatically ingests ideas from RSS feeds (AI newsletters), Hugging Face daily papers, and Emergent Mind (trending arXiv papers). Each item is triaged for relevance, embedded, deduplicated, and stored. Runs on a schedule via GitHub Actions (Supabase deployment) or a built-in cron container (Docker deployment).
Retrieval Path
Any AI client connected via MCP (Model Context Protocol) can search your thoughts by meaning using semantic search, browse by filters (type, topic, person, time), get aggregate statistics, or request a weekly review of themes. The open-brain-mcp Edge Function handles these requests, authenticated with your personal access key.
Knowledge Graph
Every thought is automatically linked to related thoughts via vector similarity. Connections above 0.80 similarity are classified by an LLM into typed relationships (extends, contradicts, is-evidence-for, supersedes). Named entities (people, tools, projects, organizations) are extracted and resolved into a shared entity graph. Co-occurrence edges track which thoughts are retrieved together over time, strengthening connections based on actual usage patterns.
Storage
Everything lives in Postgres with pgvector for fast similarity search. Thoughts are stored with their embeddings (1536-dimensional vectors), metadata, typed connections, and entity references. You can deploy on Supabase (managed hosting) or self-host with Docker Compose.
Related MCP server: Cortex
Deployment Options
Choose how you want to run Open Brain:
Supabase (hosted) | Docker Compose (self-hosted) | |
Setup | Link project + run scripts |
|
Infrastructure | Managed by Supabase | Runs on your machine/server |
Scheduling | GitHub Actions | Built-in cron container |
Cost | Supabase free tier + OpenRouter | Just OpenRouter |
Guide |
Supabase Deployment
Prerequisites
Supabase account -- Supabase is a hosted Postgres database with built-in APIs, authentication, and Edge Functions (serverless code). Create a free account at supabase.com. Create a new project -- you will need the project URL (looks like
https://abcdef.supabase.co) and the service role key (a long string found under Settings > API).Supabase CLI -- The command-line tool for managing your Supabase project (applying database migrations, deploying functions, setting secrets).
npm install -g supabaseOpenRouter account -- OpenRouter routes requests to AI models. It is used here for generating embeddings (vector representations of your thoughts) and extracting metadata. Create an account at openrouter.ai and generate an API key from the dashboard.
Telegram bot (recommended) -- The primary way to capture thoughts on the go. Create a bot via @BotFather on Telegram and run the setup script (see below). If you only want MCP access, you can skip this.
Quick Start
1. Clone the repository
git clone https://github.com/YOUR_USERNAME/open_brain.git
cd open_brain2. Link your Supabase project
cd supabase
supabase link --project-ref YOUR_PROJECT_REF
cd ..Tip: Your project ref is the subdomain in your Supabase URL. If your URL is
https://abcdef.supabase.co, your project ref isabcdef.
3. Run bootstrap
./scripts/bootstrap.shBootstrap walks you through setting up your environment. It prompts for each secret (Supabase URL, service role key, OpenRouter API key, Telegram tokens, etc.), generates a cryptographic MCP access key automatically, and writes everything to .env.local. If you already have a .env.local, it will show your existing values and let you update specific ones.
4. Run deploy
./scripts/deploy.shDeploy applies the database schema (creates the thoughts table with vector search indexes), uploads your secrets to Supabase, and deploys all Edge Functions. It shows a step-by-step checklist as each operation completes. At the end, it prints your MCP connection URL and a ready-to-paste Claude Code command.
5. Run validate
./scripts/validate.shValidate runs 8 checks against your live deployment to confirm everything works: database access, RPC functions, Edge Function reachability, authentication, thought capture, semantic search, and thought listing. It prints a checklist with pass/fail for each check and a final summary.
Set up Telegram bot (optional)
Create a bot via @BotFather on Telegram, then run the setup script:
./scripts/setup-telegram.sh YOUR_BOT_TOKENThe script verifies your token, registers the webhook, sets up command autocomplete, and prints the env vars and secrets to configure. Follow the printed instructions to complete setup.
Connect Your AI Client
Once deployed, connect your AI client to start using Open Brain. You need two values:
MCP endpoint URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp(Supabase) orhttp://localhost:80/functions/v1/open-brain-mcp(Docker)MCP access key: The key generated during setup (stored in
.env.localor Docker.env)
Tip: The deploy script (Supabase) or start script (Docker) prints the exact connection command with your values filled in.
Claude Code (CLI -- recommended)
claude mcp add --transport http --header "x-brain-key: YOUR_MCP_KEY" open-brain https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcpThis registers Open Brain as an MCP server that Claude Code can use in any conversation. Replace YOUR_MCP_KEY and YOUR_REF with your actual values.
Claude Code (project .mcp.json)
Add this to a .mcp.json file in your project root to share the connection with your team:
{
"mcpServers": {
"open-brain": {
"type": "http",
"url": "https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcp",
"headers": {
"x-brain-key": "${MCP_ACCESS_KEY}"
}
}
}
}Note: The
${MCP_ACCESS_KEY}syntax uses environment variable expansion so your key stays out of version control. Set theMCP_ACCESS_KEYenvironment variable on each machine that uses this config.
Claude Desktop
Claude Desktop does not support remote MCP servers via configuration files. Instead:
Open Claude Desktop > Settings > Connectors
Click Add a new connector
Enter the MCP endpoint URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcpConfigure the
x-brain-keyauthentication header with your MCP access key
ChatGPT (Pro/Team/Enterprise/Edu)
Go to Settings > Connectors > Advanced > Developer Mode
Add the MCP server URL:
https://YOUR_REF.supabase.co/functions/v1/open-brain-mcp/mcpConfigure the
x-brain-keyauthentication header with your MCP access key
Usage Examples
Telegram Capture
Send any message to your bot and Open Brain automatically processes it:
You: Just had a great meeting with Sarah about the Q3 product roadmap.
She wants to prioritize the mobile app redesign.
Bot: Captured!
Type: meeting_note
Theme: personal
Topics: q3-roadmap, mobile-app-redesign
Quality: 0.7
People: Sarah
Action items: Prioritize mobile app redesign
Why: Records a product strategy decision with clear ownership
Related: "Product planning session notes..." (82% similar)Every message is embedded as a vector, enriched with extracted metadata, checked for duplicates, auto-linked to related thoughts, and entities are resolved into a knowledge graph.
Semantic Search
Ask any connected AI client to search your brain:
You: Search my brain for anything about product roadmap discussions
Claude: I found 3 relevant thoughts:
1. (0.89 similarity) Meeting with Sarah about Q3 product roadmap...
2. (0.82 similarity) Product planning session notes...
3. (0.76 similarity) Quarterly goals discussion...Semantic search finds thoughts by meaning -- even if you used different words. Asking about "product planning" will find thoughts about "roadmap discussions" because the meanings are similar.
Weekly Review
Get an AI-generated summary of your recent thinking:
You: Give me a weekly review of my recent thoughts
Claude: Here's your weekly review:
Themes: Product planning, team meetings, technical architecture
Open loops: Mobile redesign decision pending, API migration timeline
Connections: Sarah mentioned in 3 meetings this week, all about mobileThe weekly review analyzes the past 7 days of thoughts and synthesizes themes, open loops, connections between ideas, and gaps in your thinking.
Available Tools
Tool | Description |
| Semantic search with optional graph expansion (1-hop traversal) |
| Browse thoughts filtered by type, topic, person, theme, quality, time |
| Aggregate statistics: counts, type/theme breakdown, top topics/people |
| Save a new thought from any AI client (with auto-embedding) |
| Graph traversal from a thought (typed links: extends, contradicts, etc.) |
| Browse extracted entities (people, tools, projects, orgs) by frequency |
| AI-generated summary of themes, open loops, and next steps |
| Graph analysis: hubs, density, sources, co-occurrence, themes |
| Duplicate candidates with similarity zone histogram |
| Recompute all salience scores |
| Rewrite content (re-embeds, re-extracts metadata) |
| Permanent delete (cascades connections) |
| Resurface forgotten high-quality thoughts |
| Pipeline monitoring: health status, run history, merge audit |
| Review and act on stale thought candidates |
| Instructions for importing memories from other platforms |
See docs/cookbook.md for detailed usage patterns, tool compositions, and non-obvious behaviors.
Skills (Claude Code Workflows)
Open Brain includes Claude Code skills -- structured multi-phase workflows that compose the MCP tools above into higher-level analysis. Skills are auto-discovered from .claude/skills/ and invoked as slash commands.
Skill | What it does |
| Incremental pattern discovery across recent thoughts. Builds on previous reports (EVOLVED/NEW/STALE classification), dispatches parallel research agents, correlates with project priorities. |
| Pipeline and data health report. 9 parallel MCP calls, rubric-scored (GREEN/YELLOW/RED), cross-run memory for tracking findings over time, 6 cross-metric pattern detectors. |
| Knowledge graph health report. 12 parallel MCP calls covering theme attention, graph density, hub health, co-occurrence alignment, dedup pressure, synthesis output, and entity landscape. |
See docs/skills/README.md for detailed descriptions and usage.
Automated Maintenance
Open Brain runs background maintenance to keep the knowledge graph healthy. These jobs run automatically -- via GitHub Actions (Supabase deployment) or the built-in cron container (Docker deployment).
Job | Frequency | Purpose |
RSS/HF Papers/Emergent Mind ingestion | 2x daily | Ingest ideas from configured sources |
Pipeline monitoring | 2x daily | Health checks with Telegram alerting on failures |
Dream dedup | 2x daily | Merge near-duplicate thoughts (>0.92 similarity auto-merged, 0.85-0.92 LLM-confirmed) |
Graph analysis cache | Daily | Pre-compute hub, density, and co-occurrence analysis |
Dream themes | Weekly | Track theme velocity, lifecycle transitions (emerging/active/declining), centroid drift |
Dream decay | Weekly | Archive stale thoughts via tiered scoring + LLM confirmation |
Dream synthesis | Weekly | Generate cross-cutting insights from thought clusters |
Co-occurrence decay | Weekly | Decay unused co-occurrence edges |
GitHub Actions workflow files are included in docs/workflows/ as reference for customizing schedules.
Project Structure
open-brain-server/
supabase/
migrations/ # Database migrations (applied with supabase db push)
functions/
_shared/ # Shared modules (supabase-client, openrouter, types, errors, auto-link, entities, dream-*)
telegram-bot/ # Telegram capture (primary capture path)
open-brain-mcp/ # MCP server (17 tools)
tools/ # Individual tool implementations
run-pipeline/ # Automated RSS/HF Papers/Emergent Mind ingestion
monitor-pipeline/ # Pipeline health monitoring with Telegram alerts
refresh-graph-analysis/ # Graph analysis cache computation
docker/ # Docker Compose self-hosting (6 services)
pipeline/ # Python-based local pipeline (Reddit, RSS, briefing)
scripts/ # Setup and deployment automation
tests/ # Integration tests
docs/
cookbook.md # MCP tool usage patterns and compositions
skills/ # Skill documentation
workflows/ # GitHub Actions reference (scheduling)
writing-a-source.md # Guide for adding pipeline sources
.claude/
skills/ # Claude Code skills (auto-discovered)
discover/ # Incremental pattern discovery
pulse/ # Pipeline health report
brain-health/ # Knowledge graph health reportLicense
MIT
Available Tools
17 toolsanalyzeC
Graph analysis: hubs, density, sources, co_occurrence, themes, synthesis_candidates.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions analysis types but doesn't describe what the tool actually does behaviorally - whether it performs computation, returns results immediately, requires specific data formats, or has any side effects. The description is essentially a list of analysis categories without explaining the tool's operational behavior.
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 extremely concise - just 8 words listing analysis categories. It's front-loaded with 'Graph analysis' followed by specific types. While efficient, it may be overly terse given the complexity implied by the analysis categories. Every word serves a purpose in describing what the tool analyzes.
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 complex-sounding analysis tool with no annotations and no output schema, the description is inadequate. It lists what gets analyzed but doesn't explain the tool's function, behavior, or results. Given the analytical nature and lack of structured documentation about outputs or side effects, the description should provide more context about what the tool actually does and returns.
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?
The tool has 0 parameters with 100% schema description coverage, so the baseline is 4. The description doesn't need to compensate for undocumented parameters, and the schema fully documents the input structure (though it's just 'additionalProperties: true'). No parameter information is needed in the description for this zero-parameter tool.
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 lists specific analysis types (hubs, density, sources, etc.) which gives some indication of what the tool does, but it doesn't specify what resource or data it analyzes. The phrase 'Graph analysis' is somewhat vague without context about what kind of graph or data structure is being analyzed. It distinguishes from siblings by focusing on analysis rather than CRUD operations, but lacks a clear verb+resource combination.
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?
No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites, appropriate contexts, or when not to use it. While the analysis focus differentiates it from CRUD siblings like 'delete_thought' or 'update_thought', there's no explicit comparison to other analytical tools like 'thought_stats' or 'serendipity_digest'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_thoughtB
Store a thought with auto-embedding, auto-linking, entity extraction, and semantic dedup merge.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions features like auto-embedding and semantic dedup merge, but lacks details on permissions, side effects, error handling, or response format. This is inadequate for a tool with complex functionality, leaving significant gaps in understanding its behavior.
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 a single, efficient sentence that front-loads the core purpose ('Store a thought') and lists key features without any wasted words. It is appropriately sized and structured for the tool's 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?
Given the tool's complexity (implied by features like auto-embedding and semantic dedup merge), no annotations, and no output schema, the description is insufficient. It lacks details on behavioral traits, output format, and usage context, making it incomplete for effective agent operation.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the tool's features beyond the schema, such as auto-embedding and semantic dedup merge, which compensates well for the lack of 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 verb 'store' and resource 'thought', specifying it performs storage with auto-embedding, auto-linking, entity extraction, and semantic dedup merge. However, it doesn't explicitly differentiate from sibling tools like 'update_thought' or 'search_thoughts', which prevents a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or exclusions, leaving the agent to infer usage from the purpose alone without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dedup_reviewC
Duplicate candidate pairs with similarity zone histogram.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. However, it fails to describe any behavioral traits such as whether it's a read-only or mutating operation, what it returns, performance characteristics, or error conditions. The phrase 'duplicate candidate pairs' implies analysis but doesn't clarify the tool's behavior or output.
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 with a single phrase, but it's not front-loaded with clear purpose. It's under-specified rather than efficiently informative, as it lacks essential details about the tool's function. While brief, it doesn't earn its place by providing actionable 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 the complexity implied by terms like 'similarity zone histogram' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool does, how it behaves, or what it returns, leaving significant gaps for an agent to understand and use the tool effectively in context with sibling tools.
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?
The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion about inputs. A baseline score of 4 is appropriate as it avoids misleading parameter information.
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 'Duplicate candidate pairs with similarity zone histogram' is vague and lacks a clear verb-action statement. It mentions 'duplicate candidate pairs' and 'similarity zone histogram' but doesn't specify what the tool actually does with them (e.g., identifies, analyzes, filters, or visualizes). It restates the tool name 'dedup_review' in different words rather than explaining its function.
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?
There is no guidance on when to use this tool versus alternatives. The description doesn't mention any context, prerequisites, or exclusions, and it doesn't reference sibling tools like 'review_stale' or 'weekly_review' that might be related. This leaves the agent with no information to make an informed choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deep_searchA
Multi-hop retrieval with graph traversal + LLM gap-filling sub-queries. Best for bridging topics and multi-session synthesis.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'graph traversal' and 'LLM gap-filling sub-queries,' which hint at complex processing and potential latency or resource usage, but doesn't detail specific behaviors like error handling, rate limits, or output format. For a tool with no annotations, this is inadequate.
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 and front-loaded, consisting of two sentences that efficiently convey the tool's purpose and usage. Every sentence adds value without redundancy, making it easy to parse quickly.
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 implied by 'multi-hop retrieval' and 'graph traversal,' and with no annotations or output schema, the description is incomplete. It lacks details on what the tool returns, how it handles errors, or any performance considerations. For a potentially complex tool, this leaves significant gaps in understanding.
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?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't mention any parameters, which is appropriate here. Since there are no parameters, the baseline is 4, as the description doesn't need to compensate for missing param info.
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 'multi-hop retrieval with graph traversal + LLM gap-filling sub-queries,' which specifies the verb (retrieval with traversal and gap-filling) and resource (implicitly knowledge/data). It distinguishes from siblings by mentioning 'bridging topics and multi-session synthesis,' though not explicitly naming alternatives. However, it lacks a direct resource reference, making it slightly vague.
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 on when to use this tool: 'Best for bridging topics and multi-session synthesis.' This implies it's suited for complex queries requiring connections across topics or sessions. It doesn't explicitly state when not to use it or name alternative tools, but the guidance is sufficient for basic differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_thoughtB
Permanently delete a thought (cascades connections).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds value by specifying 'permanently' and 'cascades connections,' indicating irreversible deletion and side effects. However, it lacks details on permissions, error handling, or confirmation requirements, which are critical for a destructive operation.
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 extremely concise—a single sentence that efficiently conveys the core action and key behavioral trait ('cascades connections'). It's front-loaded with the main purpose and wastes no words, making it easy for an agent to parse quickly.
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 destructive nature and lack of annotations or output schema, the description is minimally adequate. It covers the basic action and a side effect but misses critical context like permissions, error messages, or what 'cascades' entails. For a high-stakes deletion tool, more completeness would be beneficial.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description appropriately doesn't discuss parameters, focusing instead on the tool's behavior. A baseline of 4 is applied since no parameters exist, and the description doesn't add unnecessary details.
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 action ('permanently delete') and resource ('a thought'), which is specific and unambiguous. However, it doesn't explicitly differentiate this from sibling tools like 'update_thought' or other deletion-related operations that might exist in the broader context, preventing a perfect score.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, warnings about the destructive nature beyond 'permanently,' or suggest other tools for related tasks (e.g., 'update_thought' for modifications). This leaves the agent with minimal context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_connectionsC
Graph traversal from a thought via typed links (extends, contradicts, is-evidence-for, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'graph traversal' which suggests a read operation, but doesn't disclose behavioral traits like whether it's paginated, rate-limited, requires authentication, or what happens with invalid inputs. The phrase 'via typed links' hints at filtering by link types, but doesn't explain how this works in practice.
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 a single, efficient sentence that conveys the core functionality without waste. It's front-loaded with the main action ('graph traversal') and includes examples of link types. However, it could be slightly more structured by explicitly stating the resource or output.
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 implied by 'graph traversal' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the traversal returns (e.g., nodes, edges, metadata), how results are formatted, or any limitations. For a tool with no structured documentation beyond the description, this leaves significant gaps for an AI 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?
The tool has 0 parameters with 100% schema description coverage, so the schema fully documents the lack of inputs. The description adds context by implying the tool operates on a 'thought' and uses 'typed links', which provides semantic meaning beyond the empty schema. However, it doesn't clarify how the starting thought is specified or if defaults apply.
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 states the tool performs 'graph traversal from a thought via typed links' which gives a general purpose, but it's vague about what specific resources or data structures are involved. It mentions link types like 'extends, contradicts, is-evidence-for' but doesn't specify what 'thought' refers to or what the traversal actually returns. It doesn't clearly distinguish from siblings like 'search_thoughts' or 'list_thoughts'.
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?
No explicit guidance on when to use this tool versus alternatives. The description implies it's for exploring relationships between thoughts via links, but doesn't specify scenarios where this is preferred over other tools like 'search_thoughts' or 'list_thoughts'. No mention of prerequisites, constraints, or when-not-to-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_entitiesB
Browse extracted entities (person, project, tool, organization) by frequency.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'browse by frequency', implying a read-only operation with sorting or filtering, but lacks details on permissions, rate limits, pagination, or what 'browse' entails (e.g., list view, summary). For a tool with zero annotation coverage, this is insufficient.
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 a single, efficient sentence that front-loads the key action ('browse') and resource ('extracted entities'), with no wasted words. It is appropriately sized for the tool's simplicity.
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 low complexity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks context on usage, behavior, or output, which could be improved for better agent guidance. It meets the minimum viable threshold.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description does not add parameter details, which is appropriate, but it implies the tool operates without inputs, aligning with the schema. A baseline of 4 is given as it meets expectations for a zero-parameter tool.
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 with a specific verb ('browse') and resource ('extracted entities'), and lists the entity types (person, project, tool, organization) and the browsing criterion (frequency). However, it does not explicitly differentiate this tool from sibling tools like 'list_thoughts' or 'search_thoughts', which might also involve listing or browsing data.
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 no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, exclusions, or comparisons to sibling tools such as 'list_thoughts' or 'search_thoughts', leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_thoughtsB
Browse thoughts with salience-ordered filters (type, theme, topic, person, activity, days, min_quality).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'salience-ordered filters' but doesn't explain what 'salience' means, how ordering works, or the tool's operational traits (e.g., pagination, rate limits, or mutation effects). For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, efficient sentence that front-loads the core functionality ('Browse thoughts with salience-ordered filters') and enumerates filter types without unnecessary words. Every part of the sentence contributes directly to understanding the tool's scope.
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 complexity (filtering with multiple criteria), no annotations, and no output schema, the description is moderately complete. It outlines the filtering capability but lacks details on behavior, output format, and sibling differentiation. For a tool with zero structured support, it provides a basic overview but misses deeper operational context.
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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description lists filter types ('type, theme, topic, person, activity, days, min_quality'), which adds useful context beyond the empty schema. However, it doesn't detail how these filters are applied or their formats, slightly limiting utility.
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: 'Browse thoughts with salience-ordered filters.' It specifies the verb ('browse') and resource ('thoughts'), and mentions the filtering capability. However, it doesn't explicitly differentiate from sibling tools like 'search_thoughts' or 'list_entities,' which likely have overlapping functionality.
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 no guidance on when to use this tool versus alternatives. It lists filter parameters but doesn't explain when this browsing approach is preferred over other tools like 'search_thoughts' or 'deep_search.' There's no mention of prerequisites, exclusions, or comparative context with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
migration_guideB
Import runbook for external platforms (Notion, Obsidian, Readwise, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool imports data but doesn't describe what happens during import (e.g., whether it overwrites existing data, requires authentication, handles errors, or has rate limits). For a tool with zero annotation coverage and an implied mutation operation, this is a significant gap in transparency.
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 extremely concise—a single sentence that directly states the tool's purpose with no fluff. It's front-loaded with the core action and includes examples of external platforms for clarity. Every word earns its place, making it efficient and easy to parse.
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 implied complexity (importing from external platforms likely involves authentication, data transformation, and potential side effects), the description is incomplete. With no annotations and no output schema, it doesn't explain what the tool returns, how errors are handled, or any behavioral nuances. For a tool with zero structured coverage, this minimal description is inadequate.
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?
The tool has zero parameters, and schema description coverage is 100%, so there are no parameters to document. The description appropriately doesn't waste space on parameter details. It earns a 4 because it correctly focuses on the tool's purpose without unnecessary parameter explanations.
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 as importing runbooks from external platforms, specifying both the action (import) and the resource (runbooks from Notion, Obsidian, Readwise, etc.). It distinguishes itself from siblings by focusing on external data import rather than internal operations like search, update, or analysis. However, it doesn't explicitly mention what happens after import or how it integrates with the system.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing credentials for external platforms), when not to use it, or how it relates to sibling tools like 'capture_thought' or 'update_thought'. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipelineC
Pipeline monitoring: health, runs, merges.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'monitoring' which implies a read-only operation, but doesn't disclose behavioral traits such as whether it's safe, if it requires authentication, rate limits, or what the output looks like. The description adds minimal context beyond the name, leaving key behavioral aspects unspecified.
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 very concise with just three words and a colon, making it front-loaded and efficient. However, it's arguably too brief—it could benefit from slightly more detail to clarify purpose without losing conciseness. Every word earns its place, but it borders on under-specification.
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 implied by 'monitoring' (which could involve multiple aspects like health, runs, merges), no annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns, how to interpret results, or any operational constraints. For a monitoring tool with potential richness, this leaves significant gaps for an 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?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The baseline for 0 parameters is 4, as the description doesn't need to compensate for any gaps. It appropriately avoids redundant parameter information.
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 'Pipeline monitoring: health, runs, merges' states a general purpose (monitoring) and hints at scope (health, runs, merges), but it's vague—it doesn't specify what resource is being monitored (e.g., data pipelines, CI/CD pipelines) or what action is performed (e.g., list, check, report). It distinguishes from siblings like 'analyze' or 'search_thoughts' by implying monitoring, but lacks a specific verb+resource combination.
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 no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for use, or exclusions. With siblings like 'analyze', 'deep_search', and 'thought_stats' that might overlap in data inspection, there's no explicit or implied differentiation to help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_salienceB
Recompute salience scores (recency × access × links × merges × source).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the computation formula but doesn't mention behavioral traits: whether this is a read-only or mutating operation (likely mutating given 'Recompute'), performance impact (e.g., resource-intensive), side effects (e.g., updates existing scores), or error conditions. For a tool with zero annotation coverage, this is a significant gap.
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 a single, efficient sentence that front-loads the key action ('Recompute salience scores') and provides essential detail (the formula) without waste. Every word earns its place, making it highly concise and well-structured for quick understanding.
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 has 0 parameters and no output schema, the description is minimally complete: it states the purpose and formula. However, for a likely mutating operation with no annotations, it should disclose more behavioral context (e.g., what gets updated, performance). The formula detail helps, but gaps in usage and transparency reduce 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?
The tool has 0 parameters, and schema description coverage is 100% (though schema allows any properties). The description doesn't need to explain parameters, and it adds value by specifying the salience formula components (recency, access, links, merges, source), which clarifies what 'salience scores' entail beyond the tool name. This compensates for the lack of parameter documentation.
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 action ('Recompute') and the target ('salience scores'), with a specific formula provided (recency × access × links × merges × source). It distinguishes from siblings like 'thought_stats' or 'review_stale' by focusing on recomputation rather than retrieval or review. However, it doesn't explicitly differentiate from all siblings (e.g., 'pipeline' might also involve computation).
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?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., when salience scores become stale), exclusions (e.g., not for real-time updates), or related tools like 'review_stale' or 'thought_stats' that might overlap. The description implies usage for recomputation but lacks contextual boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
review_staleC
Review flagged stale thoughts (list/approve/reject).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool can 'list/approve/reject', it doesn't explain what 'flagged stale thoughts' are, how the review process works, whether changes are permanent, what permissions are required, or what the expected outcomes are. For a tool with mutation capabilities (approve/reject), this lack of behavioral detail is a significant gap.
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 extremely concise (just 5 words), but this brevity comes at the cost of clarity. While there's no wasted text, the description is under-specified rather than efficiently informative. It could benefit from additional context to make it genuinely helpful rather than just brief.
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 apparent complexity (involving review operations with potential mutations), the lack of annotations, and no output schema, the description is insufficient. It doesn't explain what 'flagged stale thoughts' are, how they're identified, what the review interface looks like, or what happens after approval/rejection. For a tool that presumably modifies data state, this level of documentation is inadequate.
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?
The tool has 0 parameters with 100% schema description coverage, so the schema already fully documents the parameter situation. The description appropriately doesn't discuss parameters since none exist. This meets the baseline expectation for tools with no 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 states the tool's purpose as 'Review flagged stale thoughts' with actions 'list/approve/reject', which provides a general understanding of what it does. However, it doesn't clearly distinguish this tool from sibling tools like 'dedup_review' or 'weekly_review' that might also involve review operations. The description is somewhat vague about the specific scope and mechanism of the review process.
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 no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, context for 'flagged stale thoughts', or how it differs from other review-related tools like 'dedup_review'. There's no indication of when this tool is appropriate or when other tools should be used instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_thoughtsB
Hybrid search (BM25 + vector with RRF). Supports source filter, 1-hop graph expansion, quality gating.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the search methodology (BM25 + vector with RRF) and some capabilities (source filter, graph expansion, quality gating), it doesn't describe what the tool returns, whether it's paginated, what authentication is required, or any rate limits. For a search tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
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 extremely concise - a single sentence with three distinct clauses that each add meaningful information. It's front-loaded with the core purpose (hybrid search) followed by supporting capabilities. There's zero wasted language or redundancy.
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 implied by 'hybrid search' and multiple capabilities, and with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the search returns, how results are structured, or provide any behavioral context beyond the search methodology. For a potentially complex search operation, this leaves too many questions unanswered.
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?
The input schema has 0 parameters with 100% description coverage, so the schema already documents that no parameters are required. The description adds value by explaining the search methodology and capabilities, which helps the agent understand what this tool does despite having no parameters. This exceeds the baseline of 3 for high schema coverage.
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 'Hybrid search (BM25 + vector with RRF)' on 'thoughts', which is a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'deep_search' or 'list_thoughts', leaving some ambiguity about when to choose this specific search method over alternatives.
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 mentions 'Supports source filter, 1-hop graph expansion, quality gating' which implies some usage contexts, but provides no explicit guidance on when to use this tool versus alternatives like 'deep_search' or 'list_thoughts'. There are no when-to-use or when-not-to-use statements, and no named alternatives are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
serendipity_digestC
Resurface forgotten high-quality thoughts across rediscovery/orphan/underrepresented/echo slots.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions 'resurface' which suggests a read operation, but doesn't disclose behavioral traits such as whether it modifies data, requires authentication, has rate limits, or what the output looks like. The description adds minimal context beyond the basic action, leaving key operational details unclear.
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 a single, compact sentence that directly states the tool's purpose without fluff. It's front-loaded with the main action ('Resurface forgotten high-quality thoughts') and uses specific terms efficiently. However, the phrase 'across rediscovery/orphan/underrepresented/echo slots' is somewhat jargon-heavy and could be clearer.
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 implied by terms like 'rediscovery/orphan/underrepresented/echo slots', no annotations, and no output schema, the description is incomplete. It doesn't explain what these 'slots' are, how the tool operates, or what results to expect. For a tool with no structured support and potentially nuanced behavior, more detail is needed to guide effective 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?
The tool has 0 parameters, and schema description coverage is 100%, so there's no need for parameter details in the description. The description appropriately doesn't discuss parameters, which is efficient. Baseline is 4 for zero parameters, as it avoids unnecessary information.
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 states the tool 'resurface forgotten high-quality thoughts' which gives a general purpose, but it's vague about the mechanism ('across rediscovery/orphan/underrepresented/echo slots') and doesn't clearly distinguish it from sibling tools like 'review_stale' or 'weekly_review' that might also resurface content. It specifies a verb ('resurface') and resource ('thoughts') but lacks specificity about what makes this tool unique.
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?
No explicit guidance is provided on when to use this tool versus alternatives. The description mentions 'rediscovery/orphan/underrepresented/echo slots' which implies some context, but it doesn't state when this tool is preferred over siblings like 'review_stale' or 'deep_search'. There's no mention of prerequisites, exclusions, or comparative use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thought_statsC
Aggregate counts with type/theme breakdown, top topics, people, and activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions aggregation and breakdowns but doesn't specify whether this is a read-only operation, how it handles large datasets, if there are rate limits, or what the output format looks like. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
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 a single, efficient sentence that lists key features (aggregate counts, breakdowns, top items). It's front-loaded with the main purpose and avoids unnecessary details. However, it could be slightly more structured by explicitly naming the resource (e.g., 'thoughts') for clarity.
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 implied by aggregation and breakdowns, the lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the aggregated results look like, how 'top' items are determined, or any limitations. For a tool that likely returns structured data, more context is needed to use it 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?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't mention any parameters, which is appropriate here since there are none to explain. This aligns with the baseline expectation for a zero-parameter tool.
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 states the tool aggregates counts with breakdowns by type/theme, top topics, people, and activity, which gives a general idea of its function. However, it's somewhat vague about the specific resource being aggregated (presumably 'thoughts' based on the name and sibling tools) and doesn't clearly distinguish it from siblings like 'analyze' or 'search_thoughts' that might also provide insights.
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 no guidance on when to use this tool versus alternatives. With siblings like 'analyze', 'deep_search', and 'search_thoughts' that might offer overlapping analytical functions, there's no indication of when this aggregation tool is preferred or what specific scenarios it's designed for.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_thoughtB
Rewrite a thought's content (re-embeds, re-extracts metadata).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 're-embeds, re-extracts metadata', hinting at side effects, but doesn't clarify permissions needed, whether the rewrite is destructive or reversible, rate limits, or error conditions. For a mutation tool with zero annotation coverage, this is insufficient.
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 extremely concise—a single sentence that directly states the tool's action and secondary effects. It's front-loaded with the core purpose and wastes no words, making it efficient for quick understanding.
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 of a mutation tool ('Rewrite') with no annotations, no output schema, and 0 parameters, the description is incomplete. It lacks details on how the tool behaves, what inputs it expects (despite 0 params), what it returns, or error handling. This leaves significant gaps for an agent to use it 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?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters to explain, this is acceptable. It implies the tool operates on a thought's content, but without specifying how that content is identified or provided.
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 verb ('Rewrite') and resource ('a thought's content'), making the purpose understandable. It also mentions secondary effects ('re-embeds, re-extracts metadata'), which adds specificity. However, it doesn't explicitly differentiate this tool from siblings like 'refresh_salience' or 'review_stale', which might have overlapping functionality, preventing a perfect score.
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 no guidance on when to use this tool versus alternatives. With siblings like 'refresh_salience' and 'review_stale' that might involve updating or processing thoughts, there's no indication of prerequisites, ideal scenarios, or exclusions. This leaves the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
weekly_reviewC
LLM synthesis of recent themes, open loops, and suggested next steps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'LLM synthesis' which implies AI processing, but doesn't describe what the tool actually does operationally—such as how it gathers data, what 'recent' means, whether it's read-only or has side effects, or what the output format is. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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 a single, concise sentence that efficiently states the tool's function. It's front-loaded with the core purpose and avoids unnecessary words. However, it could be slightly more structured by explicitly mentioning the lack of parameters or output details, but overall it's appropriately sized.
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 implied by 'LLM synthesis' and the lack of annotations and output schema, the description is incomplete. It doesn't explain what data sources are used, how 'recent' is defined, what 'open loops' refers to, or what the output looks like. For a tool that likely processes thought-related data (based on sibling tools), more context is needed to guide effective 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?
The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details beyond the schema, but since there are no parameters, this is acceptable. The baseline for 0 parameters is 4, as the description doesn't need to compensate for any schema 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 states the tool performs 'LLM synthesis of recent themes, open loops, and suggested next steps,' which gives a general purpose but lacks specificity about what resources or data it operates on. It doesn't clearly distinguish from siblings like 'review_stale' or 'serendipity_digest' that might involve similar review/synthesis functions. The purpose is understandable but vague regarding scope and inputs.
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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, frequency, or context for weekly reviews, nor does it differentiate from sibling tools like 'review_stale' or 'dedup_review' that might handle similar review tasks. Without any usage context, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
17 tool updates
v1.0.0- First observed
analyze - First observed
capture_thought - First observed
dedup_review - First observed
deep_search - First observed
delete_thought - First observed
get_connections - First observed
list_entities - First observed
list_thoughts - First observed
migration_guide - First observed
pipeline - First observed
refresh_salience - First observed
review_stale - First observed
search_thoughts - First observed
serendipity_digest - First observed
thought_stats - First observed
update_thought - First observed
weekly_review
TDQS
Most tools have distinct purposes, though some overlap exists. For example, 'deep_search' and 'search_thoughts' both handle search but with different approaches (multi-hop vs. hybrid), which could cause confusion. However, descriptions clarify their specific use cases, and other tools like 'capture_thought' and 'delete_thought' are clearly differentiated.
Naming conventions are mixed, with some tools using verb_noun patterns (e.g., 'capture_thought', 'delete_thought') and others using noun-only or compound terms (e.g., 'analyze', 'deep_search', 'serendipity_digest'). This inconsistency reduces predictability, but the names remain generally readable and descriptive of their functions.
With 17 tools, the count is slightly high but reasonable for a knowledge management system covering analysis, storage, retrieval, and maintenance. It avoids being overwhelming (e.g., not 25+), and each tool appears to serve a specific role in the domain, though some consolidation might improve focus.
The tool set provides comprehensive coverage for a thought management system, including CRUD operations (capture, update, delete), retrieval (search, list), analysis (analyze, stats), maintenance (refresh, review), and synthesis (weekly_review). There are no obvious gaps; tools support the full lifecycle from input to insights.
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
Personal knowledge graph as an AI memory layer over MCP - read, save, and link your memories.
Self-hosted AI-native knowledge workspace with hybrid search, GraphRAG, and MCP.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-native productivity backend that gives your AI assistant persistent memory, pattern awareness, and computed intelligence about your work. 14 MCP tools for task management, daily planning, weekly review, and personal context.MIT
- AlicenseNot gradedqualityBmaintenanceObsidian-backed knowledge graph with semantic search, entity extraction, and cross-session memory. 11 MCP tools. Works with Claude Code, Cursor, Windsurf, and any MCP-compatible editor.761MIT
- FlicenseNot gradedqualityDmaintenanceBuilds a persistent knowledge graph from notes and conversations, enabling semantic search, entity exploration, and GTD task management from any MCP-compatible AI assistant.3-
- AlicenseNot gradedqualityDmaintenanceAuto-extracts entities and relationships from natural conversations to build a personal knowledge graph. Provides MCP tools for storing and querying people, organizations, topics, and interactions.472MIT
Appeared in Searches
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/Bobby-cell-commits/open-brain-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server