知识记忆#文件管理

Filesystem MCP:在指定目录里读写和搜索本地文件

MCP 官方参考服务器之一。智能体只能在你允许的目录里读写、移动、搜索文件,每个工具都标了只读或破坏性提示,适合给桌面客户端开文件权限。

项目与安装文档

查看项目

https://github.com/modelcontextprotocol/servers

Claude Desktop 这类聊天客户端默认碰不到你的硬盘,想让它整理一个文件夹、改几份配置,就得先给它一条受控的通道。Filesystem MCP 是 MCP 官方 servers 仓库里的参考实现:你列出允许访问的目录,智能体只能在这些目录里读、写、移动和搜索文件,越界请求直接拒绝。

能做什么

  • 读文件:read_text_file 支持只读开头或结尾 N 行,read_media_file 把图片、音频按 MIME 类型返回,read_multiple_files 一次读多份。
  • 按差异改文件:edit_file 按文本片段替换,返回 git 风格的 diff,dryRun 可以先预览再落盘。
  • 目录操作:建目录、列目录(可带文件大小排序)、directory_tree 输出 JSON 树、search_files 按 glob 递归搜索、move_file 移动或重命名。
  • 动态授权:客户端支持 MCP Roots 时,允许目录可以在运行中更新,不用重启服务器;list_allowed_directories 随时能查当前范围。

适合谁

  • 用 Claude Desktop 整理下载目录、批量重命名文件、汇总一堆笔记的普通用户。
  • 在没有内置文件工具的客户端里,想给模型开一个边界清楚的工作目录的开发者。

接入方式

需要 Node.js。把允许访问的目录作为参数写在最后:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}

也可以用 mcp/filesystem Docker 镜像,把目录挂载到 /projects,加 ro 标记即为只读。

编辑点评

文件类 MCP 不少,这个是基准:官方维护,访问控制写得清楚,每个工具都带 readOnlyHint、destructiveHint 等注解,支持的客户端可以据此把写操作单独拿出来确认。它在 MCP servers 单仓里,截至 2026-10-06 这个单仓约 9.1 万 star。注意两点。第一,write_file 会直接覆盖已有文件,move_file 会删掉源文件,给整个用户目录授权等于把这些能力全部交出去,建议只授权具体的项目文件夹。第二,Claude Code、Cursor 这类编程工具已经自带文件读写,再装它意义不大,它真正的用武之地是没有文件能力的聊天客户端。许可证方面,该仓库正从 MIT 过渡到 Apache-2.0。