Filesystem MCP Server

Filesystem MCP Server

site icon
2025.04.23 0
Rust文件系统操作安全文件访问文件管理
Filesystem MCP Server 是一个基于 Model Context Protocol (MCP) 的安全文件系统操作服务。它提供了一个标准化的接口,允许客户端通过 MCP 协议安全地执行常见的文件操作,如列出目录、读取文件、搜索文件内容等。所有操作都被限制在可配置的允许目录内,以确保安全性。
View on GitHub

Overview

基本能力

产品定位

Filesystem MCP Server 是一个安全、可控的文件系统操作服务,通过 MCP 协议提供标准化的文件操作接口。

核心功能

  • 文件列表:列出文件和目录及其元数据。
  • 文件读写:支持多种编码方式读取文件内容,并可创建或更新文件。
  • 目录操作:创建、删除、复制、移动目录。
  • 文件搜索:支持类似 grep 的功能,搜索文件内容。
  • 文件编辑:支持部分编辑文件内容,无需重写整个文件。
  • 安全限制:所有操作被限制在可配置的允许目录内,防止目录遍历攻击。

适用场景

  • 需要安全访问本地文件系统的应用程序。
  • 需要批量处理文件操作的自动化工具。
  • 需要搜索或编辑文件内容的开发工具。

工具列表

  1. list:列出文件和目录。
  2. read:读取文件内容。
  3. write:创建或更新文件。
  4. mkdir:创建目录。
  5. delete:删除文件或目录。
  6. copy:复制文件或目录。
  7. move:移动或重命名文件或目录。
  8. info:获取文件/目录的详细信息。
  9. search:搜索文件内容。
  10. list_allowed_dirs:列出所有允许的目录。
  11. edit:部分编辑文件内容。

常见问题解答

  • 路径要求:所有路径必须为绝对路径,且位于允许目录内。
  • 安全性:所有操作被限制在允许目录内,防止越权访问。

使用教程

使用依赖

  • Rust 工具链(1.70.0 或更高版本)
  • Cargo 包管理器

安装 Rust 工具链:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装教程

构建服务器:

cargo build --release

运行服务器

# 以当前目录为允许目录运行
./target/release/fs-mcp-server

# 指定允许目录(逗号分隔)
./target/release/fs-mcp-server --allowed-dirs /path/to/dir1,/path/to/dir2

# 使用配置文件指定允许目录
./target/release/fs-mcp-server --config-file /path/to/config.txt

# 设置最大文件大小
./target/release/fs-mcp-server --max-file-size 5242880  # 5MB

调试方式

使用环境变量配置日志级别:

FS_LOG_LEVEL=debug ./target/release/fs-mcp-server

检查允许目录:

curl -X POST -H "Content-Type: application/json" -d '{}' http://localhost:8080/list_allowed_dirs

许可证

该项目遵循 MIT 开源许可条款。