Skip to main content
Glama

Official register document (AT + DE)

get_document
Read-only

Beispiel: „Den aktuellen Handelsregisterauszug der Siemens AG abrufen?“

On-demand official register document for ONE company, Austrian or German. Read-only.

    The two registers address a document differently, so the parameters differ by country —
    pass the shape that matches the id:

    **Germany** -- company_id + kind:
    - company_id: "DE:{court}_{type}{number}" (e.g. "DE:D2601_HRB135076"); a bare German id
      works too.
    - kind: "AD" = Aktueller Abdruck (current register extract, default), "CD" =
      Chronologischer Abdruck -- the official Handelsregister abstract PDF; or "JA" =
      Jahresabschluss -- the newest official annual financial statement as published by the
      Unternehmensregister (served as the official HTML document, no PDF exists at the
      source). AD/CD are fetched from handelsregister.de on demand (first call ~10 s, then
      cached); JA comes from the stored publication.

    **Austria** -- a FILING, because the Austrian register holds no abstract document type:
    its official document IS the annual filing, identified by its Stichtag.
    - document_ref: "{fnr}:{stichtag}" exactly as list_documents returns it (e.g.
      "118977t:2025-01-31"), or
    - company_id: "AT:{fnr}" (bare FNR accepted) for the company's LATEST filing.
    - kind does not apply and is ignored; a German kind with an Austrian id is an error that
      names list_documents instead.

    Returns a short-lived download link to the original artifact plus availability. When the
    register holds nothing for that kind/Stichtag, ``available`` is false with a ``note``
    (never a dead link). Both countries carry ``country`` and the prefixed ``company_id``.
    For the Austrian filing's extracted TEXT (Anhang, Lagebericht) use get_document_text.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "company_id": "<company_id>"
    },
    "name": "get_document"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNoAD
company_idYes
document_refNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / document_ref
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Document Ref"
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

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

Beyond the readOnlyHint=true annotation, it discloses real operational behavior: AD/CD are fetched from handelsregister.de on demand (~10 s first call, then cached), JA is served from the stored publication as HTML, and missing documents return available=false with a note rather than a dead link. These latency, caching, and failure-mode details are not derivable from the annotations.

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?

The country-split headers and bullet structure make a dense tool readable, and the read-only and return-link facts are front-loaded. The opening German 'Beispiel' quotation adds little and the AD/CD parentheticals are somewhat verbose, but no sentence is redundant with the schema.

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 three-parameter tool with no schema documentation, the description supplies formats, country branching, error routing, latency expectations, and availability semantics; an output schema already covers the return shape, so nothing essential is missing. The one omission is minor — whether document_ref overrides company_id when both are passed for Austria.

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?

With 0% schema description coverage, the description carries the full burden and largely does: it gives the company_id format ("DE:{court}_{type}{number}", bare German id, "AT:{fnr}"), enumerates kind values AD/CD/JA with meanings, and specifies document_ref as "{fnr}:{stichtag}". The only gap is that 'kind' being silently ignored for Austrian ids is stated but the interaction with a null document_ref default is not fully spelled out.

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 description states a specific verb and resource ('On-demand official register document for ONE company, Austrian or German') and immediately distinguishes itself from get_document_text (extracted text) and list_documents (which produces document_ref). An agent can tell exactly what artifact it gets back without opening 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?

It gives explicit when-to-use routing per country: Germany uses company_id + kind, Austria requires a filing (document_ref or AT company_id for the latest). It also names alternatives for adjacent needs — list_documents for valid refs, get_document_text for Austrian filing text — and states that a German kind with an Austrian id is an error.

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.