MCP 服务器没有安全标准——这为何是个问题
Source: Dev.to
MCP 服务器安全性的问题
模型上下文协议(Model Context Protocol,MCP)正在迅速普及。Anthropic 开源了它,现在每个 AI 代理框架都在集成它。MCP 服务器让大语言模型(LLM)能够读取文件、调用 API、查询数据库、执行代码以及与真实世界交互。
但这些服务器谁来审计?
MCP 服务器本质上是 LLM 与你的基础设施之间的信任桥梁。当你把 Claude、GPT 或任何代理连接到 MCP 服务器时,你就在授予它可能危险的能力:
- 文件系统访问 – 读取、写入、删除文件
- 代码执行 – 在主机上运行任意命令
- 网络出口 – 向外部端点发送数据
- 凭证访问 – 读取环境变量、配置文件
目前没有标准的方式来声明 MCP 服务器可以做什么、验证这些声明,或审计服务器的实际行为是否与其声称相符。你安装一个 MCP 服务器,连接你的代理,然后祈祷它不会出问题。
为什么需要标准
一个完善的 MCP 服务器安全标准应当要求:
- 能力声明 – 每个服务器必须声明它能做什么、风险等级以及作用范围。不是放在 README 里,而是以机器可读的格式,让工具能够验证。
- 被拒绝的能力 – 明确声明服务器不能且不会做的事情。例如,一个文件系统服务器声明
"denied": ["code_execution", "network_egress"]就是一个可验证的声明。 - 审计历史 – 服务器上次扫描是什么时候?使用了什么工具?得分是多少?如果答案是“从未”,这对部署者来说是关键信息。
- 风险分类 – 这台服务器是低风险还是高风险?是否处理个人身份信息(PII)?欧盟 AI 法案要求对 AI 系统进行此类分类,而 MCP 服务器是这些系统的组成部分。
引入 KYA:面向代理身份的开放标准
我们创建了 KYA(Know Your Agent) 来解决这个问题。KYA 定义了一种机器可读的 Agent Card——一个 JSON 文档,用来声明 AI 代理或 MCP 服务器的身份、能力以及审计情况。
KYA 标准:
生成与验证 Agent Card
pip install kya-agent
# Generate an agent card for your MCP server
kya init --agent-id "your-org/your-server" --name "My MCP Server"
# Validate the card
kya validate agent-card.kya.json
# Score completeness
kya score agent-card.kya.json
Agent Card 包含的内容
- 身份 – 谁拥有它,如何联系
- 能力 – 它能做什么,明确拒绝哪些功能
- 安全 – 审计历史,注入测试状态
- 合规 – 欧盟 AI 法案风险分类,NIST AI RMF 映射
- 行为 – 日志记录、速率限制、紧急关闭开关
如果没有像 KYA 这样的标准,MCP 生态系统只能依赖信任:信任服务器的 README 是准确的,信任开发者考虑了安全,信任没有恶意的工具描述被注入。信任无法规模化——标准可以。
开始使用 KYA
pip install kya-agent
其他工具
- MCP security audit:
pip install mcp-security-audit - Prompt injection detection:
pip install ai-injection-guard