Skip to main content
Glama

Overfit — German tenders & procurement law

Ausschreibungen semantisch suchen

vergabe_suche
Read-onlyIdempotent

Semantic search over German and EU public tenders: returns notices ranked by how well they match a natural-language description (German or English), each with AI summary, submission deadline, contracting authority, place, CPV/NUTS codes, the stable uid and the numeric notice_id. Coverage: 190,000+ notices in the Overfit database (30,000+ open), collected every day from EU TED, federal, state and municipal portals; the semantic index covers 100,000+ notices. Publications newer than the index are found by vergabe_liste (order_by=publication_desc). Suited to requests by topic, keyword or industry. Structured filter queries without a topic description are the job of vergabe_liste. The same tender is often published on several portals (e.g. Vergabe-Hub DE 'bkm:…' and EU TED 'ted:…') and then appears once per portal with different uids; hits with the same title, contracting authority and deadline are one tender. Limits: ~10 semantic queries per day per IP (afterwards 429 with Retry-After; vergabe_liste with the q parameter offers keyword search under a separate limit). Key filter parameters: Bundesland, status, cpv, nuts, deadline_after/before, notice_type.

Example user questions: "Welche offenen Ausschreibungen gibt es für IT-Dienstleistungen in Schleswig-Holstein?"; "Suche Vergaben für Gebäudereinigung mit Frist nach Oktober 2026"; "Finde Bekanntmachungen für Straßenbau in Bayern"; "Gibt es aktuelle Ausschreibungen im Bereich Softwareentwicklung?"; "Zeig mir laufende Vergabeverfahren für medizinische Geräte"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
qYesNatural-language search query (German preferred), 1–500 chars.
cpvNoCPV code(s) to filter (OR logic). Repeat the param for multiple codes, e.g. cpv=72000000&cpv=72500000. Full 8-digit codes.
nutsNoNUTS region code(s) to filter (OR logic). Repeat for multiple. E.g. nuts=DEF (Schleswig-Holstein), nuts=DE21H (Landkreis München).
top_kNoNumber of results to return (1–50). Max 25 per call via MCP.
sourceNoRestrict to a specific source portal. bkm = Vergabe-Hub DE (national), ted = Vergabe-Europa (EU TED), bund = Vergabe-Bund (service.bund.de), bescha = Beschaffungsamt, fraunhofer = Fraunhofer, kommune = municipal.
statusNoFilter by notice status. Multiple values are supported by repeating the param. No default — all statuses included unless specified.
bundeslandNoExact German federal state name, e.g. 'Bayern', 'Schleswig-Holstein', 'Mecklenburg-Vorpommern'. Case-sensitive.
notice_typeNoFilter by EU notice form type. Repeat for multiple. InvitationToTender = active tender; ContractAward = already awarded.
include_deadNoInclude notices whose original portal URL is unreachable (dead/soft_dead).
deadline_afterNoInclude only notices with submission_deadline >= this ISO date.
assistant_readyNotrue = only notices where the document assistant is usable (open tender, deadline not expired, procurement documents on storage).
deadline_beforeNoInclude only notices with submission_deadline <= this ISO date.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, openWorld, non-destructive), and the description adds genuinely non-obvious behaviour: rate limits per IP with the exact error semantics, and the cross-portal duplication quirk (same tender appears once per portal with different uids; same title+authority+deadline means one tender). That dedup rule materially changes how an agent should interpret results.

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?

Purpose and routing are front-loaded in the first two sentences, and the coverage/limit/dedup details each carry operational weight. It is long, though: the 'Key filter parameters' enumeration duplicates the schema and the five example questions are repetitive, so a little trimming would help.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema, the description compensates well by enumerating the returned fields and by explaining index coverage versus source coverage (190k+ notices vs 100k+ indexed), the update cadence, and deduplication. Nothing an agent needs to issue a correct call and interpret results is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so all 12 parameters (including enum values and repeat-for-OR semantics) are already documented. The description only re-lists 'key filter parameters' (Bundesland, status, cpv, nuts, deadline_after/before, notice_type), which is redundant rather than additive; 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 opening sentence gives a specific verb (semantic search) and resource (German and EU public tenders), then lists exactly what is returned (ranked notices with AI summary, deadline, authority, CPV/NUTS, uid, notice_id). It explicitly names the sibling vergabe_liste as the tool for non-semantic, filter-only queries, so an agent can discriminate without opening a schema.

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?

Routes the agent explicitly: topic/keyword/industry requests go here, 'structured filter queries without a topic description' go to vergabe_liste, and just-published notices newer than the index are found via vergabe_liste (order_by=publication_desc). It also documents the rate-limit escape hatch (vergabe_liste's q parameter) and states the ~10 queries/day/IP cap with 429/Retry-After behaviour.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources