MCP Shared Memory Server - a persistent, versioned, conflict-safe shared memory service for MCP-compatible AI clients.
Strong foundation with well-structured tool definitions and comprehensive parameter documentation. All 7 tools have clear descriptions (194-400+ chars, well above 20-char minimum). Input schemas are complete with typed parameters and descriptions. Tool naming follows verb_noun convention (project_use, memory_remember, memory_search, etc.). However, output schemas are not explicitly documented in the visible code, and error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications. Descriptions are production-quality and load-bearing (as noted in code comments), but could be more concise for LLM token efficiency.
Generate a context brief of the most useful memories within a token budget.
Delete a memory permanently.
Retrieve the full revision history of a memory.
Record one durable piece of project knowledge so other clients and later sessions can retrieve it. Choose the type by behaviour, not by topic: - DECISION: a choice that was made. State the rejected alternative INSIDE the decision text - never store 'Redis was considered' as a separate memory, because a standalone fact can later be retrieved as though it were current. - CONSTRAINT: a rule the project must not violate. - FACT: a durable statement about the project. - TASK: short-lived working state ('currently implementing X'). Expires automatically within 30 days. Not an issue tracker. Record one self-contained statement per call - something that will still make sense to a different client in a month with no other context. Do not record conversational chatter. When a decision REPLACES an earlier one, pass the old memory's id in supersedes. The old fact stops appearing in search immediately, in the same transaction, so no client can ever see both as simultaneously true. It stays readable through memory_history. Do not instead record a new memory saying 'X is no longer true' - that leaves the original in circulation and adds a second thing to contradict it. If another client already recorded the same fact, you get that memory back with outcome='deduplicated' and your assertion is recorded as corroboration. That is a success, not a failure. NEVER record credentials, API keys, tokens, private keys or .env contents. This is not a secret store.
Output schemas not documented in visible code. LLMs cannot plan downstream calls or extract fields without knowing return structure.
Tool annotations missing. Risk classifications (WRITE, READ_ONLY, DESTRUCTIVE) are noted in comments but not exposed as readOnlyHint/destructiveHint in schema, preventing agents from understanding safety implications.
Error handling lacks recovery guidance. No visible error responses that tell LLMs what to do next (e.g., 'Project not found. Try project_use with a different slug.').
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
Update the content of an existing memory.
Search project memories by keyword, tag, or type.
Resolve the project namespace that memories belong to, and return its canonical project_id for use with the other tools. Pass whatever you know: a slug, the repository's git remote, or the workspace path. Hints are resolved independently and must agree; if they point at different projects you get an error listing them rather than a guess. Projects are never created implicitly. If nothing matches you get an error, and creating one requires create=true with an explicit slug. This is deliberate: a client opened in the wrong directory would otherwise silently start a second, empty memory namespace and split the project's knowledge in half.
memory_search and memory_context descriptions are minimal (65-70 chars). Lack guidance on when to use each vs. the other, or what structure they return.
No confirmation/dry-run pattern for destructive operations (memory_forget). Agents can permanently delete memories without a safety gate.