使用说明
项目简介
本项目实现了一个简单的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' 提供文件读取服务。
安装步骤
-
克隆仓库
git clone https://github.com/Vijayk-213/Model-Context-Protocol.git cd Model-Context-Protocol -
创建并激活虚拟环境
python3 -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows -
安装依赖
pip install -r requirements.txt -
配置环境变量 在项目根目录下创建 '.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 协议规范的通用服务器。
基本使用方法
-
启动 MCP 服务器 在项目根目录下,运行以下命令启动服务器:
uvicorn mcp_server:app --host 127.0.0.1 --port 8000 --reload服务器将在 'http://127.0.0.1:8000' 地址运行。
-
运行客户端示例 (main.py) 运行 'main.py' 文件,它会向 MCP 服务器请求读取 'data.txt' 文件内容,并使用 Gemini API 处理文本:
python main.py请确保项目根目录下存在 'data.txt' 文件,或者修改 'main.py' 中的 'file_path' 变量为实际存在的文件路径。
-
通过 HTTP 请求访问 你可以使用任何 HTTP 客户端(如 curl, Postman 或浏览器)向服务器发送 GET 请求来读取文件。例如,要读取名为 'example.txt' 的文件,可以访问以下 URL:
http://127.0.0.1:8000/read-text-from-file?file_path=example.txt请将 'example.txt' 替换为你要读取的文件路径。
信息
分类
数据库与文件