Trusted MCP是火山引擎推出的可信MCP,在标准MCP协议的基础上扩展核心组件之间的身份证明及验证能力,提供组件之间端到端的通信安全保障,可以解决MCP应用中服务身份不可信、数据被篡改、流量劫持、数据隐私泄露等安全威胁。
推荐使用 uv 进行Python项目管理。
-
编译SDK
uv build # 编译完成后,会在dist目录下生成whl文件以及tar.gz文件 -
安装SDK
uv add bytedance_jeddak_trusted_mcp
在本项目中使用可直接通过
uv sync完成编译和安装。 -
使用SDK
# 如下代码展示了如何在代码中引入TrustedMCP,仅需要将现有MCP模块替换成TrustedMCP模块即可。 # Original MCP code # Import MCP, and create an MCP server from mcp.server.fastmcp import FastMCP mcp = FastMCP(name="Demo") # Replace with TrustedMCP code # Import TrustedMCP, and create a TrustedMCP server from bytedance.jeddak_trusted_mcp import TrustedMCP trusted_mcp = TrustedMCP(name="Demo")
注意:实际代码运行还需要提供TrustedMCP以及大模型调用的必要配置。
典型MCP应用通常主要包含三个模块,即Host、Client和Server,Client和Server可以灵活部署。Trusted MCP支持在普通环境(非机密环境)中运行,同时也支持在机密环境中运行。在普通环境中运行时,Trusted MCP仅为Client和Server提供端到端的机密通信能力,而在机密环境中运行时,Trusted MCP还能够提供远程证明验证,确保对端运行在机密计算环境、且服务可信。
推荐:开发调试以及功能验证可在普通环境下部署更方便,生产环境下建议部署到机密计算环境以提供最完备的安全保障。
以本地部署demo目录下的server.py和client.py为例,展示如何在普通环境中部署Trusted MCP服务。
-
环境配置
# 生成公私钥对,此处openssl生产RSA公私钥对为例: openssl genrsa -out ./myPrivateKey.pem 4096 openssl rsa -pubout -in ./myPrivateKey.pem -out ./myPublicKey.pem # 注: # 1. 此处生成的公私钥对仅用于演示,在生产环境中请使用安全的密钥管理方案。 # 2. 公私钥对需要分别配置到Client和Server中,Client的公钥需要配置到Server中,Server的公钥需要配置到Client中。
-
部署启动Server
# 配置Server运行环境 # 1. 配置Server私钥,缺省默认使用目录下的 ./myPrivateKey.pem # 2. 配置Server的地址,缺省默认是 http://127.0.0.1:8000/mcp uv run python server.py
-
部署启动Client
# 配置Client运行环境 # 1. 配置Client公钥,缺省默认使用目录下的 ./myPublicKey.pem # 2. 配置Server的地址,缺省使用默认地址 http://127.0.0.1:8000/mcp # 3. 配置火山方舟的API Key环境变量 LLM_API_KEY,如果没有可以联系火山引擎获取一个临时的API Key # 4. 配置火山方舟的模型名称环境变量 LLM_MODEL_NAME,缺省默认使用 doubao-1.5-pro-32k-250115 uv run python local_client.py
完成以上步骤后,即可在普通环境中运行Trusted MCP服务,可在Client中输入任意请求(如查询北京天气)。
以在火山引擎AICC机密计算平台部署demo目录下的aicc_server.py和aicc_client.py为例,展示如何在机密计算环境中部署Trusted MCP服务。
-
准备机密计算环境
请参考火山引擎AICC文档,开通机密计算实例,并记录相关信息,如实例ID、AK、SK等。
-
配置环境
编辑Server和Client的配置文件(server_config.json和client_config.json)中,将机密计算环境相关信息进行更新,如实例ID、AK、SK等。
-
部署启动Server
# 配置Server运行环境 # 1. 配置Server配置文件路径,缺省默认使用目录下的 ./server_config.json # 2. 配置Server的地址 uv run python aicc_server.py
-
部署启动Client
# 配置Client运行环境 # 1. 配置Client配置文件路径,缺省默认使用目录下的 ./client_config.json # 2. 配置Server的地址 # 3. 配置火山方舟的API Key环境变量 LLM_API_KEY # 4. 配置火山方舟的模型名称环境变量 LLM_MODEL_NAME uv run python aicc_client.py
完成以上步骤后,即可在机密计算环境中运行Trusted MCP服务,可在Client中输入任意请求(如查询北京天气)。
感谢火山引擎AICC项目组成员,倘若没有项目组成员的努力,该项目无法实现开源发布。期望本项目能够在AI智能体隐私保护领域,特别是在涉及用户数据安全的场景中,贡献一份力量。
MIT。
