Private MCP server infrastructure & backend - a personal knowledge management system with thought capture, semantic search, knowledge graph, and enrichment via AWS Bedrock
PrivateMCP defines 13 tools with reasonable naming (verb_noun pattern: search_thoughts, browse_recent, capture_thought, kg_query, kg_add, etc.). All tools have descriptions (avg ~100 chars, within baseline 34-392). Input schemas are present with type declarations and parameter descriptions. However, output schemas are NOT documented, critical gap for LLM planning. Several tools lack actionable error guidance. Parameter descriptions are adequate but some lack format/constraint details (e.g., 'since' accepts natural language but no examples of valid formats). No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinction. Composition is sound, tools are single-responsibility and chainable (e.g., search_thoughts → capture_thought). Security: no secrets in params (good), but no audit logging visible in tool definitions.
List recent thoughts, optionally filtered by type, topic, or project.
Save a thought to your brain. It gets embedded, classified, and stored automatically.
Generate and post today's daily summary to Slack. Returns the summary text.
Deep dive into a person: all thoughts mentioning them, their relationships, timeline, and projects they're involved in.
Deep dive into a topic: all thoughts tagged with it, related entities, timeline, and co-occurrence with other topics.
Find what connects two projects — shared topics, shared people, and co-occurrence patterns.
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., what does search_thoughts return? Does it include thought_id for capture_thought chaining?). Critical for multi-step agent workflows.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked READ_ONLY or WRITE in metadata, but MCP protocol annotations are absent. Agents cannot infer safety/retry semantics from the tool definition alone.
Parameter 'since' in search_thoughts accepts natural language (today, yesterday, N days ago, YYYY-MM-DD) but description lacks format examples or validation rules. LLMs may pass invalid formats.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | <=2025-11-25 | v2 |
Add a relationship fact. Auto-creates entities if they don't exist. Validates predicate against active vocabulary.
Mark a relationship as no longer true. Sets the end date without deleting — history is preserved.
View and manage the relationship vocabulary. List active predicates, add new ones, or remove existing ones.
Get all relationships for an entity. Returns outgoing and incoming edges with temporal validity.
Chronological story of an entity — all facts involving it, ordered by time.
Search your brain by meaning. Returns thoughts semantically similar to your query.
Get an overview of your brain: total thoughts, breakdown by type, top topics, date range.
No error recovery guidance. Tools lack descriptions of failure modes or actionable next steps (e.g., 'If entity not found in kg_query, try kg_timeline to see if it exists'). Agents cannot self-correct on failures.
Pagination not visible in tool definitions. browse_recent and explore_* tools accept 'limit' but no cursor/offset or total_count documented. Large result sets may exceed context window.