Skip to main content
Glama

vision-bridge-mcp

Give your text-only OpenCode agent eyes.

OpenCode's text-only models (e.g. DeepSeek V4) can't read images — so if you attach a screenshot of an error, a whiteboard sketch, or a photo of a UI mockup, the agent has no idea what's in it. vision-bridge-mcp is a small MCP server that plugs straight into OpenCode and gives it two new tools: analyze_image (general description / visual Q&A) and ocr_image (exact text transcription), both backed by the Gemini API (gemini-3.6-flash by default — override with GEMINI_MODEL if Google retires it later; check https://ai.google.dev/gemini-api/docs/models for current model IDs).

Once it's configured, you just tell the agent to look at a file:

Look at ./screenshots/error.png and tell me what's failing.

and it will call analyze_image itself — no manual copy-pasting into a chat window, no separate CLI step.

Requirements

Related MCP server: Vision MCP Server

Install

No cloning required. Add this to your OpenCode config (opencode.json in your project root, or ~/.config/opencode/opencode.json for a global setup):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "vision-bridge": {
      "type": "local",
      "command": ["npx", "-y", "vision-bridge-mcp"],
      "environment": {
        "GEMINI_API_KEY": "your-api-key-here"
      }
    }
  }
}

Restart OpenCode (or run opencode mcp to reconnect) and the analyze_image and ocr_image tools will show up automatically. npx downloads and caches the package the first time it runs — nothing to build or install by hand.

Prefer an env var over hardcoding the key in the config file? Set GEMINI_API_KEY in your shell profile instead and drop the "environment" block — the server reads it from the process environment either way.

Running it standalone (for development or testing)

git clone https://github.com/YOUR_GITHUB_USERNAME/vision-bridge-mcp.git
cd vision-bridge-mcp
npm install
cp .env.example .env   # then fill in GEMINI_API_KEY
npm start

The server speaks MCP over stdio, so on its own it just sits there waiting for a client (like OpenCode) to connect — that's expected.

Tools

analyze_image

General-purpose image understanding. Give it a path and, optionally, a custom prompt.

Parameter

Required

Description

image_path

yes

Path to a local image (absolute, or relative to OpenCode's cwd)

prompt

no

Custom instruction. Defaults to a developer-focused description.

ocr_image

Transcribes visible text verbatim — useful for error dialogs, terminal screenshots, or photographed notes.

Parameter

Required

Description

image_path

yes

Path to a local image (absolute, or relative to OpenCode's cwd)

Both tools support PNG, JPEG, WEBP, GIF, and HEIC/HEIF, up to 20MB by default.

Configuration

All configuration is via environment variables (set them directly, in a .env file for standalone use, or in the "environment" block of your opencode.json MCP entry):

Variable

Required

Default

Description

GEMINI_API_KEY

yes

Your Gemini API key

GEMINI_MODEL

no

gemini-3.6-flash

Any Gemini model with vision support

VISION_BRIDGE_MAX_IMAGE_MB

no

20

Reject images larger than this

The server starts even without GEMINI_API_KEY set (so opencode mcp can still list the tools) — it only errors, with a clear message, the moment a tool is actually called without a key configured.

Error handling

Every tool call either succeeds with a text result, or fails with isError: true and a specific, actionable message — a missing file, an unsupported format, a file over the size limit, a missing/invalid API key, or an upstream Gemini error. The server itself never crashes on a bad call.

Development

npm install
npm test    # unit tests (node's built-in test runner, no network needed)
npm run lint

The test suite covers path resolution, MIME-type detection, and file validation (missing files, directories, empty files, oversized files) — the input-handling logic most likely to break on real-world usage. The Gemini API call itself isn't mocked/tested here since it requires a live key; if you want to verify that path, set GEMINI_API_KEY and run npm start, then connect with any MCP client (or the MCP Inspector).

Publishing (maintainers)

npm login
npm publish --access public

Bump the version in package.json first — npx -y vision-bridge-mcp always resolves to the latest published version.

Contributing

See CONTRIBUTING.md.

License

MIT — see LICENSE.

Available Tools

2 tools
analyze_imageD
ParametersJSON Schema
NameRequiredDescriptionDefault
promptNoOptional custom instruction for what to look for or how to describe the image. If omitted, a general developer-focused description is returned.
image_pathYesPath to a local image file (absolute, or relative to the directory OpenCode was started in). Supports PNG, JPEG, WEBP, GIF, HEIC/HEIF.

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ocr_imageD
ParametersJSON Schema
NameRequiredDescriptionDefault
image_pathYesPath to a local image file to extract text from (absolute, or relative to the directory OpenCode was started in). Supports PNG, JPEG, WEBP, GIF, HEIC/HEIF.

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

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.

  1. 2 tool updatesv0.1.2
    • First observedanalyze_image
    • First observedocr_image

TDQS

D1.8/5.0

Scored across 2 tools

Disambiguation4/5

The tool names suggest distinct purposes — one for general image analysis and one for OCR. However, the complete lack of descriptions introduces some ambiguity about their exact boundaries.

Naming Consistency5/5

Both tools follow the same verb_noun pattern: analyze_image and ocr_image. The naming convention is clear, consistent, and predictable.

Tool Count3/5

With only two tools, the server feels minimal and borderline thin for an image-related service. The count is not excessive, but it is at the low edge of what could be considered a functional toolset.

Completeness2/5

A vision-bridge server with only image analysis and OCR lacks obvious capabilities like object detection, image comparison, or metadata extraction. The surface appears significantly incomplete for a general vision service.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    Not graded
    maintenance
    Enables AI agents to analyze images through vision AI providers (Gemini, OpenAI, Claude), performing tasks like image description, object detection with bounding boxes, region-specific analysis, and precise color extraction without consuming context window with raw pixels.
    4
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables text-only coding agents to analyze local images using a dedicated vision provider, returning markdown and structured JSON evidence for screenshots, diagrams, UI mockups, and error captures.
    11
    90 npm
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to analyze images using any OpenAI-compatible vision API, providing tools for image analysis, OCR, error diagnosis, diagram understanding, and chart analysis.
    MIT