1. 服务概述
一句话简介:提供安全文件系统操作的MCP服务器,支持文件读写、目录管理、搜索等功能,通过动态访问控制实现安全操作
- 服务名称:Filesystem Operations MCP
- 版本号:最新版本
- 开发者/提供方:modelcontextprotocol
- 协议类型:MCP (Model Context Protocol)
2. 核心功能
该MCP服务提供以下主要功能点:
文件操作
- 读取文件:支持文本文件完整或部分读取、媒体文件Base64编码读取、多文件并发读取
- 写入与编辑:创建新文件、覆盖现有文件、选择性行编辑并支持差异预览
- 移动文件:在允许路径内重命名或移动文件和目录
- 元数据获取:检索详细信息包括大小、时间戳、类型和权限
目录操作
- 创建目录:创建新目录包括嵌套路径
- 列出目录:列出目录内容,区分文件和子目录,支持排序选项
- 搜索文件:递归查找匹配模式的文件和目录,支持排除选项
- 目录树视图:获取目录层级的递归JSON结构
访问控制
- 静态控制:通过命令行限制操作目录
- 动态控制:使用MCP Roots更新允许目录,覆盖服务器端配置
- 访问列表:查看当前允许的目录
3. 使用场景
该服务适合在以下情况下使用:
- AI助手需要安全访问和操作本地文件系统
- 需要读取、写入或编辑代码文件的开发辅助场景
- 需要搜索和管理项目文件结构的自动化任务
- 需要获取文件元数据进行分析的智能应用
- 需要严格控制文件访问权限的安全场景
4. 接入方式
4.1 服务端点
该服务通过Node.js运行,提供本地文件系统访问能力。支持通过Docker容器化部署或直接使用NPX运行。
4.2 认证与权限
服务通过目录访问控制系统实现权限管理:
- 通过命令行参数指定允许访问的目录
- 支持MCP Roots协议动态更新访问目录
- 所有文件系统操作限制在允许目录范围内
- 支持只读模式挂载目录
4.3 数据格式
服务支持以下数据格式:
- 文本文件:UTF-8编码读取
- 媒体文件:Base64编码,包含MIME类型
- 目录树:JSON格式输出
- 文件元数据:结构化JSON对象
4.4 服务器配置
在MCP客户端配置中添加服务:
Docker方式:
{ "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/allowed/dir,dst=/projects/other/allowed/dir,ro", "mcp/filesystem", "/projects" ] } } }NPX方式:
{ "mcpServers": { "filesystem": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "/Users/username/Desktop", "/path/to/other/allowed/dir" ] } } }5. 接口定义
服务提供以下主要工具接口:
| 工具名称 | 功能描述 | 主要参数 |
|---|---|---|
| read_text_file | 读取文本文件内容 | path, head(可选), tail(可选) |
| read_media_file | 读取媒体文件 | path |
| read_multiple_files | 并发读取多个文件 | paths (string[]) |
| write_file | 创建或覆盖文件 | path, content |
| edit_file | 选择性编辑文件 | path, edits, dryRun(可选) |
| create_directory | 创建目录 | path |
| list_directory | 列出目录内容 | path |
| list_directory_with_sizes | 列出目录内容及大小 | path, sortBy(可选) |
| move_file | 移动或重命名文件 | source, destination |
| search_files | 搜索文件 | path, pattern, excludePatterns(可选) |
| directory_tree | 获取目录树结构 | path, excludePatterns(可选) |
| get_file_info | 获取文件元数据 | path |
| list_allowed_directories | 列出允许访问的目录 | 无 |
6. 快速开始
6.1 环境要求
- Node.js 运行环境
- Docker(可选,用于容器化部署)
- MCP客户端(如Claude Desktop、VS Code等)
6.2 示例代码
使用NPX快速启动:
npx -y @modelcontextprotocol/server-filesystem /path/to/allowed/directory使用Docker构建:
docker build -t mcp/filesystem -f src/filesystem/Dockerfile .7. 注意事项
- 安全警告:write_file操作会覆盖现有文件,请谨慎使用
- 目录限制:服务必须在至少一个允许目录下操作,否则会抛出错误
- Roots协议:推荐使用MCP Roots协议实现动态目录更新,无需重启服务
- 编辑预览:使用edit_file时建议先用dryRun模式预览变更
- 只读模式:可通过Docker的ro标志挂载只读目录
- 许可证:该服务采用MIT许可证