FileSystem-MCP Server 使用说明
项目简介
FileSystem-MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供安全的文件系统访问能力。它通过标准化的 MCP 协议与客户端通信,允许 LLM 安全地读取、写入和搜索服务器端的文件,从而扩展 LLM 的上下文理解和操作能力。
主要功能点
- 读取文件: 允许 LLM 读取服务器上指定路径的文件内容,支持文本和二进制文件,并以文本或 Base64 编码形式返回内容。
- 写入文件: 允许 LLM 向服务器上指定路径的文件写入文本内容,用于更新或创建文件。
- 搜索文件: 允许 LLM 在服务器上指定目录及其子目录中搜索具有特定扩展名的文件,返回匹配的文件路径列表。
- 安全性: 通过预定义的允许目录列表和路径规范化处理,严格限制 LLM 只能访问授权的文件系统区域,有效防止未授权的文件操作和潜在的安全风险。
安装步骤
- 环境准备: 确保您的系统已安装 Python 3.7 或更高版本。建议使用虚拟环境隔离项目依赖。
- 安装 FileSystem-MCP: 使用 'uv pip install' 命令安装 FileSystem-MCP Server。在命令行终端中执行以下命令:
这将从 GitHub 仓库下载并安装 FileSystem-MCP Server 及其依赖项。uv pip install "git+https://github.com/aumsathwara/MCP.git@multiple-mcps#subdirectory=FileSystem-MCP"
服务器配置
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' 模块。
基本使用方法
- 启动服务器: 安装 FileSystem-MCP Server 后,在命令行终端中执行 'fs-mcp-server' 命令即可启动服务器(前提是安装过程中已正确配置可执行脚本)。或者,您可以使用 'python -m custom_mcp.server' 命令启动服务器。服务器启动后将监听来自 MCP 客户端的请求。
- 配置并运行 MCP 客户端: 使用兼容 MCP 协议的客户端(例如仓库中提供的 'client.py' 或其他 MCP 客户端库),根据上述“服务器配置”部分的信息配置客户端,指定连接到 FileSystem-MCP 服务器。
- 通过 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 的需求和工具的参数定义,构建相应的工具调用。
信息
分类
数据库与文件