ironbeard mcp文件系统
用Rust编写的安全文件系统MCP服务器。提供13个具有严格路径沙盒和分层权限门控的文件操作工具。
特性
- 7个只读工具 --始终可用
- 3个书写工具 --后面有门
--allow-write - 3个破坏性工具 --后面有门
--allow-destructive - 路径沙盒 --仅在明确允许的目录中操作
- Symlink防逃逸 --解析允许的dirs之外的符号链接被阻止
- 二进制文件检测 --前8KB中的空字节扫描
- 大文件处理 --可配置的大小限制,支持偏移/限制
- 大目录安全 --结果截断为1000个条目
安装
git clone
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] ...工具
只读工具(始终可用)
| 工具 | 说明 | 参数 |
|---|---|---|
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许可证
麻省理工学院
