文件系统管理服务器

一个基于FastMCP构建的强大文件系统管理服务器,提供全面的文件和目录操作工具,适用于自动化和其他系统集成。

  • by calebmwelsh
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 calebmwelsh/file-system-mcp-server

使用说明

文件系统MCP服务器

使用FastMCP构建的功能强大的文件系统管理服务器,为文件和目录操作提供了一套全面的工具。该服务器允许您通过结构化的API执行各种文件系统操作,使其成为自动化和与其他系统集成的理想选择。

平台支持

该服务器旨在跨不同的操作系统工作,但功能级别各不相同:

视窗

  • 全功能支持
  • 驱动器列表
  • 特殊文件夹访问
  • Windows特定路径处理
  • 详细的系统信息

macOS/Linux

  • 基本文件操作
  • 目录操作
  • 文件搜索和元数据
  • 系统基本信息
  • 注意:某些特定于Windows的功能不可用

未来实施

计划中的macOS支持

  • macOS的原生路径处理
  • macOS特定系统信息检索
  • 与macOS文件系统功能集成
  • 支持macOS特定的文件属性
  • macOS特定实用程序的实现(类似于windows_utils.py)

计划中的Linux支持

  • Linux的本机路径处理
  • Linux特定系统信息检索
  • 与Linux文件系统功能集成
  • 支持Linux文件权限和属性
  • Linux特定实用程序的实现

跨平台改进

  • 统一路径处理系统
  • 与平台无关的驱动器检测
  • 一致的系统信息API
  • 跨平台的标准化文件属性
  • 跨平台文件系统事件监控
  • 通用文件收集系统

时间线

  • 第一阶段:基本的跨平台兼容性改进
  • 第2阶段:平台特定功能实现
  • 第3阶段:高级跨平台功能
  • 第4阶段:性能优化和改进

特性

文件操作

  • 使用备份支持复制文件
  • 使用备份支持移动文件
  • 删除带有安全检查的文件
  • 读取文件内容
  • 写入文件内容
  • 获取文件信息(大小、创建时间、修改时间)
  • 按名称模式搜索文件
  • 创建文件集合以组织相关文件

目录操作

  • 列出目录内容
  • 创建目录
  • 删除目录
  • 递归列出目录(树状结构)
  • 按名称模式搜索目录

系统信息

  • 获取系统信息(操作系统、CPU、内存、磁盘使用情况)
  • 获取磁盘信息(总空间、已用空间、可用空间)
  • 获取目录信息(文件数、总大小)

项目结构

file-system-mcp-server/
├── fs_server.py            # Main server implementation
├── windows_utils.py        # Windows-specific utilities (Windows only)
├── requirements.txt        # Project dependencies
└── test_prompts_example.md # Example test prompts

收藏存储

集合可以存储在用户指定的任何目录中。如果未指定存储位置,则集合将存储在项目的默认位置 data/collections 目录。

示例用法:

# Store in default location
create_collection("my_collection", ["file1.txt", "file2.txt"])

# Store in custom location
create_collection("my_collection", ["file1.txt", "file2.txt"], storage_path="/path/to/store")

依赖项

所需依赖关系

  • FastMCP
  • 派丹蒂克
  • pywin32(仅限Windows)
  • WMI(仅限Windows)

要安装依赖项,请执行以下操作:

pip install -r requirements.txt

设置

  1. 克隆存储库:
git clone https://github.com/calebmwelsh/file-system-mcp-server.git
cd file-system-mcp-server
  1. 创建并激活虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

用法

有关不同开发环境(Claude、Cursor、Windsurf)的详细MCP配置说明,请访问: MCP配置指南

与Claude整合

要将文件系统MCP服务器与Claude集成,请将以下内容添加到您的 claude_desktop_config.json 文件:

{
  "mcpServers": {
    "file-system": {
      "command": "/absolute/path/to/python",
      "args": [
        "/absolute/path/to/file-system-mcp-server/fs_server.py"
      ]
    }
  }
}

找到你的Python路径

要查找Python可执行路径,请使用以下命令:

Windows(PowerShell):

(Get-Command python).Source

Windows(命令提示符/终端):

where python

Linux/macOS(终端):

which python

替换 /absolute/path/to/python 使用上述适当命令的输出。

配置示例

对于Windows,您的配置可能如下:

{
  "mcpServers": {
    "file-system": {
      "command": "C:\\Users\\YourUsername\\AppData\\Local\\Programs\\Python\\Python39\\python.exe",
      "args": [
        "C:\\Users\\YourUsername\\Documents/file-system-mcp-server/fs_server.py"
      ]
    }
  }
}

对于macOS/Linux:

{
  "mcpServers": {
    "file-system": {
      "command": "/usr/local/bin/python3",
      "args": [
        "/Users/YourUsername/Documents/file-system-mcp-server/fs_server.py"
      ]
    }
  }
}

添加配置后:

  1. 保存 claude_desktop_config.json 文件
  2. 重新启动克劳德
  3. 现在,您可以通过要求Claude执行文件操作来使用文件系统工具

可用工具

文件操作

  • copy_file:复制带有可选备份的文件
  • move_file:使用可选备份移动文件
  • delete_file:删除带有安全检查的文件
  • read_file:读取文件内容
  • write_file:将内容写入文件
  • get_file_info:获取详细的文件信息
  • search_files:按名称模式搜索文件
  • create_collection:创建文件集合

目录操作

  • list_directory:列出目录内容
  • create_directory:创建新目录
  • delete_directory:删除目录
  • list_directory_recursively:以树格式显示目录结构
  • search_directories:按名称模式搜索目录

系统信息

  • get_system_info:获取系统信息
  • get_disk_info:获取磁盘使用信息
  • get_directory_info:获取目录统计信息

已知问题

以下功能当前遇到问题,可能无法按预期工作:

  1. 删除文件功能

    • 这 delete_file 在某些情况下,函数可能无法正确删除文件
    • 建议用户手动验证文件删除,或在关键时使用其他方法
    • 问题正在调查中,将在未来的更新中得到解决
  2. 列表驱动器功能

    • 这 list_drives 功能可能无法正确检测或显示所有可用驱动器
    • 列表中可能缺少某些驱动器或显示不正确的信息
    • 这是一个已知的限制,将在未来的更新中加以解决
  3. 平台特定限制

    • Windows特定功能在macOS/Linux上不可用
    • 某些路径处理可能因平台而异
    • 系统信息检索因平台而异

错误处理

该服务器包括全面的错误处理功能,用于:

  • 文件路径无效
  • 找不到文件/目录
  • 权限问题
  • 磁盘空间限制
  • 无效操作
  • 平台特定错误

安全

  • 所有文件操作都包括路径验证
  • 在破坏性操作之前创建备份文件
  • 系统信息访问仅限于安全操作
  • 文件操作是通过适当的错误处理来执行的

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • 使用FastMCP构建
  • 使用Pydantic进行数据验证
  • 受现代文件系统管理工具的启发