mcp到llm
一种MCP(模型上下文协议)服务器,通过标准化接口公开LLM(大型语言模型)提供者。建在 AI SDK,此服务器允许您使用不同的API密钥配置和访问多个LLM提供商(OpenAI、Anthropic、Google)。
特性
- 多提供商支持:配置OpenAI、Anthropic和Google AI提供商
- 多个API密钥:支持具有不同API密钥的同一提供程序的多个实例
- 标准化接口:建立在AI SDK上,用于实现一致的API交互
- 可选模型元数据:添加每个型号的描述,以便
list罐表面能力和预期用途 - 图像生成:通过OpenAI(gpt-image1)和谷歌(Gemini Nano Banana,Imagen 4)生成图像
- 三个MCP工具:
- list:列出所有已配置的提供程序、其可用型号、功能和描述 - prompt:向任何配置的文本LLM实例发送提示 - generate_image:使用配置的图像模型生成图像
安装
npm install
npm run build快速开始
- 复制示例配置:
cp config.example.json config.json- 编辑
config.json使用API密钥
- 测试您的配置:
npm run test-config- 启动服务器:
npm start看 设置.md 有关MCP客户端的详细设置说明和使用方法。
配置
创建一个 config.json 项目根目录中的文件(或通过指定自定义路径 MCP_LLM_CONFIG 环境变量):
{
"providers": [
{
"id": "openai-primary",
"provider": "openai",
"apiKey": "sk-...",
"models": [
{
"id": "gpt-5.4",
"description": "OpenAI flagship for complex reasoning, coding, and agentic workflows."
},
{
"id": "gpt-5.4-mini",
"description": "Lower-cost GPT-5.4 variant for faster high-throughput tasks."
}
]
},
{
"id": "anthropic-primary",
"provider": "anthropic",
"apiKey": "sk-ant-...",
"models": [
{
"id": "claude-opus-4-6",
"description": "Anthropic flagship for the most complex reasoning, coding, and agentic work."
},
{
"id": "claude-sonnet-4-6",
"description": "Anthropic balanced model with the best speed-intelligence tradeoff for general use."
}
]
},
{
"id": "google-primary",
"provider": "google",
"apiKey": "...",
"models": [
{
"id": "gemini-3.1-pro-preview",
"description": "Latest Gemini 3.1 preview for advanced reasoning, coding, and multimodal work.",
"capability": "text"
},
{
"id": "gemini-3-flash-preview",
"description": "Lower-latency Gemini 3 preview for fast multimodal and agentic tasks.",
"capability": "text"
},
{
"id": "gemini-2.5-flash-image",
"description": "Gemini Nano Banana — fast, low-cost native image generation.",
"capability": "image"
}
]
}
]
}配置字段
id(必需):此提供程序实例的唯一标识符provider(必填):提供者类型-openai,anthropic,或googleapiKey(必需):提供程序的API密钥baseURL(可选):提供程序API的自定义基本URLmodels(可选):要公开的模型列表。每个条目可以是字符串模型ID或具有id,可选description,可选capability("text"或"image",默认为"text")capability(可选):设置为"image"用于图像生成模型。这list工具会显示这些信息,以便呼叫者知道如何使用generate_image而不是prompt
如果你忽略了 models,服务器使用内置的默认值,其中包括每个提供者的文本和图像模型。如果指定自定义模型,如果需要图像生成支持,请明确包含图像模型。
替代配置方法
您还可以通过以下方式提供配置 MCP_LLM_PROVIDERS 环境变量为JSON字符串:
export MCP_LLM_PROVIDERS='{"providers":[{"id":"openai-primary","provider":"openai","apiKey":"sk-...","models":[{"id":"gpt-5.4","description":"Flagship reasoning model"}]}]}'或者指定自定义配置文件路径:
export MCP_LLM_CONFIG=/path/to/custom/config.json用法
运行服务器
服务器支持两种传输模式:
1.标准运输(默认)
适用于Claude Desktop等MCP客户端:
npm start或者在开发模式下:
npm run dev2.HTTP传输(SSE)
对于作为web服务托管:
npm run start:http或者在开发模式下:
npm run dev:http默认情况下,HTTP服务器侦听 http://127.0.0.1:3000。您可以自定义端口和主机:
# Custom port
node dist/server.js --http --port 8080
# Custom host (bind to all interfaces)
node dist/server.js --http --host 0.0.0.0 --port 8080HTTP服务器提供:
- SSE端点:
http://host:port/sse(用于MCP客户端连接) - 健康检查:
http://host:port/health(用于监控)
MCP工具
1. list 工具
列出所有已配置的LLM提供程序、其可用的模型ID以及任何可选的模型描述。
输入:无
输出:提供程序的JSON数组,包括其ID、类型、可用模型ID和可选 modelDetails
示例响应:
[
{
"id": "openai-primary",
"provider": "openai",
"models": ["gpt-5.4", "gpt-5.4-mini"],
"modelDetails": [
{
"id": "gpt-5.4",
"description": "OpenAI flagship for complex reasoning, coding, and agentic workflows."
},
{
"id": "gpt-5.4-mini",
"description": "Lower-cost GPT-5.4 variant for faster high-throughput tasks."
}
]
},
{
"id": "anthropic-primary",
"provider": "anthropic",
"models": ["claude-opus-4-6", "claude-sonnet-4-6"],
"modelDetails": [
{
"id": "claude-opus-4-6",
"description": "Anthropic flagship for the most complex reasoning, coding, and agentic work."
},
{
"id": "claude-sonnet-4-6",
"description": "Anthropic balanced model with the best speed-intelligence tradeoff for general use."
}
]
}
]2. prompt 工具
向已配置的LLM发送提示并获得响应。
输入参数:
providerId(必填):要使用的提供程序实例的IDmodel(必填):要使用的型号ID(例如,“gpt-5.4”、“claude-sonnet-4-6”、“gemini-3.1-pro-preview”)prompt(必填):发送给LLM的提示systemPrompt(可选):系统提示设置上下文temperature(可选):响应随机性温度(0.0-2.0)maxTokens(可选):要生成的最大令牌数
示例:
{
"providerId": "openai-primary",
"model": "gpt-5.4",
"prompt": "What is the capital of France?",
"systemPrompt": "You are a helpful geography assistant.",
"temperature": 0.7
}3. generate_image 工具
使用配置的图像模型生成图像。
输入参数:
providerId(必填):要使用的提供程序实例的IDmodel(必填):图像模型ID(例如,“gpt-image 1”、“gemini-2.5-flash-image”、“imagen-4.0-generate-001”)prompt(必填):描述要生成的图像的提示n(可选):要生成的图像数量(1-10)size(可选):图像大小为WxH(例如,“1024x1024”)。依赖提供者。aspectRatio(可选):宽高比为W:H(例如,“16:9”)。依赖提供者。seed(可选):用于可再生发电的种子saveTo(可选):将生成的图像保存到的文件路径(例如。,"/path/to/output.png").父目录是自动创建的。当生成多个图像时。,output-0.png,output-1.png).如果省略,图像将保存到系统临时目录。
示例:
{
"providerId": "google-primary",
"model": "gemini-2.5-flash-image",
"prompt": "A serene mountain landscape at sunset",
"aspectRatio": "16:9",
"saveTo": "./landscape.png"
}可用图像模型:
- 开放人工智能:
gpt-image-1 - 谷歌:
gemini-2.5-flash-image(纳米香蕉),gemini-3-pro-image-preview(Nano Banana Pro),gemini-3.1-flash-image-preview(纳米香蕉2),imagen-4.0-generate-001(图4) - Anthropic:不支持图像生成
用例
此MCP服务器支持多种有用的场景:
- 多帐户访问:对同一提供商使用不同的API密钥(例如,单独的工作和个人帐户)
- 提供商比较:轻松比较不同提供商对同一提示的响应
- 成本优化:根据成本/性能将不同类型的请求路由到不同的提供商
- 故障转移:配置备份提供程序,以防其中一个不可用
- 模型测试:测试和比较来自相同或不同提供商的不同模型
- Web服务部署:将服务器作为web服务托管,以便通过HTTP/SSE传输进行远程访问
发展
项目结构
src/
config.ts - Configuration loading and validation
providers.ts - Provider initialization and LLM interaction
server.ts - MCP server implementation建筑
npm run build在发展中奔跑
npm run dev许可证
有关详细信息,请参阅LICENSE文件。
