agent-mcp-workflow-platform
Agent と MCP ワークフロープラットフォーム
承認ゲート付きインシデントワークフローで、読み取り専用の MCP ツールを通じて証拠を収集し、1 つの正確な冪等アクションを実行し、結果を検証し、耐久性のある監査証跡を保持します。
概要
エージェンティックワークフローは、通常のリクエスト/レスポンス API を超えるリスクをもたらします。外部ツールの出力が悪意を持つ可能性があり、リトライによって副作用が重複する可能性があり、承認が古くなる可能性があり、ツールの応答が成功しても永続化された状態を反映していない可能性があります。
このプロジェクトは、これらの障害モードに対処するために、意図的に範囲を限定したインシデント対応ワークフローを実装します。決定論的プランナーが、Model Context Protocol (MCP) を通じて承認された読み取りツールを発見して呼び出し、チケットを提案し、人間の承認のために一時停止し、その承認を SHA-256 アクションダイジェストにバインドし、冪等なデータベース書き込みを実行し、保存された結果を検証します。LLM は使用しません。焦点は信頼性の高いオーケストレーションと制御境界にあります。
Related MCP server: OpenXNet MCP Server
主な機能
JSON-RPC stdio を介した MCP ツールの発見と呼び出し
サービスステータスとランブック検索ツールを備えた独立した読み取り専用 MCP サーバー
MCP ツール発見とは独立したアプリケーションレベルの許可リスト
ステップ予算の適用を伴う明示的なワークフローステートマシン
結果を伴う書き込みの前に行われる人間による承認または拒否
完全な提案アクションに承認をバインドする SHA-256 ダイジェスト
リトライ中のチケット重複作成を防ぐ安定した冪等性キー
SQLite に対する独立した書き込み後検証
耐久性のある実行、承認、チケット、および順序付けられた監査イベント
Bearer 認証された FastAPI エンドポイント、CLI ワークフロー、CI、および決定論的テスト
アーキテクチャ
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 --> WMCP ピアは観測結果を提供できますが、書き込み権限はありません。チケット作成はアプリケーション内に留まり、送信された承認ハッシュが現在の提案と一致するまで発生しません。
ワークフローステートマシン
created -> gathering -> awaiting_approval -> executing -> verifying -> completed
| | | |
v v v v
failed cancelled failed failed
|
`-- resume with matching approvalAPI
メソッド | エンドポイント | 目的 |
|
| サービスの生存状態を報告 |
|
| MCP サーバーの読み取りツールを発見 |
|
| 証拠を収集し、承認準備完了の提案を作成 |
|
| 耐久性のあるワークフロー状態を読み取り |
|
| 順序付けられた監査証跡を読み取り |
|
| 正確なアクションハッシュを承認または拒否 |
|
| 既存の一致する承認で失敗した実行をリトライ |
すべての /v1 エンドポイントには Authorization: Bearer <AGENT_API_TOKEN> が必要です。
技術スタック
テクノロジー | 目的 |
Python 3.12 | 型付けされたワークフロー、MCP クライアント/サーバー、および永続化ロジック |
FastAPI / Uvicorn | 認証されたワークフロー API と OpenAPI ドキュメント |
Pydantic / pydantic-settings | ワークフロー契約と環境設定 |
SQLite | 耐久性のある実行、承認、チケット、および監査イベント |
JSON-RPC / MCP | ツール発見と stdio を介した読み取り専用ツール呼び出し |
Pytest / HTTPX | ワークフロー、MCP、永続化、および API テスト |
Ruff / mypy | リンティングと静的型チェック |
GitHub Actions | 自動化されたリント、型チェック、およびテストパイプライン |
仕組み
クライアントが、サービスと報告された症状に対して実行を作成します。
ワークフローが MCP ツールを発見し、それらを自身の読み取り許可リストと比較し、範囲を限定した観測結果を収集します。
ツール出力は信頼できない証拠として保存され、ワークフロー命令として解釈されることはありません。
アプリケーションが、1 つの提案されたチケットアクション、安定した冪等性キー、および正規の SHA-256 アクションハッシュを作成します。
ワークフローは
awaiting_approvalを永続化し、書き込みを行わずに返します。人間が正確なハッシュに対する承認または拒否を送信します。変更された、または古い提案は HTTP 409 で拒否されます。
承認されたアクションは、冪等にチケットを作成し、SQLite からそれを読み戻し、検証後にのみ実行を完了としてマークします。
承認後に実行が失敗した場合、冪等性キーが安定しているため、
/resumeで安全にリトライできます。
設計上の決定
発見は権限を付与しない。 ワークフローは MCP の結果をハードコードされた読み取り許可リストと比較するため、ピアは別のツールを宣伝することで権限を得ることはできません。
外部からの観測結果はデータのまま。 ツール出力は長さ制限され、監査イベントで信頼できないとマークされ、チケットの証拠としてのみ使用されます。
承認はコンテンツアドレス指定される。 正規の JSON と SHA-256 は、提案されたアクションのすべてのフィールドに承認をバインドし、ペイロードのすり替えを防ぎます。
書き込みは冪等で検証される。 一意の冪等性キーがリトライのあいまいさを処理し、独立した読み取りが永続化されたレコードを確認します。
状態は副作用の境界を越えて耐久性を持って渡される。 ステータスと監査イベントは、承認、実行、検証、失敗、および完了の前後に書き込まれます。
プランナーは意図的に決定論的である。 これにより、安全性モデルを検査可能に保ちながら、将来の評価済みモデル使用のために交換可能なプランナー境界を維持します。
プロジェクト構造
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.tomlはじめに
前提条件: 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 serveAPI は http://127.0.0.1:8000 で実行されます。インタラクティブなドキュメントは /docs で利用できます。
使用例
実行を作成する:
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"}'応答には、実行 ID、完全な提案アクション、および action_hash が含まれます。それらを確認した後、その正確なアクションを承認します:
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"}'再生可能なイベント履歴を検査する:
curl http://127.0.0.1:8000/v1/runs/RUN_ID/events \
-H "Authorization: Bearer change-me"テスト
pytest
ruff check .
mypyスイートは、認証、MCP の発見と呼び出し、承認不一致の拒否、拒否動作、信頼できない出力の処理、出力とステップの制限、重複実行の防止、冪等なチケット作成、障害回復、独立した検証、および順序付けられた監査履歴を検証します。
このプロジェクトが示すもの
耐久性のあるエージェントワークフローとステートマシンの設計
MCP 統合と JSON-RPC プロセス境界
結果を伴うアクションに対するヒューマンインザループ承認制御
冪等性、障害回復、および事後条件検証
信頼できないツール出力のセキュリティを考慮した処理
型付けされた API と SQLite 永続化の設計
自動テストと CI ベースの品質保証
ロードマップ
開発用 Bearer トークンを OIDC 認証とロールベースの認可に置き換える
書き込み境界を冪等アダプターを介して実際のチケットプロバイダーに接続する
実行を同時実行制御付きの耐久性のあるバックグラウンドワーカーに移行する
メトリクス、トレーシング、構造化運用ログ、およびアラートを追加する
制限された計画責任を付与する前に、決定論的ベースラインに対して LLM プランナーを評価する
詳細については、アーキテクチャ、API リファレンス、およびセキュリティポリシーを参照してください。
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