Content
!! This project is archived, see https://github.com/strawgate/py-mcp-collection/tree/main/filesystem-operations-mcp for the latest version.
# Bulk Filesystem Operations MCP Server
This project provides a FastMCP server that exposes tools for performing bulk file and folder operations. It includes centralized exception handling for filesystem operations.
## Available Tools
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 Operations Tools (`file` server)
These tools are available under the `file` server namespace.
* **`read`**: Reads the content of a file at the specified path
* **`create`**: Creates a file with the specified content
* **`append`**: Appends content to an existing file
* **`erase`**: Erases the content of a file
* **`move`**: Moves a file from source to destination
* **`delete`**: Deletes a file at the specified path
### Folder Operations Tools (`folder` server)
These tools are available under the `folder` server namespace.
* **`create`**: Creates a folder at the specified path
* **`read_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 destination
* **`delete`**: Deletes a folder at the specified path
* **`empty`**: Empties a folder by deleting all its contents
### Disabling Tools
You 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.
## VS Code McpServer Usage
1. Open the command palette (Ctrl+Shift+P or Cmd+Shift+P).
2. Type "Settings" and select "Preferences: Open User Settings (JSON)".
3. Add the following MCP Server configuration
```json
{
"mcp": {
"servers": {
"Filesystem Operations": {
"command": "uvx",
"args": [
"https://github.com/strawgate/mcp-many-files.git"
]
}
}
}
}
```
## Roo Code / Cline McpServer Usage
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"
]
},
```
## Development
1. Clone the repository:
```bash
# Replace with the actual repository URL
git clone https://github.com/strawgate/filesystem-operations-mcp.git
cd filesystem-operations-mcp
```
2. Create a virtual environment and install dependencies:
```bash
uv venv
source .venv/bin/activate
uv sync --extra dev
```
3. Run the server locally for testing:
```bash
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:
```json
"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"`.
Connection Info
You Might Also Like
markitdown
Python tool for converting files and office documents to Markdown.
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.