mcpField
M
MCP Server

MCP Server

本地服务
github.com/zack-dev-cm开发工具03 周前更新

关于 MCP Server

面向开发者的精简 MCP 参考服务,包含模拟工具、插件和可选的 Gradio 交互界面。可在本地或 Google Colab 运行,并提供 OpenAI 聊天与视觉插件示例。

主要功能

  1. 01模拟 MCP 工具
  2. 02可选的 Gradio 交互界面
  3. 03基于插件扩展工具
  4. 04OpenAI 聊天与视觉示例
  5. 05支持本地和 Colab 启动

适用场景

  1. 01试验 MCP 服务行为
  2. 02通过可视界面测试工具
  3. 03使用模型插件扩展服务

MCP 相关

通过统一的 `/mcp` 端点实现 MCP,支持 POST 传输 JSON-RPC,以及 GET 上的 Server-Sent Events。MCP 客户端可调用工具并访问资源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP 服务

Model Context Protocol(MCP)的精简参考实现,包含一些模拟工具和可选的 Gradio 交互界面。

在 Colab 中打开

用法

在本地运行服务:

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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。