公交车追踪器mcp
MCP(模型上下文协议)服务器,它提供了一小套工具来获取两个方向的预定巴士出发: home→bar 和 bar→home.
此存储库包含一个小型MCP服务器,可以从CLI(stdin/stdout传输)运行,也可以从其他Node代码以编程方式启动。它将远程出发JSON规范化为一种宽容、可预测的形状,并公开机器友好的结构化结果和简短的人类可读文本。
关键文件
package.json--项目脚本和依赖关系tsconfig.json--TypeScript配置src/cli.ts--通过stdin/stdout启动MCP服务器的CLI入口点src/server.ts--MCP工具的实施(导出createServer和fetchDepartures)
它做什么
- 启动名为的MCP服务器
bus-tracker-mcp. - 注册主工具
bus_departures它接受枚举输入(homeToBar或barToHome)并返回结构化的出发数据。 - 注册了两个方便的别名工具:
home_to_bar_departures和bar_to_home_departures.
安装并运行
先决条件
- 安装了Node.js(推荐LTS)和npm。
开发(无构建)
# install deps
npm ci
# run in dev mode (uses tsx to run src/cli.ts)
npm run dev构建并运行
# build TypeScript to dist/
npm run build
# run the built CLI directly
node dist/cli.js
# or install locally and run the CLI globally
npm link
bus-tracker-mcp在VS代码中使用
将以下内容添加到mcp.json配置文件中。
"bus-tracker": {
"command": "npx",
"args": ["-y", "@chrislaughlin/bus-tracker-mcp@latest"]
}您可以从Visual Studio Code轻松运行和调试服务器。以下是一些推荐的步骤和示例启动配置。
- 在VS Code中打开项目文件夹(
File → Open...). - 确保已安装Node.js
npm ci已运行一次以安装依赖项。 - 使用集成终端运行开发脚本:
npm run dev- (可选)添加调试启动配置,以便您可以从“运行”视图启动服务器,并在集成终端中查看输出。创建一个
.vscode/launch.json具有以下配置:
{
"version": "0.2.0",
"configurations": [
{
"name": "Run bus-tracker-mcp (dev)",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"console": "integratedTerminal",
"cwd": "${workspaceFolder}"
}
]
}- 从运行和调试面板启动配置(选择
Run bus-tracker-mcp (dev)并按下绿色播放按钮)。您的服务器将在集成终端中启动,并通过stdin/stdout进行通信。
关于VS Code环境的注意事项:
- 您不需要特殊的VS Code扩展来运行服务器,但改进Node.js/TypeScript编辑的扩展(ESLint、TypeScript Hero、npm脚本)可以提供帮助。
- 如果您更喜欢运行构建的JS,请更改启动配置以运行
node反对dist/cli.js之后npm run build.
程序化使用
您可以通过导出的工厂以编程方式导入和启动服务器 src/server.ts:
import { createServer } from './src/server.js';
const server = createServer();
// attach an MCP transport (the CLI uses stdio) and start sending requests例子
- 开发运行(stdin/stdout传输)
- 启动服务器:
npm run dev- 服务器使用stdio传输(请参阅
src/cli.ts)并使用MCP通过stdin/stdout进行通信。
- 示例工具响应(结构化)
这些工具返回一个结果对象,该对象具有人类可读性 content 和 structuredContentThe structuredContent 看起来像:
{
"departures": [
{
"scheduled": "2025-11-06T18:30:00.000Z",
"dueMinutes": 12,
"raw": { "departureTimePlanned": "...", "departureTimeBaseTimetable": "...", "runningLate": false }
}
],
"meta": { "count": 1 }
}- 内部返回的人类可读文本示例
content(简化)
Departures (homeToBar) — 2 result(s)
@ 18:30 (due in 12 min)
@ 19:05 (due in 47 min)备注
- 网络获取逻辑存在于
fetchDepartures(src/server.ts)并将传入的JSON规范化为可容忍的形状(参见normalizeDepartures在src/server.ts). - MCP服务器使用
@modelcontextprotocol/sdk(参见src/server.ts).
如果您需要一个将MCP与此服务器对话的客户端示例,请选择任何与MCP兼容的客户端传输,并连接到以开始的CLI/stdin stdout进程 bus-tracker-mcp (或以编程方式运行服务器 createServer 并附上您的运输工具)。
