首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
servers2025-05-267分享
github
Node.js 服务器,实现用于文件系统操作的模型上下文协议(MCP)
By modelcontextprotocol
2025-05-267
github
详情内容

文件系统 MCP 服务器

基于 Node.js 的服务器,实现用于文件系统操作的模型上下文协议 (MCP)。

功能特性

  • 读取/写入文件
  • 创建/列出/删除目录
  • 移动文件/目录
  • 搜索文件
  • 获取文件元数据

注意: 服务器只允许在通过 args 指定的目录内进行操作。

API

资源

  • file://system: 文件系统操作接口

工具

  • read_file

    • 读取文件的完整内容
    • 输入: path (字符串)
    • 使用 UTF-8 编码读取完整的文件内容
  • read_multiple_files

    • 同时读取多个文件
    • 输入: paths (字符串数组)
    • 读取失败不会停止整个操作
  • write_file

    • 创建新文件或覆盖现有文件(请谨慎使用此功能)
    • 输入:
      • path (字符串): 文件路径
      • content (字符串): 文件内容
  • edit_file

    • 使用高级模式匹配和格式化进行选择性编辑
    • 功能特性:
      • 基于行和多行的内容匹配
      • 保留缩进的空白符规范化
      • 多个同时编辑,位置正确
      • 缩进样式检测和保留
      • 带上下文的 Git 风格差异输出
      • 使用试运行模式预览更改
    • 输入:
      • path (字符串): 要编辑的文件
      • edits (数组): 编辑操作列表
        • oldText (字符串): 要搜索的文本(可以是子字符串)
        • newText (字符串): 用来替换的文本
      • dryRun (布尔值): 预览更改而不应用 (默认: false)
    • 试运行返回详细的差异和匹配信息,否则应用更改
    • 最佳实践: 在应用更改之前,始终先使用 dryRun 预览更改
  • create_directory

    • 创建新目录或确保其存在
    • 输入:path (字符串)
    • 必要时创建父目录
    • 若目录已存在则静默成功
  • list_directory

    • 列出目录内容,并以 [FILE] 或 [DIR] 前缀标注
    • 输入:path (字符串)
  • move_file

    • 移动或重命名文件和目录
    • 输入:
      • source (字符串)
      • destination (字符串)
    • 若目标位置已存在则失败
  • search_files

    • 递归搜索文件/目录
    • 输入:
      • path (字符串):起始目录
      • pattern (字符串):搜索模式
      • excludePatterns (字符串数组):排除任何模式。支持glob模式。
    • 不区分大小写的匹配
    • 返回匹配项的完整路径
  • get_file_info

    • 获取详细的文件/目录元数据
    • 输入:path (字符串)
    • 返回:
      • 大小
      • 创建时间
      • 修改时间
      • 访问时间
      • 类型 (文件/目录)
      • 权限
  • list_allowed_directories

    • 列出服务器允许访问的所有目录
    • 无需输入
    • 返回:
      • 此服务器可以读写的目录

与 Claude 桌面版一起使用

将以下内容添加到您的 claude_desktop_config.json 文件中:

注意:您可以通过将沙盒目录挂载到 /projects 来提供给服务器。添加 ro 标志将使服务器无法写入该目录。

Docker

注意:默认情况下,所有目录都必须挂载到 /projects

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/filesystem",
        "/projects"
      ]
    }
  }
}

NPX

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
      ]
    }
  }
}

VS Code 使用方法

快速安装,点击下方安装按钮...

在 VS Code 中使用 NPX 安装 在 VS Code Insiders 中使用 NPX 安装

在 VS Code 中使用 Docker 安装 在 VS Code Insiders 中使用 Docker 安装

对于手动安装,请将以下 JSON 代码块添加到 VS Code 的用户设置 (JSON) 文件中。您可以按 Ctrl + Shift + P 并输入 Preferences: Open Settings (JSON) 来完成此操作。

或者,您可以将其添加到工作区中的 .vscode/mcp.json 文件中。这将允许您与他人共享配置。

请注意,.vscode/mcp.json 文件中不需要 mcp 键。

您可以通过将沙箱目录挂载到 /projects 来提供给服务器。添加 ro 标志将使服务器无法写入该目录。

Docker

注意:默认情况下,所有目录都必须挂载到 /projects

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "--mount", "type=bind,src=${workspaceFolder},dst=/projects/workspace",
          "mcp/filesystem",
          "/projects"
        ]
      }
    }
  }
}

NPX

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "${workspaceFolder}"
        ]
      }
    }
  }
}

构建

Docker 构建:

docker build -t mcp/filesystem -f src/filesystem/Dockerfile .

许可证

此 MCP 服务器使用 MIT 许可证授权。这意味着您可以自由地使用、修改和分发该软件,但须遵守 MIT 许可证的条款和条件。更多详情,请参阅项目仓库中的 LICENSE 文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档