Skip to main content
Glama
derekslinz

meta-data-mcp

by derekslinz

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v3.3.0

  • Disambiguation5/5

    Every tool serves a distinct purpose: provider discovery vs activation vs health, plugin drafting vs creation, federated query vs comparison. Even the two federate tools are clearly separated by output (merged series vs coverage matrix). No two tools appear to duplicate each other.

    Naming Consistency4/5

    The vast majority follow the 'opendata_<resource>_<verb>' pattern (e.g., providers_list, plugins_create, health_snapshot). However, three tools deviate with verb-object order (federate_query, federate_compare, explain_choice), which is a minor inconsistency in an otherwise readable and predictable scheme.

    Tool Count5/5

    15 tools is at the upper edge of the ideal range but perfectly appropriate for the server's scope: it manages providers, plugins, health monitoring, federation, and vocabulary. Each tool earns its place with a clear role, and none feel redundant or excessive.

    Completeness4/5

    The core workflows are well covered: discover providers, activate/deactivate, run federated queries, and create new plugins. The only minor gaps are the absence of an explicit update/delete lifecycle for plugins (though plugin creation is the intended path) and no unregister operation for providers beyond deactivation. These do not prevent typical agent workflows.

  • Average 4.3/5 across 15 of 15 tools scored.

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

    • No community issues in the last 6 months
    • 32 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
  • 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?

    The description adds context about activation requirements but contradicts the annotations. The tool is described as calling dynamic tools, which may write or mutate data, yet annotations set readOnlyHint=true and idempotentHint=true. This is a significant inconsistency that misleads about the tool's side effects. Without the contradiction, the description would score higher for explaining the proxy mechanism.

    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 sentences, each serving a distinct purpose: stating functionality, explaining use case, and providing workflow steps. No redundant or unnecessary text. Highly efficient and easy to parse.

    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 tool is a proxy with no output schema, the description adequately explains the prerequisite activation and how to obtain the tool name. However, it does not address error handling (e.g., what if the target tool fails) or confirm the idempotency hinted by annotations. Slight gap but mostly complete for an agent to invoke 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?

    Input schema has 100% coverage, so baseline is 3. The description adds valuable meaning for 'tool_name' by specifying it should come from the activation response's 'tools' list and providing an example ('nvd-search-cves'). For 'arguments', only minimal restatement. Overall, description improves understanding of parameter origin and usage.

    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's purpose: 'Proxy any activated plugin tool by name.' It distinguishes itself from sibling tools by explaining it is for dynamically activated tools that aren't directly callable. The verb 'proxy' and resource 'activated plugin tool' are specific.

    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 explicitly says when to use: 'when dynamically activated tools aren't directly callable in your environment.' It also provides a clear two-step workflow: first activate with opendata_providers_activate, then call with tool name and arguments. However, it does not explicitly mention alternatives or when not to use, which would improve guidance.

    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 indicate readOnlyHint=true and idempotentHint=true, and the description's 'Fetch' aligns with these. The description adds value by enumerating the returned fields (title, description, domains, etc.), providing context beyond the annotations. 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 a single sentence that concisely conveys purpose and return fields without any fluff. Every part is informative and earns its place.

    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 an output schema exists (implied), the description adequately covers the tool's behavior. It lists the key fields returned and makes clear that this is a simple lookup by provider ID. No additional information is needed for this straightforward operation.

    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%, and the input schema already includes a clear description of the required parameter 'provider_id' with examples. The description does not add additional meaning beyond what the schema provides, so a baseline score of 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 uses a specific verb 'Fetch' and clearly identifies the resource as 'full registry entry for a single provider id', listing the included fields: title, description, domains, regions, keywords, homepage, license note, required environment variables. This clearly distinguishes it from sibling tools like opendata_providers_list (which lists multiple) and opendata_providers_find (which likely searches).

    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 does not explicitly state when to use this tool versus alternatives like opendata_providers_find or opendata_providers_list. It implies usage for fetching details of a single provider by ID, but lacks guidance on when not to use it or what exclusions apply.

    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 confirm read-only and idempotent behavior. Description adds important behavioral details: pagination, terse output, and inclusion of env vars per provider, which exceeds annotation coverage.

    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?

    Single sentence efficiently conveys purpose, pagination, terse nature, and return fields—no superfluous words.

    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 paginated list tool with complete schema coverage, an output schema, and clear return field description, the description is fully adequate.

    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 well-described limit and offset parameters. Description mentions pagination generically but adds no new semantic detail 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 clearly states 'Enumerate all providers in the opendata-mcp registry' with specific return fields, effectively distinguishing from siblings like opendata_providers_list_active which presumably filters only active ones.

    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?

    Description implies full listing but does not explicitly advise when to use this tool over alternatives like opendata_providers_list_active, leaving the agent to infer from sibling names.

    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, so the tool is known to be safe. The description adds substantive behavioral detail by listing the scoring components (token matching, fuzzy matching, semantic similarity, metadata filters), which goes beyond what annotations provide. It does not mention edge cases like null query, but this is not a major 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 two sentences long, front-loaded with the main purpose, and contains no filler. Every sentence earns its place, making it highly concise and well-structured.

    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?

    For a read-only tool with no output schema, the description is fairly complete. It explains the tool's purpose and what it shows, though it does not describe the exact return format. Given the simplicity of the tool and high schema coverage, this is adequate but not exhaustive.

    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 description coverage is 100%, so the schema already documents all parameters. The description does not add significant meaning beyond indicating these parameters relate to the original search and filters, but it does not compensate beyond the schema baseline.

    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 a specific verb 'Explain' and clearly identifies the resource ('the scoring breakdown for a provider search'). It distinguishes this tool from sibling tools like opendata_providers_find (which presumably performs the search) and opendata_federate_compare (which compares federated results).

    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 implies the tool is used after a provider search to understand ranking, but it does not explicitly mention alternatives or when not to use it. It provides clear context without exclusions, which aligns with a 4.

    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?

    Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds that it makes sub-calls to plugin tools, which is already in the schema. It does not add significant 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?

    Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value.

    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?

    No output schema, but the description outlines the outputs (coverage matrix and merged series). For a federated tool, it is fairly complete, though could mention potential performance or timeout considerations.

    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?

    With 100% schema coverage, baseline is 3. The description adds meaningful context: 'queries' sub-calls are normalized onto a common geography + time axis, and 'harmonize' controls which axes are normalized. This clarifies the merging behavior 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 clearly states the tool federates plugin tool calls and reports a coverage matrix alongside merged series, with a specific use case ('spot gaps or disagreements'). It distinguishes from sibling tools like opendata_federate_query by adding coverage reporting.

    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 gives a clear context for use ('spot gaps or disagreements between open-data sources'), but does not explicitly state when not to use or provide alternatives. The differentiation from opendata_federate_query is implied but not explicit.

    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 provide readOnlyHint and idempotentHint. The description adds value by explaining normalization and merging behavior, auto-activation of providers, and that output is a 'cited series'. 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 three sentences: defining action, noting auto-activation, and providing a usage example. It is concise, front-loaded, and every sentence adds value.

    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 tool's complexity (nested sub-queries, no output schema), the description explains orchestration well. It covers purpose, usage, and key behaviors. Missing details on error handling or output structure, but adequate for selection.

    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 description coverage is 100%, so baseline is 3. The description adds context about normalization and merging but doesn't add significant parameter-specific meaning beyond the schema. It explains the harmonize parameter implicitly.

    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's purpose: run multiple plugin tool calls, normalize results onto common geography/time axes, and merge into one cited series. It distinguishes from siblings like opendata_tool_call (single call) and opendata_federate_compare (comparison) by specifying overlay of same indicator from different sources.

    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 says 'Use this to overlay the same indicator from different open-data sources' with examples (Eurostat vs World Bank). It implies when to use but lacks explicit when-not or alternatives. The auto-activation note adds context.

    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 indicate readOnlyHint and idempotentHint. Description adds value by listing validations performed (id format, kebab-case, consistency checks) and output format, which are beyond the annotation scope.

    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 sentences, front-loaded with main purpose, then usage guidance, validation details, and output. Every sentence serves a purpose with no redundancy.

    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 tool's complexity (11 parameters, no output schema), the description adequately covers purpose, usage, validations, and output. It is sufficient 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.

    Parameters3/5

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

    Schema coverage is 100% with detailed descriptions for all 11 parameters. Tool description does not add extra parameter information, but baseline is 3 when schema is complete.

    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 clearly states 'Build a validated YAML plugin spec from structured inputs' with specific verb and resource. It also distinguishes from sibling 'opendata_plugins_create' by stating usage order.

    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?

    Explicitly says 'Use this BEFORE opendata_plugins_create to avoid hand-writing YAML', providing clear context and alternative. Does not explicitly state when not to use, but the guidance is sufficient.

    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?

    Annotations already declare readOnlyHint and idempotentHint, so the description need not restate. It adds useful context about the next_step field for no matches. However, it fails to disclose that setting activate_top > 0 will activate providers, a side effect that contradicts the read-only implication of the default. Though the schema documents this, the description omits it, leaving a transparency 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?

    Three sentences, each substantive: purpose, when-to-use, and fallback behavior. No redundancy or fluff.

    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?

    The description covers the discovery use case and the no-match fallback, and references an alternative creation tool. However, it omits the activate_top parameter's side effect, which is significant for an agent deciding whether to use this tool. The rich schema partially compensates, but the description is not fully 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?

    The input schema provides full descriptions for all 5 parameters, achieving 100% schema description coverage. The description's mention of 'free-text query and/or domain/region filters' merely echoes schema, so 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 'Search the meta-data-mcp plugin registry' with a specific verb and resource. It distinguishes itself from sibling tools by describing filtered search functionality and explicitly says to 'Use this FIRST when you don't know which plugin can answer a question.'

    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 instructs when to use: 'Use this FIRST when you don't know which plugin can answer a question.' Also provides an alternative path by mentioning that if no plugin matches, the response includes a next_step field explaining how to autonomously create one via opendata_plugins_create.

    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?

    Annotations already indicate read-only and idempotent behavior. The description adds context about the vocabulary being controlled, but does not disclose any additional behavioral traits beyond what annotations provide.

    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?

    Single concise sentence that is front-loaded with the action and includes examples. No wasted words.

    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 the tool has an output schema and no parameters, the description fully covers the purpose and scope. Examples provide additional 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?

    There are no parameters, so schema coverage is 100%. The description does not need to add parameter details. Baseline 4 for zero parameters.

    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 lists a controlled domain vocabulary, with specific examples ('health', 'legal', etc.). It is distinct from sibling tools like opendata_providers_list, which list providers.

    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 implies when to use it i.e., when needing the domain vocabulary. It does not explicitly state when not to use it or provide alternatives, but for a simple list tool, this is sufficient.

    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?

    Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds the context that this is a controlled vocabulary with examples, but doesn't disclose further behavioral details like pagination or return format. This is acceptable given the annotations and simplicity, but not rich.

    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, well-structured sentence that front-loads the action and includes examples. Every word earns its place with no redundancy or filler.

    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 zero-parameter, read-only list tool, the description is completely adequate. It explains what the tool returns (a list of region codes) and provides examples, without needing to explain return values or side effects. No output schema exists, but the description covers the key 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 schema coverage is 100% (nothing to document). The description explicitly notes 'no parameters' in the schema and doesn't need to add parameter details. Baseline for 0 params is 4, and no additional explanation is necessary.

    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 lists a controlled region vocabulary for the provider registry, with concrete examples ('us', 'eu', 'uk', 'global'). The verb 'List' and resource are specific, and it distinguishes itself from sibling tools focused on providers or queries.

    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 implies usage context by noting the vocabulary is 'used by the provider registry', making it clear this is a reference for valid region values. It doesn't explicitly mention alternatives or exclusions, but for a simple list tool, this is adequate.

    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?

    Beyond the 'idempotentHint' annotation, the description discloses that the Python module remains imported (due to caching) and that a 'tools/list_changed' notification is sent. No contradiction with 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 sentences, front-loaded with the primary action, no filler. Every sentence adds value.

    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 simple tool with one parameter and an output schema (as indicated by context signals), the description fully covers behavioral effects and side effects.

    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?

    With 100% schema description coverage, the description adds no additional meaning beyond the schema's 'Provider id to deactivate.' 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 verb 'remove' and the resource 'previously-activated provider's tools', specifying the effect on the advertised list. It distinguishes from the sibling 'opendata_providers_activate' by implying the inverse operation.

    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 implicitly indicates when to use (deactivate a provider) and contrasts with activation, but does not explicitly provide when-not-to-use or alternatives. It gives clear context for usage.

    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?

    Adds significant behavioral context beyond annotations: materialization to disk, import, registration, immediate availability, and auto PR. Annotations only indicate destructiveHint=false, so description adds value 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?

    Concise paragraph with each sentence adding value: purpose, when to use, recommended flow, effects, and configuration hint. No redundancy or filler.

    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?

    Complete coverage given tool complexity: describes side effects, prerequisite flow, and configuration. References other tools for context. No output schema needed.

    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 all 6 parameters with descriptions (100% coverage), so baseline is 3. The description does not add extra parameter-specific details beyond what's in 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 clearly states the tool creates a new plugin from a YAML spec, specifies the verb 'create' and resource 'plugin', and distinguishes from siblings by referencing opendata_providers_find and opendata_plugins_draft.

    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 the tool ('when opendata_providers_find returned no match') and provides a recommended flow involving opendata_plugins_draft, plus mentions environment variable to disable auto-contribution.

    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?

    Beyond the idempotentHint annotation, the description details side effects: imports plugin, merges tools, sends tools/list_changed notification. This adds significant behavioral context.

    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 three sentences with no waste. The key purpose is front-loaded, and every sentence adds necessary 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?

    Given a single parameter and an output schema, the description covers activation behavior, idempotency, and client notification fully. No gaps are apparent.

    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% and schema describes provider_id. The description adds value by advising to use opendata_providers_find or list for discovery, which aids parameter selection.

    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 activates a registered provider to make its tools callable. It uses specific verb and resource ('activate a registered provider') and distinguishes from sibling tools like opendata_providers_deactivate.

    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 explains activation is needed because the server starts in discovery-only mode. It implies when to use but doesn't explicitly list when not to use or alternatives beyond mentioning idempotency.

    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?

    The description adds context beyond annotations: it specifies that the tool returns currently activated providers and the tool names they contribute. This aligns with the readOnlyHint and idempotentHint annotations, and no contradictions are present. The behavioral insight into inspection of tool advertising adds value.

    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 two sentences, front-loading the core action ('List the providers') followed by a practical usage scenario. Every sentence contributes meaning without redundancy.

    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 the absence of parameters, the presence of annotations (readOnly, idempotent), and an output schema (not shown), the description sufficiently explains the tool's function and usage. It is complete within its 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?

    The input schema has no parameters and 100% coverage, so the description does not need to elaborate. The baseline for zero parameters is 4, and the description appropriately omits parameter 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 clearly states the tool lists active providers with their contributed tool names, distinguishing it from sibling 'opendata_providers_list' which likely lists all providers. The specific verb 'list' and resource 'active providers' make the purpose unambiguous.

    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 includes a usage hint: 'Useful for inspecting why a particular tool is (or isn't) advertised.' This implies when to use, but it does not explicitly contrast with alternatives like opendata_providers_list or opendata_providers_describe. A more direct comparison would strengthen this dimension.

    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?

    The description adds significant behavioral details beyond annotations: health degrades on 5xx/429/network errors, decays over 5 minutes, excludes 401/403. This complements idempotentHint and readOnlyHint well.

    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 concise (3 sentences), front-loaded with the primary action, and every sentence adds value without redundancy.

    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 one optional parameter and output schema present, the description fully covers behavior with/without arguments, failure recovery, and use case. No gaps.

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

    Parameters5/5

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

    Schema coverage is 100%, and the description adds context: optional provider_ids default to null, behavior when omitted (returns all providers), and baseline score for healthy providers.

    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 snapshots the in-memory provider health registry and returns a score per provider, distinguishing it from sibling tools like opendata_providers_list which list providers without health context.

    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 explains when to use (to get health scores for one or all providers) and provides business context (painting health badges), but does not explicitly state when not to use or compare to alternatives.

    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

meta-data-mcp MCP server

Copy to your README.md:

Score Badge

meta-data-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/derekslinz/meta-data-mcp'

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