Skip to main content
Glama

Overfit — German tenders & procurement law

Firma finden (Registernummer, EUID, LEI, USt-IdNr.)

firma_finden
Read-onlyIdempotent

TEMPORARILY UNAVAILABLE: identifier resolution is being set up (expected from 2026-10-07); until then this tool answers status 'nicht_verfuegbar'. Meanwhile firma_profil, firma_status and firma_finanzen work only with a company_number_norm you already have (format {CourtLetter}{4digits}_{HRB|HRA|PR|GnR|VR}{Nummer}, e.g. 'K1101_HRB52093' = HRB 52093, Amtsgericht Hamburg). Court codes cannot be derived from city names, so a register number with court (e.g. 'HRB 52093 Hamburg') can be looked up again from 2026-10-07. Turns any identifier of a German company into its profile and its company_number_norm (the key the other firm tools take): register number with court ('HRB 12345 Hamburg', 'Amtsgericht Köln HRB 5604'), EUID ('DEK1101R.HRB52093'), LEI (20 characters), German VAT ID ('DE117663151') or MaStR actor ID ('ABR912345678901'). Returns the company profile and ready follow-up calls when the identifier is unique. When it is ambiguous (status 'conflict'), all candidates are listed; a match is never guessed. A bare 'HRB 12345' without the court finds nothing. Example questions (German users): 'Wer steckt hinter DEK1101R.HRB52093?', 'Finde die Firma mit USt-IdNr. DE117663151.', 'HRB 52093 Amtsgericht Köln — was ist das für eine Firma?'

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
artNoKennungsart — optional, wird automatisch erkannt wenn weggelassen. Angeben, wenn die automatische Erkennung nicht greift.
kennungYesFreie 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').

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover the read/idempotent safety profile, and the description adds substantially beyond that: the tool is temporarily unavailable until 2026-10-07 and returns status 'nicht_verfuegbar', ambiguous input yields status 'conflict' with all candidates listed, and a match is never guessed. This is exactly the operational context an agent cannot get 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The most important fact (temporary unavailability) is correctly front-loaded, but the text is long and repeats itself — the '{CourtLetter}{4digits}_{...}' example and the court-code rule surface more than once, and the K1101_HRB52093 example is restated.

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?

There is no output schema, yet the description explains the return surface: the company profile plus ready follow-up calls, the 'conflict' branch, and the 'nicht_verfuegbar' status. Nothing an agent needs to call this correctly is missing.

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 description coverage is 100%, so baseline is 3, but the description adds real semantic value: the accepted input formats per identifier type, the derived company_number_norm shape ('K1101_HRB52093' = HRB 52093, Amtsgericht Hamburg), and the rule that court codes cannot be inferred from city names.

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: 'Turns any identifier of a German company into its profile and its company_number_norm'. It explicitly positions itself relative to siblings firma_profil, firma_status and firma_finanzen, which the agent can distinguish without opening schemas.

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?

Gives explicit when-to-use context (any of five identifier kinds), states the prerequisite other tools need (company_number_norm format), and names concrete failure conditions ('A bare HRB 12345 without the court finds nothing', court codes cannot be derived from city names). Alternatives are named, not implied.

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