Skip to main content
Glama
fat-operator

mcp-austrian-firmenbuch

by fat-operator

mcp-austrian-firmenbuch

MCP server exposing the Austrian Firmenbuch (Austrian Business Register / Company Register) via the official BMJ FBW-WebServices (HVD) SOAP API, as High Value Datasets under Commission Implementing Regulation (EU) 2023/138.

Implemented against the official interface specification FBW-WebServices (HVD) Schnittstellenbeschreibung, Version 1.3 (22.05.2025).

Requirements

  • Python 3.10+

  • mcp>=1,<2 (FastMCP API)

  • A valid JustizOnline IWG API token (see below)

Related MCP server: Brreg MCP Server

API key — how to request one

The API is free of charge, but every call (including the WSDL) requires a token. To obtain one:

  1. You need an ID Austria account.

  2. Log in to JustizOnline with your ID Austria.

  3. Go to Information on the Reuse of Information (IWG) and click the tile "Antrag auf Informationsweiterverwendung" ("Application for information reuse") — direct link: https://justizonline.gv.at/jop/web/iwg/register

  4. Apply for the API "Company data in accordance with Annex 5 of Commission Implementing Regulation (EU) 2023/138 … (High Value Datasets (HVD) of the Business Register)" (internal code FBW). The application is decided by the Federal Ministry of Justice (BMJ).

  5. Once approved, your token appears on JustizOnline under your profile, tab "Informationsweiterverwendung" ("Information Reuse").

Set the token as FIRMENBUCH_API_KEY in your environment (or a repo-local .env — see .env.example). The server sends it as the X-API-KEY request header on every SOAP call.

Setup

python3 -m venv .venv && source .venv/bin/activate
pip install "mcp>=1,<2"
cp .env.example .env   # put your token into .env

Note (this workspace): builder/repos/ sits on a filesystem that rejects symlinks, so in-repo venvs cannot be created. Use uv venv /opt/hermes/.local/opt/mcp-firmenbuch-venv + uv pip install --python /opt/hermes/.local/opt/mcp-firmenbuch-venv/bin/python -e . instead; tests run with that interpreter.

Run

python server.py            # stdio MCP server
python server.py --http     # or HTTP streamable on :8000/mcp

MCP client registration (stdio)

{
  "mcpServers": {
    "firmenbuch": {
      "command": "python",
      "args": ["/path/to/mcp-austrian-firmenbuch/server.py"],
      "env": { "FIRMENBUCH_API_KEY": "<your-token>" }
    }
  }
}

Tools

Tool

Description

firmenbuch_suche_firma

Search companies by name (firmenwortlaut), optional filters: court, legal form, legal quality, municipality number

firmenbuch_auszug

Company extract (v2) by Firmenbuchnummer; optional stichtag date and umfang (Kurzinformation/Vollinformation)

firmenbuch_suche_urkunde

List filed documents for a Firmenbuchnummer or an Aktenzeichen (az) — the WSDL xs:choice allows exactly one of the two per request

firmenbuch_urkunde

Fetch a document by its KEY (returns base64 content + metadata)

firmenbuch_veraenderungen_firma

Register changes for companies in a date range (VON/BIS, max 7 days per request), optional court/legal-form filter

firmenbuch_veraenderungen_urkunde

Filed-document changes in a date range (VON/BIS, max 7 days per request)

firmenbuch_wertetabellen

Fetch code/value tables (courts FBHG, legal forms FBFORM, document types FBDOKT/FBURKT, municipalities FBORT, ...). Undocumented in spec v1.3 but part of the live WSDL; requires a token scope that covers it — otherwise the service returns "Zugriff nicht erlaubt!"

Identifiers

  • Firmenbuchnummer (FNR): up to 6 digits plus a check letter, e.g. 419999x or 58468 h (spaces are tolerated).

  • Urkunde KEY: e.g. 304188_0070711322495_000___000_30_7730290_XML (returned by suche_urkunde / veraenderungen_urkunde).

Technical notes

  • Endpoint: https://justizonline.gv.at/jop/api/at.gv.justiz.fbw/ws

  • WSDL: https://justizonline.gv.at/jop/api/at.gv.justiz.fbw/ws/fbw.wsdl (also key-protected)

  • SOAP 1.2 (Content-Type: application/soap+xml;charset=UTF-8), header X-API-KEY

  • Rate limiting: HTTP 429 Too Many Requests when exceeded — the server surfaces this as a clear error instead of retry-storming.

  • SOAP faults inside HTTP 5xx error bodies are decoded and surfaced with their German reason text (e.g. "Der Zeitraum darf 7 Tage nicht überschreiten" for veraenderungen ranges > 7 days, "Zugriff nicht erlaubt!" when the token's HVD scope does not cover an operation).

  • All tools accept the raw XML string in the response body (raw=True) if you need fields this server does not parse out.

Data license / terms: use under the JustizOnline IWG terms of use (https://justizonline.gv.at/jop/web/iwg/terms). Cite the source (BMJ Firmenbuch) when republishing.

Tests

python -m pytest -q

Unit tests cover XML envelope building and response parsing against fixtures derived from the official spec examples — no live API access needed.

License

Licensed under the Apache License, Version 2.0 — see LICENSE.

Not affiliated with the BMJ / JustizOnline / the Austrian Commercial Register. The Firmenbuch data obtained through this server is not covered by this license: users are responsible for complying with the JustizOnline IWG terms of use (https://justizonline.gv.at/jop/web/iwg/terms) when consuming or republishing register data. Each user brings their own API token.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables comprehensive access to the Norwegian Business Registry API for querying company information, board members, subsidiaries, organizational data, and voluntary organizations. Provides real-time access to over 1 million registered Norwegian entities with detailed corporate structure and governance data.
    15
    5
    8
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables interaction with the Norwegian Business Registry (Brønnøysundregistrene) API to search and retrieve detailed information about Norwegian companies, subunits, roles, organization forms, municipalities, and NACE industry codes.
    18
    5
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides access to the Swiss Federal Commercial Register (Zefix) for company search, verification, and reference data, enabling natural language queries for public administration use cases.
    9
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to search and retrieve structured data from the German Commercial Register, including company details, filed documents, and shareholder lists.
    7
    1
    Apache 2.0