agent-mcp-workflow-platform
Платформа агентного рабочего процесса и MCP
Рабочий процесс инцидентов с контролем утверждения, который собирает доказательства через MCP-инструменты только для чтения, выполняет одно точное идемпотентное действие, проверяет результат и сохраняет долговечный аудиторский след.
Обзор
Агентные рабочие процессы вводят риски, выходящие за рамки обычных API запросов/ответов: вывод внешних инструментов может быть враждебным, повторные попытки могут дублировать побочные эффекты, утверждения могут устареть, а успешный ответ инструмента может не отражать сохраненное состояние.
Этот проект реализует намеренно ограниченный рабочий процесс реагирования на инциденты, ориентированный на эти режимы сбоев. Детерминированный планировщик обнаруживает и вызывает утвержденные инструменты чтения через протокол контекста модели (MCP), предлагает тикет, приостанавливается для утверждения человеком, связывает это утверждение с дайджестом действия SHA-256, выполняет идемпотентную запись в базу данных и проверяет сохраненный результат. Он не использует LLM; основное внимание уделяется надежной оркестровке и границам контроля.
Related MCP server: OpenXNet MCP Server
Ключевые особенности
Обнаружение и вызовы MCP-инструментов через JSON-RPC stdio
Отдельный MCP-сервер только для чтения с инструментами service-status и runbook-search
Разрешительный список на уровне приложения, независимый от обнаружения MCP-инструментов
Явный конечный автомат рабочего процесса с контролем бюджета шагов
Утверждение или отклонение человеком перед ответственной записью
Привязка утверждения к полному предложенному действию через дайджест SHA-256
Стабильные ключи идемпотентности, предотвращающие создание дублирующих тикетов при повторных попытках
Независимая проверка после записи с помощью SQLite
Долговечные запуски, утверждения, тикеты и упорядоченные аудиторские события
FastAPI-эндпоинты с аутентификацией Bearer, 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
Метод | Endpoint | Назначение |
|
| Сообщить о работоспособности сервиса |
|
| Обнаружить инструменты чтения 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-инструменты, пересекает их с собственным разрешительным списком чтения и собирает ограниченные наблюдения.
Вывод инструментов сохраняется как ненадежное доказательство и никогда не интерпретируется как инструкции рабочего процесса.
Приложение создает одно предложенное действие тикета, стабильный ключ идемпотентности и канонический хеш действия 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