Attestable Mcp Server

Attestable Mcp Server

🚀 可验证的MCP服务器

本项目提供一个可被MCP客户端远程验证的MCP服务器,借助受信任执行环境生成证书,确保服务器运行的是指定代码,保障代码运行的安全性和可验证性。

🚀 快速开始

MCP服务器启动命令如下:

go run main.go --listen :8080

使用 Docker 构建并运行:

docker build -t mcp-server .
docker run -p 8080:8080 mcp-server

✨ 主要特性

  • MCP 客户端可以远程验证任何 MCP 服务器上运行的代码。
  • MCP 服务器可以选择性地远程验证 MCP 客户端。

📦 安装指南

本项目的运行依赖以下环境:

  • Intel SGX 硬件
  • Gramine
  • Python 3.13
  • Ubuntu 22.04
  • Intel SGX 马甲

📚 详细文档

概述

此项目包含一个 MCP 服务器,该服务器可以被 MCP 客户端 远程验证。为了实现这一点,使用了受信任的执行环境 (TEE),该环境会生成一个证书,表示当前正在运行的代码。这个证书会在 TLS 握手过程中发送给 MCP 客户端,并证明该服务器运行的是 GitHub Actions 上构建的相同代码。通过在安全硬件或受信任环境中独立构建和运行代码,可以验证这些值是否一致。

用于客户端与服务器之间远程验证的协议是 RA-TLS,这是 TLS 的一个扩展,添加了机器和代码特定的测量值,这些测量值可以通过 MCP 客户端进行独立验证。

实现远程验证的关键证书特性在于,它嵌入了一个 SGX 报告 到标准的 X.509 扩展字段中,并使用了 TCG DICE "标记证据" OID 进行编码。这些 SGX 报告和完整的 Intel SGX 证书链都会被包含在内。除了 SGX 报告之外,证书还包含证据声明,其中最重要的一个声明是 "pubkey-hash",它包含了受信任执行环境生成的内存镜像中运行的 MCP 服务器的临时公钥 (DER 格式) 的哈希值。

生成签名工件

此仓库中的 GitHub 操作脚本在一个自托管的 GitHub 运行器上执行,该运行器位于受信任的执行环境中 (TEE)。该操作会构建一个 Docker 容器,其中包含可验证的MCP服务器,并生成该容器在 TEE 中运行代码的签名证明。此 Docker 镜像由 GitHub 签名。您可以在有或没有安全硬件的情况下独立生成相同的值,并通过查询正在运行的服务器来获取相同值。

项目结构

  • main.go: MCP 服务器的主要实现。
  • cmd/: 包含与 MCP 相关的命令行工具。
  • examples/: 展示如何使用 MCP 的示例代码。
  • internal/: 包含内部库和模块。

贡献指南

如何贡献

  1. Fork 此仓库。
  2. 创建功能分支。
  3. 提交更改。
  4. 推送到您的仓库。
  5. 创建 Pull Request。

如何报告问题

使用 GitHub Issues 提交问题。

📄 许可证

本项目采用 Apache License 2.0 许可协议。

联系方式


此项目由 @co_browser 开发。

  • 0 关注
  • 0 收藏,10 浏览
  • system 提出于 2025-09-30 07:18

相似服务问题