Skip to main content
Glama

Server Quality Checklist

50%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.3.18

  • Disambiguation5/5

    Each tool has a distinct verb (recall, write, organize, govern) that clearly separates reading, writing, maintenance, and governance. There is no overlap in responsibilities; an agent can confidently choose the right tool based on the action needed.

    Naming Consistency5/5

    All tools follow a consistent memory_<verb> pattern, making the naming predictable and easy to navigate. The verb choices are clear and align with the tool's function.

    Tool Count5/5

    With 4 tools, the server is well-scoped for a memory management domain. Each tool has a necessary place, and the count is neither too sparse nor overwhelming.

    Completeness5/5

    The tool set covers the full memory lifecycle: recall (read/search), write (create), organize (maintenance), and govern (update/delete, pin/unpin). There are no obvious dead ends or missing operations for a memory-focused server.

  • Average 2.9/5 across 4 of 4 tools scored.

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

    • No community issues in the last 6 months
    • 93 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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, the description must disclose side effects and behavioral traits. It does reveal distinct operations like 'decay stale records' and 'refresh the user profile,' suggesting data modification, but it omits whether changes are persisted, destructive, reversible, or require specific permissions. The dryRun parameter is never mentioned, further undermining 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 efficient sentence with no fluff. It front-loads the main purpose ('Curate memory') and packs action semantics into a compact list. The use of slashes and parentheses makes it dense, but every segment adds some value beyond the schema.

    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?

    Given the tool's complexity—18 parameters, no output schema, and no annotations—this description provides only a high-level action menu. It lacks procedural details, parameter explanations, return-value information, and edge-case behavior, making it far from complete for autonomous agent use.

    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 must compensate for the 18 parameters. It only clarifies the action enum's meaning (e.g., 'reflect' = distill principles, 'decay' = stale record decay) but leaves all other parameters (offset, ageDays, scopeId, activeContext, etc.) completely unexplained. This is insufficient for reliable invocation.

    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 names the resource ('memory') and a clear verb ('curate'), then enumerates specific sub-actions with their semantic labels (reflect, profile, decay, calibrate/rebuild). This distinguishes it from sibling tools like memory_recall and memory_write, though some phrasing like 'prepare/apply host-mediated active maintenance' is slightly jargon-heavy.

    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 implies a maintenance/curation use case but offers no explicit guidance on when to choose this tool over siblings. There are no stated alternatives, exclusions, or prerequisites, leaving the agent to infer suitability from the action list alone.

    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 of behavioral disclosure. It mentions one behavioral detail: 'returns maintenanceRequest when deeper governance is due.' However, it does not disclose other important traits such as whether writes are destructive, duplicate handling, permission requirements, or side effects beyond writing. The write nature is implied but insufficiently detailed for a tool with 27 parameters.

    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 sentence with a colon and a list, making it efficient and front-loaded. It packs multiple action types into a compact statement without wasted words. However, it is slightly dense and could be structured with clearer separations, but it remains concise overall.

    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 highly complex: 27 parameters, 5 enum actions, nested objects, no output schema, and no annotations. The description covers only some actions (e.g., remember, commit, append, distill) but misses task_delete, does not explain return values beyond the vague maintenanceRequest, and lacks details on the structure of entries or durableMemories. These gaps make the description inadequate for safe and correct 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 must compensate by explaining parameter meanings. It provides high-level mappings for actions (remember, commit, append, distill) but gives no details on parameters like cwd, role, source, status, taskId, entries, or durableMemories. Without these, the agent cannot correctly map inputs to their intended purposes, especially given the presence of nested objects.

    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 states the verb 'Write memory' and enumerates specific actions: remember, commit, append task entry, and distill context/experience. This makes the primary function clear and somewhat distinguishes it from memory_recall (reading) and memory_organize/govern. However, it omits the 'task_delete' action present in the schema and does not explicitly contrast with sibling tools, preventing a perfect score.

    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 siblings like memory_recall, memory_organize, or memory_govern. The description only explains what the tool does, not when it is the appropriate choice. The note about returning a maintenanceRequest when governance is due hints at a relationship to governance but does not constitute explicit usage guidance.

    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 provided, the description carries the full burden of behavioral disclosure. It mentions building prompt-ready recall context and reading active context/experience, which suggests read-only behavior, but it does not explicitly state that no memory is modified, nor does it reveal any limitations, permissions, or side effects. Some transparency is present, but gaps remain.

    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 sentence, front-loaded with the core purpose 'Recall long-term memory.' It lists operations efficiently without wasted words, though the enumeration is somewhat broad. Overall, it is appropriately concise.

    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?

    Given the tool's complexity (13 parameters), absence of annotations, and no output schema, the description is too high-level. It does not explain how the different actions map to parameters or what the return structure looks like. The description fails to provide adequate context for an agent to correctly invoke the tool in varied scenarios.

    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%, and the description does not compensate. It references generic operations like 'search/get/list' and 'task window' but does not explain parameters such as query, limit, id, scopeId, or action enum values. The description adds minimal meaning beyond the raw schema, leaving agents to guess parameter semantics.

    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 tool as performing recall operations on long-term memory, with a specific verb 'recall' and resource. It lists several distinct functions (search/get/list, task window, active context) which distinguishes it from write, organize, and govern siblings, though it does not explicitly name them.

    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 implies usage for retrieving or building recall context from memory, but it does not provide explicit when-to-use guidance or contrast with alternatives like memory_write or memory_organize. No exclusions are stated, leaving some ambiguity about scenario fit.

    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 must carry the full burden of behavioral disclosure. It only names operations without explaining side effects: whether delete is permanent, whether update overwrites or merges, exactly how 'attribute' affects memory, what pinning does to decay, or any permission/error implications. This is a significant gap 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 that conveys the main action categories without unnecessary fluff. It is well-structured and front-loaded, but its brevity contributes to ambiguity, slightly preventing a perfect score.

    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?

    This is a complex tool with 16 parameters, four actions, no annotations, and no output schema. The description is far too minimal to be operationally sufficient; it omits required parameters per action, scoping conventions, return behavior, and safety considerations. The tool is under-specified for an agent to safely and reliably invoke it.

    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%, and the description adds only high-level action semantics. It does not map parameters to specific actions (e.g., which params are needed for 'update' vs 'attribute'). 'Explicit scope required' hints at scopeId/scopeType, but most of the 16 parameters remain unexplained, leaving the agent without enough information to invoke the tool correctly.

    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 tool's purpose: managing memory records via four explicit operations (update, delete, attribute, pin/unpin). This distinguishes it from siblings like memory_recall (reading), memory_write (creating), and memory_organize (arranging). The verb 'manage' is broad, but the enumerated actions provide concrete specificity.

    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 implies usage context—modifying or maintaining existing memory records—rather than creating new ones (memory_write) or retrieving them (memory_recall). It mentions 'explicit scope required,' a useful prerequisite. However, it does not name alternative tools or state when not to use this tool, leaving some ambiguity compared to memory_organize.

    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

leafmem MCP server

Copy to your README.md:

Score Badge

leafmem 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/xdragonjia/leafmem'

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