README
🚀 Chrome MCP 服务器
本项目致力于构建一个用于与 Chrome 交互的服务器,具备两大核心目标:
- 提供一个不依赖 Anthropic 所提供的 MCP 库的 MCP 实现方案。
- 创建一个 Chrome MCP 服务器,以便在 Cursor 中使用该服务器捕获页面截图,并对其实现进行验证。
⚠️ 重要提示
本项目并非 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 连接到我们的服务器。
工作原理
演示实现主要包含两个核心组件:
- 事件流:用于从服务器向客户端发送消息。
- POST 端点:用于从客户端向服务器发送消息。
初始化流程分为三个阶段:
- 客户端首次调用
/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
Scan to join WeChat group