内容
# 外包MCP
一个MCP(模型上下文协议)服务器,通过统一接口使AI应用程序能够外包任务给各种模型提供商。
<img width="1154" alt="image" src="https://github.com/user-attachments/assets/cd364a7c-eae5-4c58-bc1f-fdeea6cb8434" />
<img width="1103" alt="image" src="https://github.com/user-attachments/assets/55924981-83e9-4811-9f51-b049595b7505" />
与支持模型上下文协议的任何AI工具兼容,包括Claude Desktop、Cline和其他MCP启用应用程序。
使用[FastMCP](https://github.com/mcp/fastmcp)构建MCP服务器实现,使用[Agno](https://github.com/agno-agi/agno)构建AI代理功能。
## 功能
- 🤖 **多提供商支持**:通过单个接口访问20多个AI提供商
- 📝 **文本生成**:使用OpenAI、Anthropic、Google等模型的文本生成
- 🎨 **图像生成**:使用DALL-E 3和DALL-E 2创建图像
- 🔧 **简单API**:具有三个参数的一致接口:提供商、模型和提示
- 🔑 **灵活认证**:仅为使用的提供商配置API密钥
## 配置
将以下配置添加到您的MCP客户端。有关特定配置细节,请参阅MCP客户端文档。
```json
{
"mcpServers": {
"outsource-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/gwbischof/outsource-mcp.git", "outsource-mcp"],
"env": {
"OPENAI_API_KEY": "your-openai-key",
"ANTHROPIC_API_KEY": "your-anthropic-key",
"GOOGLE_API_KEY": "your-google-key",
"GROQ_API_KEY": "your-groq-key",
"DEEPSEEK_API_KEY": "your-deepseek-key",
"XAI_API_KEY": "your-xai-key",
"PERPLEXITY_API_KEY": "your-perplexity-key",
"COHERE_API_KEY": "your-cohere-key",
"FIREWORKS_API_KEY": "your-fireworks-key",
"HUGGINGFACE_API_KEY": "your-huggingface-key",
"MISTRAL_API_KEY": "your-mistral-key",
"NVIDIA_API_KEY": "your-nvidia-key",
"OLLAMA_HOST": "http://localhost:11434",
"OPENROUTER_API_KEY": "your-openrouter-key",
"TOGETHER_API_KEY": "your-together-key",
"CEREBRAS_API_KEY": "your-cerebras-key",
"DEEPINFRA_API_KEY": "your-deepinfra-key",
"SAMBANOVA_API_KEY": "your-sambanova-key"
}
}
}
}
```
注意:环境变量是可选的。仅包含要使用的提供商的API密钥。
## 快速入门
安装和配置完成后,您可以在MCP客户端中使用工具:
1. **生成文本**:使用`outsource_text`工具,提供商为"openai",模型为"gpt-4o-mini",提示为"写一首关于编码的俳句"
2. **生成图像**:使用`outsource_image`工具,提供商为"openai",模型为"dall-e-3",提示为"日落时的未来城市景观"
## 工具
### outsource_text
使用指定的提供商和模型创建Agno代理以生成文本响应。
**参数:**
- `provider`:提供商名称(例如"openai", "anthropic", "google", "groq"等)
- `model`:模型名称(例如"gpt-4o", "claude-3-5-sonnet-20241022", "gemini-2.0-flash-exp")
- `prompt`:发送到模型的文本提示
### outsource_image
使用AI模型生成图像。
**参数:**
- `provider`:提供商名称(目前仅支持"openai")
- `model`:模型名称("dall-e-3"或"dall-e-2")
- `prompt`:图像生成提示
返回生成的图像URL。
> **注意**:图像生成目前仅支持OpenAI模型(DALL-E 2和DALL-E 3)。其他提供商仅支持文本生成。
## 支持的提供商
支持以下提供商。使用括号中的提供商名称作为`provider`参数:
### 核心提供商
- **OpenAI** (`openai`) - GPT-4、GPT-3.5、DALL-E等 | [模型](https://platform.openai.com/docs/models)
- **Anthropic** (`anthropic`) - Claude 3.5、Claude 3等 | [模型](https://docs.anthropic.com/en/docs/about-claude/models/overview)
- **Google** (`google`) - Gemini Pro、Gemini Flash等 | [模型](https://ai.google.dev/models)
- **Groq** (`groq`) - Llama 3、Mixtral等 | [模型](https://console.groq.com/docs/models)
- **DeepSeek** (`deepseek`) - DeepSeek Chat & Coder | [模型](https://api-docs.deepseek.com/api/list-models)
- **xAI** (`xai`) - Grok模型 | [模型](https://docs.x.ai/docs/models)
- **Perplexity** (`perplexity`) - Sonar模型 | [模型](https://docs.perplexity.ai/guides/model-cards)
### 其他提供商
- **Cohere** (`cohere`) - Command模型 | [模型](https://docs.cohere.com/v2/docs/models)
- **Mistral AI** (`mistral`) - Mistral Large、Medium、Small | [模型](https://docs.mistral.ai/getting-started/models/models_overview/)
- **NVIDIA** (`nvidia`) - 各种模型 | [模型](https://build.nvidia.com/models)
- **HuggingFace** (`huggingface`) - 开源模型 | [模型](https://huggingface.co/models)
- **Ollama** (`ollama`) - 本地模型 | [模型](https://ollama.com/library)
- **Fireworks AI** (`fireworks`) - 快速推理 | [模型](https://fireworks.ai/models?view=list)
- **OpenRouter** (`openrouter`) - 多提供商访问 | [模型](https://openrouter.ai/docs/overview/models)
- **Together AI** (`together`) - 开源模型 | [模型](https://docs.together.ai/docs/serverless-models)
- **Cerebras** (`cerebras`) - 快速推理 | [模型](https://cerebras.ai/models)
- **DeepInfra** (`deepinfra`) - 优化模型 | [模型](https://deepinfra.com/docs/models)
- **SambaNova** (`sambanova`) - 企业模型 | [模型](https://docs.sambanova.ai/cloud/docs/get-started/supported-models)
### 企业提供商
- **AWS Bedrock** (`aws` 或 `bedrock`) - AWS托管模型 | [模型](https://docs.aws.amazon.com/bedrock/latest/userguide/models-supported.html)
- **Azure AI** (`azure`) - Azure托管模型 | [模型](https://learn.microsoft.com/en-us/azure/ai-foundry/concepts/foundry-models-overview)
- **IBM WatsonX** (`ibm` 或 `watsonx`) - IBM模型 | [模型](https://www.ibm.com/docs/en/software-hub/5.1.x?topic=install-foundation-models)
- **LiteLLM** (`litellm`) - 统一接口 | [模型](https://docs.litellm.ai/docs/providers)
- **Vercel v0** (`vercel` 或 `v0`) - Vercel AI | [模型](https://sdk.vercel.ai/docs/introduction)
- **Meta Llama** (`meta`) - 直接Meta访问 | [模型](https://www.llama.com/get-started/)
### 环境变量
每个提供商都需要其对应的API密钥:
| 提供商 | 环境变量 | 示例 |
|----------|---------------------|---------|
| OpenAI | `OPENAI_API_KEY` | sk-... |
| Anthropic | `ANTHROPIC_API_KEY` | sk-ant-... |
| Google | `GOOGLE_API_KEY` | AIza... |
| Groq | `GROQ_API_KEY` | gsk_... |
| DeepSeek | `DEEPSEEK_API_KEY` | sk-... |
| xAI | `XAI_API_KEY` | xai-... |
| Perplexity | `PERPLEXITY_API_KEY` | pplx-... |
| Cohere | `COHERE_API_KEY` | ... |
| Fireworks | `FIREWORKS_API_KEY` | ... |
| HuggingFace | `HUGGINGFACE_API_KEY` | hf_... |
| Mistral | `MISTRAL_API_KEY` | ... |
| NVIDIA | `NVIDIA_API_KEY` | nvapi-... |
| Ollama | `OLLAMA_HOST` | http://localhost:11434 |
| OpenRouter | `OPENROUTER_API_KEY` | ... |
| Together | `TOGETHER_API_KEY` | ... |
| Cerebras | `CEREBRAS_API_KEY` | ... |
| DeepInfra | `DEEPINFRA_API_KEY` | ... |
| SambaNova | `SAMBANOVA_API_KEY` | ... |
| AWS Bedrock | AWS凭证 | 通过AWS CLI/SDK |
| Azure AI | Azure凭证 | 通过Azure CLI/SDK |
| IBM WatsonX | `IBM_WATSONX_API_KEY` | ... |
| Meta Llama | `LLAMA_API_KEY` | ... |
**注意**:仅为计划使用的提供商配置API密钥。
## 示例
### 文本生成
```
# 使用OpenAI
provider: openai
model: gpt-4o-mini
prompt: 写一首关于编码的俳句
# 使用Anthropic
provider: anthropic
model: claude-3-5-sonnet-20241022
prompt: 用简单的术语解释量子计算
# 使用Google
provider: google
model: gemini-2.0-flash-exp
prompt: 创建一份巧克力片饼干的食谱
```
### 图像生成
```
# 使用DALL-E 3
provider: openai
model: dall-e-3
prompt: 一个带有樱花的宁静日本庭院
# 使用DALL-E 2
provider: openai
model: dall-e-2
prompt: 日落时的未来城市景观
```
## 开发
### 前提条件
- Python 3.11 或更高版本
- [uv](https://github.com/astral-sh/uv) 包管理器
### 设置
```bash
git clone https://github.com/gwbischof/outsource-mcp.git
cd outsource-mcp
uv sync
```
### 使用MCP Inspector进行测试
MCP Inspector允许您交互式地测试服务器:
```bash
mcp dev server.py
```
### 运行测试
测试套件包括验证文本和图像生成的集成测试:
```bash
# 运行所有测试
uv run pytest
```
**注意**:集成测试需要环境中设置API密钥。
## 故障排除
### 常见问题
1. **"错误:未知提供商"**
- 检查您是否正在使用上述列表中支持的提供商名称
- 提供商名称不区分大小写
2. **"错误:OpenAI API错误"**
- 验证您的API密钥是否正确设置在环境变量中
- 检查您的API密钥是否具有访问请求模型的权限
- 确保您有足够的积分/配额
3. **"错误:未生成图像"**
- 这可能发生在图像生成请求失败时
- 尝试更简单的提示或不同的模型(dall-e-2 vs dall-e-3)
4. **环境变量不起作用**
- 确保在更新配置后重启MCP客户端
- 验证MCP客户端的配置文件位置
- 检查环境变量是否正确格式化在配置中
## 贡献
欢迎贡献!请随时提交拉取请求。
连接信息
猜你喜欢
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
Whisper 语音识别
OpenAI Whisper MCP Server - 基于本地 Whisper CLI 的离线语音识别与翻译,无需 API Key,支持...
claude-flow
Claude-Flow v2.7.0 是一个企业级AI编排平台。
freeact
freeact 是一个通用 AI Agent,它通过统一的执行接口来执行 Python 代码、Shell 命令和程序化的 MCP 工具调用。
github-global
2026 年编程导航 AI 编程实战新项目,基于 Next.js 15 + GitHub App + OpenRouter 的 GitHub 仓库 AI...
noapi-google-search-mcp
使用无头 Chromium 进行 Google 搜索和页面抓取的 MCP 服务器