MCP 服务器没有安全标准——这为何是个问题

发布: (2026年3月5日 GMT+8 12:32)
5 分钟阅读
原文: Dev.to

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
0 浏览
Back to Blog

相关文章

阅读更多 »