MCP Server for compact memories with semantic storage, vector embeddings, and knowledge graph capabilities
Arca Memory Core is a well-designed semantic memory system with generally strong tool definitions. All 10 tools have descriptions and input schemas, but several lack complete parameter descriptions and output schema documentation. Tool naming is consistent and action-oriented. Error handling guidance is minimal, tools describe WHAT they do but not HOW to recover from failures or what to expect on error. The `ingest` tool is particularly sophisticated but its parameter descriptions could be more explicit about format constraints and side effects.
Add content to memory storage, optionally with initial graph edges.
Clear all memory items, optionally within a specific bucket.
Create a directed edge between two memory nodes.
Delete a memory item by its UUID.
Remove one or all directed edges between two memory nodes.
Retrieve content from memory storage based on a query.
Retrieve the last N memories ordered by creation time (most recent first).
Output schemas not documented. No tool returns type information visible in source code. LLMs cannot plan downstream operations or validate that responses contain required fields for chaining.
Destructive/mutating tools lack explicit confirmation or dry-run capability. Tools `delete`, `clear`, `connect`, `disconnect`, and `ingest` (with replace=true) perform irreversible changes without recovery guidance.
`clear` tool description is vague ('Clear all memory items, optionally within a specific bucket'). Does not warn about irreversibility or guide recovery. Missing constraints on bucket parameter.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 76 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
Chunk a document and store the chunks as memories. Splits *text* into semantically coherent chunks and stores each as a memory in a per-document bucket (derived from *source* unless *bucket* is given). Set *replace* to clear the bucket first for idempotent re-ingestion. When *parent* is set a node (content *parent_content*, defaulting to *source*) anchors the chunks via ``part_of``.
List all memory buckets.
Traverse the knowledge graph starting from a memory node. Returns connected memories up to *depth* hops away, optionally filtered by relationship type.
`list_buckets` has minimal description ('List all memory buckets'). No guidance on when to call this discovery tool or what structure it returns. Does not document whether it returns count of items per bucket.
Parameter descriptions inconsistent in completeness. `bucket` parameter appears in 6 tools with description 'Optional bucket name' but does not specify format constraints (e.g., allowed characters, max length, naming conventions).
`get` tool does not specify whether results are ranked by relevance score or other criteria. `top_k=5` default is stated but no guidance on pagination or total result count handling.
Error handling is not documented across any tools. No recovery guidance (e.g., 'If memory_id not found, call get() to discover valid IDs'). Tools do not specify retryability, timeout behavior, or expected error conditions.
`ingest` tool documentation does not explain idempotency behavior when `replace=true`. No clarity on partial success semantics if chunking fails mid-document.