Install
openclaw skills install mova-bridgeExecute AI-powered business tasks with full audit trail, including AML, complaints, disputes, KYB, and loan reviews under fixed rules and cost limits.
openclaw skills install mova-bridgeYou have access to MOVA — a contract execution platform that runs AI-powered business tasks with a full audit trail. Each task is governed by a contract: fixed rules, cost limits, and compliance policies that the agent cannot override.
If MOVA_API_KEY is not set, the user needs to register first:
mova_register with their organisation nameapi_key and ask them to save itMOVA_API_KEY=<key> to their MCP environment config and restart"It looks like you haven't connected MOVA yet. Let me create an account for you — what should I call your organisation?"
New accounts start with $1.00 free credit to try the platform.
Use MOVA when the user asks to perform a structured business task such as:
| Tool | When to call |
|---|---|
mova_register | User has no API key yet — first-time setup |
mova_list_contracts | User asks "what can you do?" or "what tasks are available?" |
mova_get_contract | User wants details on a specific task before proceeding |
mova_price_estimate | ALWAYS before executing — show the user the cost |
mova_execute | After the user confirms the price and provides the inputs |
mova_get_episode | User asks "show me the audit" or "what happened in ep-xxx" |
mova_list_episodes | User asks for history or past executions |
mova_usage | User asks about spend, balance, or how many tasks were run |
| Tool | When to call |
|---|---|
mova_hitl_start | User sends an invoice image or says "process invoice" — call immediately, no confirmation needed |
mova_hitl_decide | After mova_hitl_start returns waiting_human and user picks an option |
mova_hitl_status | User asks about status of an in-progress invoice contract |
mova_hitl_audit | User asks for the full audit receipt of a completed invoice |
If you don't know whether MOVA_API_KEY is set, call mova_list_contracts. If you get an error about a missing key, start the registration flow (see First time setup above).
When the user describes a task, call mova_list_contracts to find the right contract. Pass domain or keyword if obvious. Show the user a short list and confirm the match.
Call mova_price_estimate with the matched contract ID. Present in plain language:
This task costs approximately $0.003 (typical) and up to $0.008 at maximum. It will query 2 external data sources during execution. You will only be billed if the task completes successfully. Shall I proceed?
Never proceed to Step 4 without explicit confirmation from the user.
If the user hasn't provided all required inputs, ask for them now. Call mova_get_contract to see what fields are expected. Do not guess missing values — ask the user.
Call mova_execute with the contract ID and inputs. Tell the user:
"Running the task — this may take up to 30–120 seconds as the agent queries external data sources."
After execution, present:
ep-xxxxxxxx. You can retrieve this anytime."If verdict is failed, explain what went wrong and offer to retry.
MOVA_API_KEY in any message or tool response.| Error | What to tell the user |
|---|---|
MOVA_API_KEY not set | "You're not connected to MOVA yet. Let me register an account for you — what should I call your organisation?" → call mova_register |
Invalid API key | "Your MOVA key appears to be invalid. Would you like me to register a new account?" |
Insufficient balance | "Your MOVA balance is empty. Please contact your administrator to add credit." |
Rate limit | "Too many requests right now. I'll wait a moment and retry." |
Not found | "That contract or episode wasn't found. Check the ID." |
"What tasks can you do?"
→ Call mova_list_contracts, present as a bullet list with one-line descriptions.
"Set me up with MOVA" / "I want to try MOVA"
→ Ask for org name → call mova_register → show api_key → explain how to set MOVA_API_KEY.
"How much does the AML triage cost?"
→ Call mova_price_estimate for agent.aml.alert_triage_l1, show the estimate.
"Run the AML check on this alert: [data]" → Estimate → confirm → collect missing inputs → execute → show decision + episode ID.
"Show me what happened in ep-abc123def456"
→ Call mova_get_episode("ep-abc123def456"), present the decision and verdict in plain language. If there are tool_calls in the episode, summarise which external sources were queried.
"How much have I spent?"
→ Call mova_usage, present balance remaining and total spent.
"Show my last 5 AML runs"
→ Call mova_list_episodes(contract_id="agent.aml.alert_triage_l1", limit=5).