vergabe-mcp
Server Quality Checklist
Latest release: v1.0.1
- Disambiguation5/5
Each tool targets a distinct operation: searching tenders, fetching details, raw querying, code lookup, and export URL generation. There is no overlap between their purposes.
Naming Consistency5/5All tool names follow a clear verb_noun pattern (search_tenders, get_tender, search_tenders_raw, lookup_code, get_export_url). The conventions are uniform and predictable.
Tool Count5/5Five tools are well-scoped for a public procurement domain. Each tool addresses a necessary function without being excessive or insufficient.
Completeness4/5Core workflows for searching, fetching, raw querying, code lookup, and export are covered. Minor gaps like bulk export download instructions are handled via external guidance, which is acceptable.
Average 4.1/5 across 5 of 5 tools scored. Lowest: 3.1/5.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 23 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.jsonto 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 and openWorldHint=true, indicating safe read-only operation with a known set of codes. The description adds no extra behavioral context beyond 'resolves to official description', which is consistent but not additional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness3/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is under-specified rather than efficiently complete. It is concise but sacrifices necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters (two required, with enums) and an output schema, the description lacks context about code format, case sensitivity, or the nature of the official description. The output schema is not shown, but even with it, the description should provide usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'CPV or NUTS code' hinting at the 'list' and 'code' parameters, but does not explain the 'language' parameter or the expected format of the code. This is insufficient for three parameters with no schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'resolves' and the resource 'CPV or NUTS code' to its 'official description'. It is distinct from siblings like 'search_tenders' which deal with tenders, not code resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The description only states what it does, not when or why to invoke it.
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 openWorldHint. The description adds actionable advice: 'download it outside this server' due to the large ZIP size. This enhances transparency beyond the annotations, though it could mention rate limits or authentication requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two efficient sentences: the first states the core purpose, and the second provides a critical behavioral caveat. No redundant information, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and a key usage note. However, it is missing clarity on whether 'day' and 'month' are mutually exclusive or what happens when both are omitted (all parameters optional). Output schema may fill gaps, but a small clarification would make the description fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (67%), with clear format descriptions for 'day' and 'month' and an enum for 'format'. The tool description adds no further parameter meaning beyond what the schema already provides, so the 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/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Builds the URL') and the resource ('official bulk export for one day or month'). It distinguishes the tool from sibling tools like 'search_tenders' and 'get_tender' by focusing on bulk export URL generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives or how to choose between the 'day' and 'month' parameters. It only mentions a precondition ('must already be closed') without explaining the use case for each parameter option.
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 openWorldHint, correctly indicating no side effects and external data mutability. The description adds value by detailing the behavioral difference between formats: summary is a curated extraction, while other formats are returned verbatim. This goes beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the core purpose, the second explains the critical format differentiation. No redundant information; every sentence earns its place. Highly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness4/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has few parameters (all described in schema), an output schema, and comprehensive annotations, the description covers the essential behavioral nuance of formats. It could mention the default version behavior or error handling, but the agent has sufficient information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does 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 meaningful context for the 'format' parameter by explaining what 'summary' extracts (deadlines, lot values, suitableFor, document links) and that other formats are verbatim. This enhances agent understanding beyond the schema's enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a single notice, uses a specific verb ('fetches'), and explains the key distinction between the 'summary' format (curated extraction of bidder-relevant fields) and other verbatim formats. This effectively distinguishes it from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines3/5Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies the tool is for retrieving a single notice after obtaining an ID from a search, it does not explicitly state when to use it versus alternatives like search_tenders. No exclusion criteria or alternative tools are mentioned, leaving the agent to infer usage 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 provide readOnlyHint and openWorldHint. Description adds default filtering and sorting behavior, as well as the specific website. No contradictions. Adds useful context 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core action and defaults. Second sentence provides key alternative. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 19 optional parameters, an output schema that documents return values, and a sibling tool reference, the description is sufficiently complete. It covers the tool's purpose, defaults, and when to use an alternative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 74%, so the schema already documents most parameters. The description mentions defaults for onlyActive, noticeTypes, and sort, but these are already in the schema. No new parameter semantics beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
Specifically states it searches lots on oeffentlichevergabe.de with defaults (open lots, competition notice types, newest first). Clearly distinguishes from sibling search_tenders_raw by saying 'use for anything this does not cover'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines5/5Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides default behavior and references an alternative tool for cases not covered. This gives clear when-to-use guidance.
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 declare readOnlyHint=true and openWorldHint=true. The description aligns: it describes a read operation ('posts a query ... unchanged') and adds behavioral nuances not covered by annotations, such as: 'RANGE_DAYS n means field >= midnight Europe/Berlin of today + n days, not a window', 'Other fields answer HTTP 500' for ORDER, and operator operand constraints. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense paragraph. It front-loads the core action and then dumps operators and fields. While every sentence adds value, the lack of bullet points or breaks may hinder quick scanning. However, it is not verbose and efficiently packs necessary information. Could be slightly more structured but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness5/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters (0 required), nested objects, an output schema, and high complexity, the description covers query structure, operator semantics, field lists, FROM variations, ORDER limitations, and provides a reference to a full contract. It addresses pagination implicitly via PAGE parameter, and mentions error behavior for ORDER. No major gaps for a power-user tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters5/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, but the description adds substantial meaning beyond the input schema. It enumerates all operators with their operand requirements (e.g., 'Text and temporal operators take exactly one operand; IN and STARTS_WITH OR a list'), lists all field names on lots with examples (e.g., 'estimatedValue (''150000 EUR'')'), and clarifies constraints like RANGE_DAYS behavior. This compensates for schema gaps and aids correct parameter construction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose5/5Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Posts a WHERE/FROM/PAGE/ORDER query to /bkmk/searches unchanged.' It names the HTTP method (POST), the endpoint, the query structure, and lists operators and fields. This clearly distinguishes it from the sibling 'search_tenders' tool, which likely provides a simpler search interface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive operator and field listings, guiding the agent on how to construct queries. It also notes that the 'notices' FROM value has a smaller field set. However, it does not explicitly compare with the sibling 'search_tenders' to state when to use this raw DSL version versus a simpler alternative. Missing explicit when-not or alternatives, but the detail implies usage for complex filtering.
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
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/jocks-studio/vergabe-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server