A personal knowledge archive MCP server that provides tools to search, create, and manage notes, links, and documents with tag-based organization and AI integration via Model Context Protocol
Server has 5 tools with basic schemas and descriptions, but significant gaps limit production readiness. Tool names follow verb_noun convention (search_content, add_note, get_tags). Descriptions exist but are generic (avg ~80 chars, below 194-char baseline). Input schemas use Zod with type definitions, but parameter descriptions are minimal. Output schemas are not documented. Error handling is present but lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The ping tool is a deprecated pattern (removed in current MCP spec). Overall structure is functional but falls short of A/B-grade quality.
Create and save a new note, link, or document in Second Brain
Retrieve Second Brain content items filtered by a specific tag
Get all tags stored in Second Brain
Ping the Second Brain MCP server
Search user's Second Brain for notes, links, and documents matching a query
Output schemas not documented. LLMs cannot infer what fields search_content, add_note, or get_content_by_tag return, forcing them to guess downstream field names and risking broken tool chains.
Parameter descriptions are minimal or missing context. 'query' in search_content lacks guidance on format/scope. 'contentType' enum is documented but no hint on when to use each type. Descriptions should be 50-200 chars and explain WHAT, WHEN, and HOW.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). add_note is destructive (WRITE risk) but lacks annotation. LLMs cannot distinguish safe reads from state-modifying calls without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
ping tool is deprecated in MCP spec (removed 2026-07-28). Servers should not expose ping; protocol is stateless and does not require heartbeats. Remove this tool.
Error handling lacks recovery guidance. Code shows try-catch blocks but responses do not indicate whether errors are retryable, user-fixable, or fatal. E.g., if add_note fails due to duplicate title, should the agent retry with a new title or ask the user?