j-can-see
Allows sending images to OpenAI vision models via the OpenAI Responses or Chat Completions API, returning text descriptions.
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., "@j-can-see Describe the screenshot in my clipboard."
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.
j-can-see
English | 中文文档
An MCP server that gives text-only AI coding agents a vision toolkit: describe/OCR images, locate elements by pixel coordinates, diff images, pick exact colors, and vectorize graphics.
Why
Text-only models cannot read image files. j-can-see exposes vision as normal MCP tools, so Claude Code, Codex, and other MCP clients can work with local files, URLs, clipboard images, and screenshots without multimodal input support.
Related MCP server: MCP Vision Server
Requirements
Node.js >= 20
No installation required; the commands below run the published npm package via
npx
Claude Code
One command (recommended)
claude mcp add j-can-see -s user \
-e J_SEE_TOKEN='your-key' \
-e J_SEE_BASE_URL='https://your-vision-endpoint' \
-e J_SEE_MODEL='grok-4.5' \
-- npx -y j-can-see-s user writes to the user-level config, outside any git repository.
Manual
Add this to the mcpServers section of ~/.claude.json (macOS/Linux) or %USERPROFILE%\.claude.json (Windows):
"j-can-see": {
"command": "npx",
"args": ["-y", "j-can-see"],
"env": {
"J_SEE_TOKEN": "your-key",
"J_SEE_BASE_URL": "https://your-vision-endpoint",
"J_SEE_MODEL": "grok-4.5"
}
}Codex
One command (recommended)
codex mcp add j-can-see \
--env J_SEE_TOKEN='your-key' \
--env J_SEE_BASE_URL='https://your-vision-endpoint' \
--env J_SEE_MODEL='grok-4.5' \
-- npx -y j-can-seeManual
Add this to ~/.codex/config.toml (macOS/Linux) or %USERPROFILE%\.codex\config.toml (Windows):
[mcp_servers.j-can-see]
type = "stdio"
command = "npx"
args = ["-y", "j-can-see"]
[mcp_servers.j-can-see.env]
J_SEE_TOKEN = "your-key"
J_SEE_BASE_URL = "https://your-vision-endpoint"
J_SEE_MODEL = "grok-4.5"Config file locations
Client | macOS / Linux | Windows |
Claude Code MCP |
|
|
Claude Code hooks/settings |
|
|
Codex MCP |
|
|
Environment variables
Variable | Required | Default | Description |
| Yes | - | Vision model API key |
| Yes | - | Vision endpoint base URL; trailing slashes are stripped |
| Yes | - | Vision model name supported by your endpoint |
| No |
|
|
| No |
| Reasoning effort; only used by the |
| No |
| Max long-edge pixels for image compression |
| No |
| Max source file size in bytes |
| No |
| Max decoded pixels, checked from the header before decode |
| No |
| Total budget per vision tool call in ms (incl. queueing and retries); timeouts auto-retry at lower resolution with a note in the result |
| No |
| Total budget for multi-chunk |
| No |
| Global vision concurrency cap (1-8); auto-demotes on 429/5xx/timeout, probes back up on new calls |
| No |
| Max attempts per vision call (first try + retries) |
| No |
| Total budget for |
| No |
| Set to |
The server still starts without J_SEE_TOKEN / J_SEE_BASE_URL / J_SEE_MODEL: local pixel tools keep working, and vision tools return a clear config error when called.
API spec
| Endpoint | Use case |
|
| OpenAI Responses, aligned with GPT-5 / Codex ecosystem |
|
| OpenAI Chat Completions and OpenAI-compatible proxies |
|
| Anthropic native API, no proxy needed |
If your endpoint returns 404 for /v1/responses, set J_SEE_API_SPEC=openai. To call Anthropic directly:
claude mcp add j-can-see -s user \
-e J_SEE_API_SPEC='anthropic' \
-e J_SEE_TOKEN='sk-ant-...' \
-e J_SEE_BASE_URL='https://api.anthropic.com' \
-e J_SEE_MODEL='claude-sonnet-4-5' \
-- npx -y j-can-seeTools
Vision tools
Tool | Purpose |
| Describe or compare images, zoom into regions |
| Find one target and return its pixel coordinates |
| Enumerate all elements of one type with text and coordinates |
| OCR tall screenshots in chunks, merged with a dedup audit |
Local tools (no vision config needed)
Tool | Purpose |
| Crop a region to a file |
| Pixel diff percentage and densest changed grid cells |
| Exact dominant or candidate colors |
| Vectorize flat high-contrast graphics to SVG |
| Cut a foreground icon into a transparent PNG |
Detailed usage methodology: SKILL.md.
Agent skill
The server auto-installs SKILL.md into ~/.claude/skills, ~/.codex/skills, ~/.agents/skills, and ~/.zcode/skills on every start, unless J_SEE_SKILL_AUTO_INSTALL=0 is set.
npx j-can-see --skill # install the skill manually
npx j-can-see --print-skill # print SKILL.md contents
npx j-can-see --hook # print the Claude Code hook scriptOptional: Claude Code hook
Without the hook, a text-only model may try to Read an image file and fail. The hook redirects Read calls on image files to see_image:
mkdir -p ~/.claude/hooks
npx j-can-see --hook > ~/.claude/hooks/block-image-read.mjs
chmod +x ~/.claude/hooks/block-image-read.mjsThen add this to ~/.claude/settings.json (%USERPROFILE%\.claude\settings.json on Windows):
{
"hooks": {
"PreToolUse": [
{
"matcher": "Read",
"hooks": [
{
"type": "command",
"command": "node ~/.claude/hooks/block-image-read.mjs"
}
]
}
]
}
}Limitations
Linux clipboard is not supported; use a file path instead
Transparent PNGs are converted to JPEG
No retries or fallback: vision failures are reported as-is
Development
npm install
npm test
npm run buildAvailable Tools
1 toolsee_imageA
读取图片(本地文件 / URL / 剪贴板 / 最近截图)并通过视觉模型返回文字描述。用于主模型无多模态输入能力时的识图。
Inputs: source (required), prompt.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 1 tool
With only a single tool, there is no possibility of confusing it with any other tool. The tool's purpose is clearly defined around image understanding.
The tool follows a clear verb_noun pattern (see_image), and since it is the only tool, the naming is internally consistent.
A single tool feels thin for a server, but the scope is narrow (image description). It is borderline but not an extreme mismatch.
The tool covers all input methods mentioned (local file, URL, clipboard, recent screenshot) and fulfills the stated purpose of describing images for models without multimodal input.
Related MCP Connectors
OCR, transcription, file extraction, and image generation for AI agents via MCP.
MCP server for Qwen Image 3 AI image generation
MCP server for OpenAI API (chat completions, image generation, embeddings) via AceDataCloud
MCP server exposing the YourImageShare upload API (upload/list/delete) as tools for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables any LLM to describe images from file paths, URLs, or base64 data by forwarding them to a supported vision provider such as OpenAI, Anthropic, or local Ollama models.224 npm10MIT
- FlicenseNot gradedqualityDmaintenanceA versatile MCP server that adds vision capabilities (image analysis, OCR, image/video generation) to AI models lacking native vision, with support for multiple providers and automatic task routing.-
- FlicenseAqualityDmaintenanceMCP server enabling LLM clients without vision capability to process images by delegating to local Ollama vision models. Supports describing images, OCR, asking questions, and processing clipboard images.4-
- AlicenseAqualityDmaintenanceMCP server for vision capabilities, enabling screenshot, camera, and image analysis using Ollama vision models.41MIT