关于 MCP 服务器,我听过最吓人的一句话是"你暴露的任何工具,AI 都可能调用"。这句话是对的,而且只要你把工具当成它们本来的样子——一个个小而有力的按钮——就没什么好怕的。MCP 并没有从本质上让安全变难,它只是给了你一些新的偷懒点。下面这些习惯,才是真正让它变安全的大白话版。
秘密放 Env,别放进代码
头号泄露渠道,是把 API key 直接写进配置文件,然后整个文件夹上了 GitHub。MCP 服务器读 command、args 和 env 来配置。把秘密放 env 或一个不进 git 的本地文件,永远别写进源码。配置指南 展示了那个 env 块,这正是变量该待的地方——用名字引用,而不是直接写死。
校验每一个参数
因为发给你的参数是 AI 拼出来的,请把每个输入都当不可信来处理。传 IP 之前先确认它真的是 IP,数字要检查范围,字符串要当心路径注入。你的 inputSchema 声明了形状,但你必须用代码强制。这跟校验任何外部输入是同一套纪律,在自己搭建服务器的材料里讲得很全。
权限按最小化给
别暴露一个"删除所有数据"的工具,除非你真的是这个意思。给每个工具它能承受的最小能力,想一想一次误调用会造成什么。如果某个工具能碰到付费 API,考虑加个限流或预算,因为一个跑飞的助手烧掉配额的速度比人快得多。也是在读 工具列表 时要记住的一点。
想清楚你挂了什么上去
把一个服务器接到 Claude 或 Cursor 这类助手时,就是把一个非常强大的程序接进了你的本机或账号。优先用沙箱环境,只授予工具真正需要的目录或服务。如果某个工具只该读,就别给它写权限。这种边界思维,和一篇 更宽泛的安全自审 是同一个原则,只是落到了你的 MCP 配置上。
留意远程化趋势
走 HTTP 和 SSE 的远程 MCP 很方便,但也把你的工具搬到了网络端点。这意味着鉴权很重要——不只对你的账号,还有客户端和服务器之间的鉴权。像 /mcp-tools.json 这样的公开工具目录,只读暴露没问题;但会改数据或碰到付费 API 的调用,应该放在一个 key 后面。传输方式指南 讲了你用的是哪根管道,也就讲了你要保护什么。
串起一切的规则
只记一句话:假设任何人——包括 AI——都可能调用你的工具,并据此设计。秘密别放代码里、校验输入、收权限、护好远程端点。就这几个习惯,就能挡掉绝大多数的真实事故。真遇到故障,用 排查清单 拉你回来,IPIPAI 博客 再把其余补全。