关于 Filesystem MCP Server
Filesystem MCP Server 是面向需要受控文件访问的客户端的单二进制服务。它提供 18 种工具,涵盖搜索、批量编辑和文件操作,并支持沙箱限制与修改预览。
主要功能
- 01提供 18 种文件操作工具
- 02跨文件正则搜索
- 03批量替换与按行插入
- 04编辑前预览修改
- 05目录沙箱与路径校验
适用场景
- 01搜索代码库中的匹配文本
- 02应用替换前预览变更
- 03一次操作编辑多个文件
MCP 相关
向 MCP 客户端提供文件系统操作工具。访问范围限制在已配置的允许目录内。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
文件系统 MCP 服务
用于文件系统操作的安全、单二进制 MCP 服务。无需运行时依赖——下载后配置允许访问的目录,即可连接到任意 MCP 客户端。
已在真实编码工作流中与 Claude Desktop 和 Claude Code 进行了广泛测试,涵盖文件编辑、代码库搜索、重构和多文件批量操作。
为什么选择此服务?
- 单个二进制文件 — 无需 Node.js、Python 或其他运行时。下载后即可运行
- 经过真实 AI 工作流测试 — 已通过 Claude Desktop 和 Claude Code 在日常编码任务中实战验证
- 18 个工具 — 不止于基础读写,还支持正则表达式搜索、基于模式的替换、自动缩进的代码插入和批量操作
- 试运行预览 — 替换和插入工具可在应用更改前预览结果
- 默认安全 — 沙箱限制在已配置的目录内,并提供符号链接攻击防护和路径遍历防护
- 详细错误消息 — 访问被拒绝时,错误会说明原因并提供修复建议
安装
下载发行版二进制文件
从 Releases 页面下载适用于你平台的最新二进制文件:
| 平台 | 二进制文件 |
|---|---|
| macOS(Apple Silicon) | filesystem-mcp-darwin-arm64 |
| macOS(Intel) | filesystem-mcp-darwin-amd64 |
| Linux(x86_64) | filesystem-mcp-linux-amd64 |
| Linux(ARM64) | filesystem-mcp-linux-arm64 |
| Windows | filesystem-mcp-windows-amd64.exe |
赋予其可执行权限(macOS/Linux):
chmod +x filesystem-mcp-darwin-arm64
从源代码构建
go build -ldflags="-s -w" -o bin/filesystem-mcp ./cmd
配置
使用环境变量设置允许访问的目录:
export MCP_ALLOWED_DIRS="/path1,/path2,/path with spaces/dir3"
工具
读取
read_file— 读取单个文件,可选使用start_line/end_line进行部分读取read_multiple_files— 一次调用同时读取多个文件search_in_files— 在文件中递归执行正则表达式搜索。返回文件路径、行号和匹配文本。自动跳过二进制文件。参数:path、pattern、file_extensions、max_results、case_sensitive
写入
write_file— 创建或覆盖文件。自动创建父目录append_to_file— 在文件末尾添加内容。文件不存在时会创建文件prepend_to_file— 在文件开头添加内容。文件不存在时会创建文件
文本替换
所有替换工具都支持使用 dry_run 预览更改,而不实际应用。
replace_in_file— 替换文件中的精确字符串。参数:path、search、replace、occurrence(0=全部)、dry_runreplace_in_file_regex— 替换与正则表达式模式匹配的内容,支持捕获组($1、$2)。参数:path、pattern、replace、occurrence、case_sensitive、dry_runreplace_in_files— 批量替换多个文件中的字符串。应用前会验证所有路径。参数:paths、search、replace、dry_run
基于正则表达式插入
所有插入工具都支持 dry_run 和 autoIndent(匹配周围的缩进)。
insert_after_regex— 在正则表达式匹配项之后插入内容。参数:path、pattern、content、occurrence(0=全部,默认值为 1)、autoIndent、dry_runinsert_before_regex— 在正则表达式匹配项之前插入内容。参数与上方相同
行复制
copy_lines— 直接在磁盘上将源文件中的行范围复制到目标文件(无上下文开销)。参数:source_path、destination_path、start_line、end_line、append
目录操作
list_directory— 列出目录内容,支持按模式、文件类型、递归深度、隐藏文件和元数据进行筛选。参数:path、pattern、file_type、recursive、max_depth、max_results、include_hidden、include_metadatacreate_directory— 创建目录及其父目录(幂等)list_allowed_directories— 显示可访问的目录
文件管理
move_file— 移动或重命名文件和目录get_file_info— 获取文件元数据(大小、权限、修改时间)
与 Claude Desktop 搭配使用
添加到 claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/filesystem-mcp-darwin-arm64",
"env": {
"MCP_ALLOWED_DIRS": "/path1,/path2,/path with spaces/dir3"
}
}
}
}
安全性
此服务采用纵深防御安全机制,防止未经授权的文件访问。
路径验证
- 符号链接解析:在验证前,通过
filepath.EvalSymlinks()将所有路径解析为规范形式 - 路径遍历防护:阻止
../越界尝试 - 前缀匹配防护:使用路径分隔符进行验证,防止
/allowed匹配/allowed_attacker
符号链接处理
- 允许指向目标也位于允许目录内的允许目录中的符号链接
- 阻止指向允许目录外部的符号链接
- 拒绝断开的符号链接
- 允许目录本身可以是符号链接(在初始化期间解析)
写入操作安全性
- 创建新文件时会验证父目录链
- 路径解析和验证以原子方式执行
安全日志记录
- 所有被阻止的访问尝试都会以
SECURITY:前缀记录 - 日志同时包含请求的路径及其规范解析路径
最佳实践
- 将
MCP_ALLOWED_DIRS配置为仅包含必要目录 - 为允许目录使用绝对路径
- 监控日志中的
SECURITY:消息
许可证
MIT 许可证
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。