伦敦地铁信息查询助手

一个通过命令行交互的AI旅行助手,使用Transport for London (TfL) API实时获取伦敦地铁信息,并通过Model Context Protocol (MCP)封装实现。

  • by Ruwi2002
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 Ruwi2002/TFL-mcp-chatbot

使用说明

TfL MCP聊天机器人🚇

命令行人工智能旅行助手,通过模型上下文协议(MCP)包装器使用伦敦交通局(TfL)API检索实时伦敦地铁信息。

该项目演示了会话系统如何使用代理架构与现实世界的API进行交互,其中聊天机器人与MCP服务器通信,MCP服务器将传输数据作为可调用工具公开。


特性

聊天机器人目前支持:

  • 检查伦敦地铁线路状态
  • 检索下一列车到达时间
  • 从自然语言中检测地铁线路和车站
  • 使用MCP服务器包装器访问TfL数据
  • 模块化Python后端架构

示例查询:

中心线状态
禧年线延迟了吗
牛津马戏团的下一班火车
下一班火车在滑铁卢


系统架构

该系统遵循代理架构:

User
 ↓
CLI Chatbot (Python)
 ↓
Intent Detection (utils)
 ↓
Service Layer (services)
 ↓
MCP Client
 ↓
MCP Server (Node.js)
 ↓
Transport for London API
 ↓
Live Transport Data

该架构演示了AI系统如何通过基于MCP的工具而不是直接的REST调用与API进行交互。


项目结构

tfl-mcp-chatbot/
│
├── chatbot.py
├── README.md
├── requirements.txt
├── .gitignore
│
├── config/
│   └── stations.py
│
├── services/
│   ├── arrivals.py
│   ├── line_status.py
│   └── mcp_client.py
│
├── utils/
│   └── detect.py
│
├── tests/
│   └── api_test.py
│
├── docs/
│   ├── Screenshots/
│   └── Report.docx
│
└── london-tfl-journey-status-mcp-server/

使用的技术

  • python
  • Node.js
  • 模型上下文协议(MCP)
  • 伦敦交通API
  • Git
  • GitHub

安装

克隆存储库:

git clone https://github.com/Ruwi2002/tfl-mcp-chatbot.git

导航到项目文件夹:

cd tfl-mcp-chatbot

安装Python依赖项:

pip install -r requirements.txt

运行MCP服务器

导航到MCP服务器文件夹:

cd london-tfl-journey-status-mcp-server

安装依赖项:

npm install

启动MCP服务器:

npm start

运行聊天机器人

返回到项目根目录并运行:

python chatbot.py

示例会话:

You: central line status
Bot: The Central line currently has Good Service.

You: next train at oxford circus
Bot: Next Central line train arrives in 2 minutes.

类型 exit 停止聊天机器人。


未来改进

  • 车站间行程规划
  • 基于Web的聊天机器人界面
  • 基于LLM的自然语言理解
  • 多线服务概述
  • 实时中断警报

项目目的

该项目是作为大学最后一年项目的一部分开发的,该项目探索了会话式人工智能系统如何使用模型上下文协议(MCP)与现实世界的API进行交互。

该原型演示了如何通过MCP工具访问传输数据,并通过对话界面呈现给用户。


许可证

该项目旨在用于教育和研究目的。