龙虾AI · OpenClaw 中文教程与资料 OpenClaw 第三方中文资料站 · 非官方

实战 · MCP

实战:给龙虾接文件系统 MCP Server

龙虾装好就带读、写、编辑文件的内置工具(清单见 OpenClaw 官方工具页),不接 MCP 也能动本地文件。文件系统 MCP Server 是另一种接法:可访问的目录写在启动参数里,这个 Server 的读写都限制在这些目录内。登记用一条 openclaw mcp add filesystem 命令,重启 Gateway 后用 openclaw mcp probe filesystem 检查连没连上。MCP 本身的概念见MCP 是什么。

文件系统封面

文件系统 MCP Server 能做哪些文件操作

文件系统 MCP Server 提供一组文件工具:列目录、读文件、写文件、移动/重命名、新建文件夹。接上它之后,“把这堆图按日期归类”“读完这 10 个 txt 总结一下”这类活可以交给它在授权目录里做。

准备一个专用目录

不要把整个家目录交给它。建一个专门给龙虾用的工作区,所有授权只放到这一个目录里。

# macOS / Linux
mkdir -p ~/lobster-workspace

# Windows(PowerShell)
mkdir $HOME\lobster-workspace

用 openclaw mcp add 登记这个 Server

OpenClaw 把 MCP Server 存在配置的 mcp.servers 下面,用 openclaw mcp add 命令写进去就行。下面用官方参考实现 @modelcontextprotocol/server-filesystem 举例,参数写法照 OpenClaw 官方 MCP 文档里的文件系统示例,命令以你装的版本为准:

openclaw mcp add filesystem \
  --command npx \
  --arg -y \
  --arg @modelcontextprotocol/server-filesystem \
  --arg "$HOME/lobster-workspace"

上面是 macOS / Linux 的写法,$HOME 由终端展开成绝对路径;Windows(PowerShell)上把整条命令写成一行,去掉行尾的 \,最后一个参数换成工作区的完整路径。习惯直接改配置的,OpenClaw 的配置文件默认是 ~/.openclaw/openclaw.json,等价内容是这样:

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "/Users/你的用户名/lobster-workspace"
        ]
      }
    }
  }
}

外层键是 mcp.servers,不是 mcpServers。后者是 filesystem 官方 README 给 Claude Desktop 的示例写法,原样抄进 OpenClaw 的配置对不上。

args 最后那个路径,是这个 Server 的目录边界。按 filesystem 的官方 README,它的文件操作都限制在允许的目录内。这条边界管不到龙虾自带的文件工具和 exec,那部分看工具权限和沙箱,见沙箱、白名单和网关认证怎么配。要授权多个目录,就在后面再追加路径(用命令就是再加一个 --arg)。

手写配置时路径一律写绝对路径,别写 ~ 或相对路径,JSON 里的字符串不会替你展开。Windows 下注意反斜杠要转义,或直接用正斜杠。

重启 Gateway 并验证

改完重启一次 Gateway,让它重新加载 Server,然后在终端里连一次看看:

openclaw gateway restart
openclaw mcp probe filesystem

按官方文档,probe 会实际连上已保存的 Server 并列出它提供的工具。连得上,再到对话里发一句:

用 filesystem 这个 Server 看一下,你现在被允许访问哪些目录

filesystem 的工具里有一个 list_allowed_directories,返回的就是这个 Server 能读写的目录。它报出的是 lobster-workspace,就说明接通了,授权范围也对。连不上或路径报错,跑 openclaw mcp doctor filesystem --probe 看它报什么,再查路径是否真实存在;手写配置的顺带检查 JSON 格式有没有漏逗号或多逗号。

接通之后可以拿一批混在一起的文件(pdf、jpg、zip、md)的副本丢进 lobster-workspace 试一句简单指令,比如「按扩展名分到 docs / images / archives 三个子目录,目录不存在就建」。第一次让它把打算怎么分列出来,你看过再让它动手。

MCP 弃用 Roots 之后,目录还写在启动参数里吗

还写在启动参数里。filesystem 的 README 列了两种授权方式:一种是上面登记命令那样把目录写进启动参数;另一种叫 Roots,由客户端把可访问的目录告诉 Server,客户端给了 Roots 就会顶替启动参数里的目录。README 目前仍把 Roots 标成推荐做法。

MCP 规范这边已经换了说法。2026-07-28 版的弃用功能登记表把 Roots 列为弃用,替代做法是通过工具参数、资源 URI 或服务器配置来传目录和文件;Roots 在弃用期内照常可用,最早要到 2027-07-28 当天或之后发布的第一个修订版才有可能被移除。两边说法不一致时,建议按规范走:目录写在启动参数里,不靠 Roots。

截至 2026 年 10 月,OpenClaw 官方的 mcp 命令文档里没有提它的客户端会不会向 Server 下发 Roots。实际生效的是哪几个目录,以验证时 list_allowed_directories 报出来的为准。

权限安全,这几条别省

  • 最小授权:只放专用工作区,绝不把家目录、系统盘、云盘同步目录直接给它。
  • 关键操作留人工确认:让它批量删除/覆盖前,养成先让它列出计划、你点头再执行的习惯。智能体的判断有概率出错。
  • 重要数据先备份:第一次让它动真实文件前,先拿副本练手。
  • 别把敏感文件丢进工作区:密码、密钥、私密文档不要放在授权目录里。

别的 MCP Server 也是这样接:登记、重启、验证。

常见问题

授权目录之外的文件,这个 Server 读得到吗?
读不到。按 filesystem 的官方 README,它的文件操作都限制在允许的目录内,这里就是启动参数里写的那个;实际生效的是哪几个目录,以 list_allowed_directories 报出来的为准。这条边界只管这个 Server 自己的工具,龙虾自带的文件工具和 exec 不归它管,那部分要另外收紧工具权限和沙箱。
配完龙虾调不到工具怎么办?
先跑 openclaw mcp doctor filesystem --probe 看它报什么,再查授权目录是否存在、是否写成绝对路径;手写配置的顺带检查 JSON 格式,改完用 openclaw gateway restart 重启一次。
能授权多个目录吗?
能,在 args 后面继续追加绝对路径即可(用命令添加时就是再多写一个 --arg),但建议越少越好,只放真正需要它碰的目录。
目录写在启动参数里,会因为 Roots 弃用而失效吗?
不会。启动参数里写目录,和 Roots 是两种授权方式,被弃用的是后者。MCP 2026-07-28 规范把 Roots 列为弃用,给的替代做法之一就是通过服务器配置传目录。Roots 在弃用期内仍然可用,最早要到 2027-07-28 当天或之后发布的第一个修订版才有可能被移除。