本项目致力于构建一个用于与 Chrome 交互的服务器,具备两大核心目标:
⚠️ 重要提示
本项目并非 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。
由于只需定义三个作为工具使用的函数,因此该实现更为简便。定义好这些函数后,可通过运行以下命令来测试其实现:
# 启动服务器
mcp run app/main.py --transport sse
然后在另一个终端中启动 MCP 检查工具:
npx @modelcontextprotocol/inspector node build/index.js