文件系统操作
STDIO批量文件和文件夹操作服务器
批量文件和文件夹操作服务器
!! This project is archived, see https://github.com/strawgate/py-mcp-collection/tree/main/filesystem-operations-mcp for the latest version.
This project provides a FastMCP server that exposes tools for performing bulk file and folder operations. It includes centralized exception handling for filesystem operations.
The server provides the following tools, categorized by their functionality:
call_tool_bulk: Call a single tool registered on this MCP server multiple times with a single request. Useful for speeding up what would otherwise take several individual tool calls.
call_tools_bulk: Call multiple tools registered on this MCP server in a single request. Each call can be for a different tool and can include different arguments. Useful for speeding up what would otherwise take several individual tool calls.
To add bulk tools to your FastMCP server, see https://github.com/jlowin/fastmcp/pull/215
file server)These tools are available under the file server namespace.
read: Reads the content of a file at the specified pathcreate: Creates a file with the specified contentappend: Appends content to an existing fileerase: Erases the content of a filemove: Moves a file from source to destinationdelete: Deletes a file at the specified pathfolder server)These tools are available under the folder server namespace.
create: Creates a folder at the specified pathread_all: Returns the contents of all of the files in a folder (optionally, recursively). This can be expensive!list: Lists the contents of a folder (optionally, recursively)move: Moves a folder from source to destinationdelete: Deletes a folder at the specified pathempty: Empties a folder by deleting all its contentsYou can disable specific file tools by setting the DISABLE_FILE_TOOLS to an array of tool names you want to disable. For example, to disable the file_read tool, set DISABLE_FILE_TOOLS=["file_read"].
You can disable specific folder tools by setting the DISABLE_FOLDER_TOOLS to an array of tool names you want to disable. For example, to disable the folder_create tool, set DISABLE_FOLDER_TOOLS=["folder_create"].
Bulk tools cannot currently be disabled.
{ "mcp": { "servers": { "Filesystem Operations": { "command": "uvx", "args": [ "https://github.com/strawgate/mcp-many-files.git" ] } } } }
Simply add the following to your McpServer configuration. Edit the AlwaysAllow list to include the tools you want to use without confirmation.
    "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"
      ]
    },
# Replace with the actual repository URL git clone https://github.com/strawgate/filesystem-operations-mcp.git cd filesystem-operations-mcp
uv venv source .venv/bin/activate uv sync --extra dev
python -m filesystem-operations-mcp.server # or using the installed script filesystem-operations-mcp
You can also debug with vscode via the built in debug launch configuration. To point your MCP Client to this local server, use the following MCP server configuration:
"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"`.