KI-Werkzeuge über MCP anbinden
Nutzen Sie die Integrations-API von BatteryPass aus Claude Code, Cursor, VS Code und anderen MCP-Clients mit einem API-Schlüssel Ihrer Organisation.
BatteryPass betreibt einen Model-Context-Protocol-Server (MCP) unter https://<Ihr BatteryPass-Host>/mcp. Ein
KI-Werkzeug, das MCP spricht, verbindet sich mit einem API-Schlüssel Ihrer Organisation und erhält für jede
Operation der Integrations-API ein Werkzeug (Tool): Es kann Batteriemodelle, Einheiten, Werte und deren
Vollständigkeit abfragen, Pässe und ihre Versionen lesen, dem Änderungsfeed folgen, BatteryPass-JSON, PDFs und
QR-Codes exportieren und, mit der passenden Berechtigung, Zustandsdaten und Lebenszyklusereignisse melden oder
Tabellenimporte zuordnen und prüfen.
Nutzen Sie ihn, wenn ein Assistent Fragen zu Ihren Daten beantworten soll („Bei welchen Einheiten von Modell X fehlen noch Angaben?“) oder Zustandsmeldungen für Sie vorbereiten und senden soll. Für zeitgesteuerte Integrationen ohne Aufsicht rufen Sie die REST-API direkt auf; die Werkzeuge sind dieselben Operationen.
Der MCP-Server gehört zu jeder BatteryPass-Installation und braucht keinen zusätzlichen Dienst. Er nutzt den
Transport „Streamable HTTP“ (zustandslos, Protokollversion 2026-07-28; ältere Clients mit dem
initialize-Handshake funktionieren ebenfalls).
Bevor Sie beginnen
API-Schlüssel erstellen
Ein Eigentümer Ihrer Organisation öffnet Einstellungen → API-Schlüssel und erstellt einen Schlüssel für genau
dieses Werkzeug. Wählen Sie die Berechtigungen, die das Werkzeug braucht: read zum Lesen, condition zum
Melden von Zustandsdaten und Lebenszyklusereignissen, import zum Zuordnen, Prüfen und Lesen von
Tabellenimporten. Die Seite zeigt auch die folgenden Konfigurationen mit der Adresse Ihres Servers.
Schlüssel als Umgebungsvariable bereitstellen
Der Schlüssel wird nur einmal angezeigt: Bewahren Sie ihn in Ihrem Passwortmanager auf. Die Konfigurationen
unten lesen ihn beim Start des Werkzeugs aus der Umgebungsvariable BATTERYPASS_API_KEY. Setzen Sie die Variable
in der Umgebung, aus der Ihr Werkzeug startet, zum Beispiel in der aktuellen Shell:
export BATTERYPASS_API_KEY="bp_live_…"Server im Werkzeug eintragen
Folgen Sie unten dem Reiter Ihres Werkzeugs und lassen Sie sich danach die BatteryPass-Werkzeuge auflisten.
Werkzeug einrichten
Tragen Sie den Server in die Projektdatei .mcp.json ein. Claude Code ersetzt ${BATTERYPASS_API_KEY} bei jedem
Start aus der Umgebung; so steht der Schlüssel weder in dieser Datei noch in der Konfiguration von Claude Code,
und Sie können die Datei mit Ihrem Team teilen:
{
"mcpServers": {
"batterypass": {
"type": "http",
"url": "https://passport.example.com/mcp",
"headers": { "Authorization": "Bearer ${BATTERYPASS_API_KEY}" }
}
}
}Um den Server stattdessen für Ihren Benutzer in allen Projekten einzutragen, nutzen Sie die Kommandozeile mit
--scope user (ohne diese Angabe gilt der Server nur für das aktuelle Projekt auf Ihrem Rechner):
claude mcp add --transport http --scope user batterypass https://passport.example.com/mcp \
--header "Authorization: Bearer bp_live_…"Die Kommandozeile speichert den Header samt Schlüssel im Klartext in der Konfiguration von Claude Code
(~/.claude.json), und Ihre Shell behält den Befehl womöglich im Verlauf. $BATTERYPASS_API_KEY im Befehl
ändert daran nichts: Die Shell ersetzt die Variable, bevor Claude Code sie sieht (und PowerShell braucht
$env:BATTERYPASS_API_KEY). Nutzen Sie .mcp.json, damit der Schlüssel in keiner Datei steht.
Prüfen Sie die Verbindung mit claude mcp list oder mit /mcp in Claude Code.
Connectoren in claude.ai, Claude Desktop und ChatGPT, die sich nur per OAuth anmelden können, lassen sich noch nicht
verbinden: Der MCP-Server akzeptiert ausschließlich API-Schlüssel. Nutzen Sie stattdessen Claude Code, Cursor,
VS Code oder mcp-remote.
Die Werkzeuge
Jede Operation der veröffentlichten Integrations-API ist ein Werkzeug, außer dem Datei-Upload createImport. Sein
Name ist die operationId der Operation in snake_case: Aus listBatteryModels in der API-Referenz wird das Werkzeug
list_battery_models. Die Argumente eines Werkzeugs sind die Pfad- und Query-Parameter der Operation unter ihren
Namen und der JSON-Body unter body; die Beschreibungen stammen aus der API-Referenz und nennen die nötige
Berechtigung.
| Berechtigung | Werkzeuge |
|---|---|
read | Katalog: list_battery_models, get_battery_model, list_model_versions, get_model_version, list_batteries, get_battery, export_units, list_facilities |
read | Werte und Vollständigkeit: list_model_version_values, list_model_version_value_history, get_model_version_completeness, list_battery_values, list_battery_value_history, get_battery_completeness |
read | Pässe: get_passport, list_passport_versions, get_passport_version, get_passport_version_diff, export_passport_json, export_passport_pdf, get_passport_qr, get_registry_submission_status |
read | Lebenszyklus, Dokumente und Register: list_lifecycle_events, get_condition, list_evidence, get_evidence, download_evidence, get_registry_info, get_registry_schema, get_registry_status |
read | Änderungsfeed: list_changes |
condition | update_condition (gemessene Zustandsdaten melden), create_lifecycle_event |
import | list_imports, get_import, update_import_mapping, validate_import |
| keine (öffentlich) | get_public_passport, get_public_passport_version, get_public_passport_by_product_id, verify_passport, download_public_passport_document |
Ein Werkzeug sieht nur die Daten der Organisation, der der Schlüssel gehört, genau wie eine REST-Anfrage mit diesem Schlüssel. Ihr Werkzeug listet nur die Werkzeuge der Berechtigungen des Schlüssels auf; öffentliche Passabfragen stehen jedem Schlüssel zur Verfügung.
Ein Werkzeug kann keine Datei übertragen. Eine Tabelle laden Sie daher mit demselben Schlüssel über REST mit
createImport hoch; danach ordnet der Assistent den Import mit den
Werkzeugen zu und prüft ihn (Einheiten aus der Fertigung).
Das Übernehmen des Imports und das Freigeben seiner Werte bleiben bei Mitgliedern im Portal.
So kommen Ergebnisse zurück:
- JSON-Antworten kommen als Text und als strukturierter Inhalt.
- Listen liefern eine Seite. Die Beschreibungen bitten den Assistenten, ein kleines
limitzu übergeben und mitcursorgleichnext_cursorerneut abzufragen, bis esnullist. - Dateien (PDF, QR-Codes als PNG oder SVG, Tabellen, Dokumente) kommen bis 1 MiB als eingebettete Ressource. Größere
Dateien scheitern mit
result_too_large; laden Sie sie dann mit dem Schlüssel über REST herunter. - Ein Fehler der API ist ein Werkzeugfehler mit
code,title,detail, den Feldfehlernerrorsund derrequest_iddes Problems, zum Beispielnot_foundodervalidation_error. Argumente, die nicht zum Schema des Werkzeugs passen, scheitern mitinvalid_arguments, bevor etwas gesendet wird.
Schreibend sind nur die beiden condition-Werkzeuge sowie update_import_mapping und validate_import. Sie stehen
in Ihrem Audit-Log mit dem Schlüssel als Akteur und dem Vermerk channel: mcp. Nach einer Zustandsmeldung kann ein
veröffentlichter Pass je nach Einstellung Ihrer Organisation sofort neu veröffentlicht werden. Lassen Sie Ihr
Werkzeug vor dem Aufruf nachfragen.
Sicherheit
- Ein Schlüssel je Werkzeug und Person. So sehen Sie im Audit-Log, wer gehandelt hat, und widerrufen ein Werkzeug, ohne die anderen zu berühren.
- So wenig Berechtigungen wie möglich. Geben Sie
conditionnur Werkzeugen, die Messwerte melden müssen, undimportnur Werkzeugen, die Importe vorbereiten; einread-Schlüssel kann nichts ändern. - Widerrufen Sie einen Schlüssel auf der Seite API-Schlüssel, sobald ein Werkzeug oder Laptop nicht mehr genutzt wird. Der Widerruf wirkt sofort.
- Ergebnisse sind Daten, keine Anweisungen. Werte, Notizen und Dokumente in BatteryPass stammen von Ihrem Team, Ihren Lieferanten und Servicepartnern. Der Server weist den Assistenten an, sie als Daten zu behandeln; prüfen Sie trotzdem, was ein Assistent schreiben will.
- Legen Sie einen Schlüssel nie in ein Repository, eine URL oder eine Chatnachricht. Die Konfigurationsdateien oben
lesen ihn aus der Umgebung; nur der Befehl
claude mcp addund die Konfiguration vonmcp-remoteenthalten ihn im Klartext.
Fehlerbehebung
| Antwort | Ursache und Abhilfe |
|---|---|
401 unauthenticated | Kein Schlüssel, ein vertippter oder ein widerrufener Schlüssel: Die Antwort ist in allen drei Fällen gleich. Prüfen Sie, ob die Umgebungsvariable in der Umgebung gesetzt ist, aus der das Werkzeug startet, und ob der Header Authorization: Bearer bp_live_… lautet. |
403 forbidden beim Verbinden | Ein Client im Browser auf einem anderen Web-Origin hat einen Origin-Header gesendet. Browser-Clients auf anderen Origins werden nicht unterstützt; nutzen Sie einen Desktop-Client oder die Brücke mcp-remote. |
400 mit dem JSON-RPC-Fehler -32600 | Der Client hat einen Batch gesendet (mehrere Nachrichten in einer Anfrage). Senden Sie eine Nachricht je Anfrage; aktuelle Clients tun das. |
Werkzeugfehler 403 forbidden | Das Werkzeug braucht eine Berechtigung, die Ihr Schlüssel nicht hat, zum Beispiel condition. Erstellen Sie einen Schlüssel mit dieser Berechtigung. |
405 method not allowed | Etwas hat ein GET (oder DELETE) an /mcp gesendet. Der Server beantwortet nur POST; aktualisieren Sie den Client oder wählen Sie den Transport Streamable HTTP (--transport http). |
404 not found | Die Adresse ist falsch, oder der Administrator hat MCP abgeschaltet (MCP_ENABLED=false). |
429 rate_limited oder Werkzeugfehler rate_limited | Alle Schlüssel Ihrer Organisation zusammen dürfen 600 Anfragen pro Minute stellen, und jeder Werkzeugaufruf zählt doppelt (die MCP-Anfrage und die API-Anfrage, die er auslöst). Warten Sie die Sekunden aus Retry-After ab (retry_after_seconds in Werkzeugfehlern). Wiederholt falsche Schlüssel von einer Adresse sind auf 30 Versuche in 15 Minuten begrenzt. |