Filesystem MCP Server

Filesystem MCP Server

site icon
2025.04.09 1
Go文件系统服务安全文件访问文件管理
Filesystem MCP Server 是一个安全的模型上下文协议(MCP)服务器,提供文件系统操作功能,并严格控制对指定目录的访问。它通过环境变量配置允许访问的目录,确保所有文件操作仅限于这些目录内,同时提供线程安全的目录缓存和正确处理带空格路径的功能。
View on GitHub

Overview

基本能力

产品定位

Filesystem MCP Server 是一个专注于提供安全、可控的文件系统操作服务的 MCP 服务器。

核心功能

  • 通过环境变量控制目录访问权限
  • 仅在允许的目录内执行文件操作
  • 线程安全的允许目录缓存
  • 正确处理带空格的路径
  • 提供丰富的文件操作工具集

适用场景

  • 需要安全文件访问控制的应用程序
  • 多用户环境下的文件管理系统
  • 自动化文件处理流程
  • 受限环境下的文件操作服务

工具列表

  1. 文件读取
  2. read_file: 读取单个文件内容
  3. read_multiple_files: 同时读取多个文件

  4. 文件写入

  5. write_file: 创建或覆盖文件

  6. 目录操作

  7. create_directory: 创建新目录
  8. list_directory: 列出目录内容
  9. list_allowed_directories: 显示可访问目录

  10. 文件管理

  11. move_file: 移动或重命名文件和目录
  12. get_file_info: 获取文件元数据
  13. 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"
      }
    }
  }
}

调试方式

  1. 构建项目:
go build -o bin/filesys cmd/main.go
  1. 测试工具调用:
// 读取文件示例
{
    "name": "read_file",
    "arguments": {
        "path": "/allowed/path/file.txt"
    }
}

// 列出目录示例
{
    "name": "list_directory",
    "arguments": {
        "path": "/allowed/path"
    }
}

许可证

该项目遵循 MIT 开源许可条款。