Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation5/5

    Each tool has a clearly distinct purpose, with descriptions explicitly contrasting use cases (e.g., ygg_bootstrap vs ygg_recall vs ygg_search). No overlap or ambiguity.

    Naming Consistency5/5

    All tools follow a consistent 'ygg_<verb>' pattern with lowercase verbs, making the naming uniform and predictable.

    Tool Count5/5

    With 6 tools, the surface is well-scoped for a durable memory system, covering core operations (store, retrieve, search) and auxiliary tasks (health, materialize) without bloat.

    Completeness5/5

    The tool set provides a complete lifecycle for memory management across projects: persistence, cross-project and in-project retrieval, context loading, health monitoring, and file export. No obvious gaps.

  • Average 4.5/5 across 6 of 6 tools scored.

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

    • No community issues in the last 6 months
    • 237 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 failing
  • This repository is licensed under AGPL 3.0.

  • 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.

  • This repository includes a glama.json configuration file.

  • 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.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds ranking behavior (relevance and past usage, lexical vs semantic). No contradictions, but could detail more about ranking mechanics.

    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?

    Two sentences, front-loaded with the core action. Every sentence provides distinct value (purpose, usage guidance, ranking note). No wasted words.

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

    Completeness4/5

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

    Covers purpose, when to use, alternatives, and ranking. No output schema exists, but description doesn't explain return format. However, for a search tool, this is nearly complete.

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

    Parameters3/5

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

    Schema covers 100% of parameters with descriptions. Description provides context for the query and mentions memory categories but doesn't add significant meaning beyond schema. Baseline 3 is appropriate.

    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?

    Description explicitly states the tool searches durable memory across all projects for prior solutions, decisions, and lessons. The verb 'search' and resource 'durable memory' are specific, and it distinguishes from siblings like ygg_bootstrap and ygg_search.

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

    Usage Guidelines5/5

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

    Provides clear guidance: 'Use BEFORE solving any non-trivial problem' and explicitly gives alternatives for other scenarios (ygg_bootstrap for one project, ygg_search for targeted query).

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

  • Behavior4/5

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

    Annotations indicate a write operation (readOnlyHint=false, destructiveHint=false). The description adds key behaviors: near-duplicates are merged automatically, obvious secrets are refused, and it returns a saved memory id. These details go beyond the annotations, providing useful expectations.

    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 four sentences, front-loaded with the core action, then usage timing, then behaviors, then return value. No wasted words. Every sentence adds value, and the structure is logical and easy to scan.

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

    Completeness4/5

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

    Given 8 parameters (3 required) and no output schema, the description covers purpose, usage, param semantics, and behavioral traits. It doesn't detail return format beyond 'id', but that is sufficient for a save operation. It lacks rate limits or error handling, but annotations and schema provide no such info. Overall, it is complete enough for an agent to use correctly.

    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?

    Schema coverage is 100%, so baseline is 3. The description adds meaning by explaining that 'content' should be one atomic idea phrased standalone, and that 'solves', 'supersedes', and 'contradicts' create relationships. It also clarifies 'type' enum values as categories and 'source' typically left default. This enriches the 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 uses specific verbs ('persist', 'store') and a clear resource ('durable memory'). It states exactly what the tool does: save one atomic fact. The title 'Save a durable memory' reinforces this, and the description distinguishes from sibling tools like ygg_recall (retrieve) and ygg_search (search).

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

    Usage Guidelines4/5

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

    The description provides explicit when-to-use guidance: 'Call right after you decide something, learn a lesson, or fix a non-obvious bug.' It also instructs to store one idea per call. However, it does not explicitly state when not to use or name alternatives, though the context of sibling tools implies retrieval tools for reading.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint and idempotentHint. Description adds that it uses 'Lexical BM25 plus semantic ranking when embeddings are enabled', which is beyond annotations and helps understand behavior. No contradictions.

    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 3-4 sentences, front-loaded with the core action, then usage guidance, then technical detail. No fluff, every sentence earns its place.

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

    Completeness4/5

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

    Covers the main aspects: scope (one project), query, type filter, alternative tools, and algorithm. No output schema exists, but description doesn't explain return format (though schema has a json parameter for raw output). Almost complete.

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

    Parameters3/5

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

    Schema coverage is 100% with good descriptions. The description mentions 'free-text query and optional type filter' but adds little extra beyond the schema. Baseline 3 is appropriate.

    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 states the tool searches ONE project's durable memory with free-text query and optional type filter. It uses specific verb-search and resource-project memory, and differentiates from siblings like ygg_recall and ygg_bootstrap.

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

    Usage Guidelines5/5

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

    Explicitly states when to use: 'Use when you know the project and want specific matches'. Provides alternatives for cross-project (ygg_recall) and whole context (ygg_bootstrap). No ambiguity.

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

  • Behavior4/5

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

    Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds value by detailing the return contents (running status, stored-memory count, semantic search availability) and specifying it returns a small JSON object. No contradictions.

    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?

    Two sentences, each earning its place. The first delivers purpose and content, the second gives usage and return type. No extraneous words, front-loaded structure.

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

    Completeness4/5

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

    Given the absence of an output schema, the description adequately conveys the return value (small JSON status object with specific fields). For a simple health-check tool with zero parameters, this is complete enough for an agent to understand the tool's behavior.

    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 no parameters, and schema description coverage is 100% (trivially). The description does not need to add parameter semantics; baseline 4 is appropriate.

    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 states that the tool reports the local Yggdrasil memory engine's health, listing specific metrics (running status, stored-memory count, semantic search availability). The verb 'report' and resource 'health' are precise, and the tool is easily distinguished from sibling tools focused on bootstrap, materialize, recall, remember, and search.

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

    Usage Guidelines5/5

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

    Explicitly advises to call this tool first when other ygg_* tools fail, providing a clear, actionable use case. This guidance helps the agent decide when to invoke it, even though it does not list when not to use it, the directive is sufficient for this diagnostic tool.

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

  • Behavior5/5

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

    Annotations already indicate read-only, idempotent, and non-destructive behavior; description adds that results are ranked and pinned-first, which is useful behavioral detail beyond annotations.

    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?

    Three concise sentences, front-loading purpose then usage guidance, with no redundant information.

    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?

    Despite no output schema, the description specifies return content types and ordering, providing a complete picture for a simple retrieval tool.

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

    Parameters3/5

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

    Schema covers 100% of parameters with descriptions; tool description adds no significant new meaning beyond restating project scoping and optionality of limit/query.

    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?

    Clearly states the tool loads 'top durable memories' for one project, listing content types (decisions, conventions, lessons, open status) and distinguishes from siblings ygg_recall and ygg_search.

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

    Usage Guidelines5/5

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

    Explicitly advises use when the project is known and provides alternative tools for cross-project discovery and targeted queries, making the appropriate context unambiguous.

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

  • Behavior5/5

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

    Annotations indicate idempotentHint=true, destructiveHint=false, readOnlyHint=false. The description adds context: the stored memory is unchanged, filesystem path validation (must stay inside vault), and output format compatibility. This enriches behavioral understanding beyond annotations without contradiction.

    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 paragraph that front-loads the core action, then adds usage context and prerequisites. Every sentence adds distinct value, and there is no redundancy or unnecessary detail.

    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?

    For a tool with 3 parameters, no output schema, and no nested objects, the description covers the purpose, when to use, prerequisites, return value (file path), and behavioral constraints (path safety). It is fully self-contained and actionable for an 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?

    Schema coverage is 100%, so baseline is 3. The description adds contextual meaning by specifying that 'id' must come from a prior recall/search/bootstrap result and that 'project' is required. It also mentions the default output_dir and path constraint, providing extra guidance beyond the 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 the tool writes a single memory to a Markdown file on disk, specifying the verb (write), resource (stored memory), and output format (Obsidian-compatible Markdown). It also distinguishes from siblings by emphasizing the export-to-file action, which is not covered by ygg_recall, ygg_search, etc.

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

    Usage Guidelines4/5

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

    The description clearly indicates when to use the tool ('when the user wants to read, edit, or archive a specific memory as a file') and provides prerequisites (memory ID from prior tools, project). It implies alternatives by noting need for prior recall/search/bootstrap, but does not explicitly list when not to use or compare to siblings.

    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

Yggdrasil MCP server

Copy to your README.md:

Score Badge

Yggdrasil 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/VonderVuflya/Yggdrasil'

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