MCP server wrapping Cortex local AI memory layer with semantic search across notes, files, and conversations from Claude, ChatGPT, and Gemini
Cortex MCP exposes 9 tools with complete JSON Schema input definitions and descriptions. Naming follows verb_noun convention (search_memories, get_memory, create_memory, etc.). However, descriptions are terse (avg ~60 chars, well below the 194-char baseline for A+ tools), lack WHEN/WHY context, and omit dependency hints. Output schemas are not documented, LLMs cannot predict response structure for chaining. Error handling is absent from descriptions. Two write tools (create_memory, store_embedding) lack confirmation/dry-run patterns. Parameter descriptions exist but are minimal; no format constraints or validation guidance. Overall: functional but underspecified for production agent use.
Create a new memory with title, content, source, and tags
Get a digest of memories grouped by top tags for a time window (day or week)
Retrieve a single memory by ID
Get all relationships (edges) connected to a memory, either as source or target
Get database statistics including memory counts by source, relationships, embeddings, summaries, pinned count, and top tags
List memories with optional filtering by tags and source, ordered by most recent
Search memories using full-text search (FTS5) with fallback to LIKE queries. Supports filtering by source and tags.
Store an embedding vector for a memory
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for downstream tool chaining or data extraction. Breaks pattern:tool-chain and pattern:response-shaper.
Descriptions are terse (avg 60 chars vs 194-char baseline). Missing WHEN/WHY context, prerequisites, and dependency hints. E.g., 'Search memories using full-text search (FTS5)' does not explain when to use this vs vector_search, or that FTS5 requires indexed content.
Write tools (create_memory, store_embedding) lack confirmation/dry-run patterns. Agents can accidentally create duplicate memories or corrupt embeddings without a safety gate. Violates pattern:confirmation-request.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Perform semantic vector search on memories using embeddings. Returns memory IDs and distances.
No error handling guidance in tool descriptions. LLMs cannot distinguish retryable errors (DB busy, timeout) from user-fixable errors (invalid tag format) from fatal errors (DB not found). Violates pattern:error-classification.
Parameter descriptions lack format constraints and validation rules. E.g., 'tags' is an array but no guidance on max length, character restrictions, or valid tag format. 'vector' expects 384 dimensions but LLMs may pass wrong-sized arrays without explicit constraint in description.