使用说明

项目简介

本项目实现了一个简单的MCP(Model Context Protocol)服务器,它允许LLM客户端通过HTTP请求访问和读取服务器本地文件系统中的文件内容。此外,它还集成了Google Gemini API,可以对读取的文本内容进行处理,例如总结。虽然项目宣称是MCP服务器,但从代码实现来看,更像是一个提供文件读取功能的HTTP API 服务,并通过 'FastMCP' 类进行了初步的MCP框架尝试。目前只实现了资源读取功能,工具和Prompt模板功能未在代码中体现。

主要功能点

  • 文件读取: 支持读取多种文本文件格式,包括 '.txt', '.csv', '.json', '.xml', '.docx' 等。
  • 流式读取: 对于大文件,可能采用了流式读取(代码中未明确体现,但README提及)。
  • Gemini API集成: 可以使用Google Gemini API处理读取的文本内容(示例代码在 'main.py' 中)。
  • HTTP API: 通过简单的HTTP GET请求 '/read-text-from-file' 提供文件读取服务。

安装步骤

  1. 克隆仓库

    git clone https://github.com/Vijayk-213/Model-Context-Protocol.git
    cd Model-Context-Protocol
  2. 创建并激活虚拟环境

    python3 -m venv venv
    source venv/bin/activate   # Linux/macOS
    # venv\Scripts\activate  # Windows
  3. 安装依赖

    pip install -r requirements.txt
  4. 配置环境变量 在项目根目录下创建 '.env' 文件,并添加 Google Gemini API 密钥和 MCP 服务器地址:

    MCP_SERVER_URL=http://127.0.0.1:8000
    GEMINI_API_KEY=你的Gemini API密钥

    请将 '你的Gemini API密钥' 替换为你自己的 Gemini API 密钥。

服务器配置

以下是 MCP 客户端连接此服务器所需的配置信息(JSON 格式)。请注意,由于此服务器并非标准 MCP 服务器,以下配置仅供参考,实际客户端可能需要根据具体实现进行适配。

{
  "server name": "filesystem-mcp-server",
  "command": "uvicorn",
  "args": [
    "mcp_server:app",
    "--host",
    "127.0.0.1",
    "--port",
    "8000",
    "--reload"
  ],
  "description": "文件系统 MCP 服务器 (HTTP API)",
  "protocol": "http",  //  实际使用HTTP协议
  "host": "127.0.0.1",
  "port": 8000,
  "endpoints": [
    {
      "path": "/read-text-from-file",
      "method": "GET",
      "description": "读取文件内容"
    }
  ],
  "capabilities": [
    "resources:read" //  声明服务器提供的能力,这里仅有资源读取
  ]
}

配置参数说明:

  • 'server name': 服务器的名称,可以自定义。
  • 'command': 启动服务器的命令,这里使用 'uvicorn'。
  • 'args': 启动命令的参数,包括指定 FastAPI 应用入口 'mcp_server:app',监听地址 '127.0.0.1',端口 '8000',以及开启热重载 '--reload' (开发模式下使用)。
  • 'description': 服务器的简短描述。
  • 'protocol': 服务器使用的协议,这里是 'http'。
  • 'host': 服务器监听的主机地址。
  • 'port': 服务器监听的端口号。
  • 'endpoints': 服务器提供的API端点列表,这里列出了 '/read-text-from-file' 端点。
  • 'capabilities': 声明服务器提供的能力,例如 'resources:read' 表示提供资源读取能力。

请注意: 此配置仅为示例,实际 MCP 客户端可能需要更详细的配置或采用不同的方式与此服务器交互。'/invoke' 端点虽然在 'README.md' 中提及,但实际代码中并未实现,因此在配置中未列出。此服务器更像是一个定制化的文件读取服务,而非完全符合 MCP 协议规范的通用服务器。

基本使用方法

  1. 启动 MCP 服务器 在项目根目录下,运行以下命令启动服务器:

    uvicorn mcp_server:app --host 127.0.0.1 --port 8000 --reload

    服务器将在 'http://127.0.0.1:8000' 地址运行。

  2. 运行客户端示例 (main.py) 运行 'main.py' 文件,它会向 MCP 服务器请求读取 'data.txt' 文件内容,并使用 Gemini API 处理文本:

    python main.py

    请确保项目根目录下存在 'data.txt' 文件,或者修改 'main.py' 中的 'file_path' 变量为实际存在的文件路径。

  3. 通过 HTTP 请求访问 你可以使用任何 HTTP 客户端(如 curl, Postman 或浏览器)向服务器发送 GET 请求来读取文件。例如,要读取名为 'example.txt' 的文件,可以访问以下 URL:

    http://127.0.0.1:8000/read-text-from-file?file_path=example.txt

    请将 'example.txt' 替换为你要读取的文件路径。

信息

分类

数据库与文件