【技术文档摘要】: !! 该项目已存档,请访问 https://github.com/strawgate/py-mcp-collection/tree/main/filesystem-operations-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"]。
目前无法禁用批量工具。
{
"mcp": {
"servers": {
"Filesystem Operations": {
"command": "uvx",
"args": [
"https://github.com/strawgate/mcp-many-files.git"
]
}
}
}
}
只需在您的 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",
2
"call_tools_bulk"
]
},
# 替换为实际的仓库 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
# 或使用已安装的脚本
filesystem-operations-mcp
您还可以通过内置的调试启动配置使用 vscode 进行调试。要将您的 MCP 客户端指向此本地服务器,请使用以下 MCP 服务器配置:
"filesystem_operations_mcp": {
"url": "http://localhost:8000/sse",
"disabled": true,
"autoApprove": [],
"timeout": 30,
"alwaysAllow": []
}
您也可以设置您的 uvx 命令指向仓库中的某个分支,如 `"git+https://github.com/strawgate/filesystem-operations-mcp@branch-name"`。