返回 MCP 目录
public公开dns本地运行

filesys

一个安全的MCP服务器,提供受控的文件系统操作,限制在指定目录内访问

article

README

🚀 文件系统 MCP 服务器

文件系统 MCP 服务器是一个安全的模型上下文协议(MCP)服务器,它能够提供受控访问指定目录的文件系统操作,保障文件操作的安全性与可控性。

🚀 快速开始

本服务器可通过环境变量控制目录访问,且所有文件操作都受限于允许的目录内。以下是快速使用的步骤:

  1. 安装项目
  2. 配置允许访问的目录
  3. 构建项目
  4. 集成到 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 许可协议。

项目贡献

欢迎提交拉取请求。请确保:

  • 测试通过
  • 新功能包含文档
  • 代码遵循项目风格
help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端