Skip to main content
Glama

Search companies (AT + DE)

search_companies
Read-onlyIdempotent

Find companies across the Austrian Firmenbuch and the German Handelsregister - START HERE for any company lookup. Read-only.

    Parameters:
    - filters (optional): every field optional, AND-combined. Shared core (both
      countries): name (substring), query (MEANING-based hybrid search over the
      registered purpose - both countries), status (active|inactive|all, default all),
      legal_form, bundesland, city, postal_code (prefix; AT PLZ 4-digit, DE 5-digit),
      near {place | postal_code, radius_km} (radius search, matches from EVERY queried
      country within the radius - works across the border), nace_section (A-U; OENACE
      == WZ == NACE Rev. 2, so one industry code filters both countries), gegenstand
      (literal substring over the registered activity text), manager_name (person
      search), company_ids (prefixed watchlist, e.g. ["AT:123456a",
      "DE:D2601_HRB135076"], max 100), nace_division/group/class, founded_year_min/max,
      and the balance-sheet screens size_gkl (AT W/K/M/G or DE kleinst/klein/mittel/
      gross, translated per register), bilanzsumme_min/max, equity_ratio_min/max
      (fraction, 0.35 = 35 %), has_guv, growth_profile - in Germany these match only
      companies with a parsed Jahresabschluss (rollout per Bundesland, see
      get_coverage; a notice states the scope). AT-only today (see describe_fields
      capabilities): revenue/employees ranges, has_guv_latest, last_filing_year_min,
      gf_age_min, event_signal/since/until. DE-only: registergericht, capital_min/max
      (Stammkapital). Country aliases (geschaeftszweig, oenace_*, wz_section, fnrs,
      stammkapital_*) are accepted.
    - sort (optional): {field, descending}. AT fields: bilanzsumme (default), revenue,
      equity_ratio, employees, last_filing_year, revenue_growth_1y/3y/5y, distance.
      DE fields: name, register_nummer, capital, bilanzsumme, equity_ratio, revenue
      (financial sorts rank the companies with figures first). A country that cannot
      sort by the requested field returns its default order (reported in notices).
    - page (default 1), page_size (default 25).
    - after (optional): KEYSET paging for bulk extraction - single country only
      (cursors are per register). Pass "" to start, then the country's next_after
      from per_country.
    - exact_count (optional, default false): force exact totals (costs a full scan).
    - country (optional, default "all"): "AT" | "DE" | "all".

    Returns {countries, total: {AT, DE, combined}, results, per_country, notices}.
    ``results`` are compact cards, each with ``country`` and the prefixed
    ``company_id``; with country="all" the list is AT block then DE block - each
    country keeps its own ranking (no fake interleave). ``per_country`` carries each
    register's own envelope (exact totals or lower bounds, applied_filters,
    relaxations on zero hits, query_mode, next_after). A filter one country does not
    support excludes that country and says so in ``notices`` - it is never silently
    dropped; an unreachable backend appears in ``countries_unavailable`` instead of
    failing the call. Never report a German company's financials as zero - the German
    Jahresabschluss rollout is per Bundesland, so a company without figures has not
    been processed yet or files none (see get_coverage and
    financials.reporting_status in get_company_details).

    For one company's full profile use get_company_details; for a downloadable list
    use export_companies_csv; for dataset completeness use get_coverage.
    

Input Schema

NameRequiredDescriptionDefault
pageNo
sortNo
afterNo
countryNoall
filtersNo
page_sizeNo
exact_countNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / $defs / NearFilter
      Added value: +{
      +  "description": "Radius anchor: EXACTLY ONE of ``place`` (town name) or ``postal_code``.\nAT postal codes are 4 digits, DE 5 digits - in a cross-country query the postal-code\nanchor therefore pins the anchor country, but matches still come from every queried\ncountry within the radius.",
      +  "properties": {
      +    "place": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Place"
      +    },
      +    "postal_code": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Postal Code"
      +    },
      +    "radius_km": {
      +      "default": 25,
      +      "title": "Radius Km",
      +      "type": "number"
      +    }
      +  },
      +  "title": "NearFilter",
      +  "type": "object"
      +}
    • removedInput schema / $defs / SearchFilters
      Removed value: -{
      -  "properties": {
      -    "bilanzsumme_max": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Bilanzsumme Max"
      -    },
      -    "bilanzsumme_min": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Bilanzsumme Min"
      -    },
      -    "bundesland": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Bundesland"
      -    },
      -    "city": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "City"
      -    },
      -    "employees_max": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Employees Max"
      -    },
      -    "employees_min": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Employees Min"
      -    },
      -    "equity_ratio_max": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Equity Ratio Max"
      -    },
      -    "equity_ratio_min": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Equity Ratio Min"
      -    },
      -    "founded_year_max": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Founded Year Max"
      -    },
      -    "founded_year_min": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Founded Year Min"
      -    },
      -    "geschaeftszweig": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Geschaeftszweig"
      -    },
      -    "gf_age_min": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Gf Age Min"
      -    },
      -    "growth_profile": {
      -      "anyOf": [
      -        {
      -          "enum": [
      -            "shrinking",
      -            "stable",
      -            "growing",
      -            "fast_growing"
      -          ],
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Growth Profile"
      -    },
      -    "has_guv": {
      -      "anyOf": [
      -        {
      -          "type": "boolean"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Has Guv"
      -    },
      -    "has_guv_latest": {
      -      "anyOf": [
      -        {
      -          "type": "boolean"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Has Guv Latest"
      -    },
      -    "last_filing_year_min": {
      -      "anyOf": [
      -        {
      -          "type": "integer"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Last Filing Year Min"
      -    },
      -    "legal_form": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Legal Form"
      -    },
      -    "manager_name": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Manager Name"
      -    },
      -    "name": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Name"
      -    },
      -    "oenace_division": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Oenace Division"
      -    },
      -    "oenace_group": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Oenace Group"
      -    },
      -    "oenace_section": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Oenace Section"
      -    },
      -    "postal_code": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Postal Code"
      -    },
      -    "revenue_max": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Revenue Max"
      -    },
      -    "revenue_min": {
      -      "anyOf": [
      -        {
      -          "type": "number"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Revenue Min"
      -    },
      -    "size_gkl": {
      -      "anyOf": [
      -        {
      -          "enum": [
      -            "W",
      -            "K",
      -            "M",
      -            "G"
      -          ],
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Size Gkl"
      -    },
      -    "status": {
      -      "default": "all",
      -      "enum": [
      -        "active",
      -        "inactive",
      -        "all"
      -      ],
      -      "title": "Status",
      -      "type": "string"
      -    }
      -  },
      -  "title": "SearchFilters",
      -  "type": "object"
      -}
    • addedInput schema / $defs / Sort / description
      Added value: +"Sort request; fields are validated per country (see capabilities.SORT_FIELDS)."
    • addedInput schema / $defs / Sort / properties / field / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / $defs / Sort / properties / field / default
      Added value: +null
    • removedInput schema / $defs / Sort / properties / field / type
      Removed value: -"string"
    • removedInput schema / $defs / Sort / required
      Removed value: -[
      -  "field"
      -]
    • addedInput schema / $defs / UnifiedSearchFilters
      Added value: +{
      +  "description": "Every field optional, AND-combined. A filter a country does not support excludes\nthat country from a country=\"all\" fan-out (with an explicit notice); on an explicit\nsingle-country query it is rejected with the capability notice instead.",
      +  "properties": {
      +    "bilanzsumme_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bilanzsumme Max"
      +    },
      +    "bilanzsumme_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bilanzsumme Min"
      +    },
      +    "bundesland": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Bundesland"
      +    },
      +    "capital_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Capital Max"
      +    },
      +    "capital_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Capital Min"
      +    },
      +    "city": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "City"
      +    },
      +    "company_ids": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Company Ids"
      +    },
      +    "employees_max": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Employees Max"
      +    },
      +    "employees_min": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Employees Min"
      +    },
      +    "equity_ratio_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Equity Ratio Max"
      +    },
      +    "equity_ratio_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Equity Ratio Min"
      +    },
      +    "event_signal": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Event Signal"
      +    },
      +    "event_since": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Event Since"
      +    },
      +    "event_until": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Event Until"
      +    },
      +    "fnrs": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Fnrs"
      +    },
      +    "founded_year_max": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Founded Year Max"
      +    },
      +    "founded_year_min": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Founded Year Min"
      +    },
      +    "gegenstand": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Gegenstand"
      +    },
      +    "geschaeftszweig": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Geschaeftszweig"
      +    },
      +    "gf_age_min": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Gf Age Min"
      +    },
      +    "growth_profile": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "shrinking",
      +            "stable",
      +            "growing",
      +            "fast_growing"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Growth Profile"
      +    },
      +    "has_guv": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Has Guv"
      +    },
      +    "has_guv_latest": {
      +      "anyOf": [
      +        {
      +          "type": "boolean"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Has Guv Latest"
      +    },
      +    "last_filing_year_min": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Last Filing Year Min"
      +    },
      +    "legal_form": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Legal Form"
      +    },
      +    "manager_name": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Manager Name"
      +    },
      +    "nace_class": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Nace Class"
      +    },
      +    "nace_division": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Nace Division"
      +    },
      +    "nace_group": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Nace Group"
      +    },
      +    "nace_section": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Nace Section"
      +    },
      +    "name": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Name"
      +    },
      +    "near": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/NearFilter"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    },
      +    "oenace_class": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Oenace Class"
      +    },
      +    "oenace_division": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Oenace Division"
      +    },
      +    "oenace_group": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Oenace Group"
      +    },
      +    "oenace_section": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Oenace Section"
      +    },
      +    "postal_code": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Postal Code"
      +    },
      +    "query": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Query"
      +    },
      +    "registergericht": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Registergericht"
      +    },
      +    "revenue_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Revenue Max"
      +    },
      +    "revenue_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Revenue Min"
      +    },
      +    "size_gkl": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Size Gkl"
      +    },
      +    "stammkapital_max": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Stammkapital Max"
      +    },
      +    "stammkapital_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Stammkapital Min"
      +    },
      +    "status": {
      +      "default": "all",
      +      "enum": [
      +        "active",
      +        "inactive",
      +        "all"
      +      ],
      +      "title": "Status",
      +      "type": "string"
      +    },
      +    "wz_confidence_min": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Wz Confidence Min"
      +    },
      +    "wz_section": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Wz Section"
      +    }
      +  },
      +  "title": "UnifiedSearchFilters",
      +  "type": "object"
      +}
    • addedInput schema / properties / after
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "After"
      +}
    • addedInput schema / properties / country
      Added value: +{
      +  "default": "all",
      +  "title": "Country",
      +  "type": "string"
      +}
    • addedInput schema / properties / exact_count
      Added value: +{
      +  "default": false,
      +  "title": "Exact Count",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / filters / anyOf
      Previous value: -[
      -  {
      -    "$ref": "#/$defs/SearchFilters"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/UnifiedSearchFilters"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed6 schema fields changed
    • addedInput schema / $defs / SearchFilters / properties / city
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "City"
      +}
    • addedInput schema / $defs / SearchFilters / properties / geschaeftszweig
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Geschaeftszweig"
      +}
    • addedInput schema / $defs / SearchFilters / properties / oenace_division
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Oenace Division"
      +}
    • addedInput schema / $defs / SearchFilters / properties / oenace_group
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Oenace Group"
      +}
    • addedInput schema / $defs / SearchFilters / properties / oenace_section
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Oenace Section"
      +}
    • addedInput schema / $defs / SearchFilters / properties / postal_code
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Postal Code"
      +}
  3. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, so the description's extra value is in the operational caveats: a filter one country lacks excludes that country with a notice rather than failing, an unreachable backend lands in countries_unavailable, exact_count triggers a full scan, and keyset cursors are per-register (single country only). It also warns not to treat missing German financials as zero and points to the per-Bundesland rollout. Slightly dense but genuinely additive.

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 the 'START HERE' cue are front-loaded, then parameters, then returns, then sibling routing — a sensible order. It is long and occasionally dense (the filters run-on lists many fields in one sentence), but nearly every clause carries information that the empty schema does not; the sizing is defensible.

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?

Complete for a high-complexity, zero-required-parameter fan-out search: country semantics, filter combinations, paging modes, cost of exact_count, response envelope shape (countries, total, results, per_country, notices), and caveats on partial German coverage are all present. It explains return fields despite an output schema existing, which in this case is helpful rather than redundant.

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

Parameters5/5

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

Schema property coverage is 0%, so the description must carry the full burden and largely does: substring vs. meaning-based hybrid semantics for name/query, postal-code prefix conventions (AT 4-digit / DE 5-digit), NACE/OENACE/WZ equivalence across countries, company_ids prefix format and max 100, per-country valid sort fields with default fallback, and page/page_size/after/country/exact_count defaults. An agent can construct a correct call from the description alone.

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 (find companies across the Austrian Firmenbuch and German Handelsregister) plus an explicit routing cue ('START HERE for any company lookup'). Clearly separable from siblings like get_company_details, export_companies_csv, and get_coverage.

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?

Names the alternatives and the condition that selects each: get_company_details for one company's full profile, export_companies_csv for a downloadable list, get_coverage for dataset completeness. It also tells the agent when to use keyset paging (bulk extraction) versus offset paging.

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.