Token导航 LogoToken导航

MCP Server · 开发工具

Mcpfileserver

MCP File Server 是一个安全的沙盒文件服务器,通过模型控制协议(MCP)提供对文件系统操作的控制访问,支持在可配置的工作目录中读取、写入、列出、创建和删除文件和目录,并提供Git操作。

未说明官方级别未说明来源级核验工具 22
Python开发工具命令行工具

快速开始

公开资料没有提供安装命令,按仓库或官方文档接入。
作者 / 组织
undici77
提供方
undici77

工具数量

22

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

3

仓库热度

收录来源

2 个

MCP World

选型结论

Mcpfileserver 属于开发工具类 MCP Server,公开资料标注 22 个工具,通过传输方式未标注接入,客户端适配情况以官方文档为准,没有现成的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

未说明

认证方式

无需认证

部署方式

仅本地运行

安装与配置

公开目录没有给出安装命令,需要按仓库 README安装;下面按同类条目的通用流程说明。

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    先确认运行方式

    公开资料没有标注传输方式,先看仓库 README,确认是本地进程还是远程地址。

  2. 2

    获取服务

    公开目录没有给出安装命令,按仓库 README里的步骤安装或获取服务。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 22 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

公开资料仍需确认:安装命令

详细介绍

📂 MCP文件服务器

MCP文件服务器 是一个安全的沙盒文件服务器,通过 模型控制协议(MCP)。它支持在可配置的工作目录中读取、写入、列出、创建和删除文件和目录,同时执行严格的安全检查。Git操作也可用于工作目录中的存储库。

目录

- initialize - tools/list - tools/call

- 文件操作 - read_file - write_file - list_files - create_directory - delete_file - delete_directory - search_in_file - Git操作 - git_status - git_log - git_checkout - git_branch_create - git_branch_delete - git_branch_list - git_add - git_commit - git_push - git_pull - git_diff - git_clone - git_submodule_add - git_submodule_update - git_submodule_list

🎯 特性

  • 沙盒操作 –所有路径都限制在用户指定的工作目录中。
  • 路径遍历保护、文件大小限制和阻止的扩展名。
  • 通过Base64编码提供二进制支持,用于安全传输非文本数据。
  • 工作目录中存储库的Git操作(状态、日志、分支、提交/推送/拉取)。
  • 适用于stdin/stdout集成的简单行分隔JSON-RPC协议。
  • 即用型 LM 工作室 通过最小 mcp.json 配置。

📦 安装和快速启动

# Clone the repository (if not already done)
git clone https://github.com/undici77/MCPFileServer.git
cd MCPFileServer

# Ensure git is installed on your system (required for git operations)
git --version

# Run the startup script – it creates a virtual environment,
# installs dependencies, and starts the server.
./run.sh -d /path/to/working/directory

脚本将:

  • 验证Python 3 可用。
  • 创建一个 .venv 虚拟环境(如果缺失)。
  • 安装所需的软件包(aiofiles).
  • 开始 main.py 使用提供的工作目录。
📌 Git操作注意事项:git操作使用Python的 subprocess 调用系统 git CLI。Git必须在PATH中安装并可用。 📌 提示: 确保脚本具有执行权限: chmod +x run.sh

⚙️ 命令行选项

选项描述
-d, --directory通往 工作目录。如果省略,服务器将使用当前进程目录。目录必须存在并且可读/写。

🤝 与LM集成 工作室

在项目中为文件服务器添加条目 mcp.json:

{
  "mcpServers": {
    "file-server": {
      "command": "/absolute/path/to/MCPFileServer/run.sh",
      "args": [
        "-d",
        "/absolute/path/to/working/directory"
      ],
      "env": {
        "WORKING_DIR": "."
      }
    }
  }
}
  • 将路径替换为机器上的绝对位置。
  • 确保 run.sh 可执行(chmod +x run.sh)并且安装了依赖项。

📡 MCP API概述

所有通信如下 JSON-RPC 2.0 通过stdin/stdout。

initialize

由客户端发送以获取服务器功能。

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {}
}

服务器以协议版本、功能及其名称/版本进行响应。

tools/list

检索支持的工具的机器可读列表。

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/list",
  "params": {}
}

响应包含一系列工具定义(名称、描述、输入模式)。

tools/call

调用特定工具。

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "",
    "arguments": { … }
  }
}
注: 工具名称的关键字是 **name**,不 tool。这与服务器实现相匹配。

🛠️ 可用工具

文件操作

工具说明
read_file读取文件的内容(文本或二进制)。
write_file将文本或Base64编码的二进制数据写入文件。
list_files列出具有可选筛选功能的文件和目录
create_directory创建一个新的子目录(根据需要创建父目录)。
delete_file删除单个文件。
delete_directory删除目录;可选择强制删除非空树。
search_in_file在文件中或目录中递归搜索字符串,返回上下文摘录。

read_file

读取工作目录中文件的内容。 参数

名称类型必填描述
pathstring✅目标文件的相对路径。
binaryboolean❌ (默认值: false)设置为 true 将文件读取为二进制文件;结果是Base64编码。

示例

{
  "method": "tools/call",
  "params": {
    "name": "read_file",
    "arguments": {
      "path": "example.txt",
      "binary": false
    }
  }
}

write_file

将内容写入文件(如果需要,创建中间目录)。 参数

名称类型必填描述
pathstring✅目标文件的相对路径。
contentstring✅要写入的文本或Base64编码的二进制数据 binary=true.
binaryboolean❌ (默认值: false)设置为 true 对待 content 作为Base64编码的二进制文件。

示例

{
  "method": "tools/call",
  "params": {
    "name": "write_file",
    "arguments": {
      "path": "output.txt",
      "content": "Hello, world!",
      "binary": false
    }
  }
}

列表文件

列出工作目录下的文件和目录。 参数

名称类型必填描述
extensions字符串数组❌按文件扩展名过滤(例如。, [".py", ".txt"]).如果省略,则列出所有文件。
recursiveboolean❌ (默认值: true)在以下情况下递归搜索子目录 true.
show_empty_dirsboolean❌ (默认值: true)包括不包含匹配文件的目录。

示例

{
  "method": "tools/call",
  "params": {
    "name": "list_files",
    "arguments": {
      "extensions": [".py", ".txt"],
      "recursive": true,
      "show_empty_dirs": false
    }
  }
}

create_directory

创建一个新目录(包括任何缺失的父目录)。 参数

名称类型必填描述
pathstring✅要创建的目录的相对路径。

示例

{
  "method": "tools/call",
  "params": {
    "name": "create_directory",
    "arguments": { "path": "new_folder/subfolder" }
  }
}

删除文件

删除工作目录中的文件。 参数

名称类型必填描述
pathstring✅要删除的文件的相对路径。

示例

{
  "method": "tools/call",
  "params": {
    "name": "delete_file",
    "arguments": { "path": "temp.txt" }
  }
}

delete_directory

删除目录,可选择强制删除其内容。 参数

名称类型必填描述
pathstring✅要删除的目录的相对路径。
forceboolean❌ (默认值: false)何时 true,递归删除非空目录。

示例

{
  "method": "tools/call",
  "params": {
    "name": "delete_directory",
    "arguments": { "path": "old_folder", "force": true }
  }
}

search_in_file

在文件中搜索字符串,或在目录中的所有文件中递归搜索字符串,返回上下文摘录。 参数

名称类型必填描述
pathstring✅文件的相对路径 或 目录。
search_stringstring✅要搜索的文本。
context_lines整数❌ (默认值: 3)每场比赛前后要包含的行数。
case_sensitiveboolean❌ (默认值: false)在以下情况下执行区分大小写的搜索 true.
max_matches整数❌ (默认值: 50)每个文件返回的最大匹配项数。

示例

{
  "method": "tools/call",
  "params": {
    "name": "search_in_file",
    "arguments": {
      "path": "log.txt",
      "search_string": "ERROR",
      "context_lines": 2,
      "case_sensitive": false,
      "max_matches": 10
    }
  }
}

______________________________________________________________________

Git操作

默认情况下,所有git操作都在工作目录上工作。要在嵌套存储库上操作,请使用 repo_path 参数。

工具说明
git_status显示工作树状态。
git_log显示提交日志历史记录。
git_checkout切换到其他分支或提交。
git_branch_create创建一个新分支。
git_branch_delete删除分支。
git_branch_list列出存储库中的所有分支。
git_add将文件内容添加到暂存区。
git_commit将更改记录到存储库中。
git_push将更改推送到远程存储库。
git_pull从远程存储库获取并与之集成。
git_diff显示提交、提交和工作树之间的变化。
git_clone将存储库克隆到新目录中。
git_submodule_add向存储库添加子模块。
git_submodule_update更新现有子模块。
git_submodule_list列出存储库中的所有子模块。

注: 所有git工具都支持可选 repo_path 用于在子目录中的存储库上操作的参数(例如。, "repo_path": "vendor/my-repo").如果省略,操作将直接针对工作目录。

git_status

显示工作树状态。 参数

名称类型必填描述
shortboolean❌ (默认值: true)使用短格式输出。
repo_pathstring❌相对于工作目录的存储库路径(如果省略,则使用工作目录)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_status",
    "arguments": { 
      "short": true,
      "repo_path": "vendor/my-repo"
    }
  }
}

git_log

显示提交日志历史记录。 参数

名称类型必填描述
max_count整数❌ (默认值: 20)要显示的最大提交数。
onelineboolean❌ (默认值: true)显示紧凑的单行格式。
repo_pathstring❌相对于工作目录的存储库路径(如果省略,则使用工作目录)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_log",
    "arguments": { 
      "max_count": 10, 
      "oneline": true,
      "repo_path": "vendor/my-repo"
    }
  }
}

git_checkout

切换到其他分支或提交。 参数

名称类型必填描述
branchstring✅分支名称或提交哈希到签出。
repo_pathstring❌相对于工作目录的存储库路径(如果省略,则使用工作目录)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_checkout",
    "arguments": { 
      "branch": "main",
      "repo_path": "vendor/my-repo"
    }
  }
}

git_branch_create

创建一个新分支。 参数

名称类型必填描述
branchstring✅新分支的名称。
start_pointstring❌新分支的起点(分支或提交)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_branch_create",
    "arguments": { 
      "branch": "feature/new-ui",
      "start_point": "main"
    }
  }
}

git_branch_delete

删除分支。 参数

名称类型必填描述
branchstring✅要删除的分支的名称。
forceboolean❌ (默认值: false)即使分支有未合并的更改,也要强制删除。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_branch_delete",
    "arguments": { 
      "branch": "old-branch",
      "force": true
    }
  }
}

git_branch_list

列出存储库中的所有分支。 参数

名称类型必填描述
allboolean❌ (默认值: false)列出本地和远程分支。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_branch_list",
    "arguments": { "all": true }
  }
}

git_add

将文件内容添加到暂存区。 参数

名称类型必填描述
paths字符串数组✅要添加的文件路径列表。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_add",
    "arguments": { 
      "paths": ["src/main.py", "tests/test_main.py"] 
    }
  }
}

git_提交

将更改记录到存储库中。 参数

名称类型必填描述
messagestring✅提交消息。
allboolean❌ (默认值: false)自动暂存所有修改和删除的文件。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_commit",
    "arguments": { 
      "message": "Add new feature",
      "all": true
    }
  }
}

git_push

将更改推送到远程存储库。 参数

名称类型必填描述
remotestring❌ (默认值: origin)远程存储库名称。
branchstring❌要推送的分支(默认为当前分支)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_push",
    "arguments": { 
      "remote": "origin",
      "branch": "main"
    }
  }
}

git_pull

从远程存储库获取并与之集成。 参数

名称类型必填描述
remotestring❌ (默认值: origin)远程存储库名称。
branchstring❌要提取的分支(默认为当前分支)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_pull",
    "arguments": { 
      "remote": "origin",
      "branch": "main"
    }
  }
}

使用 git_diff

显示提交、提交和工作树之间的变化。 参数

名称类型必填描述
pathstring❌显示差异的特定文件或目录。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_diff",
    "arguments": {
      "path": "src/main.py"
    }
  }
}

git_clone

将存储库克隆到新目录中。 参数

名称类型必填描述
urlstring✅要克隆的存储库的URL(HTTPS或SSH)。
pathstring✅将克隆存储库的目录名称(相对于工作目录)。
branchstring❌克隆后要结账的具体分支。
recursiveboolean❌ (默认值: false)递归克隆子模块。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_clone",
    "arguments": {
      "url": "https://github.com/owner/repo.git",
      "path": "vendor/repo",
      "branch": "main"
    }
  }
}

git_submodule_add

向存储库添加子模块。 参数

名称类型必填描述
urlstring✅要添加为子模块的存储库的URL。
pathstring✅放置子模块的路径。
namestring❌子模块的名称(可选,默认为路径)。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_submodule_add",
    "arguments": {
      "url": "https://github.com/owner/lib.git",
      "path": "vendor/lib"
    }
  }
}

git_submodule_update

更新现有子模块。 参数

名称类型必填描述
initboolean❌ (默认值: true)更新前初始化子模块。
recursiveboolean❌ (默认值: true)递归更新子模块。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_submodule_update",
    "arguments": {
      "init": true,
      "recursive": true
    }
  }
}

git_submodule_list

列出存储库中的所有子模块。 参数

名称类型必填描述
summaryboolean❌ (默认值: true)显示子模块状态摘要。

示例

{
  "method": "tools/call",
  "params": {
    "name": "git_submodule_list",
    "arguments": { "summary": true }
  }
}

______________________________________________________________________

🔐 安全功能

  • 路径遍历保护 –根据工作目录解析所有路径;试图逃逸会导致错误。
  • 阻止扩展名和敏感文件名 –文件,如 .exe, .bat, passwd等等,都被拒绝了。
  • 文件大小限制 –读/写超过 100 MiB (MAX_FILE_SIZE)被拒绝。
  • 空字节和危险模式检查 –防止格式错误的输入攻击。
  • Git命令验证 -验证分支名称和路径以防止注入攻击。

______________________________________________________________________

*©2025 Undici77-保留所有权利。*

工具与能力

工具数量

22

资源数量

0

提示词数量

0

能力标签

文件服务器Python本地部署沙盒环境Git操作文件管理安全文件访问

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 22 个,一次接入能覆盖的操作比单点工具更全。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • 公开资料没有可直接复制的安装命令,第一次接入要自己找入口。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 愿意照着官方文档一步步配环境的人。

不太适合

  • 希望一条命令就装好、不想看文档的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Mcpfileserver

MCP World · 本页

22未说明未标注2 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Mcpfileserver 怎么安装?

公开目录没有给出可以直接复制的安装命令,需要按仓库 README里的步骤安装;装好后写进客户端的 MCP 配置再重启。

Mcpfileserver 怎么在 Claude Desktop、Cursor 里配置?

它是传输方式未标注,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Mcpfileserver 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Mcpfileserver 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Mcpfileserver 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP