文件系统服务

一个安全的文件系统MCP服务器,提供13种文件操作工具,具有严格的路径沙盒和分层权限控制。

  • by Alatar86
  • Rust
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 Alatar86/Ironbeard-MCP-Filesystem

使用说明

ironbeard mcp文件系统

用Rust编写的安全文件系统MCP服务器。提供13个具有严格路径沙盒和分层权限门控的文件操作工具。

特性

  • 7个只读工具 --始终可用
  • 3个书写工具 --后面有门 --allow-write
  • 3个破坏性工具 --后面有门 --allow-destructive
  • 路径沙盒 --仅在明确允许的目录中操作
  • Symlink防逃逸 --解析允许的dirs之外的符号链接被阻止
  • 二进制文件检测 --前8KB中的空字节扫描
  • 大文件处理 --可配置的大小限制,支持偏移/限制
  • 大目录安全 --结果截断为1000个条目

安装

git clone <repo-url>
cd ironbeard-mcp-filesystem
cargo build --release

二进制文件将位于 target/release/ironbeard-mcp-filesystem (或 .exe 在Windows上)。

用法

克劳德桌面版

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/ironbeard-mcp-filesystem",
      "args": ["/path/to/allowed/dir1", "/path/to/allowed/dir2"]
    }
  }
}

具有写访问权限

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/ironbeard-mcp-filesystem",
      "args": ["--allow-write", "/path/to/project"]
    }
  }
}

具有破坏性访问

{
  "mcpServers": {
    "filesystem": {
      "command": "/path/to/ironbeard-mcp-filesystem",
      "args": ["--allow-destructive", "/path/to/project"]
    }
  }
}

--allow-destructive 暗示 --allow-write,所以你不需要两者都通过。

CLI参数

ironbeard-mcp-filesystem [OPTIONS] <DIRECTORIES>...

工具

只读工具(始终可用)

工具 说明 参数
list_allowed_directories 列出配置的允许目录 (无)
list_directory 按类型和大小列出目录内容 path
read_file 读取具有可选行范围的文件内容 path, offset?, limit?
read_multiple_files 使用内联错误处理读取多个文件 paths[]
get_file_info 获取文件元数据(类型、大小、MIME、时间戳) path
directory_tree 显示带有方框图形字符的可视化目录树 path, max_depth?
search_files 搜索与glob模式匹配的文件 path, pattern, max_results?

写入工具(必需 --allow-write)

工具 说明 参数
edit_file 应用精确的文本替换,返回统一的差异 path, edits[]
write_file 创建或覆盖文件 path, content
create_directory 创建目录和父目录(如 mkdir -p) path

破坏性工具(需要 --allow-destructive)

工具 说明 参数
delete_file 删除单个文件(必须存在,必须是常规文件) path
move_file 移动或重命名文件或目录 source, destination
delete_directory 删除空目录(非递归) path

配置

标志 默认值 描述
--allow-write false 启用写入操作(编辑、写入、创建)
--allow-destructive false 启用破坏性操作(删除、移动)。暗示 --allow-write.
--max-read-size 10485760 (10 MB) 读取操作的最大文件大小(字节)
--max-depth 10 最大目录遍历深度

安全模型

所有文件操作都被沙盒化到明确允许的目录中:

  • 路径验证 --在进行任何I/O操作之前,每条路径都会被规范化并与allowlist进行检查
  • Symlink分辨率 --符号链接被解析为它们的真实目标;允许的dirs外的逃生通道被封锁
  • 横向预防 — ../ 路径组件通过规范化被中和
  • 写控制 --写入工具仅在以下情况下注册 --allow-write 通过;否则,它们不会出现在工具列表中
  • 破坏性浇口 --破坏性工具(删除、移动)仅在以下情况下注册 --allow-destructive 通过; --allow-destructive 自动启用 --allow-write
  • 二进制检测 — read_file 扫描前8KB的空字节并拒绝二进制文件
  • 大小限制 --除非偏移/限制缩小读取范围,否则大文件将被拒绝

发展

# Run tests
cargo test

# Format check
cargo fmt --check

# Lint
cargo clippy -- -D warnings

# Release build
cargo build --release

许可证

麻省理工学院