
Filesystem MCP Server

2025.04.23
0
Rust文件系统操作安全文件访问文件管理
Filesystem MCP Server 是一个基于 Model Context Protocol (MCP) 的安全文件系统操作服务。它提供了一个标准化的接口,允许客户端通过 MCP 协议安全地执行常见的文件操作,如列出目录、读取文件、搜索文件内容等。所有操作都被限制在可配置的允许目录内,以确保安全性。
View on GitHub
Overview
基本能力
产品定位
Filesystem MCP Server 是一个安全、可控的文件系统操作服务,通过 MCP 协议提供标准化的文件操作接口。
核心功能
- 文件列表:列出文件和目录及其元数据。
- 文件读写:支持多种编码方式读取文件内容,并可创建或更新文件。
- 目录操作:创建、删除、复制、移动目录。
- 文件搜索:支持类似 grep 的功能,搜索文件内容。
- 文件编辑:支持部分编辑文件内容,无需重写整个文件。
- 安全限制:所有操作被限制在可配置的允许目录内,防止目录遍历攻击。
适用场景
- 需要安全访问本地文件系统的应用程序。
- 需要批量处理文件操作的自动化工具。
- 需要搜索或编辑文件内容的开发工具。
工具列表
- list:列出文件和目录。
- read:读取文件内容。
- write:创建或更新文件。
- mkdir:创建目录。
- delete:删除文件或目录。
- copy:复制文件或目录。
- move:移动或重命名文件或目录。
- info:获取文件/目录的详细信息。
- search:搜索文件内容。
- list_allowed_dirs:列出所有允许的目录。
- 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