Token导航 LogoToken导航TokenDH.com
Ibus MCP logo
AI代理未说明官方级别未说明来源级核验

Ibus MCP

MCP Server

一个提供巴塞罗那TMB公交实时到站信息的MCP服务器,支持多线路查询和详细公交信息展示。

工具数

1

提示词数

0

GitHub Stars

4

资源数

0
JavaScriptClaudeAPI集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

esteveavi

提供方

esteveavi

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

TMB总线到达时间MCP服务器

一种模型上下文协议(MCP)服务器,为TMB(巴塞罗那大都市交通)公交车站提供实时公交车到达信息。

🚀 特性

  • 实时巴士到达:获取有关公共汽车何时到达的最新信息
  • 多线支持:查看停靠站的所有公交线路
  • 时间(分钟):到达时间以分钟为单位,便于理解
  • 详细信息:线路号、目的地、方向和公交车ID
  • 符合MCP标准:适用于任何MCP客户端,包括Claude Desktop

📋 先决条件

  • Node.js 18+
  • npm或纱线
  • TMB API证书(请访问https://developer.tmb.cat/)

🔧 安装

  1. 克隆或创建项目:
mkdir tmb-bus-mcp
cd tmb-bus-mcp
  1. 安装依赖项:
npm install
  1. 设置您的TMB API凭据:
# Copy the example environment file
cp .env.example .env

# Edit .env and add your credentials
# TMB_APP_ID=your_app_id
# TMB_APP_KEY=your_app_key
  1. 构建项目:
npm run build

🎯 用法

选项1:使用客户端(测试)

客户端非常适合测试和开发:

# Set environment variables
export TMB_APP_ID=your_app_id
export TMB_APP_KEY=your_app_key

# Query a specific bus stop
npm run client 2775

# List available tools
npm run client -- list

输出示例:

🚌 Bus Stop: Pl Espanya - FGC (108)
📅 Query Time: 11/6/2025, 10:30:00 AM

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚍 Line H12 (212) → Gornal
   Direction: return

   Next arrivals:
   • ⏱️  2 min (at 10:32:00) - Bus #3673
   • ⏱️  16 min (at 10:46:00) - Bus #8531

选项2:与Claude Desktop一起使用

将服务器添加到您的Claude Desktop配置中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json\ 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tmb-bus": {
      "command": "node",
      "args": ["/absolute/path/to/tmb-bus-mcp/dist/server.js"],
      "env": {
        "TMB_APP_ID": "your_app_id",
        "TMB_APP_KEY": "your_app_key"
      }
    }
  }
}

然后重新启动Claude Desktop。你现在可以问克劳德这样的问题:

  • “2775站有哪些公交车?”
  • “下一班公共汽车什么时候到西班牙广场?”
  • “显示所有到达108站的巴士”

选项3:使用主机(独立)

独立运行服务器:

export TMB_APP_ID=your_app_id
export TMB_APP_KEY=your_app_key
npm run host

🛠️ 架构说明

MCP服务器(src/server.ts)

核心组件:

  • 暴露 get_bus_arrivals 通过MCP协议的工具
  • 处理与TMB的iBus API的通信
  • 将原始API响应转换为用户友好的格式
  • 在stdio传输上运行,便于集成

主要职责:

  • 工具注册和发现
  • 请求验证
  • API通信与错误处理
  • 数据转换和格式化

主机应用程序(src/host.ts)

一个简单的包装:

  • 将MCP服务器作为子进程启动
  • 管理环境变量
  • 处理优雅关机

何时使用: 用于没有MCP客户端的独立部署或测试。

客户端应用程序(src/client.ts)

演示客户端:

  • 通过stdio连接到MCP服务器
  • 列出可用工具
  • 使用参数调用工具
  • 显示格式化结果

何时使用: 用于测试、开发或作为参考实现。

🔌 API集成详细信息

服务器连接到TMB的iBus API:

端点: https://api.tmb.cat/v1/itransit/bus/parades/{stopCode}

参数:

  • app_id:您的TMB应用程序ID
  • app_key:您的TMB应用程序密钥

响应结构:

{
  timestamp: number,              // Query timestamp
  parades: [{
    codi_parada: string,         // Stop code
    nom_parada: string,          // Stop name
    linies_trajectes: [{         // Lines serving this stop
      codi_linia: string,        // Line code
      nom_linia: string,         // Line name
      desti_trajecte: string,    // Destination
      id_sentit: number,         // 1=Outbound, 2=Return
      propers_busos: [{          // Upcoming buses
        temps_arribada: number,  // Arrival timestamp
        id_bus: number          // Bus identifier
      }]
    }]
  }]
}

📝 类型安全

该项目使用具有严格类型检查的TypeScript。所有API响应都已正确键入 src/types.ts:

  • TMBApiResponse:原始API响应结构
  • BusStopInfo:转换后的用户友好格式
  • FormattedBusArrival:个别线路信息

🧪 测试不同的公交车站

试试这些巴塞罗那巴士站:

  • 2775:随机停止
  • 108:PL西班牙-FGC
  • 1:加泰罗尼亚
  • 2554: 圣家族

🔍 运作原理

  1. 客户端请求:MCP客户端(如Claude)调用 get_bus_arrivals 带有停止代码的工具
  2. 服务器处理:MCP服务器通过stdio传输接收请求
  3. API查询:服务器向TMB的iBus API发出经过身份验证的请求
  4. 数据转换:原始API响应转换为可读格式
  5. 时间计算:到达时间戳转换为“到达前的分钟数”
  6. 响应:格式化文本返回给客户端
┌─────────┐         ┌──────────┐         ┌─────────┐
│  Client │────────▶│   MCP    │────────▶│   TMB   │
│ (Claude)│         │  Server  │         │   API   │
└─────────┘         └──────────┘         └─────────┘
     ▲                    │                    │
     │                    ▼                    │
     │              Transform Data             │
     │                    │                    │
     └────────────────────┴────────────────────┘

🚦 错误处理

服务器处理各种错误情况:

  • 缺少凭据:退出时显示明确的错误消息
  • 停止代码无效:返回用户友好错误
  • API错误:捕获并格式化API错误响应
  • 网络问题:处理超时和连接错误

🔐 安全说明

  • 永远不要承诺你的 .env 文件或API凭据
  • .env.example 文件显示了没有真实凭据的格式
  • 凭据是通过环境变量传递的,而不是硬编码的
  • 将MCP的内置传输安全性用于生产部署

📚 MCP协议详细信息

此服务器实现MCP(模型上下文协议):

  • 运输:stdio(标准输入/输出)
  • 能力:工具
  • 工具名称: get_bus_arrivals
  • 输入: { stopCode: string }
  • 输出:带巴士到达信息的格式化文本

🤝 贡献

要扩展此服务器,请执行以下操作:

  1. 在中添加新工具 server.ts getTools() 方法
  2. 在中实现处理程序 handleToolCall()
  3. 更新类型 types.ts 根据需要
  4. 使用客户端应用程序进行测试

📄 许可证

麻省理工学院

🙏 鸣谢

  • TMB API:https://developer.tmb.cat/
  • MCP-SDK:https://github.com/anthropics/modelcontextprotocol

______________________________________________________________________

问题? 请查看MCP文档,网址为https://modelcontextprotocol.io/

目录标签

目录标签

JavaScriptClaudeAPI集成公交查询本地部署实时数据交通服务MCP协议

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明noneremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP