handelsregister-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HANDELSREGISTER_OCR | No | OCR for scanned PDFs: auto (only when the text layer is empty), always, or off. | auto |
| HANDELSREGISTER_OCR_LANG | No | Tesseract language(s), e.g. deu+eng. | deu |
| HANDELSREGISTER_DOWNLOAD_DIR | No | Where downloaded documents are written. | system temp dir |
| HANDELSREGISTER_MAX_PER_HOUR | No | Hourly request cap. Do not exceed the portal limit. | 60 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_companyA | Search the German commercial register (Handelsregister) for companies. Args:
keywords: Company name or search terms. Wildcards Returns a dict with the query echo, a result count, the remaining hourly request
budget, and |
| get_companyA | Look up a company by name and return the best match — or suggestions. Tries an exact match first, then falls back to fuzzy + phonetic search. If the
name is precise enough it returns the company; if it's ambiguous or only close,
it returns |
| fetch_documentA | Retrieve a register document/extract for a company and return its text. Runs a search, picks Returns the local file |
| list_filed_documentsB | List the documents filed for a company in the DK document register. Returns the filed documents grouped by category — e.g. "List of shareholders",
"Articles of Association / Rules / Statute", "Annual accounts / balance sheet" —
each with the available dated entries. Use the category + |
| get_shareholdersA | Retrieve a company's shareholders (Gesellschafterliste) as a structured table. Resolves the company name (exact → fuzzy → phonetic; returns Extraction is deterministic and layered: a coordinate-aware table parser (handles
complex/bilingual cap tables), then a text heuristic. Shareholders are NOT in the register extract for a GmbH/UG — this filed list is the authoritative source. |
| fetch_filed_documentA | Download a filed document of a given category from the DK document register.
|
| rate_limit_statusA | Report the remaining handelsregister.de request budget for this hour. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool has a distinct purpose: search_company for searching, get_company for best-match lookup, fetch_document for general extracts, fetch_filed_document for specific filed documents, list_filed_documents for categories, get_shareholders for structured shareholder data, and rate_limit_status for budget info. No two tools do the same thing.
Most tools follow a verb_noun pattern (fetch_, get_, list_, search_). The naming is all lowercase with underscores, but rate_limit_status is a noun_noun_noun exception. Overall consistent and readable.
7 tools cover the German commercial register domain well: search, company details, multiple document retrieval types, filed document listing and download, and rate limit monitoring. The count feels well-scoped without unnecessary tools.
The tool set covers all major read operations: searching for companies, retrieving current/historical extracts, filed documents (including shareholder lists with structured output). No obvious gaps like missing document types or inability to fetch by register number.