内容
# MCP Gradio 多工具助手
一个用于与模型控制协议(Model Control Protocol,MCP)服务器交互的 Gradio 网络界面。该应用程序使用 Claude 3.5 Sonnet 来处理用户查询并通过 MCP 调用专用工具。
## 特性
- **图像生成**:使用多种备用选项从文本描述生成图像:
- Hugging Face Inference API
- Replicate API
- SanaSprint Gradio 模型
- **天气信息**:使用 OpenWeatherMap API 获取任何城市的当前天气数据
- **文本翻译**:在语言之间翻译文本(目前使用模拟实现)
## 设置
1. 克隆此代码库
```
git clone <repository-url>
cd mcp-gradio-poc
```
2. 安装依赖
```
pip install -r requirements.txt
```
3. 在项目根目录创建一个 `.env` 文件,并添加以下变量:
```
# 必需
ANTHROPIC_API_KEY=your_anthropic_api_key
# 天气工具所需
OPENWEATHER_API_KEY=your_openweather_api_key
# 图像生成的可选项(至少需要一个)
HF_API_TOKEN=your_huggingface_token
REPLICATE_API_TOKEN=your_replicate_token
```
4. 运行应用程序
```
python app.py
```
## 使用方法
1. 使用 `python app.py` 启动应用程序
2. 点击“连接”以连接到 MCP 服务器(使用默认路径 "gradio_mcp_server.py")
3. 开始与助手聊天以使用可用工具:
- 对于图像:“生成一幅日落时分的山脉图像”
- 对于天气:“东京的天气怎么样?”
- 对于翻译:“将 'hello' 翻译成法语”
## 项目结构
- `app.py`:主要的 Gradio 界面应用程序
- `gradio_mcp_server.py`:带有工具定义的 MCP 服务器实现
- `requirements.txt`:依赖项
- `.env`:环境变量和 API 密钥
## 添加新工具
要向 MCP 服务器添加新工具,请在 `gradio_mcp_server.py` 中使用 `@mcp.tool()` 装饰器添加一个新函数。该函数应:
1. 使用 async/await 语法
2. 具有带文档字符串的类型化参数
3. 返回格式正确的 JSON 字符串结果
示例:
```python
@mcp.tool()
async def my_new_tool(param1: str, param2: int = 42) -> str:
"""工具描述。
参数:
param1:参数 1 的描述
param2:参数 2 的描述(默认值:42)
"""
result = {}
# 工具逻辑在这里
return json.dumps(result)
```
## 故障排除
- 如果图像生成失败,请确保您已设置至少一个 API 密钥
- 对于天气数据,需提供 OpenWeatherMap API 密钥
- 对于任何 API 错误,请检查控制台输出以获取详细错误信息
连接信息
猜你喜欢
MarkItDown
将文件和办公文档转换为Markdown的Python工具。
Whisper 语音识别
OpenAI Whisper MCP Server - 基于本地 Whisper CLI 的离线语音识别与翻译,无需 API Key,支持...
claude-flow
Claude-Flow v2.7.0 是一个企业级AI编排平台。
oh-my-opencode
背景代理 · 精心挑选的代理,如 oracle、librarians、frontend engineer · 预构建工具,如 LSP/AST ·...
ai-engineering-from-scratch
学习它。构建它。交付给他人。最全面的开源AI工程课程:200多节课程,内容涵盖从线性代数到自主代理集群,支持Python、TypeScript、Rust和Julia。
hyperframes
编写HTML。渲染视频。为代理而建。