renfe_mcp_server
使用说明(简要、易操作的使用指南)
-
项目简介
- 该仓库实现了一个基于 MCP 的服务器,用以向 LLM 客户端提供“火车时刻查询”和“票价查询”等功能。通过 MCP 的资源、工具和提示模板等机制,LLM 可以以标准化方式读取数据、调用外部功能、渲染对话模板,从而实现对 Renfe 数据的统一访问。
-
主要功能点
- 资源管理:提供 train 相关数据的读取能力(如 GTFS 数据加载、站点信息)。
- 工具注册与调用:实现了若干 MCP Tool,用于查询列车时刻、获取票价、查找站点等,并对请求进行鉴权与速率限制。
- 提示模板(Prompts):服务器内部构造用于引导 LLM 的文本输出,便于与前端或调用方交互。
- 安全与合规:包含 API Key 验证、速率限制、HTTP/网络安全校验、日志与异常处理等,确保服务稳定与安全。
- 数据更新与安全治理:包含 GTFS 数据下载、Zip 安全提取、数据版本控制等机制。
-
安装步骤
- 安装依赖:在合适的 Python 环境中安装仓库所需依赖(如 Python 依赖、fastmcp、httpx、pydantic 等)。
- 数据准备:确保 GTFS 数据目录存在(默认 renfe_schedule),可通过更新脚本获取最新数据。
- 启动服务器:运行主入口以启动 MCP 服务器,该服务器暴露工具接口供 MCP 客户端接入。
-
服务器配置(MCP 客户端连接所需的最小配置,使用 JSON 表达,说明仅用于客户端对接) { "server": "RenfeMCPServer", "command": "python", "args": ["-m", "renfe_mcp.server"] }
注释:
- server: 服务器名称,标识该 MCP 服务实例。
- command: 启动服务器所用的命令(这里使用 Python 运行模块)。
- args: 启动参数,指定模块路径来执行入口。 说明:MCP 客户端仅需这些信息来启动对接,与服务器的具体实现无关,确保客户端可以通过 JSON-RPC 与服务器进行交互。
-
基本使用方法
- 启动:在支持的环境中执行上述命令,服务器启动后将通过 MCP 协议暴露工具。
- 交互:通过 MCP 客户端发送 JSON-RPC 请求,调用例如查询列车、获取票价、查找站点等工具,并获取结构化响应。
- 安全性:如需要,配置 API Key、速率限制等以符合生产环境的安全策略。