Ausschreibungsagenten Tender Search
Server Details
Search public procurement notices from 17 sources across Germany, the EU and the UK. Read-only.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- shufflethis/ausschreibungsagenten-mcp
- GitHub Stars
- 0
TDQS
Scored across 6 tools
Most tools have clearly distinct roles: statistics, full-text search, live filtered search, single-tender fetch, source status, and summarization. The only mild overlap is between fulltext_search and search_tenders, and between get_tender's optional AI summary and summarize_tender, but the descriptions provide enough distinction.
All names use lowercase snake_case, which is consistent, but the pattern is mixed: countries and source_status are nouns, fulltext_search is a compound noun, while get_tender, search_tenders, and summarize_tender are verb_noun. This is readable but not a uniform verb-first convention.
Six tools is well-scoped for a tender search domain: two search approaches, one fetch-by-id, one summary operation, one country statistics tool, and one source health check. Each tool earns its place without bloating the surface.
The server covers the core read-only workflow: searching, fetching, summarizing, and understanding coverage/source status. Minor gaps include no explicit pagination or listing mechanism beyond full-text/live search, but these are likely workable through the existing search tools.
Available Tools
6 toolscountriesCountriesARead-onlyIdempotentInspect
Stored notice count per buyer country (ISO alpha-3) across the whole index. Pass min_count to drop countries with only a handful of notices.
| Name | Required | Description | Default |
|---|---|---|---|
| min_count | No | Only return countries with at least this many stored notices. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, idempotentHint, and destructiveHint false, the description adds useful context: counts are stored, span the whole index, are grouped by ISO alpha-3 country, and respect a minimum-count threshold. It does not describe the output format, but this is a minor gap for such a simple aggregation.
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-load the core behavior and then explain the single parameter. There is no filler or repetition of the 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?
For a zero-required-parameter aggregation tool with rich annotations, the description is nearly complete: scope, grouping key, and filter behavior are all stated. The only notable omission is an explicit example of the returned data shape, which the absence of an output schema makes slightly more important.
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%: min_count is already documented as 'Only return countries with at least this many stored notices.' The description's 'drop countries with only a handful of notices' is a paraphrase rather than new parameter meaning, so it stays at the baseline.
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 clear resource (buyer countries by ISO alpha-3), a specific operation (stored notice count), and a scope (across the whole index). This unambiguously distinguishes it from search and detail-oriented siblings like fulltext_search and get_tender.
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 description establishes when this tool is appropriate: when a country-level aggregate of stored notices is needed. It also gives a specific usage instruction (pass min_count to filter low-count countries), but it does not explicitly state when not to use it or name an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fulltext_searchFulltext SearchBRead-onlyIdempotentInspect
Full-text search over stored tender titles, descriptions, and buyers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior, so the description carries a lower burden. It adds useful context by specifying which fields are searched, but it doesn't disclose result ordering, pagination, or matching semantics.
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?
The description is a single concise sentence with the verb and scope front-loaded. Every word earns its place and there is no redundant 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 simple read-only two-parameter tool this is close to adequate, but the lack of differentiation from search_tenders, absence of 'limit' behavior, and no result-format guidance (given no output schema) leave notable 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 description coverage is 0%, so the description must compensate, but it only indirectly implies that 'query' is the full-text search term. It says nothing about the 'limit' parameter or any query syntax.
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 ('search') and a concrete resource scope ('stored tender titles, descriptions, and buyers'), so an agent can understand what the tool does. However, it doesn't explicitly distinguish itself from the sibling tool 'search_tenders', which could easily overlap in purpose.
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 guidance on when to use fulltext_search versus search_tenders or any other sibling. The description states only the tool's function, not the conditions under which it is the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tenderGet TenderARead-onlyIdempotentInspect
Fetch one tender by its id (as returned by the search tools), optionally with a cached AI summary.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| summary_lang | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, setting a safe read baseline. The description adds valuable behavioral context by specifying the summary is 'cached' (not freshly generated) and that the id must come from the search tools. This goes beyond the structured fields, though it does not mention edge cases like id-not-found behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The core purpose (fetch by id) is front-loaded, and the optional summary behavior is appended concisely. Every phrase earns its place.
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 simple read-only lookup with two parameters and no output schema, the description covers the essential invocation details: which id to use and the optional summary. It could specify what the return payload contains, but 'Fetch one tender' reasonably implies tender details. Given the annotations and sibling context, an agent has enough to call this correctly.
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 0%, so the description must compensate. It adds meaning to 'id' by explaining it comes from search tools, which is helpful. For summary_lang, the description only says 'optionally with a cached AI summary' and does not explicitly tie the parameter to selecting the summary language; the enum alone carries the allowed values. This is adequate but not fully compensating for the missing schema descriptions.
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 uses a specific verb ('Fetch'), names a precise resource ('one tender'), and identifies how to select it ('by its id as returned by the search tools'). It also distinguishes itself from sibling search and summarize tools by noting the optional cached AI summary. This clearly separates it from fulltext_search, search_tenders, and summarize_tender.
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 'as returned by the search tools' gives important usage context: this tool is for retrieving a specific tender once the id is known, not for discovery. It also implies a distinction from summarize_tender by describing the summary as 'cached' rather than generated. However, it does not explicitly state when NOT to use it or mention any alternatives beyond the implied search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tendersSearch TendersBRead-onlyIdempotentInspect
Search live public tender previews. Filter by ISO alpha-3 country, CPV codes (full 8-digit codes match exactly, shorter numeric prefixes such as '45' match whole divisions), deadline window and contract value. summary_lang attaches cached AI summaries in that language.
| Name | Required | Description | Default |
|---|---|---|---|
| cpv | No | Comma-separated CPV codes or division prefixes, e.g. '45' or '72000000' | |
| limit | No | ||
| search | No | ||
| country | No | ISO alpha-3 buyer country, e.g. FRA | DEU |
| min_score | No | ||
| summary_lang | No | ||
| maximum_value_eur | No | ||
| minimum_value_eur | No | ||
| deadline_within_days | No |
TDQS
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 that 'summary_lang attaches cached AI summaries', which is a useful behavioral detail beyond annotations, but it doesn't describe response format, pagination, or any other runtime 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?
The description is two sentences, front-loading the primary purpose and then packing filter details efficiently. It avoids wordiness and gets to the point, though it could be slightly more structured by separating parameter explanations.
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, the description doesn't mention what the response contains or any pagination details, leaving a gap for a search tool with nine parameters. It covers input semantics well but is incomplete regarding return values and result handling.
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 only 22%, the description compensates by explaining key parameters: country format (ISO alpha-3), CPV matching rules (exact 8-digit or division prefixes), deadline window, and contract value bounds, plus the summary_lang parameter. However, it leaves search, limit, and min_score undocumented in both schema and description.
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 begins with 'Search live public tender previews', providing a clear verb and resource. It also lists specific filtering capabilities, making the core function unambiguous. However, it doesn't explicitly contrast with sibling tools like fulltext_search, so differentiation is only implicit.
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 description says nothing about when to use this tool versus alternatives such as fulltext_search or get_tender. No context about typical use cases, exclusions, or selection criteria is provided, leaving the agent to infer usage from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_statusSource StatusARead-onlyIdempotentInspect
Live status of connected procurement sources: implementation status, last successful poll and stored notice count. Honest coverage instead of claims. Pass source to check one portal instead of all.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Limit to one source key, e.g. 'ted', 'bund', 'doe'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds useful behavioral context by emphasizing 'live status', 'honest coverage instead of claims', and naming the specific status data points returned, going beyond the structured annotation hints.
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?
The description is brief and front-loads the core purpose before explaining the optional filtering behavior. The phrase 'Honest coverage instead of claims' is somewhat vague but does not bloat the description; overall it is tightly written.
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 present, the description adequately names the returned information types: implementation status, last successful poll, and stored notice count. Given the low complexity of one optional parameter and strong safety annotations, no critical information is missing.
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 schema already documents the single optional parameter with examples. The description reinforces and clarifies its behavior by explicitly stating that passing a source checks one portal instead of all, adding functional meaning beyond the schema definition.
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 clearly identifies the tool as providing live status information for procurement sources, listing specific output dimensions: implementation status, last successful poll, and stored notice count. It is clearly distinct from the sibling search and retrieval tools, though it does not use an explicit action verb.
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 description gives concrete guidance on using the optional source parameter to check a single portal instead of all portals. However, it does not explicitly state when this tool should be preferred over siblings or describe any exclusion cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
summarize_tenderSummarize TenderARead-onlyIdempotentInspect
Return the AI summary (title + max two sentences) of a tender in English or German. Labelled as AI-generated; the original notice prevails. Cached per tender and language; generating a NEW summary requires an API key (free tier is enough), anonymous callers get cached ones.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| lang | No | en |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description meaningfully extends the annotations by revealing concrete behavioral traits: summaries are labelled as AI-generated, the original notice takes precedence, results are cached per tender and language, and API-key requirements differ between generating new summaries and retrieving cached ones. This goes well beyond the readOnly/idempotent hints.
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?
The description is compact and front-loaded: the first sentence states exactly what the tool returns, and the following sentences add only essential behavioral and access details. Every sentence earns its place with no redundancy.
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?
Given the simple two-parameter interface and no output schema, the description provides enough for an agent to call the tool correctly: input language, return shape, caching behavior, and access-key nuance. Nothing critical appears missing.
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 0%, so the description must compensate. It does clarify 'lang' by mentioning English or German and hints that caching is per language, but it gives no additional detail about the 'id' parameter beyond the field name. Some meaning is added, but not enough to fully replace schema descriptions.
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 clearly states a specific verb ('Return') and resource ('AI summary of a tender'), adding output constraints like title plus max two sentences and language availability. It distinguishes the tool from full-text/search siblings by focusing on the summary rather than the tender itself, though it does not explicitly name or contrast any sibling.
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 context is implied by the description: call this tool when you want the AI-generated summary of a tender in English or German. However, it does not explicitly state when to choose this over get_tender or search_tenders, nor does it provide exclusions or alternative guidance.
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.
6 tool updates
- First observed
countries - First observed
fulltext_search - First observed
get_tender - First observed
search_tenders - First observed
source_status - First observed
summarize_tender
Related MCP Connectors
Search EU public tenders across TED and 8 national portals. Monitor, match, and analyse procurement.
Find, score and analyse German and EU public tenders; search docs; draft quotes.
Search EU TED procurement notices by CPV, country, keyword, value, or type.
Normalized search over public-sector tenders in TED (EU official procurement notices) -- Spain + EU
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables search and analysis of European public procurement tenders, including EU above-threshold (TED) and below-threshold from 11 national sources, with hybrid search and filtering.MIT
- AlicenseNot gradedqualityCmaintenanceAccess official German government public procurement tenders via MCP, with keyless access.5 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables searching and analyzing government tenders, contract awards, and pre-tender pipelines from 21 official sources, with tools for tender search, award intelligence, and detailed notice retrieval.MIT
- AlicenseNot gradedqualityBmaintenanceNeutral MCP server for researching public procurement notices from EU (TED) and German (DÖE) sources, offering tools to search, retrieve, and inspect notices without built-in business preferences.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.