opencode-eyes
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
opencode-eyes
Eyes for models that cannot see. The image goes to StepFun's
step-3.7-flash vision model; the description comes back as tool output.
给不具备多模态能力的模型一双眼睛:把图片交给 StepFun 多模态模型,拿回文字描述。
As a DeepSeek Harness plugin: the MCP server ships inside the bundle, so
installing one plugin is the whole setup — no mcpServers file to hand-edit.
Install
DeepSeek Harness Desktop — open Plugins in the sidebar, choose Add plugin, and enter:
https://github.com/bauerelizabeth07139/opencode-eyesThen switch the new dsh-opencode-eyes bundle on. The Desktop app boots the
reserved desktop profile, so that is where it has to be enabled.
dsh CLI — install it into the profile you actually boot:
dsh plugin --profile web add bauerelizabeth07139/opencode-eyesNo git on the machine? pnpm resolves a git shorthand with git ls-remote,
which fails with 'git' is not recognized when git is missing. Use the tarball
instead — that path is plain HTTPS:
dsh plugin --profile web add https://codeload.github.com/bauerelizabeth07139/opencode-eyes/tar.gz/mainThe same address works in the Desktop Add plugin dialog. Replace main
with a commit SHA to pin an exact revision (/tar.gz/<sha>).
Uninstall with dsh plugin --profile web remove dsh-opencode-eyes.
Related MCP server: glm4v-vision-mcp
Requirements
Python ≥ 3.8 on
PATH, or pointed at withpython.Pillow in that interpreter — the server's only third-party import (
pip install Pillow).A StepFun API key in
STEP_API_KEY(orconfig.apiKey). Without one the server still starts anddescribe_imagereturns a clear error.
Tools
The server registers 1 tool(s). DSH namespaces them automatically,
so the model calls them as mcp__opencode_eyes__<tool>:
Tool | What it does |
| Reads an image file, base64-encodes it as JPEG (optionally downscaled) and asks the vision model to describe it. Parameters: |
Configuration
Key | Environment variable | Default | Meaning |
| — | discovered | interpreter that runs the server |
|
| (empty) | StepFun credential; required by |
|
|
| model id sent in the request |
|
|
| the server's own HTTP timeout |
|
|
| images are downscaled to this edge length |
|
|
| JPEG quality of the re-encoded image |
| — |
| DSH's per-call budget; keep it above |
| — |
| raw environment passthrough for anything else |
Every field is optional and lives in the loader row. For example, in
cordis.patch.yml:
- id: dsh-opencode-eyes
name: 'dsh-opencode-eyes'
config:
apiKey: 'sk-...'
toolCallTimeoutMs: 300000Notes
The API base URL is compiled into the server (
https://api.stepfun.com/step_plan/v1/chat/completions); there is nobaseUrloption to point it elsewhere. This plugin exposes only what the server actually reads.src/layout. The package is asrc/-layout Python module, so the server must run with the repository'ssrcdirectory as its working directory. The plugin does that for you.Timeouts. The server waits up to
STEP_TIMEOUT(120 s) for StepFun, which is longer than the harness's 60 s default, so the plugin mounts with a 300 s per-call budget.
How it is mounted
index.js resolves a Python interpreter (the configured python, then
python3/python on PATH), hands the server its argv and working directory,
and mounts it as a stdio MCP server through @deepseek-ai/dsh-mcp-client with
failOnStartupError: true, so a server that cannot start is a visible error
rather than a silently missing tool.
Credentials are forwarded explicitly. The harness scrubs credential-shaped
variables (KEY, TOKEN, SECRET, PASSWORD) out of the environment a child
process inherits, so config.apiKey — falling back to the variable the server
documents — is written into the child's environment by the plugin itself. That
means both of these work:
config:
apiKey: '<your key>'export STEP_API_KEY='<your key>' # picked up at load timeDevelopment
No build step and no runtime dependencies — @deepseek-ai/cordis and
@deepseek-ai/dsh-mcp-client are peers supplied by the Harness.
npm test # node >= 22: manifest checks + the stdio mount, both Harness-freeThe mount test loads index.js with @deepseek-ai/dsh-mcp-client stubbed and
asserts the exact stdio configuration the plugin produces, including the
credential forwarding above.
Repository layout
Path | Purpose |
| the DSH plugin: resolves the interpreter and mounts the server |
| the loader row that activates the plugin |
| card title and description for the plugin lists |
| card artwork |
|
|
| the MCP server, unchanged |
| the Python package metadata, unchanged |
Other hosts (unchanged)
The server is a plain stdio MCP server and still works anywhere else. The
repository's original README is kept verbatim as
README.opencode.md, and the launch stanza from it keeps
working:
{
"mcp": {
"opencode-eyes": {
"type": "local",
"command": ["python", "-m", "opencode_eyes"],
"enabled": true,
"timeout": 120000,
"environment": { "STEP_API_KEY": "你的StepFun API Key" }
}
}
}On another host, run the server from the repository's src directory (or put
src on PYTHONPATH) — that is the one thing the plugin adds.
License
MIT — the repository declared MIT in pyproject.toml but shipped no licence file; this plugin's release adds one.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for MiniMax H3 multimodal video generation
MCP server for Wan AI video generation
MCP server exposing the YourImageShare upload API (upload/list/delete) as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for image recognition, supporting multiple vision backends (Anthropic, Zhipu, Ollama) to describe, answer questions, and analyze images.355 npm1MIT
- AlicenseBqualityDmaintenanceMCP server that provides image analysis, OCR text extraction, and image description using the GLM-4V Flash model from Zhipu AI.38MIT
- AlicenseNot gradedqualityDmaintenanceMCP server that gives text-only LLMs vision capabilities by using a free multimodal model to perceive images, audio, and video, returning text for the main model to reason with.33 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables text-only models to understand images through a conversational MCP server, supporting multi-turn follow-ups, URL inputs, and OpenAI-compatible vision APIs.1MIT