使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的文件搜索服务器。它通过 MCP 协议向 LLM 客户端提供文件搜索功能,允许 LLM 应用调用该服务器的工具,在服务器端的文件系统中查找文件。

主要功能点

  • 文件搜索工具: 提供名为 'file_search' 的工具,允许客户端指定关键词在服务器文件系统中进行文件搜索。
  • 基于 MCP 协议: 使用 FastMCP 框架构建,符合 MCP 服务器规范,能够与 MCP 客户端进行通信。
  • 简单的 JSON-RPC 通信: 通过标准输入/输出 (stdio) 传输协议与客户端交互,使用 JSON-RPC 格式进行请求和响应。

安装步骤

  1. 安装 uv (可选但推荐): uv 是一个更快的 Python 包安装和虚拟环境管理工具,可以加速依赖安装过程。根据您的操作系统,选择相应的命令安装 uv:
    • macOS:
      curl -LsSf https://astral.sh/uv/install.sh | sh
    • Windows:
      powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  2. 创建虚拟环境 (可选但推荐): 为了隔离项目依赖,建议创建虚拟环境。在项目根目录下执行:
    python3 -m venv .venv
    或者使用 uv 创建:
    uv venv .venv
  3. 激活虚拟环境:
    • macOS/Linux:
      source .venv/bin/activate
    • Windows:
      .venv\Scripts\activate
  4. 安装依赖: 使用 uv 安装项目依赖 (如果使用虚拟环境,请先激活):
    uv pip install -r pyproject.toml
    实际上,该项目非常简单,只有一个 'main.py' 文件,无需额外的 'pyproject.toml' 依赖文件,此步骤可以省略。

服务器配置

MCP 客户端需要配置服务器的启动命令才能连接到文件搜索服务器。以下是针对本项目的服务器配置信息,客户端应根据此配置启动服务器进程。

{
  "file-search": {  // 服务器名称,客户端通过此名称引用
    "command": "uv", // 启动服务器的命令,这里使用 uv (假设已安装 uv,也可以直接使用 python3)
    "args": [       // 启动命令的参数
      "--directory", // 指定工作目录
      "/Users/rami/Desktop/file-search", //  请替换为 main.py 文件所在的实际目录的绝对路径
      "run",        // uv 的子命令,表示运行 Python 脚本
      "main.py"     // 要运行的 Python 脚本文件名
    ]
  }
}

注意:

  • 请将 '"/Users/rami/Desktop/file-search"' 替换为您实际存放 'main.py' 文件的目录的绝对路径。
  • 如果您没有安装 'uv' 或者希望直接使用 'python3' 启动,可以将 'command' 修改为 '"python3"',并相应调整 'args' 参数,例如:
    {
      "file-search": {
        "command": "python3",
        "args": [
          "/Users/rami/Desktop/file-search/main.py" // main.py 文件的绝对路径
        ]
      }
    }

基本使用方法

  1. 启动服务器: 配置好 MCP 客户端后,启动名为 'file-search' 的服务器。客户端会根据配置的命令和参数运行 'main.py',启动文件搜索服务器。

  2. 客户端调用工具: 在 LLM 应用中,可以使用 MCP 客户端发送工具调用请求,使用 'file_search' 工具进行文件搜索。客户端需要指定 'server_name' 为 'file-search','tool_name' 为 'file_search',并提供搜索关键词作为参数。

    例如,客户端可以发送如下格式的请求 (具体格式取决于 MCP 客户端的实现,这里仅为示例):

    <use_mcp_tool>
      <server_name>file-search</server_name>
      <tool_name>file_search</tool_name>
      <arguments>
        {
          "query": "your_search_term"  //  将 "your_search_term" 替换为您要搜索的关键词
        }
      </arguments>
    </use_mcp_tool>

    服务器收到请求后,会在服务器的文件系统中搜索包含关键词的文件,并将搜索结果以 JSON 格式返回给客户端。

信息

分类

数据库与文件