AGY Visual Witness MCP
Provides visual reading and structured evidence extraction from images using Google's Antigravity CLI and Gemini models, including whole-scene descriptions, targeted visual questions, and comparison prefilters.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@AGY Visual Witness MCPWhat visible differences are between /img/before.png and /img/after.png?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
AGY Visual Witness MCP
A provider-specific visual reader for text-only agents. It uses Google's
Antigravity (agy) CLI and returns structured visual evidence, not an
acceptance verdict.
Three operations are intentionally separate:
WHOLE_READ: scene-level structured description through pinned ModLens.TARGETED_WITNESS: one image plus one visible-evidence question.COMPARE_PREFILTER: two images plus a list of visible difference candidates.
Every response declares:
control_surface = QA_ONLY
epistemic_label = INFERRED
authority = evidence_only_no_gate_no_acceptance_no_promotion
reproducibility_class = NOT_REPRODUCIBLEIt must not replace deterministic size/binding/AOV checks, pixel diffs, histograms, IoU measurements, human identity/art-direction judgment, or final promotion authority.
Relationship to ModLens
WHOLE_READ invokes
@liustack/modlens as an external CLI.
The targeted and comparison operations are separate clean-room adapters that
invoke agy structured output directly. No ModLens source is vendored here.
Related MCP server: Vision MCP Server
Install
Install and sign in to the official
agyCLI.Install Node.js/npm if you want
WHOLE_READ.Install this package:
pipx install .
# or
uv tool install .CLI
agy-visual doctor
agy-visual read --root /path/to/images --image /path/to/images/scene.png \
--operation WHOLE_READ
agy-visual read --root /path/to/images --image /path/to/images/hand.png \
--operation TARGETED_WITNESS \
--prompt "How many fingers are visibly countable? Mark occluded digits unknown."
agy-visual read --root /path/to/images \
--image /path/to/images/before.png --image /path/to/images/after.png \
--operation COMPARE_PREFILTER --prompt "List visible geometry differences only."Use --dry-run to validate paths, hashes, operation contract, and runtime
identity without sending an image to a provider.
MCP
Codex config.toml example:
[mcp_servers.agy-visual-witness]
command = "agy-visual-witness-mcp"
env = { AGY_VISUAL_ROOTS = "/absolute/allowed/image/root" }Tools:
describe_image_geminiagy_visual_doctor
Boundaries
Local files only; URLs are rejected.
Images must stay under
AGY_VISUAL_ROOTSor the roots passed by the caller.Supported formats: PNG, JPEG, WebP, GIF, BMP; maximum 25 MiB each.
Provider execution receives staged copies in an otherwise empty temporary directory. Image text is treated as untrusted data, never as instructions.
Input evidence includes SHA-256 and byte size.
TARGETED_WITNESSrequires exactly one image and a non-empty question.COMPARE_PREFILTERrequires exactly two images.
Runtime identity for comparison
Multi-image behavior has changed across agy releases. Comparison therefore
fails closed unless the binary identity is known:
Windows
agy1.1.9 is recognized by its tested SHA-256.Other builds can be pinned with
AGY_VISUAL_EXPECTED_SHA256after independent verification.AGY_VISUAL_ALLOW_UNVERIFIED_COMPARE=1is an explicit escape hatch. The output still reportsOBSERVED_NOT_PINNED; do not treat it as reproducible.
Version probes run with AGY auto-update disabled and the executable is hashed again after the probe. If a configured/known hash does not match, or the binary changes during probing, every provider operation is blocked before egress. The unverified-compare escape hatch never overrides an explicit identity mismatch.
AGY_BIN selects an explicit executable. AGY_VISUAL_MODEL overrides the
default gemini-3.6-flash-low. Provider model availability and quota can change.
Security
Do not attach secret-bearing screenshots unless the selected external provider is authorized to receive them. Never promote model output to a deterministic gate merely because the call returned successfully.
See SECURITY.md.
Observed pre-release checks and their evidence limits are recorded in docs/VALIDATION.md.
License
MIT. This project is independent and is not endorsed by Google, ModLens, or OpenAI. ModLens remains under its own MIT license and is used only through its documented CLI interface.
Available Tools
2 toolsagy_visual_doctorC
Report agy/npx runtime presence and non-secret identity evidence.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of disclosing behavior. It mentions 'non-secret' to indicate that secrets are not exposed, but it does not explain side effects, execution context, dependencies, or what evidence is returned, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that leads with the verb 'Report' and packs the core purpose without unnecessary words. It is appropriately sized for a zero-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description needs to explain what the tool returns or how it behaves. It only says 'evidence' is reported, but not the format, structure, or examples of that evidence, leaving the context incomplete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is 100%, so no parameter explanation is needed. The baseline score of 4 applies because there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Report' and names the subject 'agy/npx runtime presence and non-secret identity evidence', which gives a general sense of a diagnostic check. However, the phrase 'non-secret identity evidence' is vague and does not clearly define the exact resource or outcome, making the purpose only partially clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the sibling tool describe_image_gemini. The description only states what it does, not under what circumstances it should be chosen or excluded.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_image_geminiB
Return QA-only visual evidence; never a deterministic acceptance verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| roots | No | ||
| images | Yes | ||
| prompt | No | ||
| dry_run | No | ||
| operation | No | WHOLE_READ | |
| timeout_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior, but it only adds one non-deterministic output trait. It does not mention read-only nature, external API calls, permissions, rate limits, or output format. The 'never a deterministic acceptance verdict' is useful but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one focused sentence, front-loaded with the core purpose and a key limitation. Every word earns its place; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain what 'visual evidence' looks like, how parameters influence behavior, or any operational details. Clearly inadequate for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation for any of the 7 parameters (images, model, roots, prompt, dry_run, operation, timeout_ms). The description completely fails to compensate for the lack of param documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns QA-only visual evidence and explicitly denies deterministic acceptance verdicts, giving a specific verb and resource. However, it does not explicitly differentiate from sibling tool agy_visual_doctor, though the QA-only scope helps distinguish it from a verification tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: use for QA visual evidence, and a when-not: never for deterministic acceptance. It implies alternatives for acceptance checks but does not name any tool directly. This is clear context without explicit alternative listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.1.0- First observed
agy_visual_doctor - First observed
describe_image_gemini
TDQS
Scored across 2 tools
The two tools have clearly distinct purposes: one analyzes images via Gemini, the other checks runtime presence and identity evidence. There is no overlap or ambiguity between them.
The naming conventions are inconsistent: 'describe_image_gemini' follows a verb_noun_model pattern, while 'agy_visual_doctor' uses a product-prefixed noun phrase with no verb. This makes the set feel disjointed.
With only two tools, the server is minimal but still coherent with its stated 'Visual Witness' purpose. It feels slightly thin but not unreasonable for a specialized utility.
The tools cover image description and runtime diagnostics, but the 'Visual Witness' domain might benefit from additional operations like image comparison or evidence storage. There is no obvious dead end, but the surface is narrow.
Maintenance
Related MCP Connectors
Analyze images from multiple angles to extract detailed insights or quick summaries. Describe visu…
Analyze images and videos with Gemini to get fast, reliable visual insights. Handle content from U…
Video scene understanding for AI agents via the Primate Vision API.
Image & PDF tools for AI agents: compress, convert, resize, PDF, AI vision, pipeline.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides image analysis, inspection, cropping, OCR, and comparison capabilities via the Model Context Protocol, allowing AI agents to process and manipulate images using vision models.2MIT
- AlicenseAqualityDmaintenanceEnables AI agents to analyze images, extract text, compare images, and analyze video through any OpenAI-compatible vision model.4151 npm20MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to read images with metadata, OCR text, regions, and citeable evidence without relying on generative LLMs.13 npm2MIT
- AlicenseNot gradedqualityCmaintenanceProvides structured visual analysis tools for coding agents, enabling UI analysis, screenshot comparison, OCR, and crop-based refinement through VLM.MIT