mcpField
M
MCP File System Server

MCP File System Server

本地服务
github.com/MarcusJellinghaus文件与存储49今天更新

关于 MCP File System Server

MCP File System Server 为 AI 助手提供项目目录内的文件与 GitHub 操作,适合需要检查和修改本地代码库的开发者。路径校验和只读参考项目限制了可访问范围。

主要功能

  1. 01列出、读取和写入文件
  2. 02精确匹配编辑与追加
  3. 03删除、移动文件和目录
  4. 04只读浏览参考项目
  5. 05查询及管理 GitHub 问题和 PR
  6. 06结构化日志记录

适用场景

  1. 01检查代码并分析仓库
  2. 02按要求生成或修改项目文件
  3. 03对照文档和其他代码库
  4. 04查询或处理 GitHub 问题与 PR

MCP 相关

这是一个 MCP 服务,向兼容客户端提供项目文件操作、参考项目读取及 GitHub 工具。文件访问限制在指定项目目录内,参考项目为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP File System Server

一个简单的模型上下文协议(MCP)服务,用于提供文件系统操作。此服务遵循 MCP 协议设计,为在指定项目目录中执行文件系统操作提供简洁的 API。

概览

此 MCP 服务可让 Claude(通过 Claude Desktop)等 AI 助手或其他兼容 MCP 的系统与本地文件系统交互。借助这些功能,AI 助手可以:

  • 读取现有代码和项目文件
  • 使用生成的内容写入新文件
  • 通过精确匹配字符串,准确更新和修改现有文件
  • 选择性地编辑代码,而无需重写整个文件
  • 根据需要删除文件
  • 检查代码仓库并提供分析和建议
  • 调试并修复代码库中的问题
  • 根据你的规范生成完整实现

所有操作都严格限制在指定的项目目录内,让你在掌控全局的同时,能够借助 AI 高效协作处理本地文件。

将 AI 助手连接到文件系统后,你可以将工作流从手动编码转变为更直观的提示词交互方式——用自然语言描述需求,让 AI 直接在项目文件中生成、修改和整理代码。

路径限制

每次文件操作前,都会根据项目目录验证路径。验证过程会解析符号链接;如果解析后的目标位置位于项目目录之外,则拒绝该路径。任何 .. 路径段都会被直接拒绝,而不会跟随它访问。参考项目也会以相同方式针对各自的目录进行验证。

以下两种路径会被拒绝,而早期版本会接受它们:

  • 路径中任何位置包含 .. 路径段,而不只是以它开头。read_file("src/../README.md") 会被拒绝;请改用 read_file("README.md")。
  • 通过符号链接离开项目的路径。 即使路径中不含 ..,项目内指向项目外部目标的符号链接文件,或路径中作为中间部分的符号链接目录,也会被拒绝。若要读取项目外部的内容,请使用 --reference-project 配置它(只读),或另行启动一个指向该位置的服务实例。

有一项限制:如果操作系统无法解析某个路径,验证将仅依赖词法检查——路径中不得包含 ..,且必须按名称位于项目目录之下——因此在这种情况下无法检测指向项目外部的符号链接。

功能

  • list_directory:列出项目目录中的所有文件和目录
  • read_file:读取文件,或通过 start_line/end_line 读取指定行范围。
  • save_file:写入文件,并按需创建父目录。
  • append_file:在文件末尾追加内容
  • delete_this_file:从文件系统中删除指定的单个文件
  • delete_directory:删除目录(默认要求目录为空;设置 recursive=True 可删除整个目录树)
  • edit_file:通过精确匹配字符串编辑文件;使用 replace_all 替换所有匹配项。
  • move_file:移动或重命名文件和目录(支持 Git 感知:对已跟踪文件使用 git mv,否则使用文件系统移动)
  • get_reference_projects:查找可用的参考项目
  • list_reference_directory:列出参考项目中的文件
  • read_reference_file:读取参考项目中的文件,或通过 start_line/end_line 读取指定行范围。
  • 跨代码仓库访问 GitHub:GitHub 问题、拉取请求、搜索和标签读取工具接受 reference_name;也可以创建、编辑和评论问题
  • Structured Logging:全面的日志记录系统,支持人类可读和 JSON 格式

安装

# Clone the repository
git clone https://github.com/MarcusJellinghaus/mcp-workspace.git
cd mcp_workspace

# Create and activate a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies using pip with pyproject.toml
pip install -e .

运行服务

安装完成后,你可以直接使用 mcp-workspace 命令:

mcp-workspace --project-dir /path/to/project [--reference-project NAME=/path/to/reference]... [--log-level LEVEL] [--log-file PATH] [--file-size-limit N] [--fail-on-reviews] [--enforce-base-branch-format]
命令行参数:
  • --project-dir:要提供文件服务的目录。若缺少此参数或指定的目录无效,服务将以代码 1 退出。
  • --reference-project:(可选)以 name=/path/to/dir 格式添加参考项目(可重复指定,重复名称会自动重命名)
  • --log-level:(可选)设置日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
  • --log-file:(可选)结构化 JSON 日志的路径。若未指定,日志将写入 project_dir/logs/ 下的 mcp_workspace_{timestamp}.log。
  • --file-size-limit:(可选)省略 max_lines 时,check_file_size 的默认行数上限;必须大于 0。未设置时默认为 600。
  • --fail-on-reviews:(可选)check_branch_status 审核门禁的默认值。每次调用时可由工具参数覆盖。除非设置,否则关闭。
  • --enforce-base-branch-format / --no-enforce-base-branch-format:(可选)在 github_issue_create 和 github_issue_edit 中创建或编辑 issue 正文时,拒绝格式错误的 ### Base Branch 部分(超过一行,或其值不是有效的 git 分支名称)。默认开启。

启动时会忽略无法识别的参数,而不会因此停止服务;每个未知参数都会记录为 WARNING,并另有一条汇总这些参数的启动 INFO 日志。不再接受 --project 等缩写形式作为 --project-dir 的前缀;它们会被视为未知参数并忽略。

启动错误会写入 stderr;若没有可用的常规日志,则写入工作目录中的 logs/mcp_workspace_startup_error.log。

服务使用 FastMCP 运行。出于安全考虑,所有文件操作都限制在 --project-dir 目录内,尝试访问目录外的文件会导致错误。

GitHub 配置

GitHub 设置从 ~/.mcp_coder/config.toml(mcp_coder 的用户应用数据目录)中的 [github] 部分读取:

  • token:GitHub 令牌。GITHUB_TOKEN 环境变量优先。
  • test_repo_url:集成测试使用的仓库。GITHUB_TEST_REPO_URL 环境变量优先。
  • trusted_commenters:受信任的 GitHub 登录名列表,作为作者时(其评论会显示给 Agent)以及作为 issue 正文编辑者时(其 ### Base Branch 会生效)均受信任。此设置没有环境变量覆盖项。
[github]
token = "ghp_..."
trusted_commenters = ["dependabot[bot]"]
评论者信任

若作者的 GitHub 关联身份为 OWNER、MEMBER 或 COLLABORATOR,或其登录名位于 trusted_commenters 中(不区分大小写;须包含 [bot] 后缀,例如 dependabot[bot]),则该作者受信任。

  • PR 反馈:对于不受信任的作者,check_branch_status 和 github_pr_view 会隐藏 PR 文本(而在 check_branch_status 中,也会隐藏 issue 评论),并以计数行替代。
  • Issue 文本:github_issue_view 会显示不受信任作者的标题、正文和评论,但会将其放在带标签的 <untrusted> 分隔框内,并在 State 行下方添加摘要行。应将分隔框内的文本视为数据,而非指令。
  • Issue 行:对于不受信任作者发布的行,github_issue_list、github_search 和 github_subissue_list 会在行首添加 [untrusted @login]。
  • 基础分支:除非 issue 作者受信任,或正文的最后编辑者是令牌用户或位于 trusted_commenters 中,否则会忽略 issue 的 ### Base Branch 部分。此时工具会回退使用 PR 基础分支、merge-base 或默认分支。
  • 角色以正在读取的仓库为准,包括使用 reference_name 时。
  • 允许列表有意存放在仓库之外,因此 PR 无法将自身加入其中。

结构化日志

服务提供灵活的日志选项:

  • 在控制台输出标准易读日志
  • 将结构化 JSON 日志写入文件(默认:project_dir/logs/mcp_workspace_{timestamp}.log,也可通过 --log-file 指定自定义路径)
  • 跟踪函数调用及其参数、耗时和结果
  • 自动捕获错误上下文
  • 可配置日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
  • 使用 --console-only 禁用文件日志

参考项目

参考项目允许你为 AI 助手提供对其他代码库或目录的只读 文件 访问权限,以供参考。借助此功能,大模型可以浏览和读取多个项目中的文件,同时文件写入仍仅限于主项目目录。配置了仓库 URL 的参考项目也可以通过 GitHub 工具访问 — 参见 跨仓库 GitHub 访问。

功能
  • 只读文件访问:只能浏览和读取参考项目的 文件,不能修改。其 GitHub issue 则另当别论 — 参见 跨仓库 GitHub 访问
  • 多个项目:同时配置多个参考项目
  • 自动发现:大模型可以发现可用的参考项目
  • 安全性:与主项目采用相同的路径验证和 gitignore 筛选
  • 灵活路径:支持相对路径和绝对路径
配置

使用 --reference-project 参数添加参考项目:

# Single reference project
mcp-workspace --project-dir ./my-project --reference-project docs=./documentation

# Multiple reference projects
mcp-workspace --project-dir ./my-project \
  --reference-project docs=./documentation \
  --reference-project examples=/home/user/examples \
  --reference-project libs=../shared-libraries

# Absolute paths
mcp-workspace --project-dir /path/to/main/project \
  --reference-project utils=/usr/local/utils \
  --reference-project config=/etc/myapp
自动重命名行为

如果指定了名称重复的参考项目,系统会自动为其添加数字后缀进行重命名:

# This configuration:
mcp-workspace --project-dir ./project \
  --reference-project docs=./docs1 \
  --reference-project docs=./docs2 \
  --reference-project docs=./docs3

# Results in these reference project names:
# - docs (points to ./docs1)
# - docs_2 (points to ./docs2)  
# - docs_3 (points to ./docs3)
启动验证

服务会在启动时验证参考项目:

  • 有效的参考项目:添加成功,可供大模型使用
  • 无效的参考项目:记录为警告,但服务会继续使用有效的项目
  • 路径解析:相对路径会相对于当前工作目录进行解析
使用场景
  • 浏览文档:让大模型访问项目文档或 Wiki
  • 代码示例:引用示例项目或模板
  • 共享库:浏览通用工具库或框架
  • 配置文件:访问系统或应用程序配置目录
  • 多项目开发:在一个项目中工作时,参考相关项目
安全说明
  • 参考项目的 文件 严格只读 — 无法执行文件写入、编辑或删除操作
  • 所有路径都会经过验证,以防止目录遍历攻击
  • 系统会自动应用 Gitignore 筛选,隐藏无关文件
  • 路径访问仅限于指定的参考项目目录
  • 路径限制 中说明的相同拒绝规则也适用于参考项目路径

集成选项

此服务可集成到不同的 Claude 界面中。每种界面都需要特定的配置。

Claude 桌面应用集成

Claude 桌面应用也可以使用此文件系统服务。

Claude 桌面应用配置步骤
  1. 找到 Claude 桌面应用配置文件:

    • Windows:%APPDATA%\Claude\claude_desktop_config.json
    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
  2. 添加 MCP 服务配置(如果文件不存在,请创建该文件):

{
  "mcpServers": {
    "filesystem": {
      "command": "mcp-workspace",
      "args": [
        "--project-dir",
        "C:\\path\\to\\your\\specific\\project",
        "--reference-project",
        "docs=C:\\path\\to\\documentation",
        "--reference-project",
        "examples=C:\\path\\to\\examples",
        "--log-level",
        "INFO"
      ]
    }
  }
}
  1. 配置说明:

    • 安装后,mcp-workspace 命令应可在 PATH 中使用
    • 必须在 --project-dir 中指定明确的项目目录路径
    • 将项目目录路径替换为实际的项目路径
    • 项目目录应为你希望 Claude 访问的文件夹
  2. 重启 Claude 桌面应用以应用更改

Claude 桌面应用集成故障排除
  • 查看日志:%APPDATA%\Claude\logs(Windows)或 ~/Library/Application Support/Claude/logs(macOS)
  • 确认 mcp-workspace 命令可在 PATH 中使用(运行 mcp-workspace --help 进行测试)
  • 确保指定的项目目录存在且可访问
  • 确认配置中的所有路径均正确

贡献

有关开发环境设置、测试和贡献指南,请参见 CONTRIBUTING.md。

可用工具

该服务端提供以下 MCP 工具:

操作描述示例提示词
list_directory列出项目目录中的文件和目录“列出 src 目录中的所有文件”
read_file读取文件内容“显示 main.js 的内容”
save_file以原子方式创建或覆盖文件“创建一个名为 app.js 的新文件”
append_file向现有文件添加内容“向 utils.js 添加一个函数”
delete_this_file从文件系统中移除文件“删除 temporary.txt 文件”
delete_directory删除目录(空目录,或使用 recursive 删除整个目录树)“删除 pr_info 目录及其内容”
edit_file使用精确的字符串匹配进行选择性编辑“修复 fetch 函数中的错误”
move_file移动或重命名文件/目录(支持 Git:对已跟踪文件使用 git mv,否则移动文件系统中的文件)“将 config.js 重命名为 settings.js”
search_files按正则表达式搜索文件内容,和/或按 glob 查找文件“查找重试次数的配置位置”
get_reference_projects列出可用的参考项目“有哪些可用的参考项目?”
list_reference_directory列出参考项目中的文件“列出 docs 参考项目中的文件”
read_reference_file读取参考项目中的文件“显示 examples 项目中的 README”
github_issue_view显示 GitHub issue 及其评论“显示 mcp-config 项目中的 issue 12”
github_issue_list列出 GitHub issue,可选筛选条件“列出分配给我的未解决 issue”
github_pr_view显示 GitHub 拉取请求及其评审和评论“显示拉取请求 42”
github_search搜索一个仓库中的 issue 和拉取请求“查找提及参考缓存的 issue”
github_label_list列出仓库中定义的标签“这个仓库使用了哪些标签?”
github_issue_create创建 GitHub issue“为导入检查失败创建一个 issue”
github_issue_edit编辑 GitHub issue 的标题、正文或标签“修改 issue 12 的标题”
github_subissue_add将一个 issue 关联为另一个 issue 的子 issue“将 issue 43 设为 issue 42 的子 issue”
github_subissue_list列出 issue 的子 issue“issue 42 有哪些子 issue?”
github_subissue_remove解除子 issue 与其父 issue 的关联“将 issue 43 从其父 issue 中移除”
github_issue_comment向 GitHub issue 添加评论“在 issue 12 中评论复现步骤”
github_pr_create创建 GitHub 拉取请求“为此分支创建一个 PR”
search_reference_files搜索参考项目中的文件内容或查找文件“查找 docs 项目中配置日志记录的位置”
git运行只读 Git 命令(log、diff、status、show、branch 等)“显示最近五次提交”
check_file_size报告行数超过阈值的文件“这个项目中有哪些文件过长?”
工具详情
列出目录
  • 返回文件和目录名称列表
  • 会应用所列目录中的 .gitignore;不会读取其他 .gitignore 文件(包括列出子目录时项目根目录中的文件),也不会读取 .git/info/exclude
  • 排除 .git 文件夹
读取文件
  • 参数:
    • file_path(字符串):要读取的文件路径(相对于项目目录)
    • start_line(整数,可选):要返回的首行(从 1 开始,包含该行)。必须与 end_line 一起提供。
    • end_line(整数,可选):要返回的末行(从 1 开始,包含该行)。必须与 start_line 一起提供。
    • with_line_numbers(布尔值,可选):在每行前加上行号。指定行范围时默认为 True;读取完整文件时默认为 False。
  • 以字符串形式返回文件内容
保存文件
  • 参数:
    • file_path(字符串):要写入的文件路径
    • content(字符串):要写入文件的内容
  • 返回一个布尔值,表示操作是否成功
追加文件
  • 参数:
    • file_path(字符串):要追加内容的文件路径
    • content(字符串):要追加到文件的内容
  • 返回一个布尔值,表示操作是否成功
  • 注意:文件必须已存在;使用 save_file 创建新文件
删除此文件
  • 参数:file_path(字符串):要删除的文件路径
  • 返回一个布尔值,表示操作是否成功
  • 注意:此操作不可逆,将永久删除该文件
删除目录

删除项目目录中的某个目录。

参数:

  • dir_path(字符串):要删除的目录路径(相对于项目目录)
  • recursive(布尔值,可选):为 True 时删除整个目录树(默认值:False)

功能:

  • 默认删除空目录(recursive=False)
  • recursive=True 会删除整个目录树及其内容(通过 shutil.rmtree)
  • 仅处理目录——删除文件请使用 delete_this_file
  • 幂等:删除不存在的目录会返回一条消息,而不是报错
  • 拒绝删除项目根目录
  • 对顶层路径应用 .gitignore 规则;递归删除仍会移除单独被 Git 忽略的子项(例如嵌套的 __pycache__/)
  • 返回已删除路径列表(最多显示 20 条,并附带一条摘要)
编辑文件

使用精确字符串匹配对文件进行精准编辑。此工具旨在确保可靠且可预测。

参数:

  • file_path(字符串):要编辑的文件(相对于项目目录)
  • edits(数组):编辑操作列表,每项包含:
    • old_text(字符串):要查找并替换的精确文本(必须完全匹配)
    • new_text(字符串):替换文本
  • dry_run(布尔值,可选):预览更改但不应用(默认值:False)
  • options(对象,可选):格式设置
    • preserve_indentation(布尔值,默认值:False):将 old_text 的缩进应用到 new_text

主要特性:

  • 仅支持精确字符串匹配——old_text 必须完全匹配(区分大小写和空白字符)
  • 不进行模糊或部分匹配——最大限度确保可靠且可预测
  • 替换首次出现项——每种 old_text 模式仅替换首次匹配项
  • 按顺序处理——编辑操作按顺序应用,每项编辑都会基于前面编辑的结果执行
  • 检测已应用的编辑——自动检测编辑是否已应用(无操作优化)
  • Git 风格的差异输出——以统一差异格式准确显示更改内容
  • 清晰的错误报告——文本模式未找到时提供具体提示

示例:

# Basic text replacement
edit_file("config.py", [
    {"old_text": "DEBUG = False", "new_text": "DEBUG = True"}
])

# Multiple edits in one operation
edit_file("app.py", [
    {"old_text": "def old_function():", "new_text": "def new_function():"},
    {"old_text": "old_function()", "new_text": "new_function()"}
])

# Preview changes without applying
edit_file("code.py", edits, dry_run=True)

# With indentation preservation
edit_file("indented.py", [
    {"old_text": "    old_code()", "new_text": "new_code()"}
], options={"preserve_indentation": True})

重要说明:

  • old_text 中的文本必须完全匹配,包括空格、大小写和换行符
  • 多行替换时使用 \n 表示换行
  • 如果 old_text 出现多次,仅替换首次出现项
  • 可考虑使用 dry_run=True 在应用更改前预览
移动文件

在项目目录中移动或重命名文件和目录。在适用情况下自动保留 Git 历史。

参数:

  • source_path(字符串):源文件/目录路径(相对于项目)
  • destination_path(字符串):目标路径(相对于项目)

**返回值:**布尔值(成功时为 true)

功能:

  • 如果父目录不存在,则自动创建
  • 移动已跟踪的文件时保留 Git 历史(内部使用 git mv)
  • 如果 Git 不可用,则回退到文件系统操作
  • 支持文件和目录
  • 为大模型提供简单明了的错误消息

示例:

# Rename a file
move_file("old_name.py", "new_name.py")

# Move a file to a different directory
move_file("src/temp.py", "archive/temp.py")

# Rename a directory
move_file("old_folder", "new_folder")

# Move with automatic parent directory creation
move_file("file.txt", "new_dir/sub_dir/file.txt")  # Creates new_dir/sub_dir if needed

错误处理:

  • 返回适用于 AI 助手的简化错误消息:
    • "File not found" — 源文件不存在时
    • "Destination already exists" — 目标路径已被占用时
    • "Permission denied" — 访问受限时
    • "Invalid path" — 存在安全违规时
    • "Move operation failed" — 发生意外错误时
获取参考项目

供大模型发现可用参考项目的工具。

**参数:**无

**返回值:**包含以下内容的字典:

  • count:可用项目的数量
  • projects:{"name": ..., "url": ...} 对象列表。url 是已配置的仓库 URL——url: null 的项目仍可使用参考文件工具,但无法使用 GitHub 工具。
  • usage:后续步骤说明

示例:

get_reference_projects()
# Returns: {
#   "count": 3,
#   "projects": [{"name": "docs", "url": "https://github.com/org/docs"}, ...],
#   "usage": "Pass a name as reference_name to the reference file tools, git(), and the GitHub read tools; issues can also be created, edited and commented on"
# }

使用场景:

  • 大模型发现有哪些参考项目可用
  • 初步探索其他代码库
  • 动态选择要浏览的参考项目
列出参考目录

列出参考项目中的文件和目录,并使用与主项目相同的 gitignore 筛选规则。

参数:

  • reference_name(字符串):参考项目名称

**返回值:**包含文件和目录名称的字符串列表

示例:

# List root directory of reference project (shows subdirectories)
list_reference_directory("docs")

# Then read files from subdirectories using read_reference_file
read_reference_file("examples", "src/components/Button.tsx")

功能:

  • 自动应用 gitignore 筛选(与主项目相同)
  • 排除 .git 目录
  • 返回参考项目中的相对路径
  • 验证参考项目是否存在
读取参考文件

读取参考项目中文件的内容。

参数:

  • reference_name(字符串):参考项目名称
  • file_path(字符串):参考项目中的文件路径(相对于参考项目根目录)
  • start_line(整数,可选):要返回的第一行(从 1 开始,包含该行)。必须与 end_line 一起提供。
  • end_line(整数,可选):要返回的最后一行(从 1 开始,包含该行)。必须与 start_line 一起提供。
  • with_line_numbers(布尔值,可选):为每行添加行号前缀。指定行范围时默认为 True,读取全文时默认为 False。

**返回值:**包含文件内容的字符串

示例:

# Read README from docs reference project
read_reference_file("docs", "README.md")

# Read source file from examples project
read_reference_file("examples", "src/app.py")

# Read specific lines with line numbers
read_reference_file("examples", "src/app.py", start_line=10, end_line=20)

# Read config file
read_reference_file("config", "settings/production.yml")

功能:

  • 只读访问(无法修改)
  • 使用与主项目文件相同的路径验证
  • 支持任何基于文本的文件格式
  • 以字符串形式返回原始文件内容

错误处理:

  • "Reference project not found" — reference_name 不存在时
  • "File not found" — 文件在参考项目中不存在时
  • "Invalid path" — 存在安全违规或路径遍历尝试时
  • "Permission denied" — 访问受限时
跨仓库 GitHub 访问

不带可选参数 reference_name 的 GitHub 工具会操作工作区仓库;带该参数时,则会操作指定的参考项目。可读取其中的问题、拉取请求、搜索结果和标签;也可以创建、编辑问题并发表评论。

功能:

  • 根据参考项目配置的 URL 确定仓库——不会执行克隆,因此仅配置 URL 的参考项目也可使用
  • 仅接受 get_reference_projects() 返回的名称;不接受任意 owner/repo 字符串
  • 任何不带 reference_name 参数的 GitHub 工具都以工作区仓库为目标
  • 两个仓库中的工作流 status-* 标签都会被拒绝;mcp-coder gh-tool set-status 操作当前检出,因此只有在某个同级仓库自己的检出中,才能通过该仓库的状态工作流推进其问题

**错误处理:**错误以 "Error: ..." 字符串返回,而非抛出:

  • "Error: Reference project '<name>' not found" - 名称不是参考项目时
  • "Error: Reference project '<name>' has no URL configured" - 参考项目未配置仓库 URL 时
检查文件大小

报告行数超过阈值的文件。

参数:

  • max_lines(整数,可选):行数阈值。默认使用服务的 --file-size-limit 标志值;若未设置,则使用 600

功能:

  • 统计项目目录下所有 UTF-8 文件的行数——包括所有文件类型,无论是否受版本控制——但排除 .git/ 和被项目根目录 .gitignore 匹配的文件。不读取嵌套的 .gitignore 文件
  • .large-files-allowlist 中列出的文件(每行一个路径,可使用 # 注释)不受限制;条目按精确路径匹配,不支持通配符
  • 当文件不再超过阈值时,或文件缺失、为二进制文件/非 UTF-8 文件,或被 .gitignore 匹配时,白名单条目会被报告为过期——例如,重命名或条目拼写错误后就可能出现这种情况
  • 违规列表和过期条目列表各自最多显示 50 项,并附带 showing X of Y 提示;上限为内部设置,没有参数可以提高上限

安全功能

  • 对所有路径进行规范化和验证,确保其始终位于项目目录内
  • 参考项目使用相同的路径验证和安全措施
  • 防止针对主项目和参考项目的路径遍历攻击
  • 以原子方式写入文件,防止数据损坏
  • 为确保安全,删除操作仅限于项目目录
  • 严格以只读方式访问参考项目的文件,防止意外修改
MCP 配置管理工具

为方便配置和安装此 MCP 服务,你可以使用 mcp-config 开发工具。此 CLI 工具可简化在多个客户端(Claude Desktop、VS Code 等)之间管理 MCP 服务配置的过程。

安装
# Install mcp-config
pip install git+https://github.com/MarcusJellinghaus/mcp-config.git
快速设置
# Setup for Claude Desktop with automatic configuration
mcp-config setup mcp-workspace "Filesystem Server" --project-dir /path/to/your/project

# Setup with reference projects
mcp-config setup mcp-workspace "Filesystem Server" \
  --project-dir /path/to/your/project \
  --reference-project docs=/path/to/documentation \
  --reference-project examples=/path/to/examples

# Setup with custom log configuration
mcp-config setup mcp-workspace "Filesystem Server" \
  --project-dir /path/to/your/project \
  --reference-project utils=/shared/utilities \
  --log-level DEBUG \
  --log-file /custom/path/server.log

了解更多:GitHub 上的 mcp-config

此工具会自动处理路径解析、环境检测和客户端专属配置格式,从而免去手动配置步骤并减少设置错误。

许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

MIT License 是一种限制较少的宽松许可证。在注明出处的前提下,它允许使用、复制、修改和分发。

链接

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。