列车喇叭跟踪器MCP服务器
MCP服务器,根据天气条件、声音传播物理和已知的铁路道口位置,帮助识别宾夕法尼亚州哈里斯堡/埃诺拉地区的列车喇叭位置。
特性
- 🎯 识别喇叭位置:确定哪些铁路道口最有可能是您刚才听到的火车喇叭的来源
- 🌡️ 基于天气的分析:使用实时天气(温度、湿度、风)计算声音传播
- 🚆 Amtrak时刻表:显示当前通过哈里斯堡的Amtrak列车
- 📝 观测记录:跟踪听到喇叭声的时间,以识别随时间变化的模式
- 🛤️ 交叉数据库:维护宾夕法尼亚州Camp Hill附近主要过境点的位置
安装
- 为项目创建新目录:
mkdir train-horn-tracker-mcp
cd train-horn-tracker-mcp- 复制文件:
- 将TypeScript代码另存为 src/index.ts - 保存 package.json - 保存 tsconfig.json
- 安装依赖项:
npm install- 构建服务器:
npm run build配置
将此添加到您的Claude Desktop配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"train-horn-tracker": {
"command": "node",
"args": ["/absolute/path/to/train-horn-tracker-mcp/build/index.js"]
}
}
}替换 /absolute/path/to/ 你的实际路径。
用法
配置后,重新启动Claude Desktop。然后,您可以使用自然语言与服务器交互:
查询示例
“我刚刚听到火车的喇叭声——它是从哪里来的?” 克劳德将使用 identify_horn_location 分析当前天气并返回按概率排序的可能穿越位置的工具。
“什么Amtrak列车即将通过哈里斯堡?” 克劳德将在2小时内查看Amtrak的列车时刻表。
“目前的天气状况如何?” 克劳德将获取天气数据,并解释它如何影响声音传播。
“记录下这一观察结果:西北方向的喇叭声很大,标准交叉模式” Claude将创建一个带时间戳的日志条目。
“给我看看你知道的所有铁路道口” 克劳德将列出从营地山到所有十字路口的距离和方向。
“现在的交通模式是什么?” 或 “火车什么时候最繁忙?” 克劳德将解释当前时间或特定时间段的典型交通模式。
“跟我说说匹兹堡线” 或 “鲁根分店是什么?” 克劳德将提供有关特定NS铁路线的详细信息。
“里程碑PT 107.5在哪里?” 或 “找到HP 112.9” Claude将找到NS里程标参考的位置,这在Broadcastify上监控铁路无线电流量时非常有用。
运作原理
声音传播模型
服务器根据以下内容计算声音传播:
- 温度:温暖的空气扩大了射程
- 湿度潮湿的空气能更好地传递声音
- 风:声音顺风传播得更远
- 降水:雨/雪会减弱声音
- 基础范围:列车喇叭声(110-120 dB)通常在2-4英里内可听到
铁路道口数据库
包括以下主要过境点:
- 伊诺拉庭院 -诺福克南方的主要分类场
- 哈里斯堡海滨 -多个街道交叉口
- Lemoyne地区 -住宅交叉口
- 机械厂/海军设施线 -工业部门
FRA喇叭规则
列车必须在每个公共平交道口鸣笛:
- 在过马路前15-20秒开始
- 图案:2长,1短,1长(------)
- 继续,直到机车占用十字路口
可用工具
- 识别_角位置:查找可能的交叉来源
- 获取时间表:当前Amtrak列车
- get_weather_conditions:影响声音传播的天气
- log_observation:听到喇叭声时录制
- 列表_交叉:查看所有已知的交叉口
数据源
- 天气:Open-Meteo API(免费,不需要API密钥)
- 美国铁路公司:美铁社区API
- 十字路口:根据地图/当地知识手动策划
定制
添加更多交叉点
编辑 RAILROAD_CROSSINGS 数组in src/index.ts:
{
name: "Your Crossing Name",
lat: 40.1234,
lon: -76.5678,
line: "Railroad Name"
},调整您的位置
改变 HOME_LAT 和 HOME_LON 在...的顶部 src/index.ts:
const HOME_LAT = 40.2398; // Your latitude
const HOME_LON = -76.9197; // Your longitude局限性
- 货运列车:没有实时跟踪(不公开)
- 天气准确性:基于附近车站,非超本地
- 交叉数据库:并非详尽无遗(在识别时添加更多内容)
- 声音物理学:简化模型(不考虑地形、建筑物)
未来的增强功能
潜在补充:
- OpenStreetMap集成自动发现交叉口
- 机器学习识别观察中的模式
- 与railfan论坛整合,开展众包列车活动
- 音频分析以区分喇叭类型/机车
故障排除
“服务器未连接”
- 验证中的路径
claude_desktop_config.json是绝对的 - 检查一下
build/index.js存在(运行npm run build) - 重新启动克劳德桌面
“无天气数据”
- 检查互联网连接
- Open-Meteo API可能暂时关闭
“没有显示Amtrak列车”
- 美铁API可能关闭
- 2小时窗口内没有安排火车
贡献
这是一个供个人使用的自定义MCP服务器,但请随时:
- 添加更多交叉口位置
- 改进声音传播模型
- 加强天气分析
- 添加新数据源
许可证
麻省理工学院
______________________________________________________________________
备注:此服务器提供基于物理和天气数据的估计。实际可听度取决于许多因素,包括地形、建筑物和个人听力灵敏度。
