ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Filesystem Operations MCP 服务说明文档

Filesystem Operations MCP 服务说明文档

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许可证
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进