Step Plan MCP MVP
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., "@Step Plan MCP MVPgenera una imagen de un atardecer en la playa"
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.
Step Plan MCP 通用版 MVP
这是一个本地 stdio 形态的 MCP Server MVP,用于让 Codex、Cursor、Claude Desktop 等支持 MCP 的客户端,通过一个 Step Plan API Key 调用 Step Plan 的多模态能力。
当前版本重点验证两件事:
用户不需要切换 Codex 当前主模型。
用户只要配置一次 MCP,就可以在当前对话中调用 Step Plan 生图和语音合成能力。
功能
工具 | 作用 | 默认模型 | 默认输出 |
| 检查 MCP 是否安装、Key 是否已配置、当前支持哪些能力 | 无 | JSON 状态 |
| 在 Agent 对话里保存 Step Plan API Key 到本机配置 | 无 | JSON 状态 |
| 根据文本生成图片、海报、汇报图、信息图等视觉内容 |
|
|
| 将文本、脚本、广告词、旁白生成语音文件 |
|
|
内部调用的 Step Plan API:
能力 | 接口 |
生图 |
|
语音合成 |
|
Related MCP server: Codex Vision MCP
运行要求
Node.js 20 或更高版本
npm
一个可用的 Step Plan API Key
一个支持 MCP 的客户端,例如 Codex
一键安装到 Codex(推荐)
这里的“克隆项目”指的是:把 GitHub 上的这个项目下载到你自己的电脑里。
“项目目录”指的是:下载完成后生成的那个项目文件夹,例如 step-plan-mcp-mvp。
Windows PowerShell 一次性安装
打开 Windows PowerShell。
选择一个你想存放项目的位置,例如桌面。
把
<repo_url>替换成你的 GitHub 仓库地址,然后复制下面整段命令运行:
cd "$env:USERPROFILE\Desktop"
git clone <repo_url>
cd step-plan-mcp-mvp
node scripts/install-codex.mjs如果你的 GitHub 仓库名不是 step-plan-mcp-mvp,第三行的 cd step-plan-mcp-mvp 要改成实际下载出来的文件夹名。
macOS / Linux 一次性安装
把 <repo_url> 替换成你的 GitHub 仓库地址:
cd ~/Desktop
git clone <repo_url>
cd step-plan-mcp-mvp
node scripts/install-codex.mjs如果你已经克隆过项目,只需要进入项目文件夹后运行:
node scripts/install-codex.mjs这个脚本会自动完成:
安装依赖:
npm install构建项目:
npm run build写入 Codex MCP 配置:
~/.codex/config.toml提示你重启 Codex
重启后由 Agent 在对话里完成 Step Plan API Key 配置
如果你想通过 npm script 运行,也可以:
npm run setup:codex默认安装命令不会询问或保存 Key。重启 Codex 后,在新会话里输入:
检查 Step Plan MCP 配置状态。如果提示还没有配置 Key,再输入:
配置 Step Plan MCP,我的 Step Plan API Key 是 <你的 key>Agent 会调用 step_configure_api_key,把 Key 保存到你本机的 ~/.step-plan-mcp/config.json。后续生图和语音工具会自动读取它。
如果你更希望在命令行里一次性配置 Key,可以运行:
node scripts/install-codex.mjs --with-key注意:无论用哪种方式,Key 都只保存在你的本机配置里,不会写入项目代码。不要把
~/.codex/config.toml或~/.step-plan-mcp/config.json提交到 GitHub。
手动安装
npm install
npm run build构建成功后,入口文件位于:
dist/index.js如果你使用上面的一键安装脚本,可以跳过下面的手动配置。
手动配置步骤(Codex)
如果你已经使用 node scripts/install-codex.mjs,可以跳过本节,直接重启 Codex 后测试。
1. 找到项目绝对路径
假设你把项目放在:
<repo_path>那么 MCP 入口文件就是:
<repo_path>/dist/index.jsWindows 示例:
C:\path\to\step-plan-mcp-mvp\dist\index.js2. 打开 Codex 配置文件
Windows PowerShell:
notepad "$env:USERPROFILE\.codex\config.toml"3. 追加 MCP 配置
把 <repo_path> 替换成你的项目绝对路径,把 YOUR_STEP_API_KEY 替换成你的 Step Plan API Key。
[mcp_servers.step_plan_mcp_generic_mvp]
command = "node"
args = ["<repo_path>/dist/index.js"]
startup_timeout_sec = 60
[mcp_servers.step_plan_mcp_generic_mvp.env]
STEP_API_KEY = "YOUR_STEP_API_KEY"Windows 路径示例:
[mcp_servers.step_plan_mcp_generic_mvp]
command = "node"
args = ["C:\\path\\to\\step-plan-mcp-mvp\\dist\\index.js"]
startup_timeout_sec = 60
[mcp_servers.step_plan_mcp_generic_mvp.env]
STEP_API_KEY = "YOUR_STEP_API_KEY"4. 重启 Codex
保存配置后,完全退出并重新打开 Codex,让 MCP 配置重新加载。
5. 测试生图
在 Codex 中输入:
使用 Step Plan 生图能力,给我生成一张牛奶的海报。画面干净明亮,有中文标题“每日鲜牛奶”,适合电商详情页首屏。预期结果:
Codex 主模型识别到这是生图任务。
Agent 调用
step_generate_image。MCP 调用 Step Plan 生图接口。
图片保存到
outputs/images/。主会话返回图片路径和图片内容。
6. 测试语音
在 Codex 中输入:
使用 Step Plan 语音能力,把这句话生成一段温柔自然的女声语音:“每日鲜牛奶,来自清晨牧场的新鲜味道。”预期结果:
Codex 主模型识别到这是文本转语音任务。
Agent 调用
step_text_to_speech。MCP 调用 Step Plan TTS 接口。
音频保存到
outputs/audio/。主会话返回音频路径和音频内容。
可选环境变量
环境变量 | 默认值 | 说明 |
| 无 | Step Plan API Key。优先级高于本地配置文件 |
|
| Agent 内配置 Key 时写入和读取的本地配置文件 |
|
| Step API 基础地址 |
|
| 生图接口路径 |
|
| TTS 接口路径 |
|
| 统一输出目录 |
|
| 图片输出目录 |
|
| 音频输出目录 |
如果自定义输出目录,建议使用 ASCII-only 路径,避免部分 MCP 客户端或终端把中文路径显示成乱码。
工具参数
step_get_setup_status
无需参数。用于检查当前 MCP 是否可用、Key 是否已配置、支持哪些 Step Plan 能力。
step_configure_api_key
参数 | 说明 |
| 用户明确提供的 Step Plan API Key。工具返回时只展示脱敏后的 Key |
step_generate_image
常用参数:
参数 | 说明 |
| 完整生图提示词,最长 512 字符 |
| 图片尺寸,默认 |
| 可选风格: |
| 可选随机种子 |
| 生成步数,默认 |
| 引导强度,默认 |
| 是否开启文字优化,默认 |
支持图片尺寸:
1024x1024
768x1360
896x1184
1360x768
1184x896step_text_to_speech
常用参数:
参数 | 说明 |
| 要合成的完整文本,最长 1000 字符 |
| 音色 ID,默认 |
| 可选语气、情绪、节奏说明,最长 200 字符 |
| 输出格式,默认 |
| 实验参数,语速倍率 |
| 实验参数,音量倍率 |
安全说明
不要把 Step Plan API Key 写进代码。
不要把 Step Plan API Key 提交到 GitHub。
如果使用 Agent 内配置,Key 会保存到本机
~/.step-plan-mcp/config.json。如果不希望在对话里输入 Key,可以用
node scripts/install-codex.mjs --with-key,或手动通过 MCP 客户端环境变量传入STEP_API_KEY。.env、.env.*、outputs/、node_modules/、dist/已在.gitignore中忽略。真实调用会消耗 Step Plan 额度。
当前限制
当前是本地
stdioMCP,不是远程 Hosted MCP。当前支持文生图和文本转语音,不支持图像编辑、ASR、实时语音。
媒体文件保存到本地目录,不提供临时 URL。
TTS 的
speed、volume是实验参数,建议正式发布前进一步验证。当前版本只做 MVP 验证,不包含用量查询、成本预估和调用审计。
Roadmap
增加图像编辑工具
step_edit_image。增加语音识别工具
step_transcribe_audio。增加媒体有效性校验,避免无效图片或音频被误判为成功。
提供 Hosted MCP 版本,降低用户本地配置成本。
发布 npm 包,支持无需 clone 仓库的
npx一行安装。
参考文档
Available Tools
4 toolsstep_configure_api_keyA
Save a Step Plan API Key for this local MCP server. Use only when the user explicitly asks to configure or update Step Plan and provides a key. Do not echo the full key back to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | Yes | Step Plan API Key explicitly provided by the user. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It appropriately reveals that the tool persists a key locally and includes a privacy-relevant instruction not to echo the key. It could further mention whether an existing key is overwritten, but the core behavior and safety guardrail are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The main purpose is front-loaded, and the usage condition and safety instruction follow directly. Every sentence contributes necessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter configuration tool, the description fully equips an agent to invoke it correctly: the exact trigger condition, the required input, and the key handling constraint are all present. No output schema or complex nested parameters create additional explanatory burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter is already well documented as the explicitly provided Step Plan API Key. The description does not add significant new semantic meaning about the parameter itself, but it reinforces that the key must come from an explicit user request. This meets the baseline for a fully schema-covered parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Save'), a concrete resource ('Step Plan API Key'), and the target context ('for this local MCP server'). It is immediately distinguishable from the sibling tools, which handle status, image generation, and text-to-speech rather than configuration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit invocation criteria: use only when the user explicitly asks to configure or update Step Plan and provides a key. It also adds a behavioral restriction ('Do not echo the full key back to the user'), giving clear operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_generate_imageA
Generate an image with Step Plan. Use this when the user asks to create an image, poster, visual report, infographic, cover image, social media graphic, or any visual artifact from the current conversation. Before calling, summarize the relevant conversation into a complete image prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | Optional seed for reproducibility. | |
| size | No | Output size. Step Image Edit 2 uses height x width format. Default is square 1024x1024. | 1024x1024 |
| steps | No | Generation steps. Default 8. | |
| prompt | Yes | Complete image prompt prepared from the current conversation. Do not pass vague references like 'what we discussed'; include the actual content. | |
| cfg_scale | No | Classifier-free guidance scale. Default 1.0. | |
| text_mode | No | Enable text-rendering optimization. Default true for poster/report use cases. | |
| style_hint | No | Optional style guide for the image. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It explains the high-level operation and prompt preparation, but it does not mention authentication/setup requirements (notable given the step_configure_api_key sibling), rate limits, side effects, or what the caller receives back. For a tool with no output schema, omitting the return behavior is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence leads with the action and target use cases; the second provides the single most important precondition. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description plus schema cover the primary purpose, all parameters, and the key prompt-construction requirement. However, the tool has no output schema and the description does not state what the tool returns or whether an API key/setup must be configured first. Those are relevant gaps for correct invocation in this tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema parameter descriptions are unusually detailed, including guidance like 'Do not pass vague references like what we discussed; include the actual content.' The main tool description reinforces prompt semantics by instructing the agent to summarize the conversation into a complete prompt, adding value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific action (generate an image) with a specific resource (Step Plan) and enumerates concrete artifact types: poster, infographic, cover image, social media graphic. This makes the tool's purpose unmistakable and clearly distinguishes it from the sibling text-to-speech and setup tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this when the user asks to create an image, poster, visual report, infographic...' and gives a clear precondition: summarize the conversation into a complete image prompt before calling. It does not mention when not to use it or name an alternative image-generation tool, but none of the siblings compete for the same task, so the guidance is clear without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_get_setup_statusA
Check whether Step Plan MCP is installed and whether an API key is configured. Use this when the user asks what Step Plan abilities are available or whether setup is complete.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It makes the read-only nature reasonably clear by saying 'Check whether', and it discloses the two conditions checked. However, it does not describe the exact return shape or confirm there are no side effects, which would strengthen behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The primary purpose is stated first, and the usage guidance follows immediately. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple status-check tool with no parameters and no output schema. The description explains what it checks and when to use it, which is sufficient for an agent to select and invoke it correctly. A return-format detail would be a minor improvement but is not required for basic correctness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema covers everything implicitly. Per baseline for a zero-parameter tool, the description does not need to add parameter-level detail, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Check') and a concrete resource ('whether Step Plan MCP is installed and whether an API key is configured'). This clearly distinguishes it from sibling tools that configure, generate, or synthesize speech.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit usage trigger: 'Use this when the user asks what Step Plan abilities are available or whether setup is complete.' It does not explicitly contrast with alternative sibling tools, but the context is clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
step_text_to_speechA
Generate speech audio with Step Plan TTS. Use this when the user asks to turn text, scripts, narration, ads, reports, or dialogue into an audio file. Before calling, pass the exact text to be spoken, not a vague reference to prior conversation.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Exact text to synthesize. Include the full text; do not pass vague references. | |
| speed | No | Optional speech speed multiplier. | |
| voice | No | Step TTS voice id. Default linjiajiejie, a warm natural female voice. | linjiajiejie |
| volume | No | Optional volume multiplier. | |
| instruction | No | Optional speaking style, emotion, pacing, or performance instruction. | |
| response_format | No | Audio file format. Default mp3. | mp3 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It conveys that the tool synthesizes speech audio and warns the agent to pass exact text rather than a vague reference, which is useful. However, it does not mention any setup requirements, response format of the call result, or other side effects such as API key requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core action. All three sentences earn their place: the first defines the tool, the second gives usage conditions, and the third gives an important pre-call instruction. There is no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is moderately simple and the schema covers all parameters, but there is no output schema and no annotations. The description does not mention prerequisites such as configuring an API key or what the agent should expect after invocation, such as an audio file URL or inline audio. The exact-text instruction helps, but the missing setup and result guidance leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and defaults well. The description's only additional parameter guidance is to pass exact text, not a vague reference, which largely duplicates the schema text for the 'text' parameter. It adds no new semantic context for speed, voice, volume, instruction, or response_format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Generate speech audio with Step Plan TTS.' It also names concrete inputs like text, scripts, narration, and dialogue, which makes the tool's purpose immediately clear and distinguishes it from the sibling tools for setup, API configuration, and image generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this when the user asks to turn text, scripts, narration, ads, reports, or dialogue into an audio file.' It does not explicitly mention when not to use it or name alternative tools, but the sibling tool names make the distinction obvious, so the usage context is clear.
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.
4 tool updates
v0.2.0- First observed
step_configure_api_key - First observed
step_generate_image - First observed
step_get_setup_status - First observed
step_text_to_speech
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: checking setup status, configuring an API key, generating an image, and generating speech. There is no meaningful overlap between the four tools.
All names use snake_case with a consistent 'step_' prefix, and most follow a verb_noun pattern. 'step_text_to_speech' is the one outlier because it lacks an explicit verb like 'generate' or 'synthesize'.
Four tools is well-scoped for an MVP server that handles setup plus two core generation capabilities. Each tool earns its place without unnecessary bloat.
The setup flow is covered with status and configuration tools, and the two main generation tasks are present. Minor gaps exist around resetting or removing the API key and managing generated outputs, but these are not critical for the stated MVP scope.
Maintenance
Related MCP Connectors
MCP server for Qwen Image 3 AI image generation
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for AI dialogue using various LLM models via AceDataCloud
Focused MCP server for OpenAI image/audio generation (v2.0.0). Wraps endpoints via HAPI CLI.
Related MCP Servers
- AlicenseBqualityDmaintenanceA local MCP server for generating and editing images using OpenAI-compatible APIs. It provides text-to-image generation and image editing capabilities with configurable endpoints and saves output directly to local files.211MIT
- AlicenseAqualityCmaintenanceA local MCP server that adds computer-vision tools to coding agents and models that do not support native image input, using Codex OAuth credentials and the ChatGPT/Codex Responses backend.8135MIT
- FlicenseAqualityBmaintenanceLocal MCP server that adds multimodal capabilities to text-only models like Codex/DeepSeek, offering tools for image description, audio transcription, video analysis, image/video generation, and speech synthesis.10-
- AlicenseNot gradedqualityCmaintenanceMCP server that gives text-only agents like Claude Code and Codex image, video, and audio analysis capabilities through local setup and multiple AI providers.MIT