
Filesystem MCP Server

2025.04.09
1
Go文件系统服务安全文件访问文件管理
Filesystem MCP Server 是一个安全的模型上下文协议(MCP)服务器,提供文件系统操作功能,并严格控制对指定目录的访问。它通过环境变量配置允许访问的目录,确保所有文件操作仅限于这些目录内,同时提供线程安全的目录缓存和正确处理带空格路径的功能。
View on GitHub
Overview
基本能力
产品定位
Filesystem MCP Server 是一个专注于提供安全、可控的文件系统操作服务的 MCP 服务器。
核心功能
- 通过环境变量控制目录访问权限
- 仅在允许的目录内执行文件操作
- 线程安全的允许目录缓存
- 正确处理带空格的路径
- 提供丰富的文件操作工具集
适用场景
- 需要安全文件访问控制的应用程序
- 多用户环境下的文件管理系统
- 自动化文件处理流程
- 受限环境下的文件操作服务
工具列表
- 文件读取
read_file
: 读取单个文件内容-
read_multiple_files
: 同时读取多个文件 -
文件写入
-
write_file
: 创建或覆盖文件 -
目录操作
create_directory
: 创建新目录list_directory
: 列出目录内容-
list_allowed_directories
: 显示可访问目录 -
文件管理
move_file
: 移动或重命名文件和目录get_file_info
: 获取文件元数据search_files
: 使用模式匹配递归搜索文件
常见问题解答
-
如何设置允许访问的目录? 通过设置环境变量
MCP_ALLOWED_DIRS
,多个目录用逗号分隔。 -
如何处理带空格的路径? 系统已内置支持,直接在路径中包含空格即可。
-
如何确保安全性? 所有操作限制在允许目录内,防止路径遍历,并在操作前验证权限。
使用教程
使用依赖
需要安装 Go 语言环境。
安装教程
go get github.com/gomcpgo/filesys
配置
设置允许访问的目录:
export MCP_ALLOWED_DIRS="/path1,/path2,/path with spaces/dir3"
与 Claude Desktop 集成
在 claude_desktop_config.json
中添加配置:
{
"mcpServers": {
"filesystem": {
"command": "/path/to/filesys",
"env": {
"MCP_ALLOWED_DIRS": "/path1,/path2,/path with spaces/dir3"
}
}
}
}
调试方式
- 构建项目:
go build -o bin/filesys cmd/main.go
- 测试工具调用:
// 读取文件示例
{
"name": "read_file",
"arguments": {
"path": "/allowed/path/file.txt"
}
}
// 列出目录示例
{
"name": "list_directory",
"arguments": {
"path": "/allowed/path"
}
}