我们正在构建一个用于与 Chrome 交互的服务器。该项目有两个主要目标:
[!NOTE] 这不是 MCP 协议的参考实现,这是一个学习练习,旨在更好地理解该协议及其工作原理。
更健壮的实现位于 app 文件夹中。
这是一个简单的 MCP 协议实现,因此我们没有实现 MCP 协议的所有功能。我们专注于构建一组可以使用的初始功能,以获得一个可运行的实现。
可以通过执行以下命令来运行它:
uv run uvicorn demo_implementation.main:app --reload
然后通过运行 MCP 检查器进行测试:
npx @modelcontextprotocol/inspector node build/index.js
进入检查器后,您可以使用 URL http://0.0.0.0:8000 连接到我们的服务器。
演示实现有两个主要组件:
实现的重点是初始化过程和工具的实现。我们没有实现其他功能。初始化过程分为三个部分:
/sse 端点以获取会话 URI。initialize 消息,服务器响应其支持的功能。notifications/initialized 消息,通知初始化完成。一旦实现这些步骤,客户端就可以开始向服务器发送消息以使用工具。
演示实现有许多限制,包括缺乏错误处理、没有适当的会话清理等。我们在 app/main.py 中添加了一个更健壮的实现,该实现依赖于 MCP Python SDK。
更健壮的实现依赖于 MCP Python SDK 来处理连接和消息。
此实现位于 app/main.py 中。
这要简单得多,因为我们只需要定义要用作工具的三个函数。定义好之后,我们可以通过运行 app/main.py 文件来测试实现:
# 启动服务器
mcp run app/main.py --transport sse
然后在另一个终端中启动 MCP 检查器:
npx @modelcontextprotocol/inspector node build/index.js