article
README
🚀 文件系统 MCP 服务器
文件系统 MCP 服务器是一个安全的模型上下文协议(MCP)服务器,它能够提供受控访问指定目录的文件系统操作,保障文件操作的安全性与可控性。
🚀 快速开始
本服务器可通过环境变量控制目录访问,且所有文件操作都受限于允许的目录内。以下是快速使用的步骤:
- 安装项目
- 配置允许访问的目录
- 构建项目
- 集成到 Claude Desktop(可选)
✨ 主要特性
- 环境变量控制访问:通过环境变量控制目录访问,灵活且安全。
- 操作范围受限:所有文件操作都被限制在允许的目录内,防止越权操作。
- 线程安全缓存:线程安全的缓存允许目录功能,提升性能。
- 空格路径处理:能够正确处理包含空格的路径,避免路径解析错误。
📦 安装指南
使用以下命令安装项目:
go get github.com/gomcpgo/filesys
📚 详细文档
配置
使用环境变量设置允许目录:
export MCP_ALLOWED_DIRS="/path1,/path2,/path with spaces/dir3"
工具集
文件读取
read_file:读取单个文件内容read_multiple_files:同时读取多个文件
文件写入
write_file:创建或覆盖文件
目录操作
create_directory:创建新目录list_directory:列出目录内容list_allowed_directories:显示可访问的目录
文件管理
move_file:移动或重命名文件和目录get_file_info:获取文件元数据search_files:递归搜索带有模式匹配的文件
与 Claude Desktop 集成
将以下内容添加到 claude_desktop_config.json:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/filesys",
"env": {
"MCP_ALLOWED_DIRS": "/path1,/path2,/path with spaces/dir3"
}
}
}
}
💻 使用示例
基础用法
读取文件
{
"name": "read_file",
"arguments": {
"path": "/allowed/path/file.txt"
}
}
列出目录内容
{
"name": "list_directory",
"arguments": {
"path": "/allowed/path"
}
}
🔧 技术细节
安全性
- 操作受限:所有操作受限于允许的目录,防止越权访问。
- 攻击防范:防止路径遍历攻击,保障系统安全。
- 权限验证:操作前进行权限验证,确保操作合法。
- 错误处理:正确处理错误和日志记录,方便问题排查。
构建
go build -o bin/filesys cmd/main.go
📄 许可证
本项目采用 MIT License 许可协议。
项目贡献
欢迎提交拉取请求。请确保:
- 测试通过
- 新功能包含文档
- 代码遵循项目风格
Scan to join WeChat group