项目简介

MCP文件系统服务器是一个基于 Model Context Protocol (MCP) 的后端实现,旨在为LLM客户端提供安全可控的本地文件系统访问能力。通过此服务器,LLM可以读取、写入、编辑、移动、删除文件和目录,以及搜索文件内容,所有操作均限定在预先设定的安全目录范围内。

主要功能点

  • 安全访问控制:仅允许在预先配置的目录内进行文件操作,防止未授权的文件系统访问。
  • 多种运行模式:支持 Stdio 和 SSE (Server-Sent Events) 两种运行模式,方便集成到不同的应用场景。
  • 全面的文件操作:支持读取、写入、编辑、复制、移动和删除文件。
  • 目录管理:支持创建、列出和删除目录。
  • 文件搜索:支持在指定目录下按关键词搜索文件内容。
  • 元数据访问:提供文件和目录的详细信息,如大小、修改时间等。

安装步骤

方法一:从源代码编译

  1. 克隆仓库
    git clone https://github.com/moguyn/mcp-go-filesystem.git
    cd mcp-go-filesystem
  2. 构建
    make build
  3. 安装二进制文件
    make install

方法二:使用 Docker

  1. 构建 Docker 镜像
    make docker-build
  2. 运行 Docker 容器
    make docker-run DIR=/path/to/allowed-directory
    将 '/path/to/allowed-directory' 替换为你希望允许访问的本地目录路径。

服务器配置

MCP客户端需要配置以下信息以连接到 MCP文件系统服务器:

{
  "serverName": "mcp-filesystem-server",
  "command": "mcp-server-filesystem",
  "args": [
    "/path/to/allowed-directory"
    //  指定允许访问的根目录,可以指定多个目录
  ]
}

参数说明:

  • 'serverName': 服务器名称,客户端用于识别。
  • 'command': 启动 MCP文件系统服务器的可执行文件命令,通常为 'mcp-server-filesystem' (如果已添加到系统路径) 或其完整路径。
  • 'args': 传递给服务器的命令行参数数组。
    • 第一个参数 '/path/to/allowed-directory' 是必需的,指定服务器允许访问的根目录。请替换为实际的本地目录路径。可以添加多个允许访问的目录路径。
    • 可以使用可选参数 '--mode' 指定服务器运行模式 (stdio 或 sse),默认为 stdio。例如:'"--mode=sse"'
    • 如果使用 SSE 模式,可以使用可选参数 '--listen' 指定监听地址和端口。例如:'"--listen=0.0.0.0:8080"'

示例配置 (SSE 模式):

{
  "serverName": "mcp-filesystem-server-sse",
  "command": "mcp-server-filesystem",
  "args": [
    "--mode=sse",
    "--listen=0.0.0.0:8080",
    "/path/to/allowed-directory"
  ]
}

基本使用方法

  1. 启动服务器:根据安装步骤选择源代码编译或 Docker 方式启动服务器,并确保指定了至少一个允许访问的目录。
  2. 配置 MCP 客户端:在 MCP 客户端中,添加上述服务器配置信息,确保 'command' 和 'args' 配置正确,指向已启动的 MCP文件系统服务器。
  3. 客户端调用工具:在 MCP 客户端中,可以使用 'read_file', 'write_file', 'list_directory' 等工具,通过指定文件或目录路径进行操作。所有路径都必须位于服务器配置中指定的允许访问的目录及其子目录下。

信息

分类

数据库与文件