关于 OpenRouter
OpenRouter 是 Python MCP 服务,让 MCP 主机通过本地 stdio 工具调用 OpenRouter 模型,支持聊天、图像生成、嵌入及模型查找,并提供客户端安装和卸载命令。
主要功能
- 01向 OpenRouter 模型发送聊天请求
- 02生成图像并可保存到本地路径
- 03根据文本生成嵌入
- 04按能力列出模型
- 05搜索模型名称和 slug
适用场景
- 01让 OpenRouter 模型总结文件
- 02使用指定模型生成图像
- 03为文本生成嵌入
- 04搜索模型或按能力筛选模型
MCP 相关
该服务向 MCP 客户端提供聊天、图像生成、嵌入和模型发现工具。安装器支持 Codex、Claude Code 和 opencode;调用工具需要 OPENROUTER_API_KEY。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx mcp-openrouterOPENROUTER_API_KEY密钥OpenRouter API key used to authenticate tool requests.DEFAULT_TEXT_MODELDefault model slug for chat tool calls when no model is provided.DEFAULT_IMAGE_MODELDefault model slug for image generation tool calls.DEFAULT_CODE_MODELDefault model slug for code-oriented tasks.DEFAULT_VISION_MODELDefault model slug for vision-capable tool calls.DEFAULT_EMBEDDING_MODELDefault model slug for embedding tool calls when no model is provided.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
5收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| seed | any | 否 | 用于生成确定性输出的随机种子 |
| stop | any | 否 | 停止序列列表 |
| model | any | 否 | 模型标识符(例如,"anthropic/claude-sonnet-4"、"openai/gpt-4o")。 如果未指定,则使用 DEFAULT_TEXT_MODEL 环境变量。 |
| top_k | any | 否 | Top-k 采样(考虑的最高概率 token 数量) |
| top_p | any | 否 | 核采样阈值 0-1 |
| prompt | any | 否 | 要发送的用户消息(prompt 和 messages 只能提供其中一个) |
| system | any | 否 | 用于设置上下文的可选系统提示词 |
| messages | any | 否 | 以 {role, content} 字典列表表示的多轮对话 (prompt 和 messages 只能提供其中一个) |
| provider | any | 否 | 提供方路由控制(例如,{"order": ["Anthropic", "Google"]}) |
| json_mode | boolean | 否 | 如果为 True,则请求 JSON 格式的响应(用于向后兼容) |
| max_tokens | any | 否 | 响应中的最大 token 数(未指定时使用模型默认值) |
| temperature | any | 否 | 采样温度 0-2(未指定时使用模型默认值) |
| response_format | any | 否 | 响应格式规范,例如,{"type": "json_schema", ...}。 如果同时提供,则优先于 json_mode。 |
| presence_penalty | any | 否 | 对已出现的 token 进行惩罚(-2 到 2) |
| reasoning_effort | any | 否 | 推理力度级别:"minimal"、"medium" 或 "high" |
| assistant_prefill | any | 否 | 用于预填助手响应的文本 |
| frequency_penalty | any | 否 | 对重复的 token 进行惩罚(-2 到 2) |
详细介绍
🚀 一个适用于 OpenRouter 模型的 MCP 服务 🚀
mcp-openrouter 是一个 Python MCP 服务,可让 Codex、Claude Code、opencode 和其他 MCP 宿主通过本地 stdio 工具调用 OpenRouter 模型。
它通过一个轻量的 FastMCP 服务提供聊天、图像生成、嵌入、模型列表和模型搜索功能,并支持重试处理、按宿主安装,以及可选的默认模型环境变量。
安装
将已发布的服务安装到所有检测到的 MCP 客户端:
uvx mcp-openrouter install --yes
安装到指定客户端:
uvx mcp-openrouter install --yes --clients codex,claude,opencode
从本地检出版本运行:
git clone https://github.com/tsilva/mcp-openrouter.git
cd mcp-openrouter
uv sync --dev
keyenv doctor
keyenv run -- uv run mcp-openrouter
不带参数运行 mcp-openrouter 会启动 stdio 服务。显式命令为 uv run mcp-openrouter serve。
命令
uvx mcp-openrouter install --yes # install into detected MCP clients
uvx mcp-openrouter install --yes --force # replace an existing openrouter config
uvx mcp-openrouter uninstall --yes # remove from detected MCP clients
uv run mcp-openrouter # run the local stdio server
uv run pytest tests/test_cli.py tests/test_client.py tests/test_config.py tests/test_installer.py tests/test_release_metadata.py tests/test_server.py
keyenv run -- uv run pytest tests/test_tools.py
uv run ruff check src/
uv run ruff format src/
工具
| 工具 | 用途 |
|---|---|
chat | 向 OpenRouter 聊天模型发送提示词或消息列表。 |
generate_image | 生成一张图像,并可选择将其保存到本地绝对路径。 |
embed | 为一个字符串或字符串列表生成嵌入。 |
list_models | 列出模型,可按 vision、image_gen、embedding、tools 或 long_context 过滤。 |
find_models | 搜索模型名称和 slug,最多返回 20 个匹配项。 |
MCP 提示词示例:
Use openrouter chat with anthropic/claude-sonnet-4 to summarize this file
Use openrouter generate_image with google/gemini-3-pro-image-preview to create a square app icon
Use openrouter embed with mistralai/mistral-embed-2312 to embed "Hello world"
Use openrouter list_models with capability "image_gen"
Use openrouter find_models to search for "claude"
配置
所有工具调用都需要 OPENROUTER_API_KEY。对于本地检出版本,其 .keyenv.toml 会将此变量映射到 macOS Keychain:使用 keyenv set OPENROUTER_API_KEY 替换密钥,使用 keyenv doctor 验证密钥,并使用 keyenv run -- ... 启动服务或实时测试。Python 仍会照常从 os.environ 读取该值。
可选默认值可让匹配工具的 model 参数变为可选:
DEFAULT_TEXT_MODEL=google/gemini-3-pro-image-preview
DEFAULT_IMAGE_MODEL=google/gemini-3-pro-image-preview
DEFAULT_CODE_MODEL=anthropic/claude-sonnet-4.5
DEFAULT_VISION_MODEL=google/gemini-3-pro-image-preview
DEFAULT_EMBEDDING_MODEL=mistralai/mistral-embed-2312
当前工具会读取 DEFAULT_TEXT_MODEL、DEFAULT_IMAGE_MODEL 和 DEFAULT_EMBEDDING_MODEL。DEFAULT_CODE_MODEL 和 DEFAULT_VISION_MODEL 可用于适配客户端惯例。非机密默认值可以保留在 .env 中;API 密钥不得保留在其中。
注意事项
- 需要 Python 3.10+。
- 安装到宿主中的已发布运行时命令为
uvx mcp-openrouter。 - 支持的安装目标为 Codex、Claude Code 和 opencode。
generate_image.output_path必须是绝对路径,例如/Users/you/output.png。- 单元测试会模拟网络调用。
tests/test_tools.py需要有效的OPENROUTER_API_KEY。 - 更改服务代码后,请重启 MCP 宿主,以便其启动新的服务进程。
- 发布前,请确保
server.json、CHANGELOG.md和软件包版本保持同步。Makefile 发布辅助命令为make release-x.y.z。
本地 MCP 开发
如果希望 MCP 宿主运行你的工作树而不是已发布的 PyPI 软件包,请注册本地检出版本。
Claude Code:
claude mcp add openrouter --scope user -- keyenv run --manifest /path/to/mcp-openrouter/.keyenv.toml -- uv run --directory /path/to/mcp-openrouter mcp-openrouter
Codex:
codex mcp add openrouter -- keyenv run --manifest /path/to/mcp-openrouter/.keyenv.toml -- uv run --directory /path/to/mcp-openrouter mcp-openrouter
opencode:
{
"mcp": {
"openrouter": {
"type": "local",
"command": ["keyenv", "run", "--manifest", "/path/to/mcp-openrouter/.keyenv.toml", "--", "uv", "run", "--directory", "/path/to/mcp-openrouter", "mcp-openrouter"],
"enabled": true
}
}
}
架构

许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。