返回市场
可验证-mcp-服务器

可验证-mcp-服务器

作者:kontext-dev17 星标更新:2025-03-29

项目介绍

➡️ attestable-mcp-server

<div align="center">

<strong>远程可验证的MCP服务器</strong>

</div>

概述

该项目包含一个MCP服务器,该服务器可以通过MCP客户端进行远程验证。为了实现这一点,使用了一个可信执行环境,生成一个证书来表示当前运行的attestable-mcp-server代码。在TLS握手过程中,attestable-mcp-server会向MCP客户端发送这个证书,在连接之前证明其运行的代码是与github actions上构建的相同代码,并且可以在本地通过模拟硬件或安全硬件构建和运行代码进行独立验证;这些值将是相同的。客户端和服务器之间的远程验证使用的协议是RA-TLS,它是TLS的一个扩展,增加了可以由MCP客户端验证的机器和代码特定测量值。

RA-TLS证书背后最重要的概念是它在标准化的X.509扩展字段中嵌入了SGX报价,并使用了TCG DICE“标记证据”OID,这反过来又嵌入了SGX报告和完整的Intel SGX证书链。除了SGX报价之外,证书还包含了证据声明,其中最重要的是“pubkey-hash”声明,它包含了由内存映像运行的MCP服务器的TEE生成的临时公钥(DER格式)的哈希值。

<strong>特性</strong>

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

生成签名工件

此仓库中的github操作脚本在一个可信执行环境中(TEE)内的自托管github运行器上运行。操作脚本将构建一个包含attestable-mcp-server的Docker容器,并生成TEE内运行代码的签名验证。然后,此Docker镜像由github签名。您可以独立生成相同的值,无论是否使用安全硬件,并查询我们的运行服务器以获得相同的值。

依赖项

  • Intel SGX硬件
  • Gramine
  • Python 3.13
  • Ubuntu 22.04
  • Intel SGX SDK & PSW

快速开始

uv sync
docker build -t attestable-mcp-server .
gramine-sgx-gen-private-key
git clone https://github.com/gramineproject/gsc docker/gsc
cd docker/gsc
uv run ./gsc build-gramine --rm --no-cache -c ../gramine_base.config.yaml gramine_base
uv run ./gsc build -c ../attestable-mcp-server.config.yaml --rm attestable-m- cp-server ../attestable-mcp-server.manifest
uv run ./gsc sign-image -c ../attestable-mcp-server.config.yaml  attestable-mcp-server "$HOME"/.config/gramine/enclave-key.pem
uv run ./gsc info-image gsc-attestable-mcp-server

在安全硬件上启动服务器

docker run -itp --device=/dev/sgx_provision:/dev/sgx/provision  --device=/dev/sgx_enclave:/dev/sgx/enclave -v /var/run/aesmd/aesm.socket:/var/run/aesmd/aesm.socket -p 8000:8000 --rm gsc-attestable-mcp-server

在本地开发机上启动服务器

docker run -p 8000:8000 --rm gsc-attestable-mcp-server

待办事项

  • 添加演示ra-tls的MCP客户端
  • 将来自我们github操作的intel签名测量添加到此readme中,以便简单独立验证

未来计划

  • JSON Web Key (JWK) 验证声明

cobrowser.xyz