ops-workflow-lab
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Ops Workflow Lab
한국어 · My contribution & case study · Grounded graph demo · Local LLM & evaluation · Architecture · Design decisions · Public-release scope
A runnable operations-agent portfolio demo: review a plan, approve simulated changes, and follow every execution step in a durable event timeline.
All infrastructure and operation results are synthetic. Choose a deterministic baseline, local intent classification, or a LangGraph RAG pipeline using a real local Ollama LLM and embedding model. Model intent is validated before server-owned steps are built; simulated changes still require human approval. No cloud credentials are needed.
Independent demonstration implementation. No company source code, product API contracts, internal runbooks, credentials, customer data, or original Git history are included.

The Korean UI uses a desktop observability dashboard: grouped navigation, metric cards, measured run trends, target participation and a searchable execution table. New requests open in a modal; selecting a run opens a right-hand inspector with a step tree, cited evidence, plan JSON and events. Light and dark themes are included. Earlier v0.1 screenshots remain as historical references.
Run locally
Requires Python 3.11+ and uv.
git clone https://github.com/jechoiyyy/ops-workflow-lab.git
cd ops-workflow-lab
uv sync --frozen --extra dev
uv run ops-labOpen http://127.0.0.1:8765. The server binds to loopback. Run state is stored in the ignored .data/lab.db file and survives restarts. Dependencies are downloaded during setup; the running demo does not need internet access.
For a separate workspace: uv run ops-lab --port 8766 --db .data/second.db.
Use your local Ollama model
ollama list
uv run ops-lab --planner ollama --model qwen3.8:27b-ctx32kThe example is a locally installed model tag used for this demo's evaluation; replace it with an exact name from your own ollama list. Ollama must already be running with the model installed. The application does not download models or fall back to rules when inference fails.
Try “atlas-api 서버를 백업해 두고 싶어. 계획을 만들어줘.” The UI displays the model, structured interpretation, latency, and execution trace. The local model classifies intent; it does not generate executable code, choose arbitrary tools, or approve changes. Setup, evaluation evidence, and limitations.
Grounded multi-target workflow
uv run ops-lab --planner rag --model qwen3.8:27b-ctx32k --embedding-model bge-m3:latestBoth model tags must already be installed. Try “Back up atlas-api and lumen-db”, select 재시도 한도 소진, then build the plan. Open 근거 to review the retrieved synthetic runbooks and cited controls. Approve once: the first target exhausts its retry budget, the second completes, and the final join reports partial_failure. Cancel stops remaining work while retaining completed receipts.
Walkthrough, evaluation and limits · Contribution narrative and reviewer guide
Related MCP server: EPOCH-MCP
Try a two-minute walkthrough
Enter Back up atlas-api and select 한 번 실패한 뒤 재시도 성공.
Build the execution plan. All tool attempts remain at zero while approval is pending.
Review the target, scenario, and three planned steps, then approve.
Watch the synthetic snapshot fail once, retry, and pass verification. Expand the JSON result to inspect the receipt.
Create another plan and reject it, or choose 재시도 한도 소진 to inspect a controlled failure.
Example request | What happens |
| Reads three fictional servers; no approval required |
| Inspects a fictional server, creates a simulated snapshot, verifies it |
| Creates and verifies a simulated sandbox after approval |
| Korean equivalent of the backup request |
| Korean equivalent of the rehearsal request |
Targets are atlas-api, lumen-db, and cedar-worker. Rule mode accepts explicit example commands. Basic Ollama mode accepts one target; RAG mode accepts one operation across up to three explicitly named targets. Unknown or ambiguous requests should be rejected. See the live evaluation for the measured limits of that behavior.
What this demonstrates
Approval bound to a plan: a SHA-256 digest covers the target, action, steps, and failure scenario. Execution checks the recorded approval again.
Idempotent requests: a unique request key returns the original run on retry. Reusing it with different input returns a conflict.
Transactional progress: a simulated operation receipt, step result, and completion event commit together in SQLite.
Bounded failure handling: transient errors retry up to three total attempts; integrity failures stop immediately.
Restart and replay: completed steps are preserved, queued work resumes, and SSE reconnects use persisted event sequence numbers.
MCP interface: a real stdio server exposes synthetic inventory, proposal, status, and event tools. It does not expose an approval tool.
Grounded graph: LangGraph target fan-out, local dense retrieval, citation/required-control validation, one bounded repair, server-owned execution DAG and per-target result aggregation.
Local model integration: Ollama JSON-schema output, strict response validation, target grounding, explicit timeout/error behavior, and opt-in live evaluation on synthetic requests.
Architecture at a glance
flowchart LR
UI[Local browser UI] --> API[FastAPI]
HOST[MCP host] --> MCP[Official SDK / stdio]
API --> ENGINE[Plan and approval engine]
MCP --> ENGINE
ENGINE -. optional intent classification .-> LLM[Local Ollama]
ENGINE --> DB[(SQLite state and events)]
WORKER[Local worker] --> ENGINE
ENGINE --> SIM[Synthetic provider]
DB --> SSE[SSE event replay]
SSE --> UIThe browser/API and MCP share the application engine and database. The browser's worker executes queued runs. The internal simulator is called directly; the browser does not call the simulator through MCP. See architecture and boundaries.
Connect an MCP client
Keep the UI server running. Configure a stdio client using the same checkout and database:
{
"mcpServers": {
"ops-workflow-lab": {
"command": "uv",
"args": ["--directory", "/absolute/path/to/ops-workflow-lab", "run", "ops-lab-mcp"]
}
}
}The placeholder path must point to your checkout. If the UI uses a custom database, set the same absolute OPS_LAB_DB environment variable in both processes. Available tools: list_demo_targets, propose_workflow, get_workflow, get_workflow_events. Refresh the UI's recent-runs list to review a proposal created by an MCP host. Human decisions are made in the local UI/API.
For the grounded graph, use OPS_LAB_PLANNER=rag, OPS_LAB_MODEL=<installed tag> and optionally OPS_LAB_EMBEDDING_MODEL=bge-m3:latest.
MCP defaults to rule mode independently of the web process. To use local inference there too, add OPS_LAB_PLANNER=ollama and OPS_LAB_MODEL=<your installed tag> to the MCP server's environment.
The dependency is deliberately constrained to the supported MCP SDK 1.x API, with an exact resolution in uv.lock. Official SDK documentation.
Validate
uv run pytest -q
uv run ruff check .
uv run ruff format --check .
python3 scripts/check_public_export.pyTests cover the approval boundary, contradictory decisions, concurrent duplicates, bounded retries, restart recovery, transactional rollback, event replay, HTTP validation, and a real MCP subprocess handshake/tool call.
The local API reference and OpenAPI schema are served without CDN assets.
Scope and limitations
This is an independently implemented portfolio demonstration, not an anonymized production release or a performance benchmark. It contains no actual backup, recovery, cloud provisioning, or product-specific implementation. The read-only inventory and verification outputs are simulated too.
The LLM classifies intent and, in RAG mode, selects cited controls from an original eight-document synthetic corpus. The server owns the execution tools and dependencies. Retrieval chooses runbooks, not arbitrary tools. Local inference is serialized; graph branches are logically independent, not concurrent cloud operations. Planning state is in memory; only completed proposals and subsequent execution are durable. The application is local and single-user, with no authentication or multi-tenant authorization. Its approval gate demonstrates a workflow invariant; it does not authenticate the human making the HTTP request. Do not expose it as a public service without adding those controls.
SQLite serializes the demo's immediate tool operations. The atomicity guarantees apply to these in-process simulations, not to real remote infrastructure. External adapters would need remote idempotency, leases, timeouts, and reconciliation. See the design tradeoffs.
License
MIT for this independently authored demo. Third-party packages retain their own licenses. Bundled Outfit and Noto Sans KR fonts use SIL OFL 1.1; see asset sources and licenses.
This server cannot be deployed
Maintenance
Related MCP Connectors
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Authenticated MCP server for ClearPolicy policy and compliance workflows.
Public MCP digital twin with synthetic systems and an agent firewall. No customer data.
Governed company knowledge over MCP. Synthetic read-only demo; customer Atlas by contract.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables interaction with the Procesio automation platform to list, view, and manage workflows. It allows users to launch process instances and monitor their status through MCP-compatible clients.12Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients to drive governed software changes, measure trajectory and boundary integrity after each mutation, surface drift and invariants, investigate incidents, and compare counterfactual futures before approving a change.7 npm3MIT
- FlicenseNot gradedqualityAmaintenanceEnables MCP clients to submit long-running Codex Desktop tasks asynchronously, poll operation and workflow status, handle approvals and Plan Mode, and retrieve durable reports with retry-safe recovery and diagnostics.-
- FlicenseNot gradedqualityBmaintenanceEnables MCP clients to submit and manage long-running Codex Desktop work asynchronously, with durable operation/workflow IDs, polling, approvals, Plan Mode workflows, retry safety, diagnostics, and final reports.-