Mova Bridge

AdvisoryAudited by VirusTotal on Mar 24, 2026.

Overview

Type: OpenClaw Skill Name: mova-bridge Version: 1.0.0 The MOVA Bridge is a legitimate MCP server designed to integrate the MOVA contract execution platform with AI agents like OpenClaw. The code (server.py) acts as a thin HTTP client that delegates business tasks (AML triage, invoice processing, trade risk) to the MOVA API at api.mova-lab.eu. While the bridge handles sensitive credentials like MOVA_API_KEY and LLM_KEY, it does so transparently to facilitate the platform's stated AI-powered workflows. The SKILL.md file contains robust safety instructions for the agent, explicitly requiring user confirmation for costs and prohibiting the sharing of API keys. No evidence of malicious intent, unauthorized data exfiltration, or obfuscation was found.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If a user has LLM_KEY set for another service, the bridge may unintentionally grant MOVA access to that credential or related spending authority.

Why it was flagged

The code can read a generic non-MOVA LLM credential from the environment and put it into outbound MOVA request headers, while the registry metadata declares no credentials and the README environment table does not document LLM_KEY.

Skill content
LLM_KEY         OpenRouter key for AI steps. ... llm_key = os.environ.get("LLM_KEY", "") ... h["X-LLM-Key"] = llm_key
Recommendation

Document this credential clearly, use a MOVA-specific variable name, require explicit opt-in before forwarding third-party LLM keys, and explain exactly where the key is sent.

What this means

Sensitive invoice images or invoice data could be sent for processing, and possibly billed, before the user sees a price or data-sharing confirmation.

Why it was flagged

The HITL invoice instruction conflicts with the skill's stated no-exceptions price-confirmation rule and may cause immediate external processing of invoice content without an explicit confirmation step.

Skill content
`mova_hitl_start` | User sends an invoice image or says "process invoice" — call immediately, no confirmation needed ... **Always show price before executing.** No exceptions
Recommendation

Require the same price and external-processing confirmation for invoice workflows as for mova_execute, or clearly document why invoice processing is exempt.

What this means

Users may believe their data is going to one MOVA host while the bridge actually sends it to another by default.

Why it was flagged

The documented default API destination does not match the code's actual default endpoint, which matters because credentials and sensitive task inputs are sent to that service.

Skill content
README: `MOVA_API_URL` ... Default ... `https://mova-api.fly.dev`; server.py: `_DEFAULT_API_URL = "https://api.mova-lab.eu"`
Recommendation

Align the README, registry metadata, and code default endpoint, and show the configured endpoint during setup.

What this means

Customer, transaction, invoice, or business-review details may be processed by MOVA and related external connectors.

Why it was flagged

The skill discloses that MOVA executions may call external data sources, which is purpose-aligned for AML/KYB/business review tasks but means user-provided business data may cross additional service boundaries.

Skill content
It will query 2 external data sources during execution ... "The agent checked sanctions databases and the company registry"
Recommendation

Use only the minimum necessary inputs, confirm the external data sources before execution, and review MOVA's privacy and retention terms.

What this means

It may be harder to verify that the package being installed is the same one that was reviewed.

Why it was flagged

The artifacts show inconsistent version identifiers, and the registry source/homepage fields are incomplete even though pyproject lists GitHub URLs.

Skill content
Registry Version: 1.0.0; pyproject.toml: `version = "0.6.0"`; __init__.py: `__version__ = "0.1.0"`
Recommendation

Publish consistent versions, fill in registry source/homepage metadata, and install only from a trusted package source or reviewed repository.