返回市场
铬-MCP服务器

铬-MCP服务器

作者:jverre4 星标更新:2025-02-24

项目介绍

Chrome MCP 服务器

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

  1. 提供一个不依赖于 Anthropic 提供的 MCP 库的 MCP 实现。
  2. 创建一个 Chrome MCP 服务器,我们可以在 Cursor 中使用它来截取页面的屏幕截图并验证实现。

[!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 连接到我们的服务器。

工作原理

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

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

实现的重点是初始化过程和工具的实现。我们没有实现其他功能。初始化过程分为三个部分:

  1. 初始调用 /sse 端点以获取会话 URI。
  2. 客户端向服务器发送 initialize 消息,服务器响应其支持的功能。
  3. 客户端向服务器发送 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