Server data from the Official MCP Registry
Governed AI workflows with human approval gates and audit trails for Claude and MCP clients.
Governed AI workflows with human approval gates and audit trails for Claude and MCP clients.
From the project's GitHub README.
Public test release — lightweight contract execution for Claude and MCP-compatible AI clients.
MOVA Flat Runner is a small, practical facade for running AI-assisted business workflows with human approval and an audit trail.
It gives Claude a contract-shaped way to handle bounded workflows such as invoice review, supplier screening, complaint triage, refund approval, purchase order review, or internal approval tasks.
This is intentionally not the full MOVA State engine.
You do not need the broader MOVA ecosystem, a state machine setup, or a custom backend to try it. The goal of this repository is simple:
connect MCP client
→ run a contract-shaped workflow
→ keep a human decision gate
→ receive an audit trail
This repository is currently in a public feedback phase.
A temporary shared API key is provided so the Anthropic / MCP community can try the runner with minimal setup. After feedback is collected, the test API will be replaced by a production implementation with proper accounts, API keys, quotas, private connector configuration, and clearer deployment boundaries.
Use this release for testing, prototyping, and feedback.
Do not send sensitive production data, regulated customer data, secrets, credentials, private keys, or confidential business documents through the shared test API.
MOVA Flat Runner lets an AI assistant run a bounded workflow instead of improvising.
It can:
The core idea:
AI proposes analysis
contract constrains the workflow
human approves the final decision
audit records what happened
This public test release is:
The runner is intentionally flat and practical. For high-risk, multi-step, policy-heavy execution with formal transition authority, the broader MOVA State engine is a separate layer.
| Status | Public test release |
| API access | Temporary shared test key |
| Target users | Anthropic / MCP community, AI workflow builders, automation experimenters |
| Goal | Collect feedback before production release |
The shared API key may be rate-limited, rotated, or disabled after the feedback phase.
Production plans include individual API keys, account-scoped contract storage, quotas, private connector configuration, stronger audit export, clearer retention policy, and an optional private execution path for sensitive workflows.
For this public test release, use:
MOVA_API_KEY=test-key-001
This key is shared and temporary. Use it only for testing, prototyping, and feedback — not for real customer data, regulated decisions, confidential documents, credentials, or production workflows.
Use synthetic examples, public test files, or non-sensitive documents.
After setup, ask Claude:
Use MOVA health check.
Then try the invoice example:
Process this invoice:
https://raw.githubusercontent.com/mova-compact/mova-flat-runner/main/test_invoice_INV-2026-0441.png
Expected flow:
1. MOVA starts an invoice contract
2. The invoice is analysed
3. Verification findings are returned
4. Claude asks you for a human decision
5. You choose: approve / reject / escalate
6. MOVA returns an audit receipt
These workflows are ready to use as live examples of the contract pattern. They are demonstration workflows, not certified domain systems.
| Workflow | What it demonstrates |
|---|---|
| Invoice approval | OCR extraction, duplicate check, IBAN change detection, VAT validation |
| Purchase order review | Structured line-item review and approval |
| Supplier risk | Multi-supplier assessment with country and compliance checks |
| Complaint handling | Customer complaint triage and resolution routing |
| Compliance audit | Policy violation review with severity grading |
| AML triage | Sanctions / PEP-style risk review as a demo pattern |
| Credit review | Threshold-based review as a demo pattern |
| Trade review | Risk and limit review as a demo pattern |
| Churn prediction | Retention risk classification as a demo pattern |
| Contract generation | Structured contract drafting from a natural language brief |
Built-in workflows are examples. Custom contracts are the main idea.
The runner is useful when you want Claude to follow a bounded workflow instead of inventing a process on the fly.
Tell Claude what workflow you want to create. Claude calls mova_calibrate_intent, which turns your plain-language request into a structured contract definition. After that, the workflow can be registered and run like the built-in examples.
Example prompts:
I want a workflow that screens new freelancer applications, checks portfolio completeness, validates tax ID format, and routes high-risk cases to manual review.
Create a contract for approving refund requests above €500. It should extract the reason, check whether the order ID is present, and log every human decision.
Build a supplier onboarding workflow with document completeness checks and a compliance officer approval step.
A contract defines:
goal
inputs
analysis steps
verification checks
human decision options
audit outcome
Add to claude_desktop_config.json:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"mova": {
"command": "npx",
"args": ["-y", "mova-mcp"],
"env": {
"MOVA_API_KEY": "test-key-001",
"LLM_KEY": "sk-or-v1-YOUR_OPENROUTER_KEY",
"LLM_MODEL": "openai/gpt-4o-mini"
}
}
}
}
Restart Claude Desktop. The MOVA tools appear automatically.
claude mcp add mova -- npx -y mova-mcp
claude mcp env mova MOVA_API_KEY=test-key-001
claude mcp env mova LLM_KEY=sk-or-v1-YOUR_OPENROUTER_KEY
claude mcp env mova LLM_MODEL=openai/gpt-4o-mini
Then verify: ask Claude Code Use MOVA health check.
Command: npx -y mova-mcp
Required env vars:
MOVA_API_KEY=test-key-001
LLM_KEY=sk-or-v1-YOUR_OPENROUTER_KEY
LLM_MODEL=openai/gpt-4o-mini
| Variable | Required | Description |
|---|---|---|
MOVA_API_KEY | Yes | MOVA API key. Shared public test key: test-key-001 |
LLM_KEY | Yes for workflow runs | OpenRouter key for LLM-backed analysis steps |
LLM_MODEL | No | Model ID (default: openai/gpt-4o-mini) |
MOVA_API_URL | No | Override API base URL (default: https://api.mova-lab.eu) |
MOVA_API_TIMEOUT_MS | No | API timeout override in milliseconds |
Never commit your real
LLM_KEYto a repository.
mova_hitl_start invoice approval
mova_hitl_start_po purchase order review
mova_hitl_start_aml AML triage
mova_hitl_start_trade trade review
mova_hitl_start_complaint complaint handling
mova_hitl_start_compliance compliance audit
mova_hitl_start_credit credit review
mova_hitl_start_supply_chain supplier risk
mova_hitl_start_churn churn prediction
mova_hitl_start_contract_gen contract generation
mova_calibrate_intent turn plain language into a contract definition
mova_register_contract register a custom contract
mova_run_contract run a registered contract
mova_run_status check run status
mova_list_my_contracts list registered contracts
mova_set_contract_visibility set public / private
mova_delete_contract delete a contract
mova_hitl_decide submit a human decision
mova_hitl_status check workflow status
mova_hitl_audit retrieve signed audit receipt
mova_hitl_audit_compact retrieve full event journal
mova_list_connectors list available connector types
mova_register_connector register your own endpoint
mova_list_connector_overrides list active overrides
mova_delete_connector_override remove an override
mova_health check API connectivity
By default, demo workflows use sandbox connectors. To route specific steps to your own services — OCR, ERP, VAT validation, internal review APIs — register a connector override.
Claude does not create real connectors automatically. You register them once and they apply to all subsequent runs.
Example prompt:
Register my OCR endpoint for MOVA.
Example connector data:
connector_id : connector.ocr.document_extract_v1
endpoint : https://ocr.yourcompany.com/extract
auth_header : X-Api-Key
auth_value : your-secret-key
Available connector IDs:
| Connector ID | Replaces |
|---|---|
connector.ocr.document_extract_v1 | Document OCR extraction |
connector.ocr.vision_llm_v1 | Vision LLM OCR |
connector.finance.duplicate_check_v1 | Duplicate invoice detection |
connector.tax.vat_validate_v1 | VAT number validation |
connector.erp.invoice_post_v1 | ERP invoice posting |
Do not use production connector credentials during the public test phase unless you understand the current deployment and data flow.
Every contract execution produces an immutable event log. The journal records exactly what happened, when, and who decided — from contract start to final receipt.
Example:
{"event":"contract_started","contract_id":"cnt_3f8a1b","contract_type":"invoice_approval","at":"2026-04-16T14:22:58Z"}
{"event":"step_completed","step":"analyze","duration_ms":1820,"at":"2026-04-16T14:23:00Z"}
{"event":"step_completed","step":"verify","findings":["iban_change_detected","ocr_confidence_low"],"at":"2026-04-16T14:23:03Z"}
{"event":"decision_point","question":"How do you want to proceed?","options":["approve","reject","escalate_accountant"],"recommended":"escalate_accountant","at":"2026-04-16T14:23:05Z"}
{"event":"human_decision","option":"escalate_accountant","reason":"IBAN changed — routing to accountant for manual check","actor":"user","at":"2026-04-16T14:23:41Z"}
{"event":"contract_completed","verdict":"partially_fulfilled","receipt_id":"rec_9c2d4e","signature":"sha256:a3f1c8...","at":"2026-04-16T14:23:41Z"}
Retrieve it with mova_hitl_audit (signed receipt) or mova_hitl_audit_compact (full event chain).
During the public test phase, audit storage is part of the test infrastructure. Retention, export, and account-level controls will be defined before production release.
contract defines the workflow
local validation checks inputs
AI analysis is bounded by the contract
human decision is required before final outcome
audit records the run
The runner does not give the model uncontrolled authority. A workflow should not claim that an external action was completed unless that action is explicitly part of the configured connector path and the result is returned by the API.
This release is for learning what people actually want from contract-shaped AI execution.
Useful feedback:
Please open a GitHub issue with feedback, bugs, or workflow requests.
After the public feedback phase:
individual API keys
account-scoped contract storage
quotas and rate limits
private connector configuration
clearer data retention policy
stronger audit export
production deployment boundary
optional private execution path for sensitive workflows
MOVA Flat Runner is a lightweight facade from the broader MOVA contract execution approach. It is designed for quick testing and practical use with MCP-compatible AI clients. It is not the full MOVA State engine.
MOVA Flat Runner = lightweight contract execution facade
MOVA State Engine = proof-oriented state transition machine for heavier business processes
You can use the flat runner without understanding or installing the full MOVA ecosystem.
MIT-0
Set these up before or after installing:
Environment variable: MOVA_API_KEY
Environment variable: LLM_KEY
Environment variable: LLM_MODEL
Environment variable: MOVA_API_URL
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-mova-compact-mova-flat-runner": {
"env": {
"LLM_KEY": "your-llm-key-here",
"LLM_MODEL": "your-llm-model-here",
"MOVA_API_KEY": "your-mova-api-key-here",
"MOVA_API_URL": "your-mova-api-url-here"
},
"args": [
"-y",
"mova-mcp"
],
"command": "npx"
}
}
}Valid MCP server (1 strong, 0 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Package registry verified. Imported from the Official MCP Registry.
4 files analyzed · 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Be the first to review this server!
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally