项目简介

文件系统MCP服务器 (MCP Filesystem Server) 是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在为大型语言模型 (LLM) 客户端提供安全可靠的文件系统访问能力。该服务器允许LLM客户端通过标准化的MCP协议,在预先设定的安全目录范围内,执行文件和目录的读取、写入、编辑、移动、搜索以及元数据获取等操作。它通过严格的路径验证和权限控制,确保LLM只能访问授权目录下的资源,从而有效保护本地文件系统的安全。

主要功能点

  • 安全访问控制:仅允许访问预先配置的目录,防止未授权的文件系统操作。
  • 文件操作:支持读取、写入、编辑和移动文件。
  • 目录操作:支持创建、列出目录内容、获取目录树结构和搜索目录。
  • 元数据访问:提供文件和目录的详细信息,如大小、创建时间、修改时间等。
  • 工具集成:以 MCP Tool 的形式向 LLM 客户端暴露文件系统操作能力,方便 LLM 按需调用。
  • Docker 部署:提供 Docker 镜像和 Docker Compose 配置,方便快速部署和容器化管理。

安装步骤

  1. 克隆仓库

    git clone https://github.com/gabrielmaialva33/mcp-filesystem.git
    cd mcp-filesystem
  2. 安装依赖 确保已安装 Node.js (>=22.13.1), pnpm (>=8.0.0)。然后运行:

    pnpm install
  3. 构建项目

    pnpm build

服务器配置

MCP 客户端需要配置以下信息以连接到文件系统MCP服务器。以下是配置示例(JSON 格式):

{
  "serverName": "filesystem-server",
  "command": "pnpm",
  "args": [
    "start",
    "/path/to/allowed/directory"  // 请替换为允许 LLM 客户端访问的本地目录路径
  ]
}

配置参数说明:

  • 'serverName': 服务器名称,客户端用于标识和管理连接。可以自定义,例如 "filesystem-server"。
  • 'command': 启动服务器的命令。这里使用 'pnpm' 运行 'start' 脚本。
  • 'args': 传递给启动命令的参数,'start' 脚本需要指定至少一个允许访问的目录路径。
    • '/path/to/allowed/directory': 请务必替换为实际的本地目录路径。这是服务器允许 LLM 客户端访问的根目录。可以配置多个允许访问的目录,作为额外的参数添加到 'args' 数组中。例如:'["start", "/path/dir1", "/path/dir2"]'。

Docker 部署配置示例:

如果使用 Docker 部署,MCP 客户端的 'command' 和 'args' 配置可以简化,服务器目录映射通过 Docker 卷完成。

{
  "serverName": "filesystem-server-docker",
  "command": "docker",
  "args": [
    "run",
    "-v", "/path/to/data:/data:ro",  // 可选,如果需要挂载只读数据卷
    "mcp-filesystem",
    "/data"                         // Docker 容器内的挂载点,对应服务器允许访问的目录
  ]
}

配置参数说明(Docker 部署):

  • 'command': 使用 'docker run' 命令启动容器。
  • 'args':
    • '-v /path/to/data:/data:ro': 可选,如果需要将宿主机的 '/path/to/data' 目录挂载到容器内的 '/data' 目录,并设置为只读 ('ro')。请根据实际需求配置数据卷挂载。
    • 'mcp-filesystem': Docker 镜像名称,根据实际构建的镜像名称填写。
    • '/data': 容器启动命令的参数,指定服务器允许访问的目录。这里 '/data' 对应 Dockerfile 中或 'docker run' 命令中挂载的数据卷路径。

基本使用方法

  1. 启动服务器 根据选择的部署方式(本地开发、Docker 或 Docker Compose),运行相应的启动命令。例如,本地开发启动服务器并允许访问 '/tmp/my_allowed_dir' 目录:

    pnpm start /tmp/my_allowed_dir
  2. 配置 MCP 客户端 在 MCP 客户端 (如 ChatDev 或其他支持 MCP 协议的应用) 中,配置上述的服务器连接信息 (JSON 配置)。

  3. 通过客户端调用工具 客户端连接成功后,即可通过自然语言指令或工具调用界面,使用文件系统相关的 Tool,例如:

    • 读取文件内容 (read_file)
    • 列出目录内容 (list_directory)
    • 创建新目录 (create_directory)
    • 等等。

    客户端会根据 Tool 的定义和参数,向文件系统MCP服务器发送 MCP 请求,服务器执行相应的操作并返回结果给客户端。

注意:

  • 首次运行服务器前,请确保 '/path/to/allowed/directory' (或 Docker 卷挂载的目录) 存在,并且服务器进程有读取和写入权限(根据需要)。
  • Docker 部署时,请先构建 Docker 镜像 ('docker build -t mcp-filesystem .')。

信息

分类

数据库与文件