批量文件系统操作服务

提供批量文件和文件夹操作的工具,包括读取、创建、移动、删除等功能,适用于需要高效处理文件系统操作的场景。

  • by strawgate
  • Python
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 strawgate/mcp-many-files

使用说明

!!此项目已归档,请访问 https://github.com/strawgate/py-mcp-collection/tree/main/filesystem-operations-mcp 查看最新版本。

批量文件系统操作MCP服务器

该项目提供了一个FastMCP服务器,该服务器提供了用于执行批量文件和文件夹操作的工具。它还包括对文件系统操作的集中异常处理。

可用工具

服务器提供了以下工具,按功能分类如下:

  • **call_tool_bulk**在一个MCP服务器上,通过单次请求多次调用已注册的单个工具。这有助于加快原本需要多次单独工具调用的过程。

  • **call_tools_bulk**在一个请求中调用此MCP服务器上注册的多个工具。每次调用可以针对不同的工具,并且可以包含不同的参数。这有助于加快原本需要多次单独工具调用才能完成的操作。

要在您的FastMCP服务器上添加批量工具,请参阅 https://github.com/jlowin/fastmcp/pull/215

文件操作工具(file 服务器)

这些工具可在以下条件下使用 file 服务器命名空间。

  • **read**读取指定路径下的文件内容
  • **create**创建一个包含指定内容的文件
  • **append**向现有文件追加内容
  • **erase**删除文件内容
  • **move**将文件从源位置移动到目标位置
  • **delete**删除指定路径下的文件

文件夹操作工具(folder 服务器)

这些工具可在以下条件下使用 folder 服务器命名空间。

  • **create**在指定路径创建一个文件夹
  • **read_all**返回文件夹中所有文件的内容(可选地,递归地)。这可能会很耗时!
  • **list**列出文件夹的内容(可选地,递归列出)
  • **move**将文件夹从源位置移动到目标位置
  • **delete**删除指定路径下的文件夹
  • **empty**清空文件夹,删除其中所有内容

禁用工具

您可以通过设置来禁用特定的文件工具 DISABLE_FILE_TOOLS 到一个你想要禁用的工具名称数组。例如,要禁用 file_read 工具,设置 DISABLE_FILE_TOOLS=["file_read"]。

您可以通过设置来禁用特定的文件夹工具 DISABLE_FOLDER_TOOLS 到一个你想要禁用的工具名称数组。例如,要禁用 folder_create 工具,设置 DISABLE_FOLDER_TOOLS=["folder_create"].

批量工具目前无法禁用。

VS Code 中的 McpServer 使用方法

  1. 打开命令面板(Ctrl+Shift+P 或 Cmd+Shift+P)。
  2. 输入“设置”并选择“首选项:打开用户设置(JSON)”。
  3. 添加以下MCP服务器配置
{
    "mcp": {
        "servers": {
            "Filesystem Operations": {
                "command": "uvx",
                "args": [
                    "https://github.com/strawgate/mcp-many-files.git"
                ]
            }
        }
    }
}

Roo代码/Cline Mcp服务器使用

只需在您的McpServer配置中添加以下内容。编辑AlwaysAllow列表,以包含您希望无需确认即可使用的工具。

    "Filesystem Operations": {
      "command": "uvx",
      "args": [
        "https://github.com/strawgate/mcp-many-files.git"
      ],
      "alwaysAllow": [
        "file_read",
        "file_create",
        "file_append",
        "file_erase",
        "file_move",
        "file_delete",
        "folder_create",
        "folder_contents",
        "folder_move",
        "folder_delete",
        "folder_empty",
        "call_tool_bulk",
        "call_tools_bulk"
      ]
    },

发展

  1. 克隆仓库:
    # Replace with the actual repository URL
    git clone https://github.com/strawgate/filesystem-operations-mcp.git
    cd filesystem-operations-mcp
    
  2. 创建一个虚拟环境并安装依赖项:
    uv venv
    source .venv/bin/activate
    uv sync --extra dev
    
  3. 在本地运行服务器进行测试:
    python -m filesystem-operations-mcp.server
    # or using the installed script
    filesystem-operations-mcp
    

你也可以通过VSCode内置的调试启动配置来进行调试。要将你的MCP客户端指向这个本地服务器,请使用以下MCP服务器配置:

"filesystem_operations_mcp": {
  "url": "http://localhost:8000/sse",
  "disabled": true,
  "autoApprove": [],
  "timeout": 30,
  "alwaysAllow": []
}

You can also set your uvx command to point to a branch on the repository via `"git+https://github.com/strawgate/filesystem-operations-mcp@branch-name"`.