Zum Inhalt

MCP-Werkzeugkatalog

Expecto stellt seinen vollen Funktionsumfang als MCP-Server bereit, sodass ein KI-Assistent (Claude Desktop, Claude Code, Cursor oder ein eigener Client) die Plattform direkt steuern kann: Lieferanten onboarden, Verträge und Transformer aufbauen, Sessions ausführen und Ergebnisse prüfen. Diese Seite listet alle verfügbaren Werkzeuge, nach Domäne gruppiert.

Verbindung und Authentifizierung beschreibt der Entwickler-Quickstart (Abschnitt „Derselbe Ablauf über MCP"). Kurz gesagt: Richten Sie Ihren Client auf <EXPECTO_BASE_URL>/mcp/ und authentifizieren Sie sich mit demselben X-API-Key-Header wie bei der REST-API.

Den Katalog lesen

Die Beschreibungen unten sind Einzeiler. Ihr MCP-Client legt das vollständige Eingabeschema jedes Werkzeugs (Parameternamen, Typen, Pflichtfelder) per Introspektion offen — die meisten Clients zeigen es beim Inspizieren oder Aufrufen eines Werkzeugs an. Die Parameter in Klammern sind die Eingaben, die ein Werkzeug akzeptiert; welche davon Pflicht sind, hängt vom Werkzeug ab. Die entsprechende REST-Oberfläche ist interaktiv unter <EXPECTO_BASE_URL>/api/docs dokumentiert.

Alle Werkzeuge sind auf die Organisation hinter Ihrem API-Schlüssel beschränkt. Werkzeuge, die den Zustand verändern (create_*, update_*, delete_*, run_*, approve_*, …), erfordern die entsprechende Berechtigung des Schlüssels.

Identität & Health

Werkzeug Zweck
get_identity Liefert Principal, Organisation und effektive Berechtigungen hinter dem API-Schlüssel.
health Prüft Status und Version des MCP-Servers.

Projekte

Werkzeug Zweck
list_projects Projekte der Organisation auflisten (optionale Suche).
get_project Vollständige Projektdetails: Entities, Kataloge, Datenverträge, Empfänger und context_schema (erforderliche Session-Context-Skalare/-Tabellen, die vor dem Pipeline-Lauf gesetzt werden müssen).
get_project_instructions Betriebsanweisungen eines Projekts lesen (Markdown).
create_project Ein Projekt anlegen (Delivery Standard); optional das Export-output_format setzen.
update_project Projekteinstellungen ändern (Freigabemodus, Session-Erstellungsmodus, Blocking-Schwere, Export-output_format).
set_project_context_schema Das Session-Kontextschema des Projekts ersetzen (Skalare + Tabellen, je mit required / filled_by). Vorher mit get_project lesen, zusammenführen und das gesamte Ergebnis übergeben; integrationsbefüllte Felder mit filled_by: "integration" markieren.
update_project_instructions Betriebsanweisungen eines Projekts ersetzen.
delete_project Ein Projekt und alle zugehörigen Ressourcen löschen.
attach_entity_to_project Eine bestehende Entity unter einer semantischen Rolle anhängen.
detach_entity_from_project Eine Entity anhand ihres Rollennamens lösen.
attach_catalog_to_project Einen Katalog auf Organisationsebene an ein Projekt anhängen.
detach_catalog_from_project Einen Katalog auf Organisationsebene vom Projekt lösen.

Entities

Zielschemata samt zeilenbasierten Validierungsregeln.

Werkzeug Zweck
list_entities Entities (Zielschemata) der Organisation auflisten.
get_entity Entity-Details inklusive Schema und Validierungsregeln.
create_entity Eine neue Entity anlegen (organisations- oder projektbezogen).
update_entity Name oder Beschreibung einer Entity ändern.
delete_entity Eine Entity samt Schema/Regeln löschen.
set_entity_schema Das JSON-Schema einer Entity anlegen oder ersetzen.
get_entity_schema Die JSON-Schema-Definition einer Entity abrufen.
create_entity_rule Eine Validierungsregel auf einer Entity anlegen. message akzeptiert einen String oder ein mehrsprachiges Objekt ({"en": …, "de": …, "ru": …}, "en" erforderlich).
update_entity_rule Eine bestehende Validierungsregel ändern. message akzeptiert einen String oder ein mehrsprachiges Objekt.
delete_entity_rule Eine Validierungsregel von einer Entity löschen.

Datenverträge

Format-Vereinbarungen mit Lieferanten und ihre unveränderlichen Revisionen.

Werkzeug Zweck
list_data_contracts Datenverträge auflisten (Format-Vereinbarungen mit Lieferanten).
get_data_contract Vertragsdetails inklusive Revisionen und Quellen.
create_data_contract Einen neuen Datenvertrag anlegen (optional mit eigener external_id, eindeutig pro Organisation).
add_source_to_contract Eine Quelle (Rolle + Typ + Parsing-Konfiguration) zu einer Revision hinzufügen.
create_revision Eine neue Entwurfs-Revision auf einem bestehenden Vertrag anlegen.
activate_revision Eine Entwurfs-Revision aktivieren (mit valid_from-Periode).
update_data_contract Name, Beschreibung oder external_id eines Vertrags ändern (leerer String löscht den Wert; nutzbar in der v1-Session-Erstellung als data_contract: {"external_id": …}).
delete_data_contract Einen Vertrag samt allen Revisionen/Quellen löschen.

Transformer

Feld-Mappings von den Quellen eines Vertrags auf das Zielschema einer Entity.

Werkzeug Zweck
list_transformers Transformer eines Datenvertrags auflisten.
get_transformer Ein Transformer mit allen Feld-Mappings.
create_transformer Einen Transformer anlegen (Mappings vom Vertrag zur Entity; optionale rollenbezogene Zeilenfilter).
update_transformer_mappings Die Feld-Mappings eines Transformers ersetzen, optional auch die Zeilenfilter.
validate_transformer_expressions Alle Mapping-Ausdrücke (und Zeilenfilter) eines Transformers validieren.
preview_transformer_sql Das kompilierte DuckDB-SQL eines Transformers anzeigen.
delete_transformer Einen Transformer aus einem Datenvertrag löschen.

Zeilenfilter (row_filters_json). create_transformer und update_transformer_mappings akzeptieren optional eine Map {Rolle: Prädikat}. Jedes Prädikat ist ein boolescher DuckDB-SQL-Ausdruck; Eingabezeilen, für die er false ergibt, werden vor dem Mapping verworfen und erreichen weder die Entity-Daten noch Validierung, Abstimmung oder das Export-Paket. Damit lassen sich z. B. explizit nicht gemappte Konten aus der SAP-Ausgabe ausschließen, etwa {"postings": "\"Konto\" NOT IN (SELECT \"code\" FROM cat_kontenplan__provider WHERE \"mapping_type\" = 'ignore')"}. Beim Update lässt ein weggelassenes row_filters_json bestehende Filter unverändert; {} löscht sie. Die Anzahl verworfener Zeilen steht in der Transform-Zusammenfassung.

Kataloge

Referenzdatensätze (Kontenpläne, Code-Tabellen, Ausschlusslisten). Ein Katalog ist auf die Organisation, ein Projekt oder — über data_provider_id — einen einzelnen Lieferanten beschränkt.

Werkzeug Zweck
list_catalogs Kataloge auflisten. Filtern nach project_id oder nach data_provider_id für lieferantenbezogene Kataloge.
get_catalog_data Spalten und Zeilen eines Katalogs lesen (paginiert).
create_catalog Einen Katalog anlegen — organisationsweit, projektbezogen (project_id) oder lieferantenbezogen (data_provider_id).
update_catalog Name oder Beschreibung eines Katalogs ändern.
delete_catalog Einen Katalog samt Daten löschen.
import_catalog_data CSV/Excel in einen Katalog importieren (ersetzt bestehende Daten).
add_catalog_column Eine Spalte (mit Standardwert) anhängen, ohne neu zu importieren — bestehende Zeilen bleiben erhalten.
edit_catalog_cell Eine einzelne Zelle per Zeilenindex setzen, z. B. mapping_type = 'ignore' für ein Konto.

Datenlieferanten

Lieferanten, die Daten einreichen. Ein Lieferant erhält Zugriff auf ein Projekt, kann Mitglieds-Benutzerkonten haben und lieferantenbezogene Kataloge besitzen.

Werkzeug Zweck
list_data_providers Lieferanten (Data Provider) auflisten. Die zurückgegebene id dient als data_provider_id für lieferantenbezogene Kataloge.
get_data_provider Details eines einzelnen Lieferanten anhand der id.
create_data_provider Lieferant anlegen (name, optional external_id, language en/de/ru).
update_data_provider Umbenennen, external_id ändern, Nachrichten-language (en/de/ru) oder is_active setzen.
deactivate_data_provider Lieferant deaktivieren (Soft Delete — is_active = false).
list_provider_members Die einem Lieferanten zugeordneten Benutzerkonten auflisten.
add_provider_member Benutzer per user_id oder email mit einer role (contributor / manager) zuordnen; eine unbekannte E-Mail wird automatisch in die Organisation aufgenommen.
remove_provider_member Mitglied entfernen (per Mitglieds-id).
list_provider_access Projektzugriffe eines Lieferanten auflisten.
grant_provider_access Zugriff auf ein project_id gewähren (optional auf ein data_contract_id eingeschränkt).
revoke_provider_access Einen Zugriff entziehen (per Zugriffs-id).

Integrationen, Kontextquellen & ausgehende Bindungen

Verbindungen zu externen Systemen und die Projektkonfiguration darum herum. Der Adapter einer Verbindung deklariert Fähigkeiten: context (automatisches Befüllen des Session-Kontexts — BuiltAPI, PostgreSQL) und/oder outbound (Schreiben von Session-Ereignissen in die externe Plattform — Salesforce). Kontextquellen lassen den Aufrufer nur Abfrageparameter senden (z. B. Periode, Fondsnummer) — den Rest holt Expecto bei der Session-Erstellung selbst; ausgehende Bindungen übertragen Prüfergebnisse nach Abschluss eines Laufs.

Tool Zweck
list_connection_types Katalog der unterstützten Verbindungstypen: jeder Eintrag enthält die capabilities des Typs (context / outbound) und die Formular-Metadaten zum Anlegen einer Verbindung dieses Typs — base_url-Form, Credential-Form (einzelnes Token oder strukturierte Felder) und Config-Felder mit Pflicht-Markierung. Vor create_integration_connection aufrufen.
create_integration_connection Org-weite Verbindung anlegen (name, type = builtapi, postgres oder salesforce, base_url — eine API-URL, ein postgresql://-DSN oder die My-Domain-Instanz-URL von Salesforce, config_json — workspace_id bei BuiltAPI, api_version bei Salesforce, nur schreibbares credentials — ein Token-String oder {client_id, client_secret} für OAuth-Typen).
list_integration_connections Verbindungen auflisten; Antworten enthalten capabilities (context / outbound) und has_credentials, nie das Geheimnis.
update_integration_connection Umbenennen, Konfiguration ändern, Token rotieren (credentials) oder löschen (clear_credentials), is_active umschalten.
test_integration_connection Gespeicherte Verbindung (connection_id, hinterlegte Zugangsdaten) oder ungespeicherte Angaben mit einem günstigen authentifizierten Aufruf prüfen; liefert {ok, error_kind, message}.
delete_integration_connection Verbindung löschen; abgelehnt, solange Kontextquellen oder ausgehende Bindungen eines Projekts sie referenzieren.
set_project_context_sources Deklarieren, was geholt wird: Quellen mit BuiltAPI-Abfrage — records_search (Filter + Projektion) oder aggregation (Mongo-Pipeline mit $lookup) — oder PostgreSQL-sql-Abfrage (einzelnes read-only SELECT); {{ context.* }} / {{ session.* }}-Platzhalter — und der Kontexttabelle bzw. dem Skalar, den jede Quelle befüllt. BuiltAPI-Abfragen werden automatisch paginiert und holen alle Zeilen; das optionale take ist ein Gesamtzeilenlimit (1–100 000), keine Seitengröße. Ohne take schlägt ein Ergebnis über 100 000 Zeilen mit einem expliziten Fehler fehl, statt stillschweigend abgeschnitten zu werden.
get_project_context_sources Kontextquellen-Konfiguration des Projekts lesen.
test_context_source Abfrage einer Quelle mit Beispielwerten für Platzhalter probeweise ausführen; liefert eine Vorschau (Zeilenanzahl, Spalten, erste Zeilen) oder einen semantischen Fehler, ohne eine Session anzulegen.
fetch_session_context Automatischen Kontextabruf einer Session erneut ausführen (bis zur Bestätigung erlaubt); Ergebnis steht im context_fetch_report.
set_project_outbound_bindings Deklarieren, welche Session-Ereignisse wohin geschrieben werden: Bindungen mit einer outbound-fähigen Verbindung, events (z. B. session.checked, session.failed) und adapter­spezifischem mapping — für Salesforce: sobject + fields mit {{ … }}-Vorlagen über Envelope-Felder (session_id, run_id, health, …) und {{ context.* }}.
get_project_outbound_bindings Ausgehende Bindungen des Projekts lesen.

Integrationsbefüllte Felder im Kontextschema des Projekts mit filled_by: "integration" markieren, damit Aufrufer sie nicht liefern müssen; ein ausstehender oder fehlgeschlagener Abruf blockiert die Pipeline vor dem Parse mit verständlichen Gründen je Quelle.

Die Anleitungen je Plattform (Einrichtung auf Salesforce-Seite, Abfragearten, Limits, Fehlersemantik) stehen im Abschnitt Integrationen.

Webhooks

Ausgehende Webhooks für Session-Lifecycle-Ereignisse (Standard Webhooks-konform). Endpunkte sind org- oder projektbezogen; Signaturgeheimnisse werden einmalig angezeigt und Fernet-verschlüsselt gespeichert.

Tool Zweck
list_webhook_endpoints Webhook-Endpunkte der Organisation auflisten.
get_webhook_endpoint Details eines Endpunkts per id.
create_webhook_endpoint Endpunkt anlegen (url, event_types, optional project_id, optional Auth-Header). Secret nur mit reveal_secret=true.
update_webhook_endpoint URL, Ereignistypen, Aktiv-Status oder Auth-Header ändern.
delete_webhook_endpoint Endpunkt und seine Zustellungen löschen.
rotate_webhook_secret Signaturgeheimnis rotieren (mit reveal_secret=true einmalig sichtbar).
send_webhook_ping Synthetisches webhook.ping zur Verbindungsprüfung senden.
list_webhook_deliveries Zustellversuche auflisten — eines Endpunkts, einer Verbindung (connection_id) oder der ganzen Organisation; Bindungs-Zustellungen tragen connection_id / project_id / binding_name, eine erfolgreiche speichert die Referenz des angelegten Datensatzes.
get_webhook_delivery Details einer Zustellung inkl. Auszug der letzten Antwort.
replay_webhook_delivery Eine frühere Zustellung erneut senden — Endpunkt-Zustellungen mit dem ursprünglich signierten Body, Bindungs-Zustellungen über den Adapter.

Geschäftsregeln

Entitätsübergreifende Abstimmung und Prüfungen auf Projektebene (DuckDB-SQL / Ausdruck).

Werkzeug Zweck
list_business_rules Geschäftsregeln eines Projekts auflisten.
get_business_rule Eine bestimmte Geschäftsregel mit allen Details.
create_business_rule Eine Geschäftsregel anlegen (optional über applicable_when_sources gesteuert). message akzeptiert einen String oder ein mehrsprachiges Objekt ({"en": …, "de": …, "ru": …}, "en" erforderlich).
update_business_rule Eine Geschäftsregel ändern. message akzeptiert einen String oder ein mehrsprachiges Objekt.
delete_business_rule Eine Geschäftsregel aus einem Projekt löschen.

Sessions

Ein Liefervorgang: Dateien → Parsen → Transformieren → Validieren → Prüfen → Bestätigen → Freigeben → Export.

Werkzeug Zweck
list_sessions Sessions auflisten (Filter nach Projekt, Status, Health, Suche).
get_session Session-Details: Dateien (mit parse_validation_summary pro Datei), Transformer, Pipeline-Status sowie context_validation_errors und file_validation_errors.
create_session Eine Liefer-Session für Vertrag + Periode (+ Lieferant) anlegen.
upload_session_file Eine Datei zu einer Quellrolle hochladen.
run_session_pipeline Die vollständige Pipeline ausführen (Parsen → Transformieren → Validieren → Prüfen); liefert job_id (zum Statusabruf) und run_id — die stabile ID des angelegten Laufs (einer pro Ausführung, siehe GET /sessions/{id}/runs). Bei fehlgeschlagenem Pre-Flight-Gate werden error + details mit den fehlenden Kontextfeldern oder Quelldateien zurückgegeben. Eine Session mit health=blocked kann erneut gestartet werden (jeder Aufruf legt einen neuen Lauf an; blocked bleibt, bis der neue Lauf sauber durchläuft). Läuft der automatische Kontextabruf noch, wird sofort geparst (das technische Ergebnis wartet nicht auf den Kontext) und der Lauf wartet dann vor der Transformation — get_job_status zeigt run_status = waiting, waiting_for = context_fetch — und läuft von selbst weiter, sobald der Abruf abgeschlossen ist (gleiche run_id / job_id); ein fehlgeschlagener Abruf oder ein Warten über das Timeout hinaus schließt ihn als errors.
set_session_context Session-Kontextwerte setzen (Skalare und Tabellen).
get_session_parse_issues Parse-Validierungsfehler einer hochgeladenen Datei: summary-Zähler, groups nach (Prüfung, Spalte) mit Anzahl, Formathinweisen und Beispielzeilen sowie eine paginierte Rohliste issues. Einziger Weg, die vollständigen Parse-Fehler zu lesen — get_session liefert nur die Zusammenfassung.
get_session_violations Validierungsverletzungen eines Session-Transformers.
get_session_check_violations Verletzungen einer bestimmten Geschäftsregel-Prüfung.
confirm_session Eine geprüfte Session bestätigen (vom Einreicher geprüft).
approve_session Eine bestätigte Session freigeben (finale Freigabe vor Export).
reject_session Eine bestätigte Session ablehnen und zur Korrektur zurücksenden.
export_session Das Ausgabepaket einer Session als verfolgbaren Job exportieren; das Projekt muss ein Ausgabeformat konfiguriert haben.
add_session_comment Einen Kommentar zu einer Session hinzufügen.
list_session_comments Die Kommentare einer Session chronologisch auflisten.

Jobs

Asynchrone Arbeit (Pipeline-Läufe, Exporte, Importe) wird als Jobs verfolgt.

Werkzeug Zweck
get_job_status Status eines asynchronen Jobs (Pipeline-Lauf, Export, Import). Bei einem Pipeline-Job zusätzlich run_id, run_status und waiting_for (context_fetch, solange der Lauf auf den Kontextabruf wartet).
list_jobs Aktuelle asynchrone Jobs der Organisation.