本项目是一个使用 Gradio 框架实现的极简 MCP (Model Context Protocol) 服务器示例。它不仅提供一个可视化的 Web UI,还能同时作为一个 MCP 服务器运行,允许兼容 MCP 的 LLM 客户端通过网络调用预设的功能(即“工具”)。
主要功能点:
- Gradio Web UI: 提供一个简单的网页界面,展示工具的使用方式。
- MCP 服务器功能: 在同一端口上启动一个 SSE (Server-Sent Events) 形式的 MCP 服务端点。
- 工具注册: 自动将符合规范的 Python 函数(例如 'letter_counter')作为 MCP 工具暴露给客户端。
- 易于扩展: 通过添加带有类型提示和文档字符串的 Python 函数,可以方便地增加新的 MCP 工具。
- 多种部署方式: 可以在本地运行,也可以轻松部署到如 Hugging Face Spaces 等平台,成为公开的 MCP 服务器。
安装步骤:
- 克隆仓库:
git clone https://github.com/Sunwood-ai-labs/gradio-mcp-minimal.git cd gradio-mcp-minimal - 创建并激活虚拟环境:
推荐使用 'uv' 或标准 'venv'。
- 使用 'uv' (如果已安装):
uv venv source .venv/bin/activate - 使用标准 'venv':
python -m venv .venv source .venv/bin/activate
- 使用 'uv' (如果已安装):
- 安装依赖:
uv pip install -r requirements.txt # 或者使用 pip: # pip install -r requirements.txt
服务器配置(供 MCP 客户端参考):
某些 MCP 客户端需要配置如何启动 MCP 服务器进程。这种配置通常包含服务器的唯一名称、用于启动服务器的可执行命令及其参数。对于本项目,启动命令是运行 'app.py' 文件。
配置时需要提供以下信息:
- 服务器名称 (server name): 一个用于在客户端中识别此服务器的任意字符串(例如 'gradio-local' 或 'my-gradio-mcp')。
- 启动命令 (command): 启动服务器进程的可执行程序,通常是 Python 解释器路径(例如 'python' 或 '/path/to/.venv/bin/python')。
- 命令参数 (args): 传递给启动命令的参数列表。对于本项目,参数是脚本文件的路径(例如 'app.py')。启动脚本会监听 'PORT' 环境变量或默认端口 7860。
根据此仓库信息,一个典型的启动命令配置会指向 'python' 和 'app.py'。客户端会根据这些信息在需要时启动服务器进程。
请注意,本项目示例也展示了客户端直接连接到已运行服务器的 SSE URL 的方式,具体连接方法取决于你使用的 MCP 客户端。
基本使用方法:
- 启动服务器:
在项目目录下执行:
服务器将启动并监听端口(默认为 7860)。你可以在浏览器中访问 'http://127.0.0.1:7860' 查看 Gradio Web UI。MCP SSE 服务端点位于 'http://127.0.0.1:7860/gradio_api/mcp/sse'。python app.py - 配置 MCP 客户端: 打开你的 MCP 客户端(如 Claude Desktop, Cline 等)的配置文件。根据客户端要求,添加一个新的 MCP 服务器配置项。这个配置项会包含服务器名称和连接信息(如上面提到的启动命令/参数,或直接的 SSE URL)。
- 在 LLM 中调用工具: 重启 MCP 客户端。在 LLM 界面中,你应该能看到一个新的可用工具服务器,以及其中包含的 'letter_counter' 工具。现在你可以在与 LLM 交互时指示它调用 'letter_counter' 工具,例如通过 prompts 中触发工具调用的语法来让 LLM 调用该工具进行字母计数。
可用的工具:
- 'letter_counter': 计算给定文本中某个字母出现的次数。接受 'text' (要搜索的文本) 和 'letter' (要计数的字母) 作为输入,返回计数结果。
信息
分类
开发者工具