Public leaderboard

Public assessment

Memory (official MCP reference server)

mcp-memory · v0.6.3 · scanned

What changed in the harness

Selection accuracy 95→98, token cost up 4%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

24.5 / 30

24.5 out of 30
03Economics

16.4 / 20

16.4 out of 20
04Discoverability

15.7 / 20

15.7 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

8 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
create_entities
name_restates_behavior params_unexplained
Adds one or more new entities to the knowledge graph in a single batch call, where each entry in the required 'entities' array specifies a unique name, an entityType label, and an array of observation strings describing it; returns the entities that were created.
create_relations
name_restates_behavior params_unexplained
Adds one or more directed relations linking existing entities, where each entry in the required 'relations' array specifies a 'from' entity name, a 'to' entity name, and a relationType phrased in active voice (e.g. 'works_at'); returns the relations that were created.
add_observations
name_restates_behavior params_unexplained
Appends new observation strings to already-existing entities, where each entry in the required 'observations' array specifies the target entityName and a 'contents' array of observation strings to add to it; returns, per entity, the list of observations that were added.
delete_entities
name_restates_behavior
Removes the entities named in the required 'entityNames' array from the knowledge graph and cascades the deletion to any relations referencing them; returns a success flag and a status message.
delete_observations
name_restates_behavior params_unexplained
Removes specific observation strings from entities without deleting the entities themselves, where each entry in the required 'deletions' array specifies an entityName and the 'observations' array of exact strings to remove from it; returns a success flag and a status message.
delete_relations
name_restates_behavior
Removes specific relations from the knowledge graph, where the required 'relations' array lists relation objects (each with from, to, and relationType) matching existing relations to remove; returns a success flag and a status message.
read_graph
name_restates_behavior
Takes no parameters and returns the full current knowledge graph, including every entity with its observations and every relation between entities.
open_nodes
name_restates_behavior
Looks up the entities matching the required 'names' array of entity names and returns those entities along with the relations that connect them to each other.

Selection evidence

Confusable tool pairs.

7 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
search_nodes open_nodes high A task like 'look up what we know about X' is ambiguous: if the agent treats X as a known entity name it may call open_nodes, but if it treats X as a search term it may call search_nodes — both are plausible without explicit instruction on whether the name is exact.
delete_entities delete_observations medium A task like 'remove the information that X is a manager' is ambiguous between deleting the whole entity X (delete_entities) versus deleting just that specific fact/observation from X (delete_observations).
delete_observations delete_relations medium A task like 'remove the fact that X reports to Y' could be modeled either as a relation between two entities (delete_relations) or as a free-text observation on an entity (delete_observations), so the agent may pick the wrong deletion tool depending on how it assumes the fact was stored.
create_entities add_observations medium A task like 'record that John is a senior engineer' is ambiguous between creating a brand-new entity with that observation (create_entities) versus adding it as a new observation to an already-existing 'John' entity (add_observations), especially when the agent is unsure if the entity already exists.
create_relations add_observations low A task like 'note that X likes Y' could be captured as a relation (X -likes-> Y) or as a textual observation on entity X, so the agent might choose the wrong tool depending on whether it models the fact relationally or descriptively.
create_entities create_relations low Both are 'create multiple new X' calls in the same graph, but the required schemas (entity name/type/observations vs from/to/relationType) are distinct enough that most natural-language tasks clearly indicate whether a new node or a new connection is being added.
delete_entities delete_relations low Both delete graph elements, but a task about removing a node versus removing a connection between two nodes is usually unambiguous from wording (e.g. 'delete X' vs 'X no longer works at Y'), keeping confusion risk low.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard