STM Montevideo MCP 服务器

  • 使用场景概述
    • 该项目实现了一个完整的 MCP 服务器,可以向 LLM 客户端提供统一的上下文服务,包括对资源的访问、工具的执行以及 Prompt 模板的渲染,便于将交通数据与路由能力嵌入到对话或任务流程中。
  • 主要功能点
    • MCP 服务端:实现 MCP 协议的注册、列表工具、执行工具、以及其他 JSON-RPC 交互,支持基于会话的上下文能力声明和多传输协议(如 Stdio、SSE、WebSocket)等扩展能力(遵循 MCP 的服务器端职责)。
    • 资源与数据源:内置 CKAN/数据缓存机制,支持从 Montevideo 的开放数据源加载、缓存、以及本地 JSON 备份,以确保在网络受限场景下仍能提供数据。
    • 工具集成:提供 buscar_parada、proximos_buses、recorrido_linea、ubicacion_bus、como_llegar 等工具,支持参数校验、错误处理和灵活的输入场景(坐标、地址、街道交汇、线路寻路等)。
    • REST API 兼容:除了 MCP 协议外,还暴露 REST API,便于测试、演示和与现有前端整合(健康检查、数据查询、路线查询等)。
    • 远程 MCP 支持:可配置远程 MCP 服务端,实现通过远程传输向客户端提供 MCP 服务。
    • 数据缓存与缓存策略:引入磁盘缓存、内存缓存、以及本地静态数据(stm-*.json)等多层缓存,提升首次请求的响应速度并降低对 CKAN 的依赖。
  • 安装与运行
    • 在项目中已有完整的构建和运行脚本。通常通过以下方式启动:
      • 使用 npx 直接运行:npx mcp-stm-montevideo(若 npm 包已发布为命令行工具)。
      • 本地构建后运行:先安装依赖、编译代码,再使用 node dist/index.js 启动服务器(具体路径以打包产出为准)。
    • 数据获取与 warms-up:服务器在启动时会预加载/缓存数据,确保首次请求快速响应。
  • 服务器配置(给 MCP 客户端的配置示例说明)
    • MCP 客户端需提供服务器的连接信息,最常见的方式是通过一个 JSON 配置文件,其中包含服务器名称以及启动命令与参数,示意说明如下:
    • serverName: stm-montevideo
    • command: 使用 Node 直接运行的命令,例如 "node"
    • args: ["dist/index.js"] 或 ["dist/index.js", "--some-flag"]
    • 注:具体命令与参数需根据最终打包产出调整。仓库内部提供的测试与示例中,CLI/CLI-like 客户端连接通常通过类似如下的配置项实现(为描述用途给出,不作为实际代码):
      • 服务器名称: stm-montevideo
      • 启动命令: node
      • 启动参数: dist/index.js
    • 该配置用于 MCP 客户端建立连接并通过 MCP RPC 与服务器交互。
  • 基本使用方式
      1. 启动 MCP 服务器(本地或远程部署)并确保网络可访问。
      1. 使用 MCP 客户端建立连接,查看可用工具列表(tools/list)并逐一调用测试。
      1. 通过调用 buscar_parada、proximos_buses、recorrido_linea、ubicacion_bus、como_llegar 等工具,在对话场景中获得结构化的 JSON 返回,便于后续处理与拼接。
      1. 如需要扩展,服务器提供 REST API 作为辅助入口,便于快速集成与测试。
      1. 如要调试远程 MCP,请使用远程 MCP Endpoint(mcp)进行通信,确保 Transport 配置正确。

服务器信息