mcp-servers之Filesystem服务器:让AI安全读写本地文件的完整教程
【免费下载链接】mcp-serversModel Context Protocol Servers项目地址: https://gitcode.com/gh_mirrors/mc/mcp-servers
mcp-servers 项目中的 Filesystem 服务器(Filesystem MCP Server)是一款专为 AI 设计的官方参考实现,它通过 Model Context Protocol(MCP)协议,让 Claude 等 AI 助手在严格的安全边界内读写本地文件。本文将从零开始,带你完成 MCP Filesystem 服务器的安装、配置与实战,彻底告别"AI 看不到你文件"的尴尬,同时守住安全底线。
Filesystem MCP Server 是什么?
Model Context Protocol(MCP)相当于 AI 的"通用插头"协议,让大模型能安全调用外部工具和数据源。而 Filesystem 服务器就是这个生态里最基础、使用频率最高的服务器之一:它把本地文件系统封装成一组标准的 MCP 工具,AI 只需要"说一句话",就能读文件、写文件、建目录、搜文件,完全不需要自己拼 Shell 命令。
它由官方维护、使用 TypeScript 编写,包名为@modelcontextprotocol/server-filesystem(见 package.json),完整源码位于 src/filesystem/ 目录,核心实现集中在 index.ts,详细的 API 文档可以参考 README.md。
核心功能一览:AI 能对本地文件做什么?
Filesystem 服务器一共提供 11 个开箱即用的工具,覆盖了日常文件操作的绝大多数场景:
| 工具名称 | 功能说明 | 关键参数 |
|---|---|---|
read_file | 读取单个文件完整内容 | path |
read_multiple_files | 一次性批量读取多个文件,单个失败不影响整体 | paths |
write_file | 新建文件或覆盖写入 | path、content |
edit_file | 精确编辑文件,支持模糊匹配、缩进保留和 dryRun 预览 | path、edits、dryRun |
list_directory | 列出目录内容,区分 [FILE] 与 [DIR] | path |
directory_tree | 递归输出目录树(JSON 结构) | path |
create_directory | 创建目录,支持多级嵌套,已存在则静默成功 | path |
move_file | 移动或重命名文件/目录,目标存在时报错 | source、destination |
search_files | 递归搜索文件,大小写不敏感,支持排除规则 | path、pattern、excludePatterns |
get_file_info | 获取大小、时间、权限等元信息 | path |
list_allowed_directories | 查看当前允许访问的目录白名单 | 无 |
这 11 个工具在 index.ts 中注册,所有输入参数都经过 zod 严格校验,出错时返回清晰的错误信息。
安全机制:为什么敢把本地文件交给 AI?
很多同学最担心的就是"AI 会不会乱删我的文件",这正是 Filesystem 服务器设计的核心考量。
① 白名单目录隔离。服务器在启动时通过命令行参数指定允许访问的目录,除此之外一律拒绝。在 index.ts 的validatePath方法中,任何请求路径都必须落在白名单目录内,否则直接抛出Access denied错误。
② 符号链接防护。即使路径在目录内,服务器还会用fs.realpath解析真实路径,如果符号链接指向白名单之外,同样会被拦截,防止"曲线越权"。
③ 编辑前先预览。edit_file支持dryRun模式,AI 可以先生成 git 风格 diff 给你过目,确认无误后再真正落盘。推荐始终先 dryRun 再应用(见 index.ts 的实现逻辑)。
④ 操作全程可查。调用list_allowed_directories即可随时确认 AI 的可达范围,做到心中有数。
快速上手:2 种安装方式(NPX 与 Docker)
安装 Filesystem 服务器有两种主流方式,任选其一即可。
方式一:NPX 一键安装(推荐新手)
无需下载代码,直接通过 npx 运行。以允许 AI 访问桌面目录为例:
{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop" ] } } }启动时把想开放的目录作为参数传给服务器,可以同时传多个。
方式二:Docker 容器运行
Docker 方式要求把目录挂载到/projects下,还可以用ro标记只读目录,把沙箱做得很彻底:
{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop", "--mount", "type=bind,src=/path/to/other/dir,dst=/projects/other/dir,ro", "mcp/filesystem", "/projects" ] } } }这两种配置的官方示例都可以在 README.md 中找到。如果你希望从源码构建 Docker 镜像,可以先git clone https://gitcode.com/gh_mirrors/mc/mcp-servers获取仓库,再执行:
docker build -t mcp/filesystem -f src/filesystem/Dockerfile .多阶段构建的细节见 Dockerfile。
与 Claude Desktop 集成:3 步完成配置
以 NPX 方式为例,配置非常简单:
- 打开 Claude Desktop 的配置文件
claude_desktop_config.json; - 将上面的
mcpServers配置粘贴进去,替换路径为你真实的目录; - 重启 Claude Desktop,对话时 AI 就能自动调用
read_file、write_file等工具了。
配置完成后,你可以先让 AI 执行"查看我允许访问的目录",如果返回了你设置的路径,说明连接成功 🎉
实战场景:让 AI 真正帮你干活的 4 个例子
场景一:让 AI 总结某个文件
直接对 AI 说:"请读取~/Desktop/notes.txt并帮我总结要点。" AI 会调用read_file拿到全文并给出总结。
场景二:让 AI 批量对比多个文件
多个配置文件需要对比时,AI 会调用read_multiple_files一次读取多个文件,效率远高于逐个读取。
场景三:让 AI 精确修改代码
对 AI 说:"把config.js中的端口从 3000 改成 8080。" 它会调用edit_file,先输出 diff 预览(dryRun),确认后再应用。得益于模糊匹配与缩进保留能力,即使你的文件格式有点乱也能正确命中。
场景四:让 AI 找到"失踪"的文件
对 AI 说:"在我的 Desktop 目录里找一个名字带 report 的文件。" 它会用search_files递归搜索,并支持通过excludePatterns排除node_modules等无关目录。
最佳实践与安全小贴士
- 只开放最小目录:给 AI 的权限越少越好,优先挂载只读目录(Docker 加
ro)。 - 敏感文件放白名单之外:密码、密钥、配置文件等敏感内容不要放在允许访问的目录中。
- 先 dryRun 再写:涉及
edit_file时,养成先预览 diff 的习惯。 - 善用
list_allowed_directories:排查"AI 说访问被拒"问题时,第一件事就是确认目录白名单。 - 不要轻易用
write_file覆盖:它会无提示覆盖现有文件,适合新建文件;修改已有文件请优先用edit_file。
常见问题 FAQ
Q:AI 报错"Access denied - path outside allowed directories"怎么办?A:说明你请求的路径不在白名单内。检查启动参数中传入的目录,或调用list_allowed_directories查看当前可访问范围。
Q:~目录能直接用吗?A:可以。服务器内部会把~/自动展开为主目录(见 index.ts 的expandHome逻辑)。
Q:为什么move_file移动文件失败了?A:当目标位置已存在同名文件时,move_file会主动报错,这是为了防止误覆盖数据,请先删除或更换目标名。
Q:Filesystem 服务器收费吗?A:完全开源免费,采用 MIT 协议,你可以自由使用、修改和分发。
结语
Filesystem 服务器是 mcp-servers 项目中最容易上手、也最实用的服务器之一。它把"文件读写"这件 AI 最需要的小事做得既简单又安全:11 个工具覆盖全场景,白名单 + 符号链接防护 + diff 预览三道防线层层把关。现在就把你的项目目录挂载给 AI,让它帮你读文档、改配置、整理代码,省下大量重复劳动吧!
【免费下载链接】mcp-serversModel Context Protocol Servers项目地址: https://gitcode.com/gh_mirrors/mc/mcp-servers
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考