安全邮件MCP服务器

一个运行在AWS Nitro安全环境中的Gmail MCP服务器,提供远程邮件处理功能,适用于需要高安全性的邮件通信场景。

  • by 0xfreysa
  • TypeScript
  • 混合部署
  • 15 星标
  • 更新于
在 GitHub 查看 0xfreysa/trusted-mcp-server

使用说明

受信任的GMail MCP服务器

这是一个gmail 主控程序 服务器在安全的内部运行 AWS Nitro 飞地实例。它最初是从 克劳德·波斯特 MCP服务器。大多数MCP服务器通过以下方式在本地运行 stdio 运输;我们跟着 本指南 使用以下命令实现远程MCP服务器 sse 运输。

连接到MCP服务器

要使用此MCP服务器,您需要 应用程序特定密码.

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

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

请注意,您可能需要重新启动客户端。

安全通知

此实现是概念验证。在URL中传递特定于应用程序的密码不是一种安全模式,因为:

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

遗憾的是,当前的MCP客户端在连接服务器的方式上存在局限性。在发布时,MCP规范没有为SSE服务器定义标准身份验证机制。这意味着我们不能使用更安全的模式,如承载令牌或其他通常首选的授权标头。

为了提高安全性,请考虑:

  1. 仅为此目的使用专用的应用程序特定密码
  2. 通过安全的VPN或专用网络访问
  3. 按照提供的说明运行自己的实例

概念

AWS Nitro Enclave提供隔离的计算环境,通过基于硬件的认证增强安全性。当代码在Nitro Enclave中运行时,平台会生成代码身份和状态的加密测量值。这些测量值可作为可验证的保证,确保代码没有被修改,并且完全按照预期执行,防止篡改或未经授权的修改。有关更多信息,请参阅此 博客文章.

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

验证代码证明

要验证预期的代码库是否是在我们的TEE中运行的代码库,您必须自己在AWS Nitro飞地中复制运行它。操作说明如下。运行后,您可以使用此存储库进行验证,如下所示。

  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. 点击“验证证明”按钮

在TEE中运行自己的实例

您可以按如下方式在TEE中重现运行此服务器的过程。

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

  2. 通过检查ec2控制台中实例的“security”选项卡中的安全组,确保应用程序所需的端口已打开。

  3. 将此仓库克隆到您的ec2实例。

  4. 运行安装脚本下载所有必要的依赖项。

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

sudo systemctl restart nitro-enclaves-allocator.service
  1. 管理飞地。
make
  1. 在生产模式下运行。
make run

使用您的MCP服务器

要实际使用MCP服务器,您还需要运行gvproxy,如下所示。

screen
./gvproxy.sh

那么你可以 curl 健康检查端点,以确认MCP服务器正在飞地中运行。

curl http://127.0.0.1:7047/