MCP-API-Referenz

Vollständige Referenz für die Metapad MCP-API — 15 Tools zum Abfragen und Bearbeiten von Modellen aus externen KI-Tools.

MCP-Tools über HTTP aufrufen

Wie Sie Metapads MCP-Tools direkt aus Skripten, curl oder CI-Pipelines aufrufen — ohne den Umweg über Claude Desktop oder einen anderen MCP-Client.

get_agent_detailsMCP

Liefert vollständige Details zu Agenten anhand ihrer ID, einschließlich der Basiswerte der Eigenschaften, gruppiert nach Parametersatz (Eigenschaftsnamen werden aus dem Knotentyp des Agenten aufgelöst).

create_parameter_setMCP

Erstellt einen Parametersatz innerhalb eines Twins – ein benanntes Bündel von Eingabewert-Überschreibungen auf einer zu den Szenarien orthogonalen Achse. Einen stabilen Namen in Kleinbuchstaben verwenden (z. B. „high_demand“). Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

update_simulation_diagramMCP

Aktualisiert Name und/oder Beschreibung eines Simulationsdiagramms. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

list_linksMCP

Listet die Verbindungen auf – die Verknüpfungen zwischen Agenten innerhalb eines Szenarios (das Simulations-Gegenstück zu Beziehungen). Liefert die Endpunkte mit aufgelösten Agentenbezeichnungen sowie die Eigenschaftswerte der Verbindung. Filterbar nach Szenario, Beziehungstyp oder Endpunkt.

update_parameter_setMCP

Aktualisiert Name und/oder Beschreibung eines Parametersatzes. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

delete_simulation_diagramMCP

Löscht ein Simulationsdiagramm samt seinen Platzierungen und Widgets. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

list_simulation_diagramsMCP

Listet die Simulationsdiagramme auf – die visuellen Arbeitsflächen für ein Szenario oder einen Twin, die Agenten, Verbindungen und Dashboard-Widgets zeigen. Filterbar nach Twin oder Szenario.

delete_parameter_setMCP

Löscht einen Parametersatz samt seinen Überschreibungswerten und Zeitreihen. Der Standard-Parametersatz eines Twins kann nicht gelöscht werden. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

get_time_seriesMCP

Liest Zeitreihenwerte: den Wert einer Agenten-Eigenschaft zu jedem Zeitschritt, für ein Szenario und einen Parametersatz. Dies sind die Tabellendaten der Simulation. scenario_id ist erforderlich; parameter_set_id weglassen, um über alle Parametersätze hinweg zu lesen.

create_agentMCP

Erstellt eine Agenteninstanz in einem Szenario. node_type_id (der Typ des Agenten) ist erforderlich und legt sein Eigenschafts- und Verhaltensschema fest. Basiswerte von Eigenschaften können über Name oder ID angegeben werden und beziehen sich auf den angegebenen (oder den Standard-) Parametersatz des Twins. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

set_time_series_valueMCP

Setzt eine einzelne Zelle der Simulationstabelle: den Wert einer Agenten-Eigenschaft zu einem bestimmten Zeitschritt, in einem Szenario und Parametersatz. property_id kann ein Eigenschaftsname oder eine ID sein; parameter_set_id weglassen für den Standard des Twins. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

create_twinMCP

Erstellt einen Simulations-Twin – einen Live-Twin-Container, der auf eine Teilmenge von Knotentypen beschränkt und optional an einen Modellknoten gebunden ist. Szenarien, Parametersätze und Agenten werden darin angelegt. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

update_agentMCP

Aktualisiert Bezeichnung, Beschreibung oder die Basiswert-Überlagerung eines Agenten. set_properties ersetzt die gesamte Überlagerung für den Ziel-Parametersatz – um einen einzelnen Wert zu ändern, set_parameter_value verwenden. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

set_parameter_valueMCP

Setzt einen einzelnen Basiswert für eine Agenten-Eigenschaft in einem bestimmten Parametersatz – das Feld, das ein Schieberegler oder ein Kontrollkästchen schreiben würde. Für Werte pro Zeitschritt set_time_series_value verwenden. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

update_twinMCP

Aktualisiert Name und/oder Beschreibung eines Twins. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

delete_agentMCP

Löscht eine Agenteninstanz samt ihren Verbindungen, Zeitreihen und Diagrammplatzierungen. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

clear_parameter_valueMCP

Löscht einen einzelnen Basiswert (Überlagerung) für eine Agenten-Eigenschaft in einem Parametersatz (greift wieder auf den Standardsatz zurück). Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

create_scenarioMCP

Erstellt ein Szenario (Was-wäre-wenn-Projektion) innerhalb eines Twins, mit eigener Zeitachse. Die Schrittweite dt muss 1/N für eine positive ganze Zahl N sein (z. B. 1, 0,5, 0,25). Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

update_scenarioMCP

Aktualisiert Name, Beschreibung oder Zeitachse (Startzeit, Endzeit, dt) eines Szenarios. Ein geändertes dt muss weiterhin 1/N für eine positive ganze Zahl N sein. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

delete_scenarioMCP

Löscht ein Szenario samt seinen Agenten, Verbindungen und Zeitreihen. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

create_simulation_diagramMCP

Erstellt ein Simulationsdiagramm – eine visuelle Arbeitsfläche für ein Szenario oder einen Twin. Genau eines von scenario_id (szenariobezogen) oder twin_id (twin-übergreifend, über alle Szenarien) angeben. Das Platzieren von Agenten/Verbindungen und Widgets erfolgt in der App. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

update_linkMCP

Aktualisiert Beschreibung und/oder Eigenschaftswerte einer Verbindung (set_properties ersetzt die Eigenschaften der Verbindung). Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

clear_time_series_valueMCP

Löscht eine einzelne Zeitreihen-Zelle (den Wert einer Agenten-Eigenschaft zu einem Zeitschritt). Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

get_simulation_diagram_contentsMCP

Liefert die Widgets eines Simulationsdiagramms (Dashboards) mit ihren IDs und ihrem aktuellen Text – Diagramme (Name, Achsenbeschriftungen, Anzeigenamen je Datenreihe) sowie Schieberegler-, Kontrollkästchen-, Auswahl-, Text- und Parametersatz-Auswahl-Steuerelemente (Beschriftung). Diese Widgets existieren nur auf dem Diagramm und erscheinen nicht im Modellbaum, daher ist dies die einzige Möglichkeit, ihre IDs zu ermitteln. Verwenden Sie es, um ein Dashboard zu übersetzen: Inhalte auslesen und anschließend mit translate_elements Übersetzungen schreiben – mit Schlüsseln wie „{chart_id}:name“, „{chart_id}:series:{series_id}:display_name“ und „{widget_id}:label“.

list_twinsMCP

Listet die Simulations-Twins auf. Ein Twin ist ein Live-Twin-Container, der auf eine Teilmenge von Knotentypen beschränkt und optional an einen Modellknoten gebunden ist. Liefert für jeden Twin den Geltungsbereich, den Standard-Parametersatz sowie die Anzahl der Szenarien und Parametersätze.

create_linkMCP

Erstellt eine Verbindung zwischen zwei Agenten in einem Szenario – das Simulations-Gegenstück zu einer Beziehung. Der Beziehungstyp und beide Agenten müssen bereits existieren. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

list_diagramsMCP

Listet die Diagramme des Modells mit ihren IDs, Namen und Ebenen auf. Diagramme werden von search_nodes nicht zurückgegeben – über dieses Tool finden Sie die ID eines Diagramms, bevor Sie update_diagram, add_to_diagram, add_relationships_to_diagram, remove_from_diagram oder delete_diagram aufrufen. Filtern Sie nach Ebene (metamodel für Typdiagramme, model für Instanzdiagramme), Namen oder Ordner. Für Simulations-Dashboards verwenden Sie stattdessen list_simulation_diagrams.

list_scenariosMCP

Listet die Szenarien innerhalb von Twins auf. Ein Szenario ist eine Was-wäre-wenn-Projektion mit eigener Zeitachse (Startzeit, Endzeit, Schrittweite dt). Liefert die Zeitachsen-Parameter, die berechnete Anzahl der Zeitschritte sowie die Anzahl der Agenten und Verbindungen. Über twin_id filterbar.

list_parameter_setsMCP

Listet die Parametersätze eines Twins auf. Ein Parametersatz ist ein benanntes Bündel von Eingabewerten auf einer zu den Szenarien orthogonalen Achse – ein Simulationslauf ist durch (Szenario, Parametersatz) bestimmt. Zeigt an, welcher Satz der Standard des Twins ist.

delete_linkMCP

Löscht eine Verbindung samt ihren Diagrammplatzierungen. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

list_agentsMCP

Listet die Agenteninstanzen eines Szenarios auf. Jeder Agent ist eine Instanz eines Knotentyps und gehört zu genau einem Szenario. Liefert Kurzfassungen; für die Basiswerte der Eigenschaften get_agent_details verwenden. Filterbar nach Szenario, Twin, Knotentyp oder Name.

delete_twinMCP

Löscht einen Twin samt allem, was er enthält – seine Szenarien, Parametersätze, Agenten, Verbindungen und Zeitreihen. Wird sofort angewendet und in Echtzeit an alle verbundenen Nutzer übertragen.

delete_nodesMCP

Einen oder mehrere Knoten löschen. Standardmäßig werden auch alle verbundenen Beziehungen gelöscht (Kaskade). Setzen Sie cascade_relationships auf false, damit die Operation fehlschlägt, wenn der Knoten Beziehungen hat.

update_nodesMCP

Labels, Beschreibungen oder Eigenschaften vorhandener Knoten aktualisieren. Verwenden Sie set_label/set_description für Kernfelder, set_properties für Schlüssel-Wert-Paare und remove_properties zum Löschen von Werten. Knoten-IDs akzeptieren sowohl UUIDs als auch Auto-IDs (z. B. REQ-42).

add_node_typeMCP

Fügt dem Metamodell einen neuen Knotentyp (Entitätstyp) hinzu. Tun Sie dies, bevor Sie Knoten dieses Typs erstellen. Sie können eigene Eigenschaften mit Datentypen definieren. Für die Simulation kann eine Eigenschaft als „computed“ markiert werden (ihr default_value ist dann eine bei jedem Zeitschritt ausgewertete Rhai-Formel), und der Knotentyp kann ein act_script tragen – ein Rhai-Skript, das pro Agent und Zeitschritt ausgeführt wird und das Verhalten steuert.

find_similar_nodesMCP

Knoten mit ähnlichen Namen finden, die Duplikate sein könnten. Verwendet String-Ähnlichkeitsabgleich. Nützlich vor dem Erstellen neuer Knoten, um Duplizierung zu vermeiden.

create_nodesMCP

Neue Knoteninstanzen erstellen. Der Knotentyp muss bereits im Metamodell existieren (verwenden Sie get_metamodel zum Prüfen oder add_node_type zum Erstellen). Änderungen werden sofort angewendet und in Echtzeit an alle verbundenen Browser-Benutzer übertragen.

add_allowed_connectionMCP

Ein erlaubtes Verbindungsmuster zwischen Knotentypen für einen Beziehungstyp definieren. Alle drei (Beziehungstyp, Quell-Knotentyp, Ziel-Knotentyp) müssen bereits im Metamodell existieren. Verwenden Sie get_metamodel, um vorhandene Typen zu prüfen.

add_relationship_typeMCP

Einen neuen Beziehungstyp zum Metamodell hinzufügen. Verwenden Sie nach dem Erstellen add_allowed_connection, um festzulegen, welche Knotentypen damit verbunden werden können.

get_metamodelMCP

Ruft das Schema des Modells (Metamodell) ab. Liefert alle Knotentypen, Beziehungstypen, deren Eigenschaften, erlaubte Verbindungen und Instanzzahlen. Rufen Sie dies immer zuerst auf, um zu verstehen, was das Modell enthält. Bei Simulationsmodellen liefert es außerdem für jede Eigenschaft das „computed“-Kennzeichen und die Rhai-Formel sowie das act_script jedes Knotentyps, dazu einen selbstbeschreibenden „scripting“-Block, der die verfügbaren Simulationsfunktionen (get_connected, sum_prop, agent.get_prop/set_prop, …) dokumentiert, damit Sie Formeln korrekt schreiben können.

get_node_detailsMCP

Liefert vollständige Details zu einem oder mehreren Knoten anhand ihrer IDs. Gibt alle Eigenschaften, die Beschreibung und Metadaten zurück. Akzeptiert sowohl UUIDs als auch Auto-IDs (z. B. REQ-42). Jeder Knoten enthält außerdem einen updated_at-Zeitstempel (ISO 8601 UTC), der angibt, wann er zuletzt geändert wurde – so können externe Tools Knoten überspringen, die sich seit dem letzten Abruf nicht geändert haben.

delete_relationshipsMCP

Eine oder mehrere Beziehungen anhand ihrer IDs löschen. Verwenden Sie get_relationships, um die Beziehungs-IDs zuerst zu finden.

get_statisticsMCP

Modellweite Statistiken abrufen: Knoten- und Beziehungsanzahlen nach Typ, am stärksten verbundene Knoten und Eigenschaftsvollständigkeit. Nützlich für einen schnellen Modellüberblick.

create_relationshipsMCP

Beziehungen zwischen vorhandenen Knoten erstellen. Sowohl Quelle als auch Ziel müssen existieren. Der Beziehungstyp muss im Metamodell existieren und eine erlaubte Verbindung für die angegebenen Quell-/Ziel-Knotentypen haben.

merge_nodesMCP

Doppelte Knoten zu einem einzelnen Knoten zusammenführen. Alle Beziehungen der zusammengeführten Knoten werden auf den beibehaltenen Knoten umgeleitet. Die zusammengeführten Knoten werden dann gelöscht. Verwenden Sie find_similar_nodes, um Kandidaten zu identifizieren.

get_relationshipsMCP

Beziehungen (Verbindungen) zwischen Knoten finden. Filtern nach Beziehungstyp, Quellknoten, Zielknoten oder Knotentypen. Quell- und Ziel-IDs akzeptieren sowohl UUIDs als auch Auto-IDs (z. B. REQ-42).

search_nodesMCP

Sucht nach Knoten (Instanzen) im Modell. Filtern Sie nach Typ, Name, Beschreibung, Eigenschaftswerten oder Ordner. Gibt Zusammenfassungen zurück – für vollständige Informationen verwenden Sie get_node_details. Jede Zusammenfassung enthält jetzt einen updated_at-Zeitstempel (ISO 8601 UTC) zur Änderungserkennung.

POST
/mcp/{model_id}REST

MCP Tool Call

The MCP HTTP transport. A single JSON-RPC 2.0 endpoint that dispatches to all of Metapad's MCP tools (get_metamodel, search_nodes, create_nodes, etc.) — set 'method' to the JSON-RPC method ('tools/call', 'tools/list', 'initialize', 'ping') and put the tool name + arguments in 'params'. This is the same endpoint that Claude Desktop, Claude Code, and other MCP clients connect to — use it directly from scripts and CI when no interactive OAuth login is possible. Distinct from the REST API v1 endpoints under /api/v1/..., which expose individual resources as conventional REST.