关于 MCP Server
面向开发者的精简 MCP 参考服务,包含模拟工具、插件和可选的 Gradio 交互界面。可在本地或 Google Colab 运行,并提供 OpenAI 聊天与视觉插件示例。
主要功能
- 01模拟 MCP 工具
- 02可选的 Gradio 交互界面
- 03基于插件扩展工具
- 04OpenAI 聊天与视觉示例
- 05支持本地和 Colab 启动
适用场景
- 01试验 MCP 服务行为
- 02通过可视界面测试工具
- 03使用模型插件扩展服务
MCP 相关
通过统一的 `/mcp` 端点实现 MCP,支持 POST 传输 JSON-RPC,以及 GET 上的 Server-Sent Events。MCP 客户端可调用工具并访问资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务
Model Context Protocol(MCP)的精简参考实现,包含一些模拟工具和可选的 Gradio 交互界面。
用法
在本地运行服务:
python server.py
创建一个 dev.env 文件,并添加你的 OpenAI API 密钥:
OPENAI_API_KEY=your-openai-key
在 Google Colab 或其他笔记本中,使用辅助工具:
from colab_adapter import launch_in_colab
launch_in_colab()
API 默认通过端口 8000 提供服务,Gradio UI 会尝试使用 GRADIO_SERVER_PORT,或从 7860 开始使用第一个空闲端口。
在 Google Colab 中运行
在 Colab 中打开 MCP_colab.ipynb,或点击上方徽章,然后运行各个单元格。
如果从空白笔记本开始,请运行以下命令来设置并启动 服务:
!git clone https://github.com/zack-dev-cm/mcp_server.git
%cd /content/mcp_server
!pip install fastapi uvicorn[standard] gradio==4.* pydantic python-dotenv \
httpx openai pydantic-settings
from colab_adapter import launch_in_colab
launch_in_colab()
现在,你可以在另一个单元格中查询 API:
import requests, time
time.sleep(2)
print(requests.get("http://localhost:8000/v1/resources").json())
服务输出会显示 Gradio 界面的公开 URL,你可以通过该界面直观地试用演示。
LLM/VLM 插件示例
插件可以为服务扩展新工具。内置的 openai_chat 和 openai_vision 插件展示了如何调用 OpenAI 模型。在环境中设置 OPENAI_API_KEY 并启动服务。
如果在本地运行,请先安装所需的软件包:
pip install openai httpx pydantic-settings
python server.py
Dockerfile 会自动安装 openai。通过 API 或 Gradio UI 调用 openai.chat 或 openai.vision 工具。
可流式传输的 HTTP 端点
ChatGPT 连接器可以使用统一的 /mcp 路由直接与服务通信。
发送 POST /mcp JSON-RPC 请求即可接收标准 JSON 响应。当
客户端支持服务器发送事件时,也可以改为 GET /mcp 并保持
连接打开,以流式传输更新。
将 ChatGPT 连接器配置为指向你的服务基础 URL,并使用
/mcp 端点进行非流式和流式交互。
用户数据 API
经过身份验证的会话可以存储和管理特定于用户的 JSON 数据。 首先请求会话 ID,然后将其作为 bearer token 传递:
# create a session and grab the token
TOKEN=$(curl -s -X POST http://localhost:8000/v1/initialize \
-H 'Content-Type: application/json' \
-d '{"id":1,"jsonrpc":"2.0","method":"initialize","params":{}}' \
| jq -r '.result.sessionId')
# store data
curl -X POST http://localhost:8000/api/user/data \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{"foo":"bar"}'
# fetch it back
curl -H "Authorization: Bearer $TOKEN" http://localhost:8000/api/user/data
# remove it
curl -X DELETE -H "Authorization: Bearer $TOKEN" \
http://localhost:8000/api/user/data
部署到 Cloud Run
你可以使用提供的 Dockerfile 将服务部署到 Google Cloud Run:
# build and push the container
gcloud builds submit --tag gcr.io/PROJECT_ID/mcp-server
# deploy the image to Cloud Run
gcloud run deploy mcp-server \
--image gcr.io/PROJECT_ID/mcp-server \
--region REGION \
--allow-unauthenticated
Cloud Run 会自动设置 PORT 环境变量,服务使用该变量在同一端点上提供 API 和 Gradio UI。
运行测试
测试套件要求设置 ELEVENLABS_MCP_SECRET 和 OPENAI_API_KEY。
复制 dev.env 并在执行 pytest 前加载其中的环境变量:
cp dev.env .env
set -a && source .env && set +a
pytest
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。