MCP 和外部 API 要不要对外开放?开启后有多大权限?

最后更新时间:2026-09-22 19:05:22

1. 先说结论:默认是关的,公网开放要非常谨慎

MCP 服务默认关闭。未启用时 POST /api/mcp 返回 HTTP 404,响应文本为 MCP service is disabled。这个默认值是有意为之——因为 MCP 的权限相当大。

2. MCP 拿到 Token 后能做什么

MCP 的 19 个工具覆盖了内容、栏目、主题文件、上传,几乎等于后台管理员的全部写能力

类别工具风险等级
栏目list_columns get_column create_column update_column delete_column中(删栏目要求栏目为空)
内容list_articles get_article create_article update_article delete_article
主题文件create_theme_file edit_theme_file delete_theme_file create_theme_directory delete_theme_directory list_theme_directory read_theme_file rename_theme_path高:能直接删磁盘文件
上传upload_file

特别提醒:主题文件工具是真删,没有回收站delete_theme_file 删普通文件、delete_theme_directory 删空目录,都不可恢复。拿到 token 就等于拿到了对这些文件的删除权。

唯一的护栏是路径安全规则:只允许访问当前主题目录,拒绝绝对路径、.. 穿越和越界符号链接。但它不阻止删除主题目录内的合法文件。

3. 如果确实要开,至少做这几件事

  1. 不要暴露在公网。优先内网、VPN 或网关白名单访问。
  2. 强制 HTTPS。Bearer Token 明文传输,HTTP 等于裸奔。
  3. 用专用管理员账号。MCP 要求管理员权限,不要拿你日常使用的超管 token 去接 AI 客户端。
  4. 保留 DNS rebinding 防护disable_localhost_protection 保持默认 false。只有在反向代理以域名访问、且服务监听回环地址时,才需要设为 true
  5. 开启认证失败锁定,并确认代理环境下 trust_proxy 已打开。
  6. 开着审计日志。所有 MCP 调用都会落库,model 记为 mcp

4. 出了事怎么追溯

后台「系统管理 → 系统日志 → 事件日志」可以查到栏目、内容、文件的关键写操作:

  • model 字段区分来源:admin / api / mcp
  • typeadd / edit / delete / query / option / login
  • op 是操作名,如 content_updateupload_file
  • state:1 成功、2 失败。失败的操作同样记录,比成功更有排查价值
  • 还有 objIdobjNameuidunameip,以及变更前后字段

覆盖范围:栏目的增删改、内容的增删改与批量删除、文件上传、MCP 的栏目与内容增删改、主题文件新建与编辑、主题目录新建。删除主题文件也会留痕typedelete)。

5. 一个容易误解的点

MCP 不经过 gin 中间件,审计是 handler 直接写库的。写库失败只记日志,不会影响工具返回结果——也就是说,极少数情况下工具调用成功了但审计没落下。不要把审计当成强一致的计费依据。

6. 建议

  • 不用的话保持关闭,这是默认值,也是最安全的状态。
  • 要用就限定访问来源,别裸奔公网。
  • 给 AI 客户端配的 token 定期轮换
  • 重要操作前先备份主题目录——因为主题文件删除是不可恢复的。