Skip to main content
Glama
lexdoudkin

handelsregister-mcp

by lexdoudkin

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
HANDELSREGISTER_OCRNoOCR for scanned PDFs: auto (only when the text layer is empty), always, or off.auto
HANDELSREGISTER_OCR_LANGNoTesseract language(s), e.g. deu+eng.deu
HANDELSREGISTER_DOWNLOAD_DIRNoWhere downloaded documents are written.system temp dir
HANDELSREGISTER_MAX_PER_HOURNoHourly request cap. Do not exceed the portal limit.60

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_companyA

Search the German commercial register (Handelsregister) for companies.

Args: keywords: Company name or search terms. Wildcards * and ? are supported. match: How keywords are matched — "all" (contains every keyword, default), "min" (contains at least one), or "exact" (exact company name). similar: Enable the portal's phonetic ("ähnlich lautende") matching to tolerate typos and spelling variants. max_results: Cap on returned rows (the portal page holds up to ~100).

Returns a dict with the query echo, a result count, the remaining hourly request budget, and results: a list of companies with name, court, register_number, state, status, historical names, and available_documents (the document types that can be passed to fetch_document).

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 found: false plus ranked suggestions so the caller can pick one.

fetch_documentA

Retrieve a register document/extract for a company and return its text.

Runs a search, picks result_index from the hits, then downloads the requested document type from that same portal session. Document types: AD - current extract CD - chronological extract HD - historical extract DK - filed documents register SI - structured XML data VÖ - announcements UT - holder data

Returns the local file path, content_type, size_bytes, and (for PDF/XML) extracted text. Document retrieval is the most fragile part of the portal flow; if it fails, the error explains what happened.

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 + fetch_filed_document (or get_shareholders) to download a specific one.

get_shareholdersA

Retrieve a company's shareholders (Gesellschafterliste) as a structured table.

Resolves the company name (exact → fuzzy → phonetic; returns suggestions if ambiguous), locates the filed shareholder list (newest by default, or which="oldest"), downloads it, and extracts rows of {shareholder, type, city, register, date_of_birth, shares, nominal_total_eur, percent}.

Extraction is deterministic and layered: a coordinate-aware table parser (handles complex/bilingual cap tables), then a text heuristic. method reports which engine produced the result. On confidence: "low" the server does not guess — it returns raw_text and the PDF path so the calling agent can extract the table itself.

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.

category is matched case-insensitively as a substring against the categories from list_filed_documents (e.g. "shareholders", "articles", "annual"). Returns the local path and extracted text; for shareholder lists it also parses the table.

rate_limit_statusA

Report the remaining handelsregister.de request budget for this hour.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lexdoudkin/handelsregister-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server