Kharkiv Metro MCP 服务器

使用说明(Markdown)

  • 项目简介

    • 该仓库实现了一个 MCP 服务器端,用于向 OpenCode/Claude 等 AI 客户端暴露哈尔科夫地铁的数据与功能接口。核心能力包括:托管资源、注册并执行工具、定义并渲染提示模板,并通过 JSON-RPC 与客户端通讯,支持多种传输(标准输入输出等)。
  • 主要功能点

    • MCP 服务器实现核心工具
      • get_route:从起始站到目标站的路线查询,支持选定语言、时间、日类型、输出格式等参数。
      • get_schedule:查询某站的日程安排,支持方向、日类型、语言等参数。
      • list_stations:列出所有站点,按线路筛选可选。
      • find_station:按名称进行模糊/别名查找。
    • 基于 kharkiv_metro_core 的路由、数据库、解析、国际化等模块,整合成可对接 LLM 的后端。
    • 通过 stdio 传输的 MCP 服务,兼容 JSON-RPC 客户端通信。
  • 安装步骤

    • 准备 Python 环境(建议 Python 3.11 及以上)。
    • 安装依赖(仓库中各包包含所需依赖,建议使用虚拟环境安装并安装 MCP 相关依赖)。
    • 运行 MCP 服务端(示例命令在后文给出,参考仓库 README 的约定):通过 uv 运行服务器模块,指定工作目录指向仓库根,模块路径为 kharkiv_metro_rp.mcp.server。
  • 服务器配置(MCP 客户端需要的配置,格式为 JSON;下列为准确示例,请按此结构配置) { "server": "kharkiv-metro", "type": "local", "enabled": true, "command": [ "uv", "run", "--directory", "/path/to/kharkiv-metro-rp", "python", "-m", "kharkiv_metro_rp.mcp.server" ], "args": [] } 注释:server 为 MCP 服务器标识名,command 为启动服务器的命令序列,args 为额外参数(若无则为空)。客户端在建立连接时仅需要 server、command 即可,无需深度修改。

  • 基本使用方法

    1. 启动 MCP 服务器
      • 将上述配置中的路径替换为实际路径,执行客户端提供的启动方式(如 uv run 方案)以启动服务器。
    2. 客户端连接与请求
      • 客户端通过 JSON-RPC 发送请求给服务器,例如请求 get_route、get_schedule、list_stations、find_station 等工具。
    3. 查看响应
      • MCP 服务器按工具定义的输入 Schema 验证请求并返回 JSON-RPC 响应,或文本形式的渲染文本。
    4. 运行与调试
      • 如有需要,可在服务器端通过日志与调试输出了解内部路由与计划的过程。
  • 其他注意

    • 服务器内部使用 kharkiv_metro_core 提供的路由、数据库、模型等核心逻辑,确保数据源、数据库初始化和调度信息的正确性。
    • 该实现支持语言(ua/en)、日期类型(weekday/weekend)等灵活设置,便于将来在不同 LLM 场景下扩展。

服务器信息