Connects Claude Code to a Brain API for reading and writing persistent knowledge across conversations and devices. Provides tools to save, search, list, update, and delete knowledge entries with support for tagging, project filtering, and entry types.
Brain MCP has clear naming (verb_noun pattern) and complete input schemas with proper types. Descriptions are present and actionable (avg 150 chars). However, output schemas are entirely undocumented, LLMs cannot predict response structure. Parameter descriptions lack detail on constraints, formats, and dependencies. Error handling is minimal (generic catch-all). No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Missing guidance on when to use each tool vs alternatives.
Delete a brain entry by ID.
List entries in the brain with optional filters. Returns recent entries ordered by last updated.
Save a piece of knowledge to the brain. Use this to store notes, decisions, code snippets, project context, preferences, or references that should persist across conversations and devices.
Search the brain for relevant knowledge using keyword matching. Use this before starting work to check if there is relevant context stored.
Update an existing brain entry by ID.
No output schemas documented. LLMs cannot predict response structure (fields, types, pagination). All tools return raw JSON.stringify() with no shape guidance.
Missing tool annotations. brain_delete is destructive and brain_search is read-only, but no destructiveHint or readOnlyHint declared. Agents cannot reason about side effects.
Parameter descriptions lack actionable constraints. 'limit' has no min/max (default 10 for search, 50 for list, inconsistent). 'type' enum not documented in brain_update. 'tags' array format unclear.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Error handling is generic. Catch-all returns 'Error: {message}' with no recovery guidance. No distinction between retryable (network), user-fixable (invalid ID), or fatal errors.
brain_update and brain_delete require UUID but no guidance on how to obtain one. brain_list returns entries but unclear if 'id' field is present in response.