trackmcp
Back to directory
co-browser

attestable-mcp-server

View on GitHub

Verify that any MCP server is running the intended and untampered code via hardware attestation.

17 stars PythonServers & Infrastructure Updated Sep 13, 2025
mcpmcp-serverremote-attestationteeverification

Documentation

➡️ attestable-mcp-server

Overview

This project contains an MCP Server that is remotely attestable by MCP clients. To achieve this, a trusted execution environment is used, which generates a certificate representing the currently-running code of the attestable-mcp-server. The attestable-mcp-server sends this certificate in the TLS handshake to an MCP client before connecting that proves the code it's running is the same code built on github actions, and can be independently validated by building and running the code locally on emulated hardware or secure hardware; these values will be the same. The protocol used for client server remote attestation is RA-TLS, an extension to TLS that adds machine and code specific measurements that can be verified by an MCP client.

The most important concept behind this RA-TLS certificate is that it embeds an SGX quote in the standardized X.509 extension field with the TCG DICE "tagged evidence" OID, which in turn embeds the SGX report and the complete Intel SGX certificate chain. In addition to the SGX quote, the certificate also contains the evidence claims, with the most important one being the "pubkey-hash" claim that contains the hash of the ephemeral public key (in DER format) generated by the TEE of the memory image of the running MCP server.

Features

  • MCP Clients can remotely attest the code running on any MCP Server
  • MCP Servers can optionally remotely attest MCP Clients

Producing Signed Artifacts

The github action script in this repo runs on a self-hosted github runner inside of a trusted execution environment (TEE). The action script will build a docker container containing the attestable-mcp-server and generate a signed attestation of the code running inside the TEE. This docker image is then signed by github. You can independently generate the same values with or without secure hardware, and query our running server and get the same values.

Dependencies

    Quickstart

    code
    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-mcp-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

    Starting Server on Secure Hardware

    code
    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

    Starting Server on local development machine

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

    TODO

      Future Plans

        cobrowser.xyz

        Frequently asked questions

        What is attestable-mcp-server?

        attestable-mcp-server is Verify that any MCP server is running the intended and untampered code via hardware attestation.

        How do I install attestable-mcp-server?

        Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

        Is attestable-mcp-server open source?

        Yes — it is hosted on GitHub at https://github.com/co-browser/attestable-mcp-server and has 17 stars.

        Related MCP tools

        Run your own MCP server? See who uses it and what to fix.

        Measure it with TrackMCP