Fynvo Firmenverzeichnis
Server Details
Deutsche Unternehmen nach Leistung, Zertifikat und Umkreis finden, mit Quelle je Angabe.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools cover clearly distinct steps: search companies, fetch one company's full profile, and send an enquiry. The shared slug-from-search-result requirement is explicitly documented in each description, so the agent knows which tool produces the slug and which consumes it.
All three names follow the same German noun_verb pattern (firmen_suchen, firma_abrufen, anfrage_senden) with snake_case throughout. No mixing of conventions or languages in the identifiers.
Three tools is lean but matches the narrow purpose of a company directory: find, inspect, contact. It is on the thin side — no way to enumerate regions, legal forms or the fixed vocabulary except by probing with q — but each tool earns its place.
Search, full profile with provenance, and outreach form a coherent lifecycle for this domain. The main gap is that the fixed vocabularies for leistung and zertifikat can only be discovered indirectly via free-text search rather than listed explicitly, which the descriptions acknowledge as a workaround.
Available Tools
3 toolsanfrage_sendenAnfrage an eine FirmaAInspect
Schickt eine Anfrage an ein Unternehmen, im Auftrag des Nutzers. Nur benutzen, wenn der Nutzer das ausdrücklich will: die Anfrage geht an ein echtes Unternehmen. Die E-Mail-Adresse muss vom Nutzer kommen, nicht erfunden sein. Pflicht ist der Slug aus einem Suchtreffer, nicht der Firmenname. Required is the slug from a search result, not the company name.
Sends an enquiry to a company on behalf of the user. Only use when the user explicitly asks for it: the enquiry reaches a real company. The email address must come from the user, never be invented.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name des Absenders, freiwillig. Sender name, optional. | |
| slug | Yes | Der Slug der Firma. The slug of the company. | |
| Yes | Antwortadresse des Nutzers. The user's reply address. | ||
| firma | No | Unternehmen des Absenders, freiwillig. Sender company, optional. | |
| nachricht | Yes | Die Anfrage, 20 bis 5000 Zeichen. The enquiry, 20 to 5000 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true, but the description makes the real-world consequence concrete: the enquiry reaches an actual company, so mistakes are externally visible. It also discloses the anti-fabrication constraint on the email. It does not cover duplicate-send behavior or failure modes (e.g. invalid slug), which would complete the picture.
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 critical warning ('only when the user explicitly asks') is front-loaded in the first clause. The main waste is the full German-to-English duplication, which roughly doubles length for no additional information, though it is defensible for a bilingual tool surface.
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 five parameters, no output schema, and annotations that already flag the operation as non-readonly and open-world, the description supplies the missing safety context an agent needs before calling it. It stops short of describing what a successful or failed send returns, which is the only notable gap given there is no output schema.
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%, so the baseline is 3, but the description adds genuinely new semantics: the slug must originate from a search result rather than a company name, and the email must be supplied by the user. These are value/derivation constraints the schema's 'Der Slug der Firma' does not convey.
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 ('Schickt eine Anfrage an ein Unternehmen, im Auftrag des Nutzers') so the agent immediately knows this performs an outbound send. Siblings firma_abrufen and firmen_suchen are read operations and the difference is inferable, though no sibling is 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?
Gives an explicit precondition ('Nur benutzen, wenn der Nutzer das ausdrücklich will'), a hard data-source rule for the email ('muss vom Nutzer kommen, nicht erfunden sein'), and routes the slug requirement to a prior search ('der Slug aus einem Suchtreffer, nicht der Firmenname'). This effectively encodes the firmen_suchen -> anfrage_senden workflow without leaving it to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firma_abrufenProfil einer FirmaARead-onlyIdempotentInspect
Liefert das vollständige Profil eines Unternehmens: Adresse, Leistungen, Zertifikate, Registereintrag, Kontakt und zu jedem Feld die Herkunft der Angabe. Pflicht ist der Slug aus einem Suchtreffer, nicht der Firmenname. Required is the slug from a search result, not the company name.
Returns the full profile of a company including address, services, certificates, register entry, contact and the provenance of every field.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Der Slug aus einem Suchtreffer. The slug from a search result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered elsewhere. The description adds real value by promising per-field provenance of the data, which is a behavioral trait no annotation conveys. It says nothing about behavior on an unknown slug 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?
Content is front-loaded and short, but it is delivered twice (German and English), so a monolingual reader consumes duplicated sentences. The bilingual pattern is defensible for a German-market tool, yet it still costs tokens without adding 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?
With no output schema, the description usefully names the returned fields and their provenance. Combined with a fully documented single parameter and rich annotations, an agent has enough to call this correctly; only error/empty-result behavior is unaddressed.
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 the slug from a search result. The description's added contribution is the negative constraint ('nicht der Firmenname'), which is useful but marginal, so the 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?
Names a specific verb and resource ('Liefert das vollständige Profil eines Unternehmens') and enumerates the returned content (address, services, certificates, register entry, contact, provenance). The required-slug constraint implicitly separates it from the sibling firmen_suchen, though it never names that 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?
Gives a concrete prerequisite: the slug must come from a search result, not the company name. That steers the agent to call firmen_suchen first, but the routing is implied rather than stated as an explicit 'use X then Y' instruction, and there are no when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
firmen_suchenFirmen suchenARead-onlyIdempotentInspect
Sucht deutsche Unternehmen nach Leistung, Zertifikat, Region, Rechtsform, Betriebsgröße oder Freitext. Beantwortet Fragen wie "Wer fräst CNC-Teile aus Edelstahl im Raum Stuttgart und ist nach ISO 9001 zertifiziert?" oder "mittelständischer Fensterbauer in Bayern, seit mindestens zwanzig Jahren am Markt". Die Werte für leistung und zertifikat stammen aus einem festen Vokabular; ist der passende Slug unbekannt, zuerst ohne diese Filter mit q suchen und die Slugs aus den Treffern übernehmen. Ein Oberbegriff bei leistung trifft auch alle Leistungen darunter. groesse und besteht_jahre_min schließen Firmen aus, zu denen die Angabe fehlt; wer breit suchen will, lässt sie weg.
Searches German companies by service, certificate, region, legal form, size or free text. Values for leistung and zertifikat come from a fixed vocabulary; if the matching slug is unknown, search with q first and take the slugs from the results. A parent term in leistung also matches all services below it. groesse and besteht_jahre_min exclude companies without that figure.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Freitext über Firmenname und Kurzbeschreibung. Free text over company name and short description. | |
| plz | No | Fünf Ziffern für eine genaue Postleitzahl, zwei bis vier Ziffern für eine Region. Five digits for an exact postcode, two to four for a region. | |
| seite | No | Seitenzahl ab 1. Page number starting at 1. | |
| groesse | No | Betriebsgröße nach Beschäftigten: kleinst (1-9), klein (10-49), mittel (50-249), gross (ab 250). Firmen ohne Angabe bleiben draußen. Company size by headcount; companies without a figure are excluded. | |
| leistung | No | Slug einer Leistung oder eines Oberbegriffs, etwa "cnc-fraesen" oder "metallbearbeitung". Slug of a service or parent term. | |
| pro_seite | No | Treffer je Seite, Standard 20. Results per page, default 20. | |
| bundesland | No | Eines der sechzehn Bundesländer in amtlicher Schreibweise, etwa "Baden-Württemberg". One of the sixteen German federal states. | |
| rechtsform | No | Rechtsform des Unternehmens, etwa "GmbH" oder "GmbH & Co. KG". Legal form of the company. | |
| umkreis_km | No | Umkreis um plz in Kilometern. Braucht plz. Radius around plz in kilometres, requires plz. | |
| zertifikat | No | Slug eines Zertifikats, etwa "iso-9001" oder "iatf-16949". Slug of a certificate. | |
| besteht_jahre_min | No | Nur Firmen, die seit mindestens so vielen Jahren bestehen. Firmen ohne Gründungsjahr bleiben draußen. Only companies in business for at least this many years. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description correctly focuses on semantics the annotations cannot carry: fixed vocabularies for leistung and zertifikat, hierarchical parent-term expansion, and the non-obvious behavior that groesse and besteht_jahre_min silently exclude companies lacking that data. Pagination/return-shape behavior is left to the schema.
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 content is front-loaded and each German sentence earns its place, but the entire paragraph is then repeated in English, roughly doubling length with zero new information. Duplication is the main drag on an otherwise tight description.
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 an 11-parameter, zero-required, no-output-schema search tool, the description covers the two hardest parts (vocabulary discovery and exclusion side effects) and hints at result composition. Sorting, default result ordering and what a hit contains are not addressed, which keeps it short of complete.
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 100% schema coverage the baseline is 3, but the description adds genuine meaning beyond the schema: that leistung and zertifikat are closed-vocabulary slugs requiring a discovery step, and that a parent term in leistung matches all subordinate services. The data-loss behavior of two filters is also made explicit.
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 (suchen) and resource (deutsche Unternehmen) and enumerates the six filter dimensions, so an agent knows exactly what the tool retrieves. It does not explicitly contrast itself with firma_abrufen (single-company lookup) or anfrage_senden, 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?
Gives actionable strategy: if the leistung/zertifikat slug is unknown, search with q first and harvest slugs from results; parent terms broaden matches; dropping groesse and besteht_jahre_min widens the search. It provides no explicit when-not-to-use or named alternative, so it stops at 4.
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.
3 tool updates
- First observed
anfrage_senden - First observed
firma_abrufen - First observed
firmen_suchen
Related MCP Connectors
German public tenders and contract awards: search, deadlines, winners, market figures. Open data.
Local businesses across Germany (81 categories) near a postcode or coordinates, with opening status.
German public tenders (190k+) and procurement-law calculators with legal basis. Free, no sign-up.
Search and verify 360K+ business entities with trust scores and W3C credentials.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search a directory of AI agencies, consultancies, and automation providers across Germany, Austria, and Switzerland, returning verified business profiles with type, location, service areas, and review status. Also surfaces federal, EU, regional, and cantonal funding programs for digitalization and AI, including rates, deadlines, and official sources.MIT
- AlicenseAqualityBmaintenanceB2B company address data for the DACH region: search 6,400+ industry lists, check record counts and field coverage, get binding price quotes with a direct order link. Remote MCP server on Cloudflare Workers, no auth required.51MIT

Nefino MCP Serverofficial
AlicenseNot gradedqualityNot gradedmaintenanceProvides large language models with access to news and information about renewable energy projects in Germany, allowing filtering by location, topic (solar, wind, hydrogen), and date range.Apache 2.0- AlicenseAqualityCmaintenanceSearch for local businesses worldwide. Structured data optimized for AI agents. • Search Millions of businesses over 49 countries (Europe, Northamerica, Southamerica, Asia, Oceania) • Quality & demand scoring for every business • Ranking based on real user click-through data • No API key needed, free access • Rate limit: 500 requests/hour per IP61MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.