agent-mcp-workflow-platform
Agent- und MCP-Workflow-Plattform
Ein genehmigungspflichtiger Incident-Workflow, der Beweise über schreibgeschützte MCP-Tools sammelt, eine exakte idempotente Aktion ausführt, das Ergebnis verifiziert und ein dauerhaftes Prüfprotokoll aufbewahrt.
Übersicht
Agentische Workflows bergen Risiken, die über gewöhnliche Request/Response-APIs hinausgehen: Externe Tool-Ausgaben können feindselig sein, Wiederholungen können Seiteneffekte duplizieren, Genehmigungen können veralten, und eine erfolgreiche Tool-Antwort spiegelt möglicherweise nicht den dauerhaft gespeicherten Zustand wider.
Dieses Projekt implementiert einen bewusst eingeschränkten Incident-Response-Workflow für diese Fehlermodi. Ein deterministischer Planer entdeckt und ruft genehmigte Lese-Tools über das Model Context Protocol (MCP) auf, schlägt ein Ticket vor, pausiert für eine menschliche Genehmigung, bindet diese Genehmigung an einen SHA-256-Aktions-Digest, führt einen idempotenten Datenbank-Schreibvorgang durch und verifiziert das gespeicherte Ergebnis. Es verwendet kein LLM; der Fokus liegt auf zuverlässiger Orchestrierung und Kontrollgrenzen.
Related MCP server: OpenXNet MCP Server
Hauptmerkmale
MCP-Tool-Erkennung und -Aufrufe über JSON-RPC stdio
Separater schreibgeschützter MCP-Server mit Service-Status- und Runbook-Suche-Tools
Anwendungsweite Zulassungsliste unabhängig von der MCP-Tool-Erkennung
Explizite Workflow-Zustandsmaschine mit Schrittbudget-Durchsetzung
Menschliche Genehmigung oder Ablehnung vor dem folgenreichen Schreibvorgang
SHA-256-Digest, der die Genehmigung an die vollständige vorgeschlagene Aktion bindet
Stabile Idempotenzschlüssel, die doppelte Ticket-Erstellung bei Wiederholungen verhindern
Unabhängige Überprüfung nach dem Schreibvorgang gegen SQLite
Dauerhafte Ausführungen, Genehmigungen, Tickets und geordnete Audit-Ereignisse
Bearer-authentifizierte FastAPI-Endpunkte, CLI-Workflows, CI und deterministische Tests
Architektur
flowchart LR
C[API Client] --> A[FastAPI]
A --> W[Workflow Service]
W --> P[Deterministic Planner]
W --> M[MCP Stdio Client]
M --> S[Read-Only MCP Server]
W --> D[(SQLite Store)]
H[Human Approver] --> A
A --> W
W --> T[Idempotent Ticket Write]
T --> D
D --> V[Verification]
V --> WDer MCP-Peer kann Beobachtungen liefern, hat aber keine Schreibberechtigung. Die Ticket-Erstellung bleibt innerhalb der Anwendung und kann erst erfolgen, wenn der eingereichte Genehmigungs-Hash mit dem aktuellen Vorschlag übereinstimmt.
Workflow-Zustandsmaschine
created -> gathering -> awaiting_approval -> executing -> verifying -> completed
| | | |
v v v v
failed cancelled failed failed
|
`-- resume with matching approvalAPI
Methode | Endpunkt | Zweck |
|
| Dienst-Liveness melden |
|
| Lese-Tools des MCP-Servers erkennen |
|
| Beweise sammeln und einen genehmigungsbereiten Vorschlag erstellen |
|
| Dauerhaften Workflow-Status lesen |
|
| Geordnetes Audit-Protokoll lesen |
|
| Exakten Aktions-Hash genehmigen oder ablehnen |
|
| Fehlgeschlagene Ausführung mit vorhandener passender Genehmigung wiederholen |
Alle /v1-Endpunkte erfordern Authorization: Bearer <AGENT_API_TOKEN>.
Technologie-Stack
Technologie | Zweck |
Python 3.12 | Typisierter Workflow, MCP-Client/Server und Persistenzlogik |
FastAPI / Uvicorn | Authentifizierte Workflow-API und OpenAPI-Dokumentation |
Pydantic / pydantic-settings | Workflow-Verträge und Umgebungskonfiguration |
SQLite | Dauerhafte Ausführungen, Genehmigungen, Tickets und Audit-Ereignisse |
JSON-RPC / MCP | Tool-Erkennung und schreibgeschützte Tool-Aufrufe über stdio |
Pytest / HTTPX | Workflow-, MCP-, Persistenz- und API-Tests |
Ruff / mypy | Linting und statische Typprüfung |
GitHub Actions | Automatisierte Lint-, Typ-Prüf- und Test-Pipeline |
So funktioniert es
Ein Client erstellt eine Ausführung für einen Dienst und ein gemeldetes Symptom.
Der Workflow erkennt MCP-Tools, schneidet sie mit seiner eigenen Lese-Zulassungsliste und sammelt begrenzte Beobachtungen.
Tool-Ausgaben werden als nicht vertrauenswürdige Beweise gespeichert und niemals als Workflow-Anweisungen interpretiert.
Die Anwendung erstellt eine vorgeschlagene Ticket-Aktion, einen stabilen Idempotenzschlüssel und einen kanonischen SHA-256-Aktions-Hash.
Der Workflow persistiert
awaiting_approvalund kehrt zurück, ohne einen Schreibvorgang durchzuführen.Ein Mensch reicht eine Genehmigung oder Ablehnung für den exakten Hash ein. Geänderte oder veraltete Vorschläge werden mit HTTP 409 abgelehnt.
Eine genehmigte Aktion erstellt das Ticket idempotent, liest es aus SQLite zurück und markiert die Ausführung erst nach der Überprüfung als abgeschlossen.
Wenn die Ausführung nach der Genehmigung fehlschlägt, kann
/resumesicher wiederholt werden, da der Idempotenzschlüssel stabil bleibt.
Technische Entscheidungen
Erkennung gewährt keine Autorität. Der Workflow schneidet MCP-Ergebnisse mit einer hartcodierten Lese-Zulassungsliste, sodass ein Peer keine Berechtigung durch das Ankündigen eines anderen Tools erlangen kann.
Externe Beobachtungen bleiben Daten. Tool-Ausgaben sind längenbegrenzt, im Audit-Ereignis als nicht vertrauenswürdig markiert und werden nur als Ticket-Beweise verwendet.
Genehmigung ist inhaltsadressiert. Kanonisches JSON und SHA-256 binden die Genehmigung an jedes Feld der vorgeschlagenen Aktion und verhindern Nutzlastsubstitution.
Schreibvorgänge sind idempotent und verifiziert. Ein eindeutiger Idempotenzschlüssel behandelt Mehrdeutigkeiten bei Wiederholungen, während ein separater Lesevorgang den dauerhaften Datensatz bestätigt.
Zustand überquert Seiteneffektgrenzen dauerhaft. Status und Audit-Ereignisse werden vor und nach Genehmigung, Ausführung, Überprüfung, Fehlschlag und Abschluss geschrieben.
Der Planer ist absichtlich deterministisch. Dies hält das Sicherheitsmodell überprüfbar, während eine austauschbare Planer-Grenze für zukünftige evaluierte Modellnutzung erhalten bleibt.
Projektstruktur
agent-mcp-workflow-platform/
|-- src/agent_platform/
| |-- workflow.py # State machine, planner, approval, execution, verification
| |-- tools.py # MCP stdio client and deterministic test client
| |-- mcp_server.py # Local read-only MCP server
| |-- database.py # SQLite schema and durable workflow store
| |-- models.py # Typed run, action, approval, event, and tool contracts
| |-- api.py # Authenticated FastAPI endpoints
| |-- settings.py # Environment-based configuration
| `-- cli.py # Database, MCP discovery, demo, and server commands
|-- tests/ # Workflow safety, retry, MCP, and API tests
|-- docs/ # Architecture and API reference
|-- .github/workflows/ci.yml
|-- SECURITY.md
|-- CONTRIBUTING.md
`-- pyproject.tomlErste Schritte
Voraussetzung: Python 3.12+.
cd agent-mcp-workflow-platform
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
Copy-Item .env.example .env
agent-workflow init-db
agent-workflow mcp-tools
agent-workflow serveDie API läuft unter http://127.0.0.1:8000; interaktive Dokumentation ist unter /docs verfügbar.
Beispielverwendung
Eine Ausführung erstellen:
curl -X POST http://127.0.0.1:8000/v1/runs \
-H "Authorization: Bearer change-me" \
-H "Content-Type: application/json" \
-d '{"service":"payments-api","symptom":"Elevated 5xx responses"}'Die Antwort enthält die Ausführungs-ID, die vollständige vorgeschlagene Aktion und action_hash. Nach der Überprüfung diese exakte Aktion genehmigen:
curl -X POST http://127.0.0.1:8000/v1/runs/RUN_ID/approval \
-H "Authorization: Bearer change-me" \
-H "Content-Type: application/json" \
-d '{"approved":true,"action_hash":"HASH_FROM_PROPOSAL"}'Den wiederholbaren Ereignisverlauf einsehen:
curl http://127.0.0.1:8000/v1/runs/RUN_ID/events \
-H "Authorization: Bearer change-me"Tests
pytest
ruff check .
mypyDie Suite überprüft Authentifizierung, MCP-Erkennung und -Aufrufe, Ablehnung von Genehmigungsabweichungen, Ablehnungsverhalten, Behandlung nicht vertrauenswürdiger Ausgaben, Ausgabe- und Schrittlimits, Verhinderung doppelter Ausführung, idempotente Ticket-Erstellung, Fehlerbehebung, unabhängige Überprüfung und geordnete Audit-Historie.
Was dieses Projekt demonstriert
Dauerhaftes Agent-Workflow- und Zustandsmaschinen-Design
MCP-Integration und JSON-RPC-Prozessgrenzen
Human-in-the-Loop-Genehmigungskontrollen für folgenreiche Aktionen
Idempotenz, Fehlerbehebung und Nachbedingungsüberprüfung
Sicherheitsorientierte Handhabung nicht vertrauenswürdiger Tool-Ausgaben
Typisierte API- und SQLite-Persistenz-Design
Automatisierte Tests und CI-basierte Qualitätssicherung
Fahrplan
Ersetzen des Entwicklungs-Bearer-Tokens durch OIDC-Authentifizierung und rollenbasierte Autorisierung
Verbinden der Schreibgrenze mit einem echten Ticketing-Anbieter über einen idempotenten Adapter
Verschieben der Ausführung auf dauerhafte Hintergrundarbeiter mit Parallelitätskontrolle
Hinzufügen von Metriken, Tracing, strukturierten Betriebsprotokollen und Alarmierung
Evaluieren eines LLM-Planers gegenüber der deterministischen Baseline, bevor ihm begrenzte Planungsverantwortung übertragen wird
Siehe Architektur, API-Referenz und Sicherheitsrichtlinie für weitere Details.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceMCP server for investigating cloud incidents and managing approvals. Provides read-only tools to list incidents, investigate incidents, and list approvals, keeping remediation behind human approval.MIT
- Alicense-qualityBmaintenanceProvides an isolated MCP gateway for SynapXnet AIOps, DataOps, and MLOps evidence-to-remediation workflows, with OAuth validation, scoped tool discovery, persistent approvals, and audit tracking.AGPL 3.0
- Flicense-qualityBmaintenanceProvides a secure MCP boundary for AI agents, intercepting and validating tool calls, redacting secrets, and requiring human approval for sensitive actions with a tamper-evident audit trail.
- AlicenseAqualityCmaintenanceEnables policy-first defensive security operations for MCP, providing repository and web-security analysis with controlled authorization, scoped execution, and auditability.9MIT
Related MCP Connectors
Remote MCP for Copilot CLI switch gate MCP, structured receipts, audit logs, and reviewer-ready evid
Paid remote MCP for AI Studio Workspace approval gate MCP, structured receipts, audit logs, and revi
Remote MCP for A2A caller identity, scope policy, verdict receipts, and audit history.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marvinjbb/agent-mcp-workflow-platform'
If you have feedback or need assistance with the MCP directory API, please join our Discord server