使用说明

项目简介

go-mcp-file-server 是一个基于 Go 语言实现的 MCP (Model Context Protocol) 服务器,它将本地文件系统作为资源暴露给 MCP 客户端,使得 LLM 应用可以通过 MCP 协议远程访问和操作文件。该服务器主要提供文件查询和打开两个核心功能,可以作为 LLM 访问本地文件系统的桥梁。

主要功能点

  • 资源管理 (Resources): 将本地文件系统抽象为资源,允许客户端通过 MCP 协议访问文件信息。
  • 工具 (Tools): 提供 'file_query' 和 'file_open' 两个工具,分别用于文件查询和文件打开操作。
    • 'file_query': 允许客户端根据文件名或关键词查询本地文件系统,并返回 CSV 格式的文件信息列表。支持 'LIKE' 和 'GLOB' 两种查询模式。
    • 'file_open': 允许客户端请求服务器打开指定文件,实际是在服务器端本地打开文件,通常用于触发文件浏览器打开文件所在目录或使用默认程序打开文件。
  • Prompt 模板 (Prompts): 仓库本身未显式提供 Prompt 模板功能,但可以通过客户端灵活构建 Prompt 以调用服务器提供的工具。
  • 协议支持: 使用 JSON-RPC over SSE (Server-Sent Events) 协议与客户端通信,通过 HTTP 提供服务。
  • 文件系统监控: 可选的文件系统事件监控功能,可以实时追踪文件系统的变化(添加、修改、删除、重命名)并更新索引,保持数据同步。
  • 界面操作: 提供简单的图形界面,方便用户进行配置和操作。

安装步骤

  1. 下载软件: 从仓库 README 提供的 SourceForge 链接下载预编译好的 Windows 版本的 'go-mcp-file-server' 软件压缩包。
  2. 解压: 将压缩包解压到本地磁盘的任意目录。
  3. 运行服务器: 双击解压目录中的 'go-mcp-file-server.exe' 文件即可启动服务器。服务器默认监听地址为 '0.0.0.0',端口为 '8888',并启用 MCP 服务。

服务器配置

MCP 服务器是为 MCP 客户端提供文件系统访问能力的后端服务,客户端需要配置服务器的连接信息才能使用。以下是一个 MCP 客户端的服务器配置示例 (JSON 格式),请将此配置添加到您的 MCP 客户端的服务器列表中。

{
  "mcpServers": {
    "filesystem": {
      "url": "http://localhost:8888/sse",
      "protocol": "sse",
      "transport": "http",
      "actions": [
        {
          "tool_call": "file_query",
          "description": "使用文件名或关键词查询文件,返回文件信息列表",
          "parameters": [
            {
              "name": "filename",
              "type": "string",
              "required": true,
              "description": "要查询的文件名或关键词,支持 LIKE 和 GLOB 查询规则"
            },
            {
              "name": "limit",
              "type": "number",
              "default": 100,
              "description": "限制返回结果的最大数量"
            }
          ]
        },
        {
          "tool_call": "file_open",
          "description": "打开指定文件",
          "parameters": [
            {
              "name": "filename",
              "type": "string",
              "required": true,
              "description": "要打开的文件名或关键词"
            }
          ]
        }
      ]
    }
  }
}

配置参数说明:

  • 'url': MCP 服务器的 SSE 接口地址,默认为 'http://localhost:8888/sse'。如果服务器部署在远程机器或修改了端口,请相应修改此 URL。
  • 'protocol': 使用的协议,这里为 'sse' (Server-Sent Events)。
  • 'transport': 传输层协议,这里为 'http'。
  • 'actions': 声明服务器提供的工具 (Tools)。
    • 'tool_call': 工具的名称,客户端通过此名称调用工具。
    • 'description': 工具的描述信息,用于在客户端界面展示。
    • 'parameters': 工具的参数列表。
      • 'name': 参数名称。
      • 'type': 参数类型,例如 'string'、'number'。
      • 'required': 是否为必选参数。
      • 'default': 参数默认值(可选)。
      • 'description': 参数描述信息。

基本使用方法

  1. 启动 MCP 服务器: 运行 'go-mcp-file-server.exe'。
  2. 配置 MCP 客户端: 将上述 JSON 配置添加到您的 MCP 客户端配置中,确保 URL 地址与服务器实际监听地址一致。
  3. 连接服务器: 在 MCP 客户端中连接到名为 'filesystem' 的 MCP 服务器。
  4. 使用文件查询工具: 在客户端中调用 'file_query' 工具,输入 'filename' (文件名或关键词,可以使用 'LIKE' 或 'GLOB' 语法进行模糊查询),设置 'limit' (可选,限制返回结果数量),即可查询文件系统。查询结果将以 CSV 格式返回。
  5. 使用文件打开工具: 在客户端中调用 'file_open' 工具,输入 'filename' (文件名或关键词),即可在服务器本地打开文件。

注意事项

  • 该服务器仅实现了文件查询和打开工具,其他 MCP 协议定义的功能(如 Prompt 模板管理、资源管理等)可能需要根据实际仓库代码进行评估。
  • 服务器默认使用 SQLite 数据库存储文件索引,数据库文件 'sqlite3.db' 位于 'config' 目录下。
  • 首次运行或索引重建后,服务器会扫描配置的磁盘驱动器并建立索引,扫描时间取决于文件数量。
  • 可以通过修改 'config.json' 文件配置服务器监听地址、端口、扫描驱动器、过滤文件夹等。
  • 视频演示可以参考 README 中提供的 YouTube 链接。

信息

分类

数据库与文件