Skip to main content
Glama

Overfit — German tenders & procurement law

Firma finden (Name oder Kennung)

find_company
Read-onlyIdempotent

Looks up a German company by its name or by an identifier and returns its profile and its company_number_norm, the key the other company tools take. Intended for requests where the user names a company ('Hornbach Baumarkt AG', optionally with the city in ort) or gives a register number with court ('HRB 12345 Hamburg', 'Amtsgericht Köln HRB 5604'), an EUID ('DEK1101R.HRB52093'), an LEI (20 characters), a German VAT ID ('DE117663151') or a MaStR actor ID ('ABR912345678901') and wants to know which company it is. Names match on the registered name; a name with its legal form (AG, GmbH, SE, KG …) is matched as given, a name without it is also tried with the common legal forms. When one company matches, the profile and ready follow-up calls are returned (by name: other close matches in weitere_treffer); when several match (status 'conflict' or 'candidates'), all candidates are listed with name, city and register status and none is picked. Limits: sole proprietorships (e.K.) are not found by name; a register number without the court (e.g. a bare 'HRB 12345') cannot be resolved. Example questions (German users): 'Gibt es die Hornbach Baumarkt AG noch?', 'Wer steckt hinter DEK1101R.HRB52093?', 'Finde die Firma mit USt-IdNr. DE117663151.'

Input Schema

NameRequiredDescriptionDefault
artNoKennungsart — optional, wird automatisch erkannt wenn weggelassen. Angeben, wenn die automatische Erkennung nicht greift.
ortNoOptional bei Namenssuche: Ort oder PLZ des Firmensitzes, grenzt gleichnamige Firmen ein ('München').
kennungYesFreie Eingabe: Firmenname ('Hornbach Baumarkt AG'), Registernummer mit Gericht ('HRB 12345 Hamburg', 'Amtsgericht Köln HRB 5604'), EUID ('DEK1101R.HRB52093'), LEI (20-stelliger ISO-17442-Code), USt-IdNr. ('DE117663151') oder MaStR-Akteur ('ABR912345678901').

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / art / enum
      Previous value: -[
      -  "register",
      -  "euid",
      -  "lei",
      -  "vat_de",
      -  "mastr_actor"
      -]New value: +[
      +  "name",
      +  "register",
      +  "euid",
      +  "lei",
      +  "vat_de",
      +  "mastr_actor"
      +]
    • changedInput schema / properties / kennung / description
      Previous value: -"Freie Eingabe: Registernummer mit Gericht ('HRB 12345 Hamburg', 'Amtsgericht Köln HRB 5604'), EUID ('DEK1101R.HRB52093'), LEI (20-stelliger ISO-17442-Code), USt-IdNr. ('DE117663151') oder MaStR-Akteur ('ABR912345678901')."New value: +"Freie Eingabe: Firmenname ('Hornbach Baumarkt AG'), Registernummer mit Gericht ('HRB 12345 Hamburg', 'Amtsgericht Köln HRB 5604'), EUID ('DEK1101R.HRB52093'), LEI (20-stelliger ISO-17442-Code), USt-IdNr. ('DE117663151') oder MaStR-Akteur ('ABR912345678901')."
    • addedInput schema / properties / ort
      Added value: +{
      +  "description": "Optional bei Namenssuche: Ort oder PLZ des Firmensitzes, grenzt gleichnamige Firmen ein ('München').",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations by disclosing outcome behavior: a single match returns the profile plus ready follow-up calls, near-misses land in weitere_treffer, and multiple matches yield status 'conflict'/'candidates' with no pick. Name-matching semantics (legal form given vs. inferred) and the deliberate no-auto-pick policy are behavior an agent cannot infer from structured fields.

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?

Front-loaded with purpose and the follow-up-key value proposition, then input forms, then matching behavior, then limits, then examples — a sensible order. It is dense and long, with some repetition between the input-form list and the example questions, but nearly every sentence carries actionable matching information for a six-identifier-type tool.

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?

With no output schema, the description carries the return burden and does: profile, company_number_norm, weitere_treffer, and candidate listings with name/city/register status. Combined with explicit limits on unresolvable inputs, an agent has everything needed to call it and interpret the result.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents kennung, ort and the art enum — baseline 3. The description adds real semantics on top: ort narrows same-named companies by city, and names without a legal form are retried with common legal forms, which explains matching behavior the schema does not.

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?

States a specific verb and resource ('looks up a German company by its name or by an identifier') and defines its unique role: it produces company_number_norm, the key the other company tools consume. That distinction separates it from get_company_profile/check_company_status in the sibling list without needing the 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?

Explicit about which user request shapes select this tool (naming a company, giving a register number with court, EUID, LEI, VAT ID, MaStR actor ID) and includes concrete German example questions. It also names two hard exclusions — sole proprietorships (e.K.) by name and register numbers without a court — which is exactly the when-not guidance most definitions lack.

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