FileSystem-MCP Server 使用说明

项目简介

FileSystem-MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供安全的文件系统访问能力。它通过标准化的 MCP 协议与客户端通信,允许 LLM 安全地读取、写入和搜索服务器端的文件,从而扩展 LLM 的上下文理解和操作能力。

主要功能点

  • 读取文件: 允许 LLM 读取服务器上指定路径的文件内容,支持文本和二进制文件,并以文本或 Base64 编码形式返回内容。
  • 写入文件: 允许 LLM 向服务器上指定路径的文件写入文本内容,用于更新或创建文件。
  • 搜索文件: 允许 LLM 在服务器上指定目录及其子目录中搜索具有特定扩展名的文件,返回匹配的文件路径列表。
  • 安全性: 通过预定义的允许目录列表和路径规范化处理,严格限制 LLM 只能访问授权的文件系统区域,有效防止未授权的文件操作和潜在的安全风险。

安装步骤

  1. 环境准备: 确保您的系统已安装 Python 3.7 或更高版本。建议使用虚拟环境隔离项目依赖。
  2. 安装 FileSystem-MCP: 使用 'uv pip install' 命令安装 FileSystem-MCP Server。在命令行终端中执行以下命令:
    uv pip install "git+https://github.com/aumsathwara/MCP.git@multiple-mcps#subdirectory=FileSystem-MCP"
    这将从 GitHub 仓库下载并安装 FileSystem-MCP Server 及其依赖项。

服务器配置

FileSystem-MCP 服务器需要通过 MCP 客户端连接才能使用。MCP 客户端需要配置服务器的启动命令 (command) 及其参数 (args) 以建立连接。以下是 FileSystem-MCP 服务器的典型配置信息,以 JSON 格式提供:

{
  "server_name": "FileSystem-MCP",
  "command": "fs-mcp-server",
  "args": []
}

参数说明:

  • 'server_name': 服务器的名称,用于标识和管理连接。设置为 "FileSystem-MCP" 或您自定义的名称。
  • 'command': 启动 FileSystem-MCP 服务器的可执行命令。如果安装成功且 'fs-mcp-server' 命令已添加到系统 PATH 环境变量,则直接使用 "fs-mcp-server"。
  • 'args': 启动命令的参数列表。FileSystem-MCP 服务器默认配置无需额外参数,因此设置为空列表 '[]'。

备选配置: 如果 'fs-mcp-server' 命令无法直接执行(例如未添加到 PATH),或者您希望直接通过 Python 模块运行,可以使用以下配置:

{
  "server_name": "FileSystem-MCP",
  "command": "python",
  "args": ["-m", "custom_mcp.server"]
}

在这种配置下,'command' 设置为 "python",'args' 设置为 '["-m", "custom_mcp.server"]',表示使用 Python 解释器运行 'custom_mcp.server' 模块。

基本使用方法

  1. 启动服务器: 安装 FileSystem-MCP Server 后,在命令行终端中执行 'fs-mcp-server' 命令即可启动服务器(前提是安装过程中已正确配置可执行脚本)。或者,您可以使用 'python -m custom_mcp.server' 命令启动服务器。服务器启动后将监听来自 MCP 客户端的请求。
  2. 配置并运行 MCP 客户端: 使用兼容 MCP 协议的客户端(例如仓库中提供的 'client.py' 或其他 MCP 客户端库),根据上述“服务器配置”部分的信息配置客户端,指定连接到 FileSystem-MCP 服务器。
  3. 通过 LLM 调用工具: 在 LLM 应用中,当需要进行文件系统操作时,通过 MCP 客户端调用 FileSystem-MCP 服务器提供的工具,例如 'read_file'、'write_file' 或 'search_file'。LLM 可以根据工具的描述和参数,构造合适的工具调用请求,FileSystem-MCP 服务器将执行相应的操作并将结果返回给 LLM。

示例工具调用 (假设使用 'client.py' 客户端):

# ... 客户端代码 ...
response = await client.session.call_tool("read_file", {"file_path": "example.txt"})
print(response.content)

上述代码示例展示了如何通过 MCP 客户端调用 'read_file' 工具读取名为 'example.txt' 的文件内容。实际使用时,请根据 LLM 的需求和工具的参数定义,构建相应的工具调用。

信息

分类

数据库与文件