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端点,用于从客户端向服务器发送消息。
该实现侧重于实现初始化过程和工具。我们没有考虑其他功能的实现。 初始化过程分为三个部分:
- 首次致电
/sseendpoint以获取会话URI。 - 客户端发送
initialize向服务器发送消息,以服务器支持的功能进行响应。 - 客户端发送
notifications/initialized向服务器发送消息,通知初始化已完成。
一旦实现了这一点,客户端就可以开始向服务器发送消息以使用这些工具。
演示实现的局限性
演示实现有许多局限性,包括缺乏错误处理、没有充分清理会话等等。 我们在 app/main.py 它依赖于MCP Python SDK。
强有力的实施
更健壮的实现依赖于MCP Python SDK来处理连接和消息。
此实现位于 app/main.py.
运作原理
这要简单得多,因为我们需要做的就是定义用作工具的三个函数。一旦定义了这些,我们就可以测试 通过运行 app/main.py 文件:
# Start the server
mcp run app/main.py --transport sse然后在另一个终端中,我们可以启动MCP检查器:
npx @modelcontextprotocol/inspector node build/index.js
