Chrome MCP服务器

一个用于与Chrome交互的服务器,提供不依赖Anthropic MCP库的实现,并支持页面截图和验证功能。

  • by jverre
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 jverre/chrome-mcp-server

使用说明

Chrome MCP服务器

我们正在构建一个用于与Chrome交互的服务器。该项目有两个主要目标:

  1. 提供不依赖于Anthropic提供的MCP库的MCP实现。
  2. 创建一个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

运作原理

演示实现有两个主要组件:

  1. 用于从服务器向客户端发送消息的事件流。
  2. 一个POST端点,用于从客户端向服务器发送消息。

该实现侧重于实现初始化过程和工具。我们没有考虑其他功能的实现。 初始化过程分为三个部分:

  1. 首次致电 /sse endpoint以获取会话URI。
  2. 客户端发送 initialize 向服务器发送消息,以服务器支持的功能进行响应。
  3. 客户端发送 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