Skip to main content
Glama

VisionMCP

A visual compiler and verifier for coding agents.

VisionMCP turns rendered evidence into inspectable visual programs, compares target and candidate worlds, maps residuals back to source, and binds claims to tamper-evident receipts. It runs locally, exposes a small MCP surface by default, and moves heavy evidence through content-addressed resources.

uvx --from \
  'visionmcp-ocular[compiler] @ git+https://github.com/joshuahickscorp/visionmcp@v0.8.0-alpha.2' \
  visionmcp demo compiler

That demo needs no account, API key, model weight, or network after installation. It compiles a bundled CC0 fixture, injects one controlled source defect, maps the residual to its declaration, repairs it, verifies the receipt, and rejects two tampered copies.

Public alpha. Ocular is EXPERIMENTAL. The previous Apple benchmark scored 297 cases across three experiments with zero complete passes. VisionMCP does not claim a perfect copy or original-source recovery.

VisionMCP public-alpha walkthrough

What works

  • A 15-tool lightweight core for projects, local evidence, artifact lookup, comparison, verification, progress, and review.

  • Versioned, paginated, content-addressed MCP resources for captures, states, motion, correspondence, residuals, source bindings, repairs, receipts, benchmarks, models, and binary analyses.

  • An evidence-to-VisualProgramIR compiler with deterministic HTML/CSS emission and explicit uncertainty.

  • A loopback-only Studio with target/candidate views, correspondence, residuals, source traces, repair queue, motion, receipts, 3D, and authorized binary summaries.

  • Portable receipt verification that rejects changed payloads and artifacts.

  • Optional physical Ghidra and Blender lanes with governed authorization and honest blockers when runtimes are absent.

The machine-readable claim authority is artifacts/capability-ledger.json; the human view is docs/CAPABILITY_LEDGER.md. README claims are checked against that ledger in CI.

Related MCP server: Witnessed

Try it from a clone

git clone https://github.com/joshuahickscorp/visionmcp
cd visionmcp
uv sync --extra dev --extra ocular

uv run visionmcp doctor --core
uv run visionmcp demo compiler
uv run visionmcp demo verify
uv run visionmcp studio

The distribution name remains visionmcp-ocular; the import and command are both visionmcp. Production PyPI is not published as part of this alpha without separate operator authorization.

Profiles

Profile

Adds

Host requirements

core

projects, local media evidence, receipts, resources

none beyond core Python dependencies

web

governed Chromium/DOM/a11y/style/network evidence

.[web] and host Chrome

compiler

VisualProgramIR, emission, repair planning, benchmark creation

core install

3d

Blender, GLB/glTF, geometry and validation

Blender; geometry extra for reconstruction

binary

authorized isolated Ghidra analysis

Ghidra 11.2.1 and JDK 21+

ocular

recorded streams, tracking, world state, next-view

.[ocular]; EXPERIMENTAL

full

accepted public profiles

profile-specific runtimes

dev

evaluators, probes, attack fixtures, diagnostics

.[dev]; never the default

visionmcp serve --profile core
visionmcp serve --profile compiler
visionmcp capabilities --profile compiler --json

Core exposes 15 high-level MCP tools—inside the 12–20 target—and does not load a browser, Blender, Java adapter, model backend, or plugin at startup.

Studio

visionmcp studio
# prints and opens http://127.0.0.1:7741/

Studio binds only to 127.0.0.1, has no account or telemetry, lazy-loads heavy evidence, draws correspondence graphs on a bounded canvas, supports keyboard navigation, and exports a static report. It refuses 0.0.0.0.

Demos

visionmcp demo compiler
visionmcp demo verify
visionmcp demo binary   # physical Ghidra or structured BLOCKED + exact fix
visionmcp demo 3d       # physical Blender or structured BLOCKED + exact fix
visionmcp demo ocular   # EXPERIMENTAL recorded fixture

demo binary analyzes a source-known fixture without executing it or giving the analyzer its source. Decompiler output is labelled approximation. demo 3d produces an editable BLEND, desktop/mobile GLBs, a fixed Cycles render, an authority/uncertainty map, reopen validation, and a receipt. Neither demo silently substitutes a fallback PASS.

Receipts and benchmarks

visionmcp receipt explain path/to/receipt.json
visionmcp receipt verify path/to/receipt.json
visionmcp benchmark escrow doctor --escrow path/to/escrow
visionmcp benchmark escrow rehearse --escrow path/to/escrow --public-only

A receipt says what physically ran, what was inferred, what was blocked or substituted, and which claims remain experimental. Integrity verification is not fidelity verification.

Evaluator escrow binds corpus splits, metrics, thresholds, environment, canaries, counters, commands, schemas, rights, and digests. Hidden execution is opaque and policy-gated; Apple Parity 05 hidden remains untouched until every frozen public case passes.

Local-first and safe by default

  • Telemetry is off.

  • Core doctor is offline.

  • No model or browser is downloaded automatically.

  • Studio is loopback-only.

  • Plugin discovery reads data manifests and imports no third-party code.

  • Optional workers are bounded and checked for leaks.

  • Public export audits reject creator-local paths and private benchmark data.

See docs/SECURITY.md, docs/PRIVACY.md, docs/security/THREAT_MODEL.md, and docs/LIMITATIONS.md.

Honest failure history

The Apple work is valuable because it failed loudly. Three Parity 04 experiments produced zero complete passes over 297 scored cases and exposed false-pass mechanisms around identity, observability, containment, assets, and evaluator authority. Those failures are preserved in the capability ledger and launch notes. The public alpha is useful independently of Apple Parity 05.

Contributing

Run the focused public gates:

python tools/scripts/check_capability_ledger.py
pytest -q
ruff check .
python -m build                                  # core wheel
uv build tools/packaging/visionmcp-ocular-kernels # companion wheel

Both wheels are required. Every extra except imaging pins visionmcp-ocular-kernels, and python -m build does not produce it — a core wheel alone gives ModuleNotFoundError on roughly forty subpackages.

Start with .github/CONTRIBUTING.md, docs/ARCHITECTURE.md, and docs/PLUGIN_API.md. Security reports follow docs/SECURITY.md; do not open a public issue for an undisclosed vulnerability.

Apache-2.0. Demo and model asset licenses are enumerated separately.

Available Tools

15 tools
project.createC

Create a portable project (millimetres, right-handed, Z-up).

Inputs: name (required), target_fidelity. Returns: object

project.statusC

Return project status and directory health.

Inputs: project_path (required). Returns: object

system.doctorC

Core doctor: offline, no optional dependency required.

Inputs: no named parameters. Returns: object

vision.capabilitiesA

List available, blocked, and experimental capabilities for the active profile.

Inputs: no named parameters. Returns: object

vision.close_projectA

Forget a project path from the session map (does not delete files).

Inputs: project_path (required). Returns: object

vision.compareC

Compare two captures by digest identity and overview metadata.

Inputs: capture_a (required), capture_b (required), project_path (required). Returns: object

vision.explain_regionC

Explain evidence, authority, and uncertainty at an observed pixel.

Inputs: x (required), y (required), capture_id (required), project_path (required), +1 more. Returns: object

vision.get_artifactC

Resolve a content-addressed artifact by SHA-256 digest.

Inputs: digest (required), project_path (required), include_path. Returns: object

vision.list_artifactsC

List content-addressed artifacts recorded in the project.

Inputs: project_path (required), limit. Returns: object

vision.observeB

Capture a local visual target into durable OBSERVED evidence (no browser).

Inputs: project_path (required), rights_decision (required), target, adapter, +2 more. Returns: object

vision.open_projectA

Open an existing project path and remember it for this session.

Inputs: project_path (required). Returns: object

vision.progressC

Return compact perception progress and evidence counts.

Inputs: project_path (required). Returns: object

vision.queryC

Query an observed perceptual graph with exact artifact citation.

Inputs: query (required), capture_id (required), project_path (required). Returns: object

vision.review_queueC

List items that still require named human or policy review.

Inputs: project_path (required). Returns: object

vision.verifyC

Verify a capture by evidence digest or verify a receipt file.

Inputs: project_path (required), capture_id, receipt_path. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 15 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: capabilities, system doctor, project management (create/status/open/close), artifact listing/resolution, visual capture (observe, query, explain, compare, verify), progress reporting, and review queue. No two tools overlap in function.

    Naming Consistency3/5

    Naming uses a mix of conventions: 'vision.capabilities' (noun), 'system.doctor' (noun), 'project.create' (verb), 'vision.open_project' (verb with underscore). While readable, the pattern is inconsistent across tools.

    Tool Count5/5

    With 15 tools, the server covers project, artifact, and visual capture workflows comprehensively without unnecessary bloat. The count feels well-scoped for the domain.

    Completeness4/5

    The tool surface covers core operations: project lifecycle (create/status/open/close), artifact access, visual capture and verification, and review. Minor gaps like absence of project update/delete or artifact removal exist, but the domain is self-contained.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Verifiable action receipts for AI agents — agents sign claims locally, an independent witness countersigns and timestamps, anyone can verify offline.
      9 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A deterministic AST evidence engine that forces AI agents to debug using verified execution facts instead of pattern-matching symptoms, enabling hallucination-free debugging for MCP-compatible agents.
      27 npm
      Business Source 1.1