MCP server that proxies tool calls to a daemon for memory management, learning persistence, and knowledge indexing
yesmem provides 16 tools with consistent naming (verb_noun pattern: remember, query, get_learnings, etc.) and comprehensive parameter descriptions. All tools have descriptions and input schemas with typed parameters. However, output schemas are not documented in the visible code, parameter descriptions lack actionable constraints (enums, ranges, formats), and error handling guidance is absent. The server follows basic definition patterns but lacks the polish and LLM-optimization expected of production-grade tools. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions.
Perform semantic vector search on learnings using embedding similarity
Search indexed documentation sources by keyword
Generate a context briefing for a project including code map, knowledge index, and recent activity
Retrieve the code dependency graph for a project
Retrieve learnings by ID or filter by category, project, and date range
Retrieve the current persona traits and directives for a project
Retrieve scratchpad content for a specific section
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing response structure (e.g., does query() return learning_id, content, category, timestamp?). This forces agents to guess field names and risks broken tool chains.
Parameter descriptions lack actionable constraints. 'limit' parameters have no min/max bounds (e.g., can an agent pass limit=999999?). 'category' and 'source' accept free-form strings instead of enums. 'since'/'before' accept ISO 8601 but no validation guidance. LLMs will pass invalid values.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools clearly split into read (get_*, query, search) and write (remember, pin, save_cap, set_persona, scratchpad_*) operations, but this is not declared in the schema. Agents cannot distinguish safe-to-retry from irreversible operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Ingest a file's content into the knowledge base
Ingest content from a URL into the knowledge base
Pin a learning to make it persistent and high-priority in search results
Search learnings by keyword with optional filters for project, category, source, and date range
Save a learning to the database with category, content, project, and optional origin tracking
Save a capability or skill description with optional JSON array of scripts
Append content to a scratchpad section. LANGUAGE: write content in English, regardless of conversation language. Technical tokens (JSON fields, code, commands, identifiers) remain verbatim — never translate them.
Write content to a scratchpad section, replacing existing content
Set or update persona traits and directives for the user
Error handling guidance absent. No indication of what errors are retryable, user-fixable, or fatal. No recovery hints (e.g., 'If project not found, try get_briefing() first'). Agents will retry blindly or give up.
Parameter 'project' is required on most tools but descriptions say 'Always set this to your current working directory', this is a constraint that should be enforced server-side or documented as optional with fallback logic. Forcing agents to track cwd is error-prone.