mcp-simple-image
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., "@mcp-simple-imagegenerate an image of a sunset over the ocean, 1024x1024"
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.
mcp-simple-image
One tool, one endpoint. simple_image posts a prompt to a
StepFun-compatible /images/generations API and returns the resulting image
URLs — no SDK, no third-party packages.
一个工具、一个端点:把提示词发给 StepFun 兼容的图片生成 API,拿回图片 URL。
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/mcp-simple-imageThen switch the new dsh-simple-image 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/mcp-simple-imageNo 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/mcp-simple-image/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-simple-image.
Related MCP server: images-mcp
Requirements
Python ≥ 3.8 on
PATH, or pointed at withpython.No third-party packages — the server is pure standard library.
A StepFun-compatible API key in
STEP_API_KEY(orconfig.apiKey). Without one the server exits at startup withERROR: STEP_API_KEY is not set.An endpoint that already includes
/v1— the server appends/images/generationsitself and hardcodesresponse_format: url.
Tools
The server registers 1 tool(s). DSH namespaces them automatically,
so the model calls them as mcp__simple_image__<tool>:
Tool | What it does |
| Calls |
Configuration
Key | Environment variable | Default | Meaning |
| — | discovered | interpreter that runs the server |
|
| (empty) | required; the server refuses to start without it |
|
|
| API base, including |
|
|
| model id |
| — |
| DSH's per-call budget; the server's own HTTP timeout is 120 s |
| — |
| raw environment passthrough (for example |
Every field is optional and lives in the loader row. For example, in
cordis.patch.yml:
- id: dsh-simple-image
name: 'dsh-simple-image'
config:
apiKey: 'sk-...'
baseUrl: 'https://api.stepfun.com/step_plan/v1'
model: 'step-image-edit-2'Why this plugin ships a bridge
The server frames its stdio transport the LSP way — Content-Length: <n>
followed by a blank line — while the MCP client inside DeepSeek Harness reads
newline-delimited JSON. Mounted directly, the handshake would time out with no
error worth reading. bridge.mjs sits between the two: NDJSON in from the
harness, Content-Length frames to the server, and the reverse on the way back.
Messages are never re-encoded, only reframed, and the parser tolerates a
\r\r\n\r\r\n header — which is what this server emits on Windows, where
Python's text mode turns each \n into \r\n.
Notes
config.jsonwins over the environment. Ifconfig.json(orSTEP_CONFIG) exists next to the server, itsapi_key/api_base/modelvalues are read first. Do not leave a copiedconfig.example.jsonin place: its placeholder key is truthy, so the server starts with a bogus credential.Results are URLs, not files. The endpoint is asked for
response_format: url, so the tool returns links that expire; nothing is written to disk.The base URL must already contain
/v1. The server appends/images/generationsverbatim, so an OpenAI-style base URL without/v1produces a 404.
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 |
| NDJSON ↔ |
| the server's own configuration template, unchanged |
| the repository's original npm manifest, kept verbatim |
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:
STEP_API_KEY=sk-... python server.py # any MCP host that
# frames with
# Content-Length
node bridge.mjs -- python server.py # …or line-delimited
# JSON, through the
# bridgeLicense
MIT — the repository declared MIT in package.json and its README but shipped no licence file; this plugin's release adds one.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create images and videos from prompts, with options for image mixing, reference images, and start/…
- Flux AIOAuthart.fluxaipro
Generate images, videos and music with model discovery, cost estimates and asynchronous results.
1 Generate images with your own ChatGPT subscription (Plus, Pro or Team), without spending API credits
Generate images with any major model — one API key, one prepaid balance, one MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceGenerates images using Google's Gemini model, with options to save to file or return as base64 data URL.-
- AlicenseNot gradedqualityDmaintenanceProvides image generation tools powered by OpenRouter, running on Cloudflare Workers.19 npmMIT
- FlicenseNot gradedqualityCmaintenanceGenerates images and videos from text prompts using Cloudflare Workers AI and Google Gemini models.-
- FlicenseNot gradedqualityDmaintenanceGenerates images from text prompts using OpenAI's API, saves them locally, and serves them via an integrated HTTP static file server.-