Skip to main content
Glama
borgels

mcp-server-fooddata-dk

by borgels

Server Quality Checklist

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

  • Disambiguation4/5

    Tools are largely distinct: search, barcode lookup, ID detail, and meta-info. fooddata_search_capabilities and fooddata_sources both provide meta-info but one guides tool selection while the other covers data sources/licensing. Search vs get_by_barcode is clarified by description, so only minor ambiguity remains.

    Naming Consistency4/5

    All tools share the fooddata_ prefix, and most follow a verb_noun pattern (search_capabilities, get_food, get_by_barcode). However, 'fooddata_sources' is a bare noun and 'fooddata_search' is a bare verb, deviating slightly from the consistent verb_noun style.

    Tool Count5/5

    Five tools is well-scoped for a food data server. Each serves a distinct need: search, barcode lookup, detail retrieval, and source/capability info. No redundant or missing tools for the server's read-only purpose.

    Completeness5/5

    The tool surface covers all core operations for a food data lookup server: keyword search, barcode lookup, full detail by ID, and attribution info. There are no dead ends—get_food relies on search IDs, but that is a documented flow. No obvious gaps.

  • Average 4.1/5 across 5 of 5 tools scored.

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

    • No community issues in the last 6 months
    • 2 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under Apache 2.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.

  • 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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, providing a clear safety profile. The description adds context about being a first-step tool but does not elaborate on behavioral details such as return format, pagination behavior, or how results are ranked. This is acceptable given the annotations, but no extra behavioral insight is provided beyond what annotations imply.

    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 exceptionally concise with two short sentences, both of which are directly relevant and front-loaded. However, the brevity sacrifices necessary parameter explanation, so it is not perfectly efficient; it could include a clause about query/limit without bloating significantly.

    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?

    Without an output schema, the description must clarify what the agent will receive (e.g., a list of tool names, recommended tool, or explanation) and how to use the results. It also fails to explain how 'query' influences the output or how 'limit' affects the number of suggestions. For a meta-tool that guides tool selection, this lack of detail makes the description incomplete for effective 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?

    The schema has no description coverage (0%), and the description does not mention the 'query' or 'limit' parameters at all. The tool name suggests query is a natural-language need description and limit may cap results, but the agent must guess these semantics. A description for a routing tool should explicitly state that 'query' is the user's goal and 'limit' restricts the number of recommended tools.

    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's purpose: 'Find the right food-data tool.' This uses a specific verb ('find') and resource ('right food-data tool'), clearly distinguishing it from sibling tools that directly search or retrieve food data. The phrase 'Use first if unsure what is available' reinforces its role as a discovery or routing tool.

    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 clear usage guidance: 'Use first if unsure what is available.' This tells the agent when to call this tool, implying that if the agent already knows the appropriate sibling, it should use that tool directly. However, it does not explicitly name alternatives or say when not to use it, so it falls one point short of a perfect score.

    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 read-only, idempotent, and non-destructive behavior. The description adds that the tool returns license attribution requirements, which is useful content context. No contradictions are present, and the description does not overpromise. It doesn't mention response format or caching, but with strong annotations this is acceptable.

    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 fragment that conveys the essential purpose without wasting words. It is relatively clear and front-loaded with the main topic (data sources), though the grammar is slightly awkward due to the missing verb.

    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 simple zero-parameter informational tool with robust annotations, the description gives enough context: it explains what data is returned (sources and license attribution). No output schema exists, but the description communicates the tool's functionality sufficiently for an agent to select it. It could mention that it returns a list, but the use case is straightforward.

    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, so the schema is empty. According to the rubric, 0 params is baseline 4. The description does not need to add parameter information, and none is provided.

    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 tool provides available data sources and their required license attribution. It distinguishes itself from sibling tools (search, get_food) by focusing on server-level data source information, though it lacks an explicit verb like 'list' and uses a question-style fragment.

    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?

    No explicit when-to-use or alternative tool guidance is provided. The purpose is clear enough to imply usage for retrieving data source information, but exclusions against alternatives like search_capabilities are not stated. The context is implied rather than 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 declare readOnlyHint=true and idempotentHint=true, so the description need not repeat safety traits. It adds useful behavioral context by specifying the return format (per-100g calories/macros) and source attribution, which helps the agent interpret results. It does not disclose any additional edge cases or rate limits, but the provided annotations lower the bar.

    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, front-loaded with the core action and scope, followed by return details and a usage hint. Every sentence contributes essential information with zero filler or 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 complexity (search across two data sources, no output schema), the description adequately covers purpose, usage, return format, and source attribution. It does not explain result ordering, pagination, or empty-result behavior, but these are secondary for a search tool and the annotations cover safety.

    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 67% (query and danishOnly have descriptions; limit lacks one). The description reinforces query semantics with examples (rugbrød, leverpostej) but does not add meaningful detail about limit or danishOnly beyond the schema. With coverage above 50%, 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's purpose with a specific verb ('Search') and resource ('Danish food/nutrition data by keyword'). It explicitly names the two data sources (Open Food Facts and DTU Frida) and notes the return type (per-100g calories and macros), which distinguishes it from sibling tools like barcode lookup or food details.

    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 usage scenario ('Use this to get real Danish nutrition values before logging a meal elsewhere') and explains the scope (keyword search across Danish food data). It does not explicitly state when not to use it or mention alternative tools, but the context and sibling names make the intended use clear.

    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 provide readOnly/idempotent/destructive safety hints. The description adds the id format constraint ('off:<barcode>' or 'frida:<id>') but does not describe return shape or error behavior, so moderate value 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?

    A single, front-loaded sentence with no filler; every word 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?

    For a single-parameter read tool with no output schema, the description gives essential information (id source and format) but omits details about the returned 'full detail' structure or error cases; adequate but not exhaustive.

    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?

    The schema has no description for the id parameter, but the description fully explains the expected format, including prefixes from fooddata_search, completely compensating for the schema gap.

    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 states the tool retrieves full detail for a single food by id, referencing the specific id format from fooddata_search, which clearly distinguishes it from siblings like fooddata_get_by_barcode.

    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?

    It clearly indicates the id must come from fooddata_search, implying a search-then-get workflow, but does not explicitly mention alternatives or exclusions.

    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?

    The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds behavioral context beyond those annotations: it notes that Danish barcode coverage is good but incomplete, implying occasional empty results, and it communicates the fallback behavior. This is useful context that enriches what the annotations already provide, though it doesn't discuss rate limits or auth requirements, which are likely not applicable here.

    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, with no fluff. The first sentence states the primary use case; the second adds essential fallback guidance. Front-loaded and efficient, every word contributes to selection and invocation.

    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 simplicity of the tool (one parameter, no output schema), the description is complete enough: it explains what the tool does, when to use it, and what to do if it fails. The fallback to fooddata_search covers a critical edge case. It doesn't detail the exact return format, but for a lookup tool with an open-world hint, this is acceptable. Overall, it provides sufficient context for an agent to use it 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?

    The input schema has 0% description coverage, so the description must compensate. It does so by clarifying the 'barcode' parameter is an EAN and tying it directly to the tool's purpose. The schema already enforces numeric string with minLength 6, and the description adds the semantic meaning of 'EAN' without redundancy. This is sufficient for a simple single-parameter tool.

    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: to look up a packaged product by its barcode (EAN) in Open Food Facts. It uses a specific verb ('look up') and resource ('packaged product by barcode'), which distinguishes it from sibling tools like fooddata_search (by name) and fooddata_get_food (likely by internal ID). The explicit mention of 'barcode (EAN)' leaves no ambiguity about what the tool does.

    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?

    The description provides explicit when-to-use guidance and a fallback: 'if nothing is found, fall back to fooddata_search by name.' This tells the agent exactly when to use this tool and what to do if it fails, and it names the alternative tool (fooddata_search). This is a model of clear usage instruction.

    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

mcp-server-fooddata-dk MCP server

Copy to your README.md:

Score Badge

mcp-server-fooddata-dk 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/borgels/mcp-server-fooddata-dk'

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