核心功能
该服务器是官方 servers 仓库中仍在活跃维护的七个参考实现之一,由 Node 编写。它把本地磁盘操作封装成读文本、读媒体、批量读、写入、行级编辑、建目录、列目录、移动、搜索、目录树、文件信息等工具,全部读写都被限制在启动参数或 Roots 协议声明的允许目录内,越界请求直接拒绝。
功能亮点
动态授权
客户端可在会话中通过 roots 通知整体替换允许目录,无需重启服务。
文本与媒体分离
读取文本、读取媒体两类工具分开,二进制文件不会污染文本上下文。
批量与检索
一次可读取多个文件,也能按模式递归搜索并输出整棵目录树结构。
容器化运行
提供官方镜像,通过 bind 挂载把主机目录映射进容器,并可标记为只读。
适用场景
• 让 AI 助手读写本地项目文件
• 为编码助手划定可访问目录范围
• 递归搜索仓库文件并生成目录树
• 容器内只读挂载资料目录供检索
安装配置
bash
# 直接运行,命令行里的目录即为允许访问的白名单
npx -y @modelcontextprotocol/server-filesystem /Users/username/Desktop /path/to/other/allowed/dir
# claude_desktop_config.json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/username/Desktop",
"/path/to/other/allowed/dir"
]
}
}
}
# Windows 需用 cmd 包装:"command": "cmd", "args": ["/c", "npx", "-y", "@modelcontextprotocol/server-filesystem", "C:/work"]
# Docker 方式(挂载到容器内 /projects,加 ro 表示只读)
docker run -i --rm --mount type=bind,src=/Users/username/Desktop,dst=/projects/Desktop --mount type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro mcp/filesystem /projects使用方法
bash
暴露的工具:read_text_file、read_media_file、read_multiple_files、write_file、edit_file、create_directory、list_directory、list_directory_with_sizes、directory_tree、move_file、search_files、get_file_info、list_allowed_directories 典型调用顺序: 1) list_allowed_directories 确认当前可访问范围(服务端至少需要一个允许目录,否则初始化报错) 2) search_files 在允许目录内按模式查找候选文件 3) read_text_file 读取内容,或 read_multiple_files 一次读多个 4) edit_file 做行级替换,write_file 覆盖写入,move_file 重命名或移动 若客户端支持 roots,服务端会在 initialize 时调用 roots/list,用客户端声明的根目录完全替换命令行指定的目录。
关键指标
尚未核验对标产品,此处只列本工具自身指标,不做对比结论。
指标mcp-server-filesystem
价格免费
开源是
上手难度入门
相关工具
优点
- 属于 MCP steering group 仍在维护的七个参考服务器之一
- 路径白名单在服务端强制执行,越界访问会被拒绝
- 支持 Roots 协议,客户端可在会话中动态调整可访问目录
- 同时提供 npx 与 Docker 镜像两种运行方式
缺点
- 必须手动指定允许目录,既无参数又不支持 roots 的客户端会初始化失败
- 只有目录级白名单,无法按文件类型或按工具做细粒度读写权限控制
- 依赖本地 Node 运行时,npx 首次启动需要联网下载包
- Windows 下需额外用 cmd /c 包装命令,配置写法与 macOS 不同
- 官方定位是参考实现,用于演示协议特性而非生产就绪方案