MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

M
MCP Vision Web Bridge

Local MCP bridge for image understanding and web-page reading with OpenAI-compatible models

Created 5/8/2026
Updated about 22 hours ago
Repository documentation and setup instructions

mcp-vision-web-bridge

Local MCP server that gives Claude Desktop, Claude Code, and other MCP clients two practical bridge tools:

  • read an image from a recent Claude upload, clipboard, local path, URL, or base64 input, then send it to an OpenAI-compatible vision model;
  • read web links locally, extract readable text, then send the result to an OpenAI-compatible model.

It does not include a model or any model credits. You bring your own OpenAI-compatible API endpoint and API key.

Use Cases

  • Your Claude client can accept images, but the third-party model behind it does not reliably receive image content.
  • Your model provider supports vision, but your MCP client needs a local tool to collect image inputs.
  • You want a safer local web reader with private-network blocking enabled by default.

Capabilities

| Capability | macOS | Windows | Linux | | --- | --- | --- | --- | | MCP server | Supported | Supported | Supported | | OpenAI-compatible chat completions | Supported | Supported | Supported | | Web page reading | Supported | Supported | Supported | | Recent Claude upload image | Supported | Best effort | Best effort | | Clipboard image | Supported | Supported via PowerShell / Windows Forms | Supported via wl-paste or xclip |

Recent Claude upload paths are client implementation details, not a stable public API. If auto-detection does not work in your environment, set CLAUDE_UPLOAD_DIRS manually.

Security Defaults

The default configuration is intentionally conservative:

  • .env is ignored and should never be committed.
  • API keys are only read from environment variables.
  • Explicit local image paths are disabled unless ALLOW_LOCAL_IMAGE_PATHS=true.
  • Clipboard image reading is disabled unless ALLOW_CLIPBOARD_IMAGES=true.
  • Private-network web and image URLs are disabled unless ALLOW_PRIVATE_NETWORK_URLS=true.
  • Jina Reader fallback is disabled unless USE_JINA_READER=true.
  • The server does not log prompts, image data, API keys, or fetched page bodies.

Requirements

  • Node.js 20 or newer
  • npm

This is a Node.js project. It does not require Python or a virtual environment.

Install

npm install
cp .env.example .env

Edit .env:

MODEL_BASE_URL=https://api.example.com/v1
MODEL_API_KEY=replace-with-your-own-key
MODEL_NAME=replace-with-your-vision-model

ALLOW_LOCAL_IMAGE_PATHS=false
ALLOW_CLIPBOARD_IMAGES=false
ALLOW_PRIVATE_NETWORK_URLS=false
USE_JINA_READER=false
MAX_IMAGE_BYTES=10485760

MODEL_BASE_URL must be an OpenAI-compatible /v1 endpoint.

SiliconFlow Example

MODEL_BASE_URL=https://api.siliconflow.cn/v1
MODEL_API_KEY=replace-with-your-own-key
MODEL_NAME=Qwen/Qwen3-VL-8B-Instruct

Use a model that supports vision input.

Claude Desktop Config

Use absolute paths for your local checkout:

{
  "mcpServers": {
    "vision-web-bridge": {
      "command": "node",
      "args": [
        "--env-file-if-exists=/absolute/path/to/mcp-vision-web-bridge/.env",
        "/absolute/path/to/mcp-vision-web-bridge/src/server.mjs"
      ]
    }
  }
}

Restart Claude Desktop after changing the config.

Claude Code Config

Add the same server to your Claude Code MCP config. After restart, check /mcp and confirm that vision-web-bridge is connected.

The server exposes two tools:

  • read_image_with_model
  • read_links_with_model

It also exposes two MCP prompts:

  • /mcp__vision-web-bridge__img
  • /mcp__vision-web-bridge__clipboard-image

Usage

Read the latest image uploaded to the Claude client:

Use read_image_with_model with use_latest_upload=true.

Read the current clipboard image:

Use read_image_with_model with use_clipboard=true and use_latest_upload=false.

Read a local image path after enabling ALLOW_LOCAL_IMAGE_PATHS=true:

Use read_image_with_model with image_path="/absolute/path/to/image.png".

Read web links:

Use read_links_with_model to summarize https://example.com/article

Tool Details

read_image_with_model

Supported image sources:

  • latest Claude upload;
  • public image URL;
  • base64 image;
  • data URL;
  • local image path, opt-in only;
  • clipboard image, opt-in only.

The tool returns the model response and a non-sensitive source label such as latest uploaded image, clipboard image, or local image path.

read_links_with_model

The tool extracts URLs from the user input, fetches readable page content locally, and asks the configured model to summarize or answer questions.

Private-network URLs are blocked by default. Optional Jina Reader fallback can be enabled with USE_JINA_READER=true, which sends the URL to Jina Reader.

Environment Variables

| Variable | Default | Description | | --- | --- | --- | | MODEL_BASE_URL | https://api.example.com/v1 | OpenAI-compatible /v1 endpoint | | OPENAI_BASE_URL | unset | Fallback base URL if MODEL_BASE_URL is not set | | MODEL_API_KEY | unset | API key for the model provider | | MODEL_NAME | replace-with-your-vision-model | Chat or vision model name | | CLAUDE_UPLOAD_DIRS | client-specific defaults | Override upload directories | | CLAUDE_UPLOAD_DIRS_DELIMITER | platform default | Directory list delimiter | | ALLOW_LOCAL_IMAGE_PATHS | false | Allow explicit local image paths | | ALLOW_CLIPBOARD_IMAGES | false | Allow reading image data from clipboard | | ALLOW_PRIVATE_NETWORK_URLS | false | Allow private-network web and image URLs | | USE_JINA_READER | false | Allow Jina Reader fallback | | MAX_IMAGE_BYTES | 10485760 | Maximum image size in bytes |

Development

npm test
npm run check:secrets

Before publishing, run:

npm pack --dry-run

Check the file list carefully. .env, logs, images, local screenshots, and personal paths must not be included.

Windows Notes

  • Use full absolute paths in claude_desktop_config.json.
  • Save JSON config as UTF-8 without BOM.
  • Restart Claude from the system tray after editing config.
  • Clipboard image reading uses PowerShell / Windows Forms.

License

MIT

Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-mcp-vision-web-bridge

Cursor configuration (mcp.json)

{ "mcpServers": { "dangpolly927-eng-mcp-vision-web-bridge": { "command": "npx", "args": [ "dangpolly927-eng-mcp-vision-web-bridge" ] } } }