使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的文件系统服务器,旨在为大型语言模型 (LLM) 应用提供安全的文件系统访问能力。它允许 LLM 通过标准化的 MCP 协议,调用服务器提供的工具来操作文件和目录,但仅限于预先配置的允许目录内。此仓库是原文件系统 MCP 服务器的扩展,增加了递归目录列表功能。

主要功能点

  • 安全的文件访问: 仅允许访问预先配置的目录,防止 LLM 访问未授权的文件系统区域。
  • 文件读写操作: 支持读取文件内容、写入文件内容、编辑文件内容(支持 diff 预览)。
  • 目录管理: 支持创建目录、列出目录内容(包括递归列表和目录树)、移动文件和目录。
  • 文件信息查询: 获取文件和目录的元数据(大小、创建时间、修改时间等)。
  • 工具化接口: 通过 MCP 工具 (Tools) 的形式暴露文件系统功能,方便 LLM 调用。
  • 递归目录列表: 扩展了目录列表工具,支持递归列出子目录内容。

安装步骤

  1. 创建项目目录: 如果尚未创建,请创建项目目录并进入该目录,例如 'mkdir filesystem && cd filesystem'。
  2. 初始化 Node.js 项目: 如果目录中没有 'package.json' 文件,运行 'npm init -y' 初始化。
  3. 添加所需文件: 创建 'package.json', 'tsconfig.json' 和 'index.ts' 文件,并将仓库中提供的代码复制粘贴到对应文件中。
  4. 安装依赖: 在项目目录下运行 'npm install @modelcontextprotocol/sdk zod zod-to-json-schema diff minimatch'。
  5. 构建项目: 运行 'npm run build' 命令,编译 TypeScript 代码到 'dist' 目录。

服务器配置

MCP 客户端(例如 Claude Desktop)需要配置 MCP 服务器的启动命令和参数才能连接。以下是 'claude_desktop_config.json' 的配置示例:

{
  "mcpServers": {
    "filesystem": {
      "command": "/usr/local/bin/node",
      "args": [
        "dist/index.js",
        "/path/to/allowed/directory"
      ]
    }
  }
}

参数说明:

  • 'command': Node.js 的可执行文件路径,通常可以使用 'which node' 命令查找。
  • 'args': 启动服务器的参数列表。
    • '"dist/index.js"': 编译后的服务器入口文件路径,相对于 'command' 的执行目录。
    • '"/path/to/allowed/directory"': 必需参数,允许服务器访问的根目录。可以指定多个允许目录,每个目录作为 'args' 数组中的一个元素。请替换为您希望允许 LLM 访问的实际目录的绝对路径。

基本使用方法

配置完成后,MCP 客户端(如 Claude Desktop)将能够通过以下工具与文件系统服务器交互:

  • '/read_file path: "/path/to/file"': 读取文件内容。
  • '/write_file path: "/path/to/file" content: "文件内容"': 写入文件内容。
  • '/list_directory path: "/path/to/directory"': 列出目录内容。
  • '/directory_tree path: "/path/to/directory"': 获取目录树结构。
  • 其他工具如 '/edit_file', '/move_file', '/get_file_info' 等,请参考工具描述使用。

信息

分类

数据库与文件