Kamai MCP
offiziellBauplan-Mengenermittlung: PDF-Pläne in Räume, Wände, Türen, Fenster, Flächen und Stückzahlen umwandeln, mit interaktiven Plan- und Mengenansichten.
Was kann man mit Kamai MCP machen?
-
Projekte und Blaupausen durchsuchen — Bitten Sie darum, ein interaktives Panel Ihrer Bauprojekte und deren Blaupausen mit Bereitschaftsstatus über
view_projectsoderlist_blueprintszu sehen. -
Aufmaßmessungen prüfen — Fordern Sie eine sortierbare Tabelle der gemessenen Mengen (Räume, Wände, Türen, Fenster) aus einer Blaupause mit
view_takeoffoderlist_elementsan. -
Blaupausenelemente bearbeiten — Weisen Sie das Umbenennen, Neufärben oder Neuordnen von Elementen oder das Erstellen eines Legendenordners über
update_elements,move_elementsodercreate_folderan. -
Verarbeitete Pläne herunterladen — Erhalten Sie einen temporären PDF-Link einer Blaupause mit hervorgehobenen erkannten Elementen über
download_plan. -
Projekte und Aufträge verwalten — Erstellen oder benennen Sie Projekte um und sehen Sie sich Verarbeitungsaufträge an oder brechen Sie sie ab, über
create_project,update_project,list_jobsodercancel_job. -
Erweiterte Abfragen ausführen — Mit aktivierten Abfragetools können Sie Elemente nach Kategorie zählen, bestimmte Elemente finden oder Netto-Wandflächen berechnen, mit
count_elements,find_elementsodercalculate_wall_surface_area.
Gehosteter MCP-Server
npx add-mcp 'https://mcp.kamai.io/mcp'Installiert in Claude Code, Codex, Cursor und mehr
Dokumentation
kamai-mcp
Kamais MCP-Server: Tools und MCP-Apps-Widgets für Kamai-Bauplan-Projekte, Baupläne und Mengenermittlungen. Er läuft gegen Kamais MCP-API und validiert Zugriffstokens, die von Kamais OAuth-Autorisierungsserver ausgestellt werden. Er enthält keine Kamai-Geheimnisse.
Tools
| Tool | Funktion |
|---|---|
view_projects | Interaktives Panel der Projekte und Baupläne des Benutzers |
list_blueprints | Baupläne nach Projekt gruppiert, mit ihren IDs und ob sie bereit sind |
view_blueprint | Eine Bauplanseite mit ihren darauf gezeichneten Mengenermittlungsformen |
view_takeoff | Gemessene Mengenermittlungsmengen als sortierbare Tabelle |
list_elements | Zeilen pro Element (Räume, Wände, Türen, Fenster, Objekte) mit Umrissen |
list_folders | Die Legendenordner eines Bauplans |
download_plan | Ein PDF eines verarbeiteten Bauplans mit hervorgehobenen erkannten Elementen, als temporärer Download-Link |
update_elements, move_elements, create_folder | Elemente umbenennen, neu einfärben und neu ablegen; einen Ordner erstellen |
set_opening_height | Eine vom Benutzer angegebene Höhe oder ein Tür-/Fenster-Tag auf Wandflächen-Öffnungsstücken speichern |
create_project, update_project | Ein Projekt erstellen oder umbenennen |
list_jobs, get_job, cancel_job | Verarbeitungsaufträge eines Projekts |
view_upload | Upload-Panel für ein Bauplan-PDF |
ingest_blueprint_from_chat | Ein an eine ChatGPT-Nachricht angehängtes PDF importieren (nur ChatGPT) |
open_kamai | Die Kamai-App in einem Panel öffnen |
Mit KAMAI_QUERY_TOOLS=on (siehe unten):
| Tool | Funktion |
|---|---|
count_elements | Zählungen und Summen nach Kamai-Kategorie (Türen, Fenster, Wände, Nassräume …), gruppiert, in der Datenbank summiert |
find_elements | Einzelne Elemente mit Typ, Ordner, Tag, Anschlag und Maßen |
calculate_wall_surface_area | Netto-Wandfläche (Farbe oder Putz) von Räumen |
render_table | Ein Tabellenpanel, dessen Zeilen ihre Elemente auf dem Plan hervorheben |
set_scale | Den Zeichnungsmaßstab eines Bauplans festlegen |
list_blueprints akzeptiert auch include_inventory (mit einem project_id): was jeder
Bauplan enthält.
list_projects, get_project, get_blueprint, request_blueprint_upload,
finalize_blueprint_upload und mit den Abfragetools get_table_row_elements und
get_element_outlines sind nur für Apps: von den Widgets aufrufbar, nicht dem
Modell angezeigt.
Lokal mit Ihrem API-Schlüssel ausführen
Der schnellste Weg, diesen Server gegen Ihre eigenen Kamai-Daten auszuführen, ist der lokale Modus: Der Host startet den Server, kommuniziert über stdio mit ihm, und die Anmeldedaten sind ein persönlicher API-Schlüssel von Kamai (API-Schlüssel in der Kamai-App) statt OAuth.
bun install
bun run build:widgets
KAMAI_API_KEY=... MCP_API_BASE_URL=https://mcp-api.kamai.io bun run local
Claude Code:
claude mcp add --env KAMAI_API_KEY=... --env MCP_API_BASE_URL=https://mcp-api.kamai.io \
--transport stdio kamai -- bun /path/to/kamai-mcp/src/local.ts
Claude Desktop (claude_desktop_config.json):
{ "mcpServers": { "kamai": {
"command": "bun", "args": ["/path/to/kamai-mcp/src/local.ts"],
"env": { "KAMAI_API_KEY": "...", "MCP_API_BASE_URL": "https://mcp-api.kamai.io" } } } }
Der Schlüssel wird als Bearer für jeden API-Aufruf verwendet; die Tools laufen als Eigentümer des Schlüssels.
Fügen Sie KAMAI_QUERY_TOOLS=on zur Umgebung hinzu, um die Abfragetools zu nutzen.
Den HTTP-Server ausführen
bun install
cp .env.example .env
bun run dev
Die Werte in .env.example sind Platzhalter: Setzen Sie MCP_PUBLIC_URL und
MCP_AUTH_ISSUER auf Ihren Tunnel und auf einen erreichbaren Autorisierungsserver, bevor Sie
starten, sonst wird jede Anfrage mit invalid_token abgelehnt.
| Variable | Bedeutung |
|---|---|
PORT | Listen-Port, Standard 8006 |
MCP_PUBLIC_URL | Die URL, die Hosts aufrufen und um ein Token bitten (das resource in der Discovery); ein Tunnel, nicht localhost |
MCP_AUTH_ISSUER | Aussteller der Zugriffstokens, byteweise gegen das iss des Tokens abgeglichen |
MCP_AUTH_JWKS_URI | Optional. Standard ist {MCP_AUTH_ISSUER}/jwks.json |
MCP_API_BASE_URL | Kamai-MCP-API-Basis-URL, https://mcp-api.kamai.io. Auch die Audience, die ein Zugriffstoken tragen muss |
MCP_ACCEPTED_AUDIENCES | Optional, durch Kommas getrennte Audiences, für eine Umstellung. Standard ist MCP_API_BASE_URL |
KAMAI_API_KEY | Nur lokaler Modus: der persönliche API-Schlüssel, als den die Tools laufen |
KAMAI_APP_ORIGINS | Optional, durch Kommas getrennte zusätzliche Ursprünge, die open_kamai einbetten darf; der erste wird der Standard |
KAMAI_QUERY_TOOLS | on registriert die Abfragetools. https://mcp-api.kamai.io bedient sie; lassen Sie es aus, wenn Sie gegen eine API arbeiten, die /v1/vocabulary mit 404 beantwortet |
KAMAI_MCP_NO_INSTRUCTIONS | 1 lässt die Serveranweisungen weg, wie es claude.ai tut, um die Tool-Beschreibungen allein zu testen |
Die MCP-API und der Autorisierungsserver werden von Kamai betrieben, daher benötigt der Betrieb des
HTTP-Servers Ende-zu-Ende Zugriff auf beide. Ein MCP-Server ist nur wirklich testbar
gegen einen echten Host, und ein Host kann nur eine öffentliche HTTPS-URL erreichen, daher bedeutet
HTTP-Modus-Entwicklung, hinter einem Tunnel zu laufen und MCP_PUBLIC_URL darauf zu richten.
bun run dev erstellt zuerst die Widgets: Der Server bedient das erstellte HTML aus
dist/widgets/, nicht den React-Quellcode, also neu erstellen, nachdem Sie etwas unter
src/widgets/app/ geändert haben.
Die Widgets verwenden React, TypeScript, Vite, Tailwind CSS, DaisyUI und Lucide. Vite erzeugt eine eigenständige HTML-Ressource pro Widget, sodass nichts gehostet werden muss.
Lokale Builds erfordern Bun 1.3.3 und Node.js 22.12 oder neuer.
Layout
src/index.ts HTTP-Server, OAuth-geschützte Ressourcen-Metadaten, MCP-Transport
src/local.ts Stdio-Einstiegspunkt für den lokalen Modus (persönlicher API-Schlüssel)
src/auth.ts Bearer-Token-Überprüfung (RFC 9728-Challenges)
src/server.ts Tool- und Ressourcenregistrierung
src/api.ts Client für die Kamai-MCP-API
src/elements.ts list_elements-Paginierung, Filterung und Ergebnisbudgetierung
src/errors.ts Der Text, den ein fehlgeschlagener Tool-Aufruf dem Modell zeigt
src/query/ Abfragetools: Beschreibungen, Vokabular, Filter, Budgets, Vertrag
src/widgets/ Widget-Ressourcen, CSP-Metadaten und die React-Widget-Quellen
scripts/ Widget-Build (escaped &, damit Open WebUI die
Widgets einbetten kann); check-routes und check-vocabulary gegen eine Live-API
scripts/open-webui/
Open-WebUI-Helfer: ein open_kamai-Tool, ein Anzeigemodus-
Host-Skript, eine lokale Bridge-Demo
Datenschutz und Support
- Datenschutzrichtlinie: https://kamai.io/privacy-policy
- Support: https://kamai.io/support oder contact@kamai.io
Mitwirken
Siehe CONTRIBUTING.md. Sicherheitsprobleme gehen an die Adresse in SECURITY.md, nicht an den Issue-Tracker.
Lizenz
Apache-2.0. Urheberrecht 2026 Kamai Enterprises LTD.
Der Kamai-Name und das Logo sind Marken von Kamai Enterprises LTD und werden nicht von der Lizenz abgedeckt.