memory-server
[ tools: 9 ][ checks: 12 ][ latency: 41ms ]
92/100(A)
npx -y @modelcontextprotocol/server-memory
check breakdown
✓Tools exposed — Server exposed 9 tools.
• create_entities
• create_relations
• add_observations
• delete_entities
• delete_observations
• delete_relations
• read_graph
• search_nodes
• open_nodes
✓Input schemas valid — All tools have a valid JSON-Schema input definition.
!Input schema quality — 12 schema-quality issue(s) across 9 tool(s).
create_entities.entities: parameter has no description
create_entities: inputSchema.additionalProperties is not set to false (extra args pass through silently)
create_relations.relations: parameter has no description
create_relations: inputSchema.additionalProperties is not set to false (extra args pass through silently)
add_observations.observations: parameter has no description
add_observations: inputSchema.additionalProperties is not set to false (extra args pass through silently)
delete_entities: inputSchema.additionalProperties is not set to false (extra args pass through silently)
delete_observations.deletions: parameter has no description
delete_observations: inputSchema.additionalProperties is not set to false (extra args pass through silently)
delete_relations: inputSchema.additionalProperties is not set to false (extra args pass through silently)
search_nodes: inputSchema.additionalProperties is not set to false (extra args pass through silently)
open_nodes: inputSchema.additionalProperties is not set to false (extra args pass through silently)
→ Declare `required` for every schema that has properties, so agents know which params are mandatory.
→ Give every property a `description` and a concrete `type` (avoid bare `{}` placeholders).
→ Set `additionalProperties: false` on the top-level inputSchema so models can't silently pass extra, unvalidated arguments.
✓Output schemas — All tools declare a valid outputSchema.
✓Duplicate tool names — All tool names are unique.
✓Tool naming — All tool names use spec-legal characters.
!Descriptions — 5 description issue(s) found.
create_entities.entities: parameter has no description
create_relations.relations: parameter has no description
add_observations.observations: parameter has no description
delete_observations.deletions: parameter has no description
read_graph: description adds nothing beyond the tool name ("Read the entire knowledge graph")
→ Descriptions are the model's only guide to when/how to call a tool — treat them as prompt engineering.
→ Describe every tool and every parameter, including units, formats, and constraints.
→ Each tool's description should say something the name doesn't, and should be unique to that tool.
!Tool annotations — Annotation coverage 80% (36/45 hint fields set).
Some tools set a few hints but not all of title/readOnlyHint/destructiveHint/idempotentHint/openWorldHint.
→ Add annotations: title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint.
→ These let clients gate risky calls and give agents/users a friendly display name — optional but valuable.
✓Tool titles — All tools declare a human-readable title.
!Server instructions — No top-level instructions declared.
→ Declare instructions to guide agents on when/how to use this server.
→ Return a non-empty `instructions` string in your InitializeResult — most SDKs let you set this alongside serverInfo.
✓Handshake + list latency — tools/list responded in 41ms.
✓Resources — All 1 resource(s)/template(s) are well-described.
add the badge
Paste into your README:
[](https://scoremcp.dev/servers/server-memory)