MRVN DE Open Data MCP
Server Details
MRVN: German public tenders (oeffentlichevergabe.de) and MaStR energy units via your RapidAPI key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- MarvinSMX/mrvn-de-opendata-mcp
- GitHub Stars
- 0
TDQS
Scored across 12 tools
Each of the 12 tools has a clearly distinct purpose: get one item, search many, aggregate statistics, or check service health, with no overlap across the three datasets. The dataset prefix (ladesaeulen_, mastr_, tender_) further eliminates confusion between similar actions.
All tools use a consistent snake_case pattern of dataset_prefix + verb_noun (e.g., ladesaeulen_get_station, mastr_search_units). The only minor deviation is the health tools (e.g., ladesaeulen_health), which omit a verb, but the pattern remains predictable overall.
12 tools for three independent open-data domains, with exactly 4 complementary tools per domain (get, search, stats, health), is well-scoped and avoids redundancy. No tool feels superfluous or missing.
Each dataset offers core read-only operations: fetching a single record, searching/filtering, aggregating statistics, and service status. No CRUD is needed for open data, but an explicit list-all endpoint or documented pagination/bulk export could be a minor gap.
Available Tools
12 toolsladesaeulen_get_stationBInspect
Get one charging station by Ladeeinrichtungs-ID. [German EV charging stations (Ladesäulenregister, CC BY 4.0, Bundesnetzagentur.de)]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ladeeinrichtungs-ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Get' strongly implies a read-only, non-destructive operation, and the bracketed text discloses the data source and license (Ladesäulenregister, Bundesnetzagentur.de). It says nothing about authentication, not-found behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence plus a short attribution note; nothing is padded. The bracket annotation earns its place by naming the data provenance, though it slightly interrupts the core instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup this covers the essentials, but with no output schema the description should ideally hint at what the returned station record contains or how a missing ID is surfaced. 'Get one charging station' is minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'id' parameter is already documented as 'Ladeeinrichtungs-ID'. The description restates the same identifier concept rather than adding format, validation, or sourcing guidance (e.g., where the ID comes from), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('one charging station') and keys the lookup to the Ladeeinrichtungs-ID. The word 'one' implicitly separates it from ladesaeulen_search_stations, though the sibling is not named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by Ladeeinrichtungs-ID' phrasing implies a direct-ID lookup that follows a search, which is the natural usage pattern. However, there is no explicit statement of when to prefer this over ladesaeulen_search_stations or what happens when the ID is unknown.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ladesaeulen_get_statsCInspect
Aggregates by Bundesland, kW bucket, plug type and top operators. [German EV charging stations (Ladesäulenregister, CC BY 4.0, Bundesnetzagentur.de)]
| Name | Required | Description | Default |
|---|---|---|---|
| land | No | Optional Bundesland code filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses the grouping dimensions and the data source/license, but says nothing about the response shape, whether counts are absolute or proportional, cost, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the functional sentence comes first, with only a bracketed attribution trailing it. No wasted sentences, though the attribution is metadata rather than task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stats tool with no output schema, the description does list the aggregation dimensions, which is the essential output content. However, with no annotations it should do more to characterize behavior and output, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the single 'land' parameter is fully documented), so the baseline is 3. The description's mention of 'by Bundesland' loosely corroborates the filter's role but adds no syntax or accepted-code detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the aggregation dimensions (Bundesland, kW bucket, plug type, top operators) and identifies the data domain as German EV charging stations, which distinguishes it from siblings like search_stations and get_station. The verb is only implied by the name (get_stats) rather than stated, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all. The description never mentions the sibling search_stations or the conditions under which an agent should prefer getting aggregated statistics over searching individual stations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ladesaeulen_healthAInspect
Service status and data freshness (station count, data date, license). [German EV charging stations (Ladesäulenregister, CC BY 4.0, Bundesnetzagentur.de)]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; it discloses the returned content (station count, data date, license), which is genuinely useful behavior for an output-schema-less tool. It stops short of describing error/failure semantics or caching behavior, but for a health endpoint this is reasonably informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with an efficient parenthetical listing the returned fields, plus a compact attribution bracket. Every element earns its place; no padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema health tool, the description covers what the agent needs: the operation's purpose and the fields it yields. Attribution (license, source) is a bonus. Only the absence of failure/error context keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so by the rubric the baseline is 4. There is nothing for the description to compensate for, and the schema is trivially empty and fully covered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific purpose: service status and data freshness, and enumerates the concrete fields returned (station count, data date, license). It is clearly distinct from search/get siblings, though it doesn't explicitly say how it differs from the closest sibling ladesaeulen_get_stats.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the phrase 'service status and data freshness' signals a health-check use case, but there is no explicit when-to-use guidance or contrast with ladesaeulen_get_stats, which also exposes statistics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ladesaeulen_search_stationsAInspect
Search/filter German EV charging stations by PLZ, Bundesland, power (kW), fast/normal, plug type, operator, payment, city, radius around lat/lon, or bounding box. [German EV charging stations (Ladesäulenregister, CC BY 4.0, Bundesnetzagentur.de)]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free text over operator, name, city, street, PLZ, Kreis | |
| lat | No | Radius search center (with lon) | |
| lon | No | ||
| ort | No | City name (prefix match) | |
| plz | No | PLZ or prefix, e.g. 10115 or 80 | |
| bbox | No | minLon,minLat,maxLon,maxLat | |
| land | No | Comma-separated Bundesland codes (BW,BY,…) | |
| plug | No | Plug type substring: ccs, chademo, typ 2, mcs | |
| sort | No | ||
| type | No | ||
| limit | No | ||
| fields | No | ||
| max_kw | No | ||
| min_kw | No | ||
| offset | No | ||
| payment | No | Payment substring, e.g. kreditkarte, plug & charge, kostenlos | |
| operator | No | Operator substring, e.g. ionity, tesla, enbw | |
| open_24_7 | No | ||
| radius_km | No | ||
| commissioned_after | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses provenance and scope (Ladesäulenregister, CC BY 4.0, Bundesnetzagentur) but says nothing about read-only semantics, pagination behavior (limit/offset caps), or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences and zero filler; the operational facet list is front-loaded. The bracketed provenance note is reference metadata rather than operational guidance, which slightly dilutes an otherwise tight statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter tool with no annotations and no output schema, the description covers filter semantics well but omits pagination behavior, default/max result counts, and any hint of response structure. Adequate as a discovery surface, incomplete as a call guide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 45% across 20 params, so the description must compensate, and it largely does: it maps PLZ, Bundesland, power (kW), fast/normal, plug type, operator, payment, city, radius around lat/lon, and bounding box to their parameters, including the implicit lat/lon+radius coupling. It leaves sort, limit/offset pagination, open_24_7, and commissioned_after unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb ('Search/filter'), a specific resource ('German EV charging stations'), and enumerates the filterable dimensions. Within the ladesaeulen_* sibling set it is unmistakably the search entry point versus get_station/get_stats/health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The facet inventory implies the usage context (multi-criteria discovery over a register), but there is no explicit when-to-use, no when-not-to-use, and no routing to siblings such as ladesaeulen_get_station for a single known station. Usage must be inferred from the filter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mastr_get_statsBInspect
Aggregate counts by type, status and Bundesland over the current snapshot. [German MaStR energy units (DL-DE-BY-2.0, © Bundesnetzagentur)]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose that results are computed over the 'current snapshot' (useful temporal scope), but says nothing about permissions, rate limits, or the structure of what is returned. This is thin for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the operational content front-loaded; the bracketed license/attribution block is boilerplate but short. Nothing substantial is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should more fully describe what the aggregate response contains. It names the grouping dimensions but leaves the return shape and access requirements unclear, so it is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, and the description lists the aggregation dimensions (type, status, Bundesland), which gives useful semantic context even though there are no inputs to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb (aggregate counts) and resource (German MaStR energy units), plus the grouping dimensions (type, status, Bundesland). This clearly distinguishes it from siblings like mastr_search_units and mastr_get_unit, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for aggregate/summary views rather than individual unit lookups. There is no explicit when-to-use guidance, no exclusions, and no naming of sibling tools for contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mastr_get_unitBInspect
Get one unit by MaStR Einheit number (e.g. SEE…). [German MaStR energy units (DL-DE-BY-2.0, © Bundesnetzagentur)]
| Name | Required | Description | Default |
|---|---|---|---|
| mastr_id | Yes | MaStR Einheit number |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about return format, behavior when the ID is not found, permissions, or rate limits. 'Get' implies a read, but that is the only signal available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and resource in one compact sentence; nothing is redundant. The trailing license/attribution block is boilerplate but is required legal notice rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter lookup with no output schema and no annotations, the description covers the input adequately but omits any indication of what a successful response contains or how failures surface. Minimum viable for a simple getter, with a clear gap on return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is already documented as 'MaStR Einheit number'. The description adds the concrete format example 'e.g. SEE…', which gives the agent a usable pattern for constructing the ID value beyond what the schema supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one unit by MaStR Einheit number'), and the singular 'one unit' contrasts naturally with the sibling mastr_search_units. It does not name that sibling explicitly, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'by MaStR Einheit number' implies the precondition (you must already have the ID) and implicitly routes bulk discovery to mastr_search_units, but there is no explicit when-to-use or when-not-to-use statement or named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mastr_healthAInspect
Service status and data freshness (unit count, updated_at, license). [German MaStR energy units (DL-DE-BY-2.0, © Bundesnetzagentur)]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It does disclose the shape of the returned information (unit count, updated_at, license), which is valuable with no output schema, but says nothing about auth requirements, rate limits, or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence names the resource and the reported dimensions, followed by a short licensing attribution. No filler; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only endpoint with no output schema, the description covers both purpose and the key returned fields. The only omission is whether the call requires authentication or has rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there are no argument semantics to explain and the description correctly implies a no-argument invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and what it reports: service status plus data freshness dimensions (unit count, updated_at, license). The MaStR/energy-units framing distinguishes it from the tender_* siblings, though it never explicitly contrasts with mastr_get_stats or tender_health.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use statement or exclusion, but 'status and data freshness' implicitly signals a pre-flight/health-check role relative to the data-fetching siblings. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mastr_search_unitsCInspect
Search/filter MaStR energy units by PLZ, type, status, capacity (kW), Bundesland, or keyword. [German MaStR energy units (DL-DE-BY-2.0, © Bundesnetzagentur)]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keywords (all must match) | |
| plz | No | Exact PLZ or prefix | |
| land | No | Comma-separated Bundesland codes (BW,BY,…) | |
| sort | No | ||
| type | No | Comma-separated type slugs (solar, wind, …) or Energieträger substrings | |
| limit | No | ||
| fields | No | ||
| max_kw | No | ||
| min_kw | No | ||
| offset | No | ||
| status | No | Comma-separated Betriebsstatus substrings | |
| einheitentyp | No | Comma-separated numeric Einheitentyp codes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and it discloses almost nothing: no auth requirements, no rate limits, no note that limit caps at 100 and offset paginates, no indication of whether matching is case-insensitive or how the Energieträger substring match behaves. The license attribution is the only extra context supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the actionable content, and the second sentence is a legally required data attribution rather than filler. Nothing is wasted, though the facet list is dense in a way that slightly obscures the most important filters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter search tool with no annotations and no output schema, the description should say something about pagination, result size limits, sorting defaults, or the shape of results. None of that is present, leaving the agent to discover paging behavior through the schema's defaults alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 50% across 12 parameters, the description usefully maps human terms to the German/short parameter names (Bundesland→land, capacity→min_kw/max_kw, keyword→q), which the schema alone would not convey. However, it leaves sort, fields, limit, offset and einheitentyp entirely to the schema, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Search/filter MaStR energy units') and enumerates the filter facets, so an agent immediately distinguishes it from mastr_get_unit (single-unit retrieval) and mastr_get_stats (aggregates). It does not explicitly name those siblings, which keeps it just short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no stated alternatives — nothing tells the agent to prefer mastr_get_unit once it has an ID, or when a keyword search is the right entry point versus a filtered one. Usage is only implicitly inferable from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tender_get_noticeAInspect
Get one notice by notice id or OCID. [German public procurement (oeffentlichevergabe.de, CC0)]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Notice id or OCID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose useful context — the data source (oeffentlichevergabe.de) and CC0 licensing — which tells the agent this is public, freely reusable procurement data. However, it never explicitly declares the operation is read-only, nor does it describe lookup-failure behavior or whether id formats differ in handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tightly written sentence with the verb and scope front-loaded, plus a bracketed source/license note that genuinely earns its place for a regional procurement dataset. Zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with no output schema and no annotations, the description covers the essentials of invocation but says nothing about what a notice record contains or what fields come back. Adequate, not rich, given that no output schema exists to absorb that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single parameter is already documented as 'Notice id or OCID'. The description restates the same fact rather than adding format details, examples, or case-sensitivity rules. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get one notice') and two accepted identifier forms (notice id or OCID). It is implicitly distinguishable from tender_search_notices (singular retrieval vs. search), though the sibling is never named. Clear and unambiguous for an agent that already has an identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'by notice id or OCID' signals that the caller must already have an identifier, which contrasts with the sibling search tool. There is no explicit when-to-use statement, no mention of tender_search_notices as the alternative for discovery, and no guidance on what happens with an invalid ID.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tender_get_statsAInspect
Aggregate counts by type, category, Bundesland and CPV division over the current data window. [German public procurement (oeffentlichevergabe.de, CC0)]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral trait — results are scoped to the 'current data window' — but says nothing about freshness, caching, auth, or rate limits, and gives only partial hints about the returned aggregate structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the operation and its dimensions. The bracketed source/license tag is compact and informative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no annotations, and no output schema, the description nonetheless communicates what is aggregated and the scope of the aggregation. Only the shape/format of the returned counts remains unspecified, which is a minor gap for a stats read.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies; there is no parameter semantics to add. The listed dimensions are output facets rather than inputs, and the description correctly does not pretend otherwise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Aggregate counts') plus the exact dimensions aggregated (type, category, Bundesland, CPV division) and the domain tag '[German public procurement]'. That is enough to distinguish it from tender_search_notices and from the same-shaped mastr_get_stats, though the description never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no routing to the alternative (tender_search_notices). 'Over the current data window' hints at scope but gives no condition for picking this tool over a search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tender_healthBInspect
Service status and data freshness (notice count, data_window, updated_at). [German public procurement (oeffentlichevergabe.de, CC0)]
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully enumerates the returned signals (notice count, data_window, updated_at), which implies a non-destructive read, but it says nothing about cost, caching, rate limits, or failure behavior. Adequate but thin for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact clauses: the purpose statement is front-loaded and the bracketed provenance tag is short. The field list in parentheses is dense but earns its place by substituting for an absent output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description compensates by naming the exact fields returned, which is the critical information for this simple, parameterless endpoint. Only the trigger conditions and sibling relationship are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the rubric the baseline is 4. There are no parameters whose meaning the description needs to clarify.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (service status and data freshness) and lists the concrete return fields, so the agent knows this is the health/diagnostic endpoint for the tender service. It does not, however, distinguish itself from the structurally identical sibling mastr_health or from tender_get_stats, which could also report counts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of alternatives such as tender_get_stats vs tender_health. The invocation context (checking liveness/freshness) must be inferred entirely from the tool name and return-field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tender_search_noticesAInspect
Search/filter German public procurement notices by keyword, CPV, Bundesland, type, buyer, value, published date, or submission deadline. [German public procurement (oeffentlichevergabe.de, CC0)]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Keywords (all must match) | |
| to | No | ||
| cpv | No | Comma-separated CPV codes or prefixes | |
| from | No | ||
| land | No | Comma-separated Bundesland codes (BW,BY,…) | |
| sort | No | ||
| type | No | ||
| buyer | No | ||
| limit | No | ||
| fields | No | ||
| offset | No | ||
| category | No | ||
| end_after | No | Submission deadline on/after | |
| max_value | No | ||
| min_value | No | ||
| end_before | No | Submission deadline on/before | |
| postal_prefix | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the upstream source and CC0 license status, which is real added context, and 'search' implies a read-only operation. However, it says nothing about rate limits, pagination behavior (offset/limit), or result size caps, which matter for a 17-parameter query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the verb and resource; no filler. The bracketed provenance/license note earns its place as context, though the facet enumeration mildly restates schema property names.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 17-parameter tool with no annotations, no output schema, and 29% schema coverage, the description is thin: it does not describe what a result looks like, does not explain the full/compact 'fields' choice or pagination via limit/offset, and leaves several filters (sort, category, postal_prefix) unexplained anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, so the description must compensate. It does map the ambiguous parameters usefully (value -> min_value/max_value, published date -> from/to, submission deadline -> end_after/end_before), which the schema leaves undocumented. It adds nothing for sort, limit, offset, fields, category, or postal_prefix, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (search/filter) plus the exact resource (German public procurement notices) and enumerates the filterable facets, which naturally distinguishes it from tender_get_notice (single-record retrieval) and tender_get_stats. An agent can identify its role without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The facet list implies when the tool is useful (broad discovery of notices), but there is no explicit when-to-use/when-not guidance and no routing to siblings such as tender_get_notice for a known ID or tender_get_stats for aggregates. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Added
ladesaeulen_get_station - Added
ladesaeulen_get_stats - Added
ladesaeulen_health - Added
ladesaeulen_search_stations
8 tool updates
- First observed
mastr_get_stats - First observed
mastr_get_unit - First observed
mastr_health - First observed
mastr_search_units - First observed
tender_get_notice - First observed
tender_get_stats - First observed
tender_health - First observed
tender_search_notices
Related MCP Connectors
German public tenders as normalised JSON (CPV, NUTS, deadlines). Free sample; search paid via x402.
Search public procurement notices from 17 sources across Germany, the EU and the UK. Read-only.
Find, score and analyse German and EU public tenders; search docs; draft quotes.
German public tenders (190k+) and procurement-law calculators with legal basis. Free, no sign-up.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAccess official German government public procurement tenders via MCP, with keyless access.23 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving German public procurement notices as normalized JSON, with per-call payment via x402 (USDC on Base) and free sample and stats tools.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and retrieve German open data through a remote, stateless Streamable HTTP endpoint — public procurement notices, Marktstammdatenregister energy units, and Bundesnetzagentur EV charging stations — with keyword, location, technology, and capacity filters plus aggregate statistics and data-freshness checks.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search and retrieve public procurement notices from 17 sources across Germany, the EU, and the UK, with filtering by country, CPV code, deadline, and contract value, plus full tender details and source freshness checks.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.