mcpField
O
OpenRouter

OpenRouter

本地服务
github.com/tsilvaAI 与智能体11 周前更新

关于 OpenRouter

OpenRouter 是 Python MCP 服务,让 MCP 主机通过本地 stdio 工具调用 OpenRouter 模型,支持聊天、图像生成、嵌入及模型查找,并提供客户端安装和卸载命令。

主要功能

  1. 01向 OpenRouter 模型发送聊天请求
  2. 02生成图像并可保存到本地路径
  3. 03根据文本生成嵌入
  4. 04按能力列出模型
  5. 05搜索模型名称和 slug

适用场景

  1. 01让 OpenRouter 模型总结文件
  2. 02使用指定模型生成图像
  3. 03为文本生成嵌入
  4. 04搜索模型或按能力筛选模型

MCP 相关

该服务向 MCP 客户端提供聊天、图像生成、嵌入和模型发现工具。安装器支持 Codex、Claude Code 和 opencode;调用工具需要 OPENROUTER_API_KEY。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tsilva-mcp-openrouter": {
"command": "uvx",
"args": [
"mcp-openrouter"
],
"env": {
"OPENROUTER_API_KEY": "<OPENROUTER_API_KEY>",
"DEFAULT_TEXT_MODEL": "<DEFAULT_TEXT_MODEL>",
"DEFAULT_IMAGE_MODEL": "<DEFAULT_IMAGE_MODEL>",
"DEFAULT_CODE_MODEL": "<DEFAULT_CODE_MODEL>",
"DEFAULT_VISION_MODEL": "<DEFAULT_VISION_MODEL>",
"DEFAULT_EMBEDDING_MODEL": "<DEFAULT_EMBEDDING_MODEL>"
}
}
}
}
启动命令uvx mcp-openrouter
需要配置的环境变量
OPENROUTER_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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-openrouter1.1.8

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
seedany否用于生成确定性输出的随机种子
stopany否停止序列列表
modelany否模型标识符(例如,"anthropic/claude-sonnet-4"、"openai/gpt-4o")。 如果未指定,则使用 DEFAULT_TEXT_MODEL 环境变量。
top_kany否Top-k 采样(考虑的最高概率 token 数量)
top_pany否核采样阈值 0-1
promptany否要发送的用户消息(prompt 和 messages 只能提供其中一个)
systemany否用于设置上下文的可选系统提示词
messagesany否以 {role, content} 字典列表表示的多轮对话 (prompt 和 messages 只能提供其中一个)
providerany否提供方路由控制(例如,{"order": ["Anthropic", "Google"]})
json_modeboolean否如果为 True,则请求 JSON 格式的响应(用于向后兼容)
max_tokensany否响应中的最大 token 数(未指定时使用模型默认值)
temperatureany否采样温度 0-2(未指定时使用模型默认值)
response_formatany否响应格式规范,例如,{"type": "json_schema", ...}。 如果同时提供,则优先于 json_mode。
presence_penaltyany否对已出现的 token 进行惩罚(-2 到 2)
reasoning_effortany否推理力度级别:"minimal"、"medium" 或 "high"
assistant_prefillany否用于预填助手响应的文本
frequency_penaltyany否对重复的 token 进行惩罚(-2 到 2)

详细介绍

mcp-openrouter

🚀 一个适用于 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
    }
  }
}

架构

mcp-openrouter 架构图

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

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