使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的文件搜索服务器。它通过 MCP 协议向 LLM 客户端提供文件搜索功能,允许 LLM 应用调用该服务器的工具,在服务器端的文件系统中查找文件。
主要功能点
- 文件搜索工具: 提供名为 'file_search' 的工具,允许客户端指定关键词在服务器文件系统中进行文件搜索。
- 基于 MCP 协议: 使用 FastMCP 框架构建,符合 MCP 服务器规范,能够与 MCP 客户端进行通信。
- 简单的 JSON-RPC 通信: 通过标准输入/输出 (stdio) 传输协议与客户端交互,使用 JSON-RPC 格式进行请求和响应。
安装步骤
- 安装 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"
- macOS:
- 创建虚拟环境 (可选但推荐): 为了隔离项目依赖,建议创建虚拟环境。在项目根目录下执行:
或者使用 uv 创建:python3 -m venv .venvuv venv .venv - 激活虚拟环境:
- macOS/Linux:
source .venv/bin/activate - Windows:
.venv\Scripts\activate
- macOS/Linux:
- 安装依赖: 使用 uv 安装项目依赖 (如果使用虚拟环境,请先激活):
实际上,该项目非常简单,只有一个 'main.py' 文件,无需额外的 'pyproject.toml' 依赖文件,此步骤可以省略。uv pip install -r 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 文件的绝对路径 ] } }
基本使用方法
-
启动服务器: 配置好 MCP 客户端后,启动名为 'file-search' 的服务器。客户端会根据配置的命令和参数运行 'main.py',启动文件搜索服务器。
-
客户端调用工具: 在 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 格式返回给客户端。
信息
分类
数据库与文件