Skip to main content
Glama

Server Quality Checklist

58%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v1.0.0

  • Disambiguation4/5

    Each tool has a clearly distinct purpose: save, read, search, list, delete, graph data, stats, and open graph UI. The only slight overlap is between fuzzy search and filtered list, but their descriptions make the difference clear.

    Naming Consistency5/5

    All tool names follow the consistent pattern memory_<action> using lowercase snake_case. The naming is predictable and makes the purpose of each tool immediately understandable.

    Tool Count5/5

    With 8 tools, the set is well-scoped for a memory vault: it covers CRUD operations, search, list, graph data, stats, and a UI opener without unnecessary bloat or thinness.

    Completeness5/5

    The toolset provides full lifecycle coverage for memories (create/update, read, search/list, delete) and also offers graph and stats features for deeper interaction. No obvious gaps are present.

  • Average 3.1/5 across 8 of 8 tools scored. Lowest: 2.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 0 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description must carry the burden of disclosing behavioral traits. It only states 'Fuzzy search memories' and does not indicate whether the tool is read-only, whether it has side effects, whether it requires authentication, or what the result format is. The lack of behavioral detail is a significant gap for a tool that may be called by an AI agent.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness2/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely short ('Fuzzy search memories'), which keeps it concise, but this is under-specification rather than effective brevity. A useful description would at least mention essential scope or parameters without wasting words.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness1/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool has 4 parameters, no annotations, and no output schema, the description must provide substantial context. It fails to do so, offering only a vague one-liner. The agent has no way to understand the search semantics, filtering options, or expected return values, making the description inadequate for reliable tool selection and invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters2/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description should compensate by explaining the meaning of parameters. It does not. The schema itself lists 'query', 'tags', 'type', and 'limit', but the description gives no hints about their semantics (e.g., whether 'query' is a full-text search string or a substring, how 'tags' interact with the search, or what 'type' values mean).

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose3/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'search' and resource 'memories', but the term 'fuzzy' is vague and does not clarify what is searched (content, tags, metadata) or how results are ranked. It does not differentiate from sibling tools like memory_list or memory_read, which also operate on memories.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no guidance on when to use this tool versus alternatives such as memory_list or memory_read. There is no mention of typical use cases, exclusions, or recommended filters, leaving the agent to guess when a search is appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description must bear the full burden of behavioral disclosure. It conveys a read-only operation via 'List' but omits details about return format, pagination, defaults, or any side effects. This is minimal information for a tool with no other metadata.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise: a single sentence with no fluff. It places the core action upfront. However, it is so brief that it borders on under-specification, though conciseness itself is achieved.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description is incomplete for a listing tool with 4 optional parameters. There is no output schema, no annotations, and the description does not cover return values, default limits, or ordering behavior. The schema provides some enums, but the overall context is insufficient.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, so the description must compensate. It only says 'optional filters,' which is already evident from the schema's non-required fields. It does not explain the meaning or usage of 'sort,' 'tags,' 'type,' or 'limit,' adding no real value beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly identifies the action ('List') and resource ('memories'), and mentions optional filters. However, it does not differentiate from sibling tools like memory_search or memory_read, which also deal with retrieving memory data.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives. It does not specify prerequisites, scenarios, or exclusions, leaving the agent without context for choosing memory_list over memory_search or memory_read.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are present, so the description must disclose behavioral traits. It only states the action 'Save or update' without explaining upsert semantics, idempotency, side effects, or permission requirements. This leaves significant ambiguity for a mutation tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence with no redundancy. However, its brevity comes at the cost of necessary explanatory content.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    With no output schema and no annotations, the description needs to provide operational context. It lacks details on return values, error conditions, and behavior when memory already exists, making it incomplete for a 5-parameter write tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters1/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has 0% description coverage, and the description does not explain any parameters. 'name', 'type', 'content', 'tags', and 'links' are left undefined, with no distinction between required and optional or the meaning of enum values.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a clear verb 'Save or update' with a specific resource 'memory', indicating a write operation. It distinguishes from sibling tools like memory_read, memory_search, and memory_delete by covering create/update functionality, though it doesn't explicitly differentiate itself.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No usage guidance is provided. The description does not mention when to use this tool over alternatives, prerequisites, or scenarios where saving is appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It only indicates a get operation, but does not disclose whether it's read-only, expensive, returns the entire graph, or any other behavioral traits. Minimal transparency.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, front-loaded sentence with no waste. However, it could be slightly more informative without losing conciseness, such as mentioning what format the data is in.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the simplicity (no params, no output schema), the description covers the basic purpose. But it lacks contextual completeness regarding how this differs from 'memory_open_graph' and what the returned graph data looks like, leaving a gap for the agent.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has 0 parameters, so the baseline is 4. The description correctly implies no parameters are needed, and the schema confirms 100% coverage. No further parameter explanation is required.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb ('Get') and resource ('graph data'), and clarifies the content as 'nodes and edges'. This clearly states what the tool does, though it doesn't explicitly differentiate it from the sibling 'memory_open_graph'.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    No guidance is provided on when to use this tool versus alternatives like 'memory_open_graph' or 'memory_read'. The description simply states what it does without any context for selection.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention whether this is a read-only operation, potential side effects, authentication requirements, or return format. It only says 'Get vault statistics,' leaving the agent to infer behavior.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, concise sentence that is front-loaded with the verb 'Get' and resource. Every word earns its place, and there is no wasted text.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness2/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple (no parameters) but has no output schema. The description fails to clarify what 'vault statistics' actually are (e.g., count of memories, storage usage, etc.). This lack of detail leaves the agent uncertain about the tool's output, making the description incomplete for a tool with no other structured information.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, and the schema coverage is 100% (empty properties). Per the baseline for 0-parameter tools, the description does not need to explain parameter semantics. The mention of 'vault statistics' adds a slight hint about what the output relates to, but no parameter-specific information is needed.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description 'Get vault statistics' uses a specific verb 'get' and resource 'vault statistics', which clearly differentiates it from sibling tools like memory_list (listing memories) or memory_search (searching). However, it does not specify what the statistics include, so it is clear but slightly vague.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    There is no guidance on when to use this tool versus alternatives. The description simply states what it does without providing context on use cases, prerequisites, or when another tool would be more appropriate.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden of behavioral disclosure. The description does not state whether deletion is permanent, whether it cascades, or whether any confirmation is required. For a destructive operation, this is a significant gap.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single concise sentence that directly states the tool's function without any superfluous words. It is perfectly sized for the tool's simplicity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description is adequate for a simple one-parameter tool and covers the essential action. However, it lacks behavioral details such as return values, effects on related data, or error conditions. Given that there is no output schema or annotations, the description feels incomplete for a destructive operation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has one required 'query' string with no description. The description adds semantic meaning by explaining that query can be an ID, name, or slug, making the parameter's purpose clear. This compensates for the sparse schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description explicitly states 'Delete a memory by ID, name, or slug', using a specific verb and resource. This clearly distinguishes it from sibling tools like memory_save and memory_read, which perform different operations.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides no explicit guidance on when to use this tool versus alternatives. Usage is only implied by the delete action; there is no mention of when deletion is appropriate or when another tool like memory_update should be used.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior2/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations are provided, so the description carries the full burden. It states the operation is a read, implying non-destructive behavior, but does not disclose what happens on missing IDs, return format, or potential errors. This leaves the agent guessing about outcomes when invoking the tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, direct sentence with no filler or redundant information. It efficiently conveys the tool's purpose and the meaning of its only parameter.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness3/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple (one parameter, no output schema, no annotations), so the description is minimally viable. However, it omits return value details and error behavior for not-found cases. Given the low complexity, a score of 3 is appropriate rather than lower.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema provides no description for 'query' (0% coverage), so the description's clarification that it accepts an ID, name, or slug adds essential semantic meaning. This effectively compensates for the missing schema description, though it does not include syntax or format details.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses the specific verb 'read' with the resource 'memory' and clarifies the identifier types ('by ID, name, or slug'), which clearly distinguishes it from sibling tools like memory_save, memory_search, and memory_list.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The context of use is implied: this is for reading a specific memory when you know its ID, name, or slug. However, there is no explicit guidance on when not to use it (e.g., for searching or listing) or mentions of alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior3/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden of behavioral disclosure. It states the primary action (opening a browser UI) but does not mention possible side effects, whether it is a safe read-only operation, or if any external dependencies (e.g., a running server) are required. This leaves some ambiguity but is acceptable for a simple UI-launching tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is a single, short sentence with the verb and object front-loaded. There is no wasted wording, making it highly concise and easy to parse.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given that the tool has no parameters, no annotations, and no output schema, the description is sufficiently complete. It fully communicates the tool's purpose and behavior in its simple context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    This tool has zero parameters, so the schema already captures everything. The description does not need to explain any parameters, and the baseline for a parameterless tool is 4, which is met.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly specifies the action ('open') and the target ('graph UI in browser'), making it unambiguous. It distinguishes itself from sibling memory tools like memory_save or memory_graph_data by describing a UI action rather than a data operation.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description offers no guidance on when to use this tool versus alternatives, such as memory_graph_data for retrieving graph data. There are no exclusions, prerequisites, or context clues for the agent to determine the appropriate use case.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

memory-mcp MCP server

Copy to your README.md:

Score Badge

memory-mcp MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/otaviosenne/memory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server