MCP-Server von impressum.tech
Der MCP-Server läuft im API-Prozess unter POST /mcp (Transport Streamable HTTP, ohne Sitzung). Er nutzt dieselben
API-Schlüssel und dieselben Credits wie die REST-API. Produktiv: https://mcp.impressum.tech/mcp, lokal
http://localhost:3000/mcp.
Anmeldung
Jede Anfrage braucht Authorization: Bearer itk_live_… (oder itk_test_…, das nur das Gratiskontingent von 250 Credits
im Monat verbraucht). Ohne gültigen Schlüssel antwortet der Server mit 401. OAuth folgt erst, wenn Clients es verlangen.
Werkzeuge und Kosten
| Werkzeug | Eingaben | Credits |
|---|---|---|
search_companies | query, country?, city?, limit? (höchstens 10) | 1 je Aufruf |
get_company | genau eines von id, register (DE/F1103/HRB12345B, Gericht - bei AT/CH), vat, lei | 1 |
lookup_domain | domain, refresh? | 1; mit refresh zusätzlich 5 bei Fertigstellung des Abrufs |
get_company_changes | id, since? (ISO-Zeitpunkt) | 1 |
verify_vat | vat_id | 1 |
get_related_companies | id | 2 |
Abgebucht wird nur bei Erfolg; ein Werkzeugfehler (not_found, invalid_request, insufficient_credits) kostet nichts.
Antworten sind kompakt: Werte stehen direkt im Objekt, Quelle und Stand gesammelt unter sources
(z. B. "name": "crawl, 2026-10-05"). Personen erscheinen nur als Vertreter (Name und Rolle) bei Kapital- und
Personengesellschaften; eine Personensuche gibt es nicht.
Claude Code
claude mcp add --transport http impressum https://mcp.impressum.tech/mcp \
--header "Authorization: Bearer itk_live_…"
Danach in Claude Code zum Beispiel: „Welche Firma steht hinter muster-baustoffe.example?“ Claude ruft lookup_domain auf.
Prüfen mit claude mcp list.
Claude Desktop
Claude Desktop bindet entfernte Server über mcp-remote ein. In claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"impressum": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.impressum.tech/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer itk_live_…" }
}
}
}
Claude Desktop danach neu starten. In Plänen mit „Connectors“ geht auch: Einstellungen → Connectors → eigenen Connector
mit der URL hinzufügen; dort ist ein eigener Kopf aber nicht überall möglich, dann mcp-remote nehmen.
Cursor
.cursor/mcp.json im Projekt oder ~/.cursor/mcp.json:
{
"mcpServers": {
"impressum": {
"url": "https://mcp.impressum.tech/mcp",
"headers": { "Authorization": "Bearer itk_live_…" }
}
}
}
Prüfen mit dem MCP Inspector
npx @modelcontextprotocol/inspector
Transport „Streamable HTTP“, URL http://localhost:3000/mcp, Kopf Authorization: Bearer itk_test_….
Einen lokalen Schlüssel samt Testdaten erzeugt pnpm seed:dev.
Technik
apps/api/src/mcp/server.ts: je Anfrage einMcpServermit dem geprüften Schlüssel und einStreamableHTTPServerTransportmitsessionIdGenerator: undefinedund JSON-Antworten.GET/DELETE /mcp→ 405.- Abrechnung je Werkzeugaufruf über
reserveCredits/releaseCreditsaus@itk/billing; Nutzung landet alsusage_eventmitendpoint = 'mcp:<werkzeug>'. - Ratenlimits wie bei
/v1(je IP, je Schlüssel, Sperre nach vielen Fehltreffern). Schlüssellimit und 404-Sperre gelten je Werkzeugaufruf. JSON-RPC-Batches (Array im Body) lehnt der Server mit HTTP 400 und Code-32600ab: je Anfrage ein Aufruf.