mcpField
T
Trusted GMail MCP Server

Trusted GMail MCP Server

本地服务
github.com/0xfreysa通信协作1582 周前更新

关于 Trusted GMail MCP Server

Trusted GMail MCP Server 是运行在 AWS Nitro Enclave 中的远程 Gmail MCP 服务,面向希望通过 MCP 使用 Gmail 的客户端。项目提供代码证明验证流程;文档也指出,通过 URL 传递应用专用密码存在安全风险。

主要功能

  1. 01在 AWS Nitro Enclave 中运行
  2. 02通过 SSE 提供远程连接
  3. 03提供代码证明验证流程
  4. 04支持自行部署到 TEE

适用场景

  1. 01从 MCP 客户端连接 Gmail 服务
  2. 02检查运行代码的证明信息
  3. 03在自有 AWS Nitro 环境部署服务

MCP 相关

这是采用 SSE 传输的远程 MCP 服务,客户端通过配置 URL 连接。连接需要应用专用密码,项目说明该密码置于 URL 中有安全风险。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

可信 GMail MCP 服务

这是一个在安全的 AWS Nitro 隔离区实例中运行的 Gmail MCP 服务。它最初是从 Claude Post MCP 服务分叉而来。大多数 MCP 服务都通过 stdio 传输在本地运行;我们遵循此指南,使用 sse 传输实现了远程 MCP 服务。

连接到 MCP 服务

要使用此 MCP 服务,你需要一个应用专用密码。

然后,只需将以下代码块添加到客户端的 mcp.json 文件中。

    "gmail_mcp": {
      "url": "https://gmail.mcp.freysa.ai/sse/?ADDR=<[email protected]>&ASP=<your app-specific password>"
    }

请注意,你可能需要重启客户端。

安全须知

此实现是一个概念验证。将应用专用密码放在 URL 中并非安全做法,因为:

  • 代理、浏览器和服务可能会记录 URL
  • URL 可能会出现在浏览器历史记录中
  • URL 可能会通过 Referer 标头泄露给第三方网站

遗憾的是,目前的 MCP 客户端在连接服务时存在限制。在发布时,MCP 规范尚未定义 SSE 服务的标准身份验证机制。这意味着我们无法使用通常更受青睐的更安全做法,例如 bearer token 或其他授权标头。

为提高安全性,请考虑:

  1. 专门为此用途使用一个独立的应用专用密码
  2. 通过安全 VPN 或专用网络访问
  3. 按照提供的说明运行自己的实例

概念

AWS Nitro Enclaves 提供隔离的计算环境,通过基于硬件的证明增强安全性。当代码在 Nitro Enclave 中运行时,平台会生成用于标识代码身份和状态的加密度量值。这些度量值可作为可验证的保证,证明代码未被修改且正按预期执行,从而防止篡改或未经授权的修改。更多信息请参阅这篇博客文章。

我们使用 Nitriding 在 AWS Nitro TEE 中快速部署代码。

验证代码证明

要验证我们的 TEE 中运行的是预期代码库,你必须自行在 AWS Nitro enclave 中复现其运行过程。操作说明如下。运行起来后,你可以使用此代码库按以下步骤进行验证。

  1. 首先构建代码。
cd verifier

pnpm install && pnpm run build
  1. 然后在本地运行验证器。
cd mcp/react-ts-webpack

pnpm i && pnpm run dev
  1. 然后在浏览器中打开 http://localhost:8080/。系统会提示你填写两个字段

(a) PCR2 哈希,即代码库的哈希值

(b) 代码证明,由 AWS 签名

  1. 点击“Verify Attestation”按钮

在 TEE 中运行自己的实例

你可以按以下步骤复现此服务在 TEE 中的运行过程。

  1. 使用 AWS EC2 控制台选择一台规格足够大的实例,并确保启用 Nitro。

  2. 在 EC2 控制台的实例“security”选项卡中检查安全组,确保应用所需端口已开放。

  3. 将此仓库克隆到你的 EC2 实例。

  4. 运行设置脚本以下载所有必要的依赖项。

sudo /setup.sh
  1. 如有需要,为 enclave 分配更多内存。
sudo nano /etc/nitro_enclaves/allocator.yaml

sudo systemctl restart nitro-enclaves-allocator.service
  1. 运行 enclave。
make
  1. 以生产模式运行。
make run

使用你的 MCP 服务

要实际使用 MCP 服务,你还需要运行 gvproxy,步骤如下。

screen
./gvproxy.sh

然后,你可以 curl 健康检查端点,以确认 MCP 服务正在 enclave 中运行。

curl http://127.0.0.1:7047/

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。