内容
# MCP 多服务代理
模型上下文协议(MCP)服务器的集合,提供各种由 AI 驱动的服务,设计用于与 Hugging Face 的 tiny-agents 框架协同工作。
## 功能特点
### 核心服务
- **天气服务**: 获取任意地点的天气信息
- **网络搜索**: 搜索网络信息(特别支持 Hugging Face 推理提供商)
- **情感分析**: 分析文本情感,带有极性和主观性评分
### 集成特性
- **AI 代理集成**: 与 tiny-agents 无缝合作,实现对话式 AI
- **MCP 检查器支持**: 调试和检查服务器功能
- **Gradio 网络界面**: 情感分析的交互式网络界面
## 前置条件
- Python 3.10 或更高版本
- [uv](https://docs.astral.sh/uv/) 包管理器
- Node.js(用于 MCP 检查器)
- Hugging Face 账户(用于 tiny-agents)
## 安装
1. **克隆或下载此项目**
```bash
git clone https://github.com/Deon62/mcp.git
cd mcps
```
2. **安装 Python 依赖项**
```bash
uv pip install mcp[cli] requests
```
3. **安装 tiny-agents(如果尚未安装)**
```bash
pip install tiny-agents
```
4. **安装情感分析依赖项**
```bash
cd mcp-sentiment
python -m venv venv
venv\Scripts\activate # 在 Windows 上
# source venv/bin/activate # 在 Linux/Mac 上
pip install -r requirements.txt
```
## 快速开始
### 1. 运行 MCP 服务器
在终端中启动 MCP 服务器:
```bash
uv run --with mcp mcp run server.py
```
服务器将启动并等待连接。
### 2. 运行 AI 代理
在另一个终端中,启动代理:
```bash
tiny-agents run agent.json
```
您应该看到:
```
Agent loaded with 3 tools:
• get_weather
• web_search
• get_hf_inference_providers
»
```
### 3. 运行情感分析网络应用
对于情感分析服务,运行 Gradio 网络界面:
```bash
cd mcp-sentiment
venv\Scripts\activate # 在 Windows 上
# source venv/bin/activate # 在 Linux/Mac 上
python app.py
```
网络界面将在 `http://localhost:7860` 提供。
### 4. 与代理聊天
一旦代理运行,您就可以与它交互:
```
» 你好!你能帮助我查找有关 Hugging Face 推理提供商的信息吗?
```
## 可用工具
### 1. 天气服务
```
» 纽约的天气怎么样?
```
### 2. 网络搜索
```
» 搜索“Hugging Face 推理提供商”
```
### 3. HF 推理提供商
```
» 给我 Hugging Face 推理提供商的列表
```
### 4. 情感分析
```
» 分析这段文字的情感:“我非常喜欢这个新产品!”
```
**网络界面功能:**
- **极性评分**: -1(负面)至 +1(正面)
- **主观性评分**: 0(客观)至 1(主观)
- **评估**: 正面、负面或中立分类
- **实时分析**: 边输入边进行即时情感分析
## 配置
### 代理配置(`agent.json`)
```json
{
"model": "Qwen/Qwen2.5-72B-Instruct",
"provider": "nebius",
"servers": [
{
"type": "stdio",
"command": "uv",
"args": ["run", "--with", "mcp", "mcp", "run", "server.py"]
}
]
}
```
### 服务器配置(`server.py`)
服务器提供三个主要工具:
- `get_weather(location)` - 返回天气信息
- `web_search(query)` - 执行网络搜索
- `get_hf_inference_providers()` - 返回 HF 推理提供商的综合列表
## MCP 检查器设置
MCP 检查器允许您直接调试和测试 MCP 服务器。
### 1. 安装 MCP 检查器
```bash
npm install -g @modelcontextprotocol/inspector
```
### 2. 运行检查器
```bash
mcp-inspector
```
### 3. 连接到您的服务器
在检查器中:
1. 点击“添加服务器”
2. 选择“stdio”传输
3. 设置命令:`uv`
4. 设置参数:`["run", "--with", "mcp", "mcp", "run", "server.py"]`
5. 点击“连接”
### 4. 测试工具
连接后,您可以:
- 在侧边栏查看可用工具
- 使用不同参数测试每个工具
- 查看 JSON-RPC 通信
- 调试任何问题
## 示例用法
### 天气查询
```
» 东京的天气怎么样?
» 获取伦敦的天气
» 旧金山的天气如何?
```
### 网络搜索查询
```
» 搜索“最新的 AI 发展动态”
» 查找“MCP 协议”的信息
» 查询“Hugging Face 推理提供商”
```
### 特定 HF 提供商查询
```
» 显示所有 Hugging Face 推理提供商
» HF 支持哪些推理提供商?
» 列出可用的 HF 部署选项
```
### 情感分析示例
```
» 分析以下内容的情感:“这个产品非常棒,我非常喜欢它!”
» 以下内容的情感如何:“我不确定这个决定”
» 检查以下内容的情感:“今天的天气还行”
```
**示例输出:**
```json
{
"polarity": 0.8,
"subjectivity": 0.9,
"assessment": "positive"
}
```
## 故障排除
### 常见问题
1. **“ModuleNotFoundError: No module named 'mcp'”**
```bash
uv pip install mcp[cli]
```
2. **“KeyError: 'command'”**
- 检查您的 `agent.json` 配置
- 确保服务器配置正确
3. **“Connection closed” 错误**
- 确保 MCP 服务器正在运行
- 检查所有依赖项是否已安装
4. **代理显示“0 个工具”**
- 验证服务器正在运行
- 检查 `agent.json` 配置
- 确保服务器命令正确
5. **情感分析导入错误**
- 确保虚拟环境已激活
- 安装 NLTK 数据:`python -c "import nltk; nltk.download('punkt'); nltk.download('brown')"`
- 检查 TextBlob 安装:`python -c "from textblob import TextBlob; print('OK')"`
6. **Gradio 界面问题**
- 更新 Gradio:`pip install --upgrade gradio`
- 检查端口冲突(默认:7860)
- 验证 MCP 服务器参数兼容性
### 调试步骤
1. **直接测试服务器:**
```bash
python server.py
```
2. **使用检查器检查 MCP 服务器:**
```bash
mcp-inspector
```
3. **验证依赖项:**
```bash
uv pip list | grep mcp
```
4. **测试情感分析:**
```bash
cd mcp-sentiment
venv\Scripts\activate
python -c "from textblob import TextBlob; print(TextBlob('Hello world').sentiment)"
```
## 项目结构
```
mcps/
├── server.py # 主要的 MCP 服务器实现
├── agent.json # 代理配置
├── requirements.txt # Python 依赖项
├── uv.lock # 依赖项锁定文件
├── app.py # 主要应用程序入口点
├── mcp-sentiment/ # 情感分析服务
│ ├── app.py # 情感分析的 Gradio 网络界面
│ ├── requirements.txt # 情感分析依赖项
│ └── venv/ # 情感分析虚拟环境
└── README.md # 本文件
```
## 开发
### 添加新工具
要在服务器上添加新工具:
```python
@mcp.tool()
def your_new_tool(param: str) -> str:
"""描述此工具的作用"""
return f"Result for {param}"
```
### 修改代理配置
编辑 `agent.json` 以:
- 更改 AI 模型
- 添加更多 MCP 服务器
- 修改服务器配置
## Hugging Face 推理提供商
服务器包含有关 HF 推理提供商的综合信息:
1. **Amazon SageMaker** - 具有自定义 Inferentia2 芯片的无服务器推理
2. **Novita AI** - 模型页面上直接集成无服务器推理
3. **Together AI** - 具有竞争性定价的无服务器推理
4. **Nscale** - 具有高性能 GPU 集群的官方 HF 提供商
5. **Inference Endpoints** - 专用、完全托管的基础设施
6. **Google Cloud** - Vertex AI 和其他部署选项
7. **Microsoft Azure** - Azure 机器学习服务
8. **Replicate** - 易于使用的模型部署平台
9. **Banana** - 无服务器 GPU 推理平台
10. **Modal** - 无服务器计算平台
11. **RunPod** - GPU 云计算
12. **Lambda Labs** - GPU 云基础设施
## 贡献
1. 分叉仓库
2. 创建功能分支
3. 进行更改
4. 使用代理和检查器进行测试
5. 提交拉取请求
## 许可证
[在此添加您的许可证信息]
## 支持
如有问题和疑问:
1. 检查故障排除部分
2. 使用 MCP 检查器进行调试
3. 在 GitHub 上提出问题
4. 查看 [MCP 文档](https://modelcontextprotocol.io/)
---
**祝您编码愉快!**