Token导航 LogoToken导航TokenDH.com
Airplanes Live MCP logo
运维云端stdio官方级别未说明来源级核验

Airplanes Live MCP

MCP Server

该服务通过集成airplanes.live API,提供实时飞机追踪功能,支持通过呼号、注册号或位置搜索飞机,适用于教育和非商业用途。

工具数

0

提示词数

0

GitHub Stars

9

资源数

0
PythonClaude教育工具Claude DesktopClaude

安装说明

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

作者 / 组织

Bellaposa

提供方

Bellaposa

最后核验

2026/5/17 20:20

运行时

Python

快速接入

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

命令预览

python -m venv .venv

详细介绍

✈️ 飞机跟踪器MCP服务器

Python MCP License API

Airplane Tracker Banner

🎯 概述

此MCP服务器与 空中航线直播API 为Claude Desktop提供实时飞机跟踪功能。追踪航班,通过呼号、注册或位置找到飞机——所有这些都可以直接从克劳德那里获得!

⚠️ 重要通知-使用条款

📖 仅供教育和非商业用途 该项目使用 空中航线直播API 这是为 仅用于教育和非商业目的请尊重他们的服务条款。 ### 📋 使用指南: - ✅ 教育项目 -学习和研究 - ✅ 个人使用 -非商业追踪 - ✅ 开源贡献 -社区发展 - ❌ 商业应用 -商业/盈利目的 - ❌ 大量请求 -遵守费率限制 ### 🛡️ 免责声明: 此MCP服务器的作者对使用此软件不承担任何责任。 这是一份旨在用于教育目的和演示MCP服务器开发的社区贡献。用户有责任遵守API直播条款和任何适用法规。 ### 🌐 尊重现有服务: 该项目无意取代或与官方竞争 飞机.全球实况观众. 官方地球仪是可视化飞行数据的主要和推荐方式。此MCP服务器被设计为Claude Desktop集成和MCP开发学习的补充教育工具。 📖 API完整条款: https://airplanes.live/api-guide/\ 🌍 官方环球查看器: https://globe.airplanes.live

📸 截图

Claude Desktop with Airplane Tracker *Claude Desktop中的实时飞机跟踪*

🚀 特性

  • 🔍 按呼号搜索 -查找特定航班(例如UAL123)
  • 📋 注册查询 -按尾号跟踪(例如N12345)
  • 🎯 基于职位的搜索 -坐标附近的飞机
  • 🏷️ 十六进制ID搜索 -S模式应答机代码
  • 🛡️ 军用飞机 -跟踪军事飞行
  • 🚁 LADD飞机 -执法追踪
  • PIA飞机 -私人/有趣的飞机
  • 📡 Squawk代码 -紧急和特殊代码

*各种API搜索示例*

🏗️ 建筑

🔧 组件

  • 🐍 Python MCP服务器 -异步服务器实现
  • 🌐 MCP框架 -现代服务器架构
  • httpx客户端 -高性能HTTP请求
  • 📊 数据格式化程序 -清晰易读的飞机信息
  • 🔌 克劳德集成 -直接MCP协议支持

📊 数据流

graph TD
    A[Claude Desktop] --> B[MCP Protocol]
    B --> C[airplane_server.py]
    C --> D[API Functions]
    D --> E[airplanes.live API]
    E --> F[Aircraft Data]
    F --> G[Formatted Response]
    G --> A

*系统架构和数据流*

🚀 快速开始

📋 先决条件

  • 🐍 Python 3.8+
  • 💻 克劳德桌面版
  • 🌐 Internet连接

⚡ 安装

# 1. Clone the repository
git clone https://github.com/Bellaposa/airplanes-live-mcp.git
cd airplanes-live-mcp

# 2. Create virtual environment (REQUIRED!)
python -m venv .venv

# 3. Activate virtual environment
# macOS/Linux:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate

# 4. Install dependencies
pip install -r requirements.txt

# 5. Test the server
python airplane_server.py

⚠️ 常见问题及解决方案

🔥 虚拟环境是必须的!

  • 如果你跳过步骤2-3,你会得到 ModuleNotFoundError: No module named 'httpx'
  • 克劳德桌面需要 完整路径 使用venv Python,而不是系统Python
  • 没有venv,依赖关系就不会孤立,事情也会破裂

🪟 Windows用户:

  • 虚拟环境创建 .venv\Scripts\ 文件夹(不是 .venv\bin\)
  • 使用 Scripts\python.exe 在Claude配置中,不是 bin/python
  • 始终使用双反睫毛 \\ JSON路径中

🐍 Python路径问题:

  • 请确保已安装Python 3.8+: python --version
  • 如果 python 不起作用,试试看 python3py
  • 配置Claude Desktop之前,虚拟环境必须存在

🐳 Docker安装(替代方案)

跳过Python设置的麻烦——改用Docker!

📋 先决条件

  • 🐳 Docker桌面已安装并正在运行
  • 💻 克劳德桌面版

⚡ Docker设置

# 1. Clone the repository
git clone https://github.com/Bellaposa/airplanes-live-mcp.git
cd airplanes-live-mcp

# 2. Build Docker image
docker build -t airplane-mcp-server .

# 3. Test the container
docker run --rm -it airplane-mcp-server python airplane_server.py

⚙️ Docker的Claude桌面配置

🍎 macOS/Linux与Docker

添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "airplanes-live": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", 
        "airplane-mcp-server", 
        "python", "airplane_server.py"
      ]
    }
  }
}

🪟 Windows与Docker

添加到 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "airplanes-live": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", 
        "airplane-mcp-server", 
        "python", "airplane_server.py"
      ]
    }
  }
}

🔄 Docker命令参考

# Build the image
docker build -t airplane-mcp-server .

# Run interactively for testing
docker run --rm -it airplane-mcp-server bash

# Check if image exists
docker images | grep airplane-mcp-server

# Remove image if needed
docker rmi airplane-mcp-server

# View container logs (if running detached)
docker logs 

Docker优势

  • 🚀 无需Python设置 -所有内容均已预先配置
  • 🔒 孤立的环境 -无依赖冲突
  • 🌍 适用于所有地方 -Windows/Mac/Linux上的设置相同
  • 📦 轻松更新 -只需重建图像
  • 🛡️ 一致性行为 -消除“在我的机器上工作”

⚠️ Docker故障排除

问题:“docker:找不到命令”

# Install Docker Desktop first
# macOS: https://docs.docker.com/desktop/install/mac-install/
# Windows: https://docs.docker.com/desktop/install/windows-install/
# Linux: https://docs.docker.com/desktop/install/linux-install/

问题:“无法连接到Docker守护进程”

# Start Docker Desktop application
# Wait for Docker to fully start (green icon)

问题:“权限被拒绝”(Linux)

# Add user to docker group
sudo usermod -aG docker $USER
# Log out and back in, or:
newgrp docker

问题:映像构建失败

# Clean Docker cache
docker system prune -a
# Try building again
docker build --no-cache -t airplane-mcp-server .

🎯 更简单:Docker Compose

对于最简单的设置,请使用Docker Compose:

# 1. Clone and enter directory
git clone https://github.com/Bellaposa/airplanes-live-mcp.git
cd airplanes-live-mcp

# 2. Build and run with one command
docker-compose up --build

# 3. In another terminal, test the server
docker-compose exec airplane-mcp-server python airplane_server.py

Docker编写克劳德配置:

{
  "mcpServers": {
    "airplanes-live": {
      "command": "docker-compose", 
      "args": [
        "-f", "/path/to/airplanes-live-mcp/docker-compose.yml",
        "exec", "-T", "airplane-mcp-server", 
        "python", "airplane_server.py"
      ],
      "cwd": "/path/to/airplanes-live-mcp"
    }
  }
}

🐳 如何使用Claude Desktop

方法1:简单的Docker运行

所有平台的配置:

{
  "mcpServers": {
    "airplanes-live": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", 
        "airplane-mcp-server", 
        "python", "airplane_server.py"
      ]
    }
  }
}

方法2:Docker编写(高级)

具有完整路径的配置:

{
  "mcpServers": {
    "airplanes-live": {
      "command": "docker-compose",
      "args": [
        "-f", "/full/path/to/your/airplanes-live-mcp/docker-compose.yml",
        "exec", "-T", "airplane-mcp-server", 
        "python", "airplane_server.py"
      ],
      "cwd": "/full/path/to/your/airplanes-live-mcp"
    }
  }
}

完成Docker设置步骤:

# 1. Clone and build
git clone https://github.com/Bellaposa/airplanes-live-mcp.git
cd airplanes-live-mcp
docker build -t airplane-mcp-server .

# 2. Configure Claude Desktop with Method 1 (above)

# 3. Restart Claude Desktop completely

# 4. Test with: "Show me aircraft near New York"

🎯 Docker与Python的比较:

方法优点缺点最适合
码头工人✅ 无Python设置

✅ 适用于所有地方 ✅ 孤立|❌ 需要Docker ❌ 轻微开销|初学者、Windows用户| | python | ✅ 直接执行 ✅ 易于调试 ✅ 不需要Docker❌ 手动Python设置 ❌ 操作系统特定问题|开发人员、经验丰富的用户|

Docker编写命令:

# Start services in background
docker-compose up -d

# View logs
docker-compose logs airplane-mcp-server

# Stop services
docker-compose down

# Rebuild and restart
docker-compose up --build

### ⚙️ Claude Desktop Configuration

#### 🍎 **macOS/Linux Configuration**

Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `~/.config/claude-desktop/config.json` (Linux):

{ "mcpServers": { "airplanes-live": { "command": "/path/to/airplanes-live-mcp/.venv/bin/python", "args": ["/path/to/airplanes-live-mcp/airplane_server.py"], "env": { "PYTHONPATH": "/path/to/airplanes-live-mcp" } } } }


#### 🪟 **Windows配置**

添加到 `%APPDATA%\Claude\claude_desktop_config.json`:

{ "mcpServers": { "airplanes-live": { "command": "C:\\Users\\YourUsername\\airplanes-live-mcp\\.venv\\Scripts\\python.exe", "args": ["C:\\Users\\YourUsername\\airplanes-live-mcp\\airplane_server.py"], "env": { "PYTHONPATH": "C:\\Users\\YourUsername\\airplanes-live-mcp" } } } }


**⚠️ Windows重要注意事项:**

- 使用 `Scripts\\python.exe` (不是 `bin/python`)
- 替换 `YourUsername` 使用您的实际Windows用户名
- 使用双反睫毛 `\\` 在路径
- 确保虚拟环境是通过以下方式创建的 `python -m venv .venv`

*Claude桌面配置*

## 🎮 使用示例

### 按呼号搜索

🔍 Find flight UAL123


### 近位置搜索

📍 Show aircraft near 40.7128, -74.0060 within 50nm


### 军用飞机

🛡️ Show all military aircraft


## 🔧 关键设计决策

### 1.异步实现

所有工具使用 `async` 为了高效地处理多个请求:

@mcp.tool() async def aircraft_near_position(latitude: str = "", longitude: str = "", radius: str = "250") -> str:


这允许服务器在不阻塞的情况下处理并发请求。

### 2.基于字符串的参数

所有参数都是字符串,因为MCP协议最适合简单类型:

Correct

def tool(param: str = "") -> str:

Avoid

def tool(param: Optional[int] = None) -> str:


### 3.错误处理

每个工具都包括全面的错误处理:

try: # Main logic except ValueError: return f"❌ Error: Invalid input" except Exception as e: return f"❌ Error: {str(e)}"


### 4.数据格式

这 `format_aircraft_data()` 函数提供一致、可读的输出:

def format_aircraft_data(aircraft_data): # Handles both single aircraft and lists # Formats all available fields with emoji indicators # Returns human-readable strings


### 5.API包装

这 `make_api_request()` 函数集中了HTTP逻辑:

async def make_api_request(endpoint): async with httpx.AsyncClient(timeout=15) as client: url = f"{API_BASE_URL}{endpoint}" response = await client.get(url) response.raise_for_status() return response.json()


这种方法:

- 集中错误处理
- 管理超时
- 记录所有请求
- 便于以后添加身份验证

## 工具参考

### aircraft_by_hex(hex-id:str=“”)

**目的**:通过S模式十六进制标识符搜索飞机

**输入**:逗号分隔的十六进制ID(例如,“45211e,45212f”)

**退货**:完整详细的匹配飞机清单

**示例**:

User: "Show me aircraft with hex 45211e" Tool: "🔍 Found 1 aircraft: ✈️ Callsign: RYR123 ..."


### aircraft _ \_呼号(呼号:str=“”)

**目的**:通过航班呼号搜索飞机

**输入**:逗号分隔的呼号(例如“BA387、AA123”)

**退货**:与呼号匹配的飞机

**示例**:

User: "Find flight BA387" Tool: "🔍 Found 1 aircraft: ✈️ Callsign: BA387 ..."


### 飞机\_ \_注册(reg:str=“”)

**目的**:按机尾号/登记搜索飞机

**输入**:逗号分隔的注册(例如“N123AB,g-EUPA”)

**退货**:与登记相符的飞机

**示例**:

User: "Show aircraft with tail N123AB" Tool: "🔍 Found 1 aircraft: 📋 Registration: N123AB ..."


### 飞机类型(icao_type:str=“”)

**目的**:按国际民航组织类型代码搜索飞机

**输入**:型号代码(A321、B738、C172、E190等)

**退货**:目前正在飞行的所有此类飞机

**示例**:

User: "Show all Boeing 737s" Tool: "🔍 Found 247 aircraft of type B738: ..."


### 飞机_by_squawk(squawk_code:str=“”)

**目的**:按叫声代码搜索飞机

**输入**:4位squawk代码(例如,“7500”、“7600”、“7700”)

**退货**:飞机发出那个代码

**备注**:7700=紧急情况,7600=通信故障,7500=劫持

**示例**:

User: "Find aircraft squawking 7700" Tool: "🔍 Found aircraft in emergency: ..."


### aircraft_near_position(纬度:str=“”,经度:str=

**目的**:查找坐标半径内的所有飞机

**输入**:

- 纬度(十进制度数,-90到90)
- 经度(十进制度数,-180到180)
- 半径(海里,最大250)

**退货**:半径内的所有飞机

**示例**:

User: "Show aircraft within 50 nm of Madrid (40.4168, -3.7038)" Tool: "📍 Found 23 aircraft within 50 nm of 40.4168, -3.7038: ..."


### 军用飞机

**目的**:列出所有军用飞机

**输入**:无

**退货**:所有标记为军用的飞机

**示例**:

User: "What military aircraft are flying?" Tool: "🎖️ Found 12 military aircraft: ..."


### 激光飞机()

**目的**:列出执法和安保飞机

**输入**:无

**退货**:所有LADD(执法/安全)飞机

**示例**:

User: "Show law enforcement aircraft" Tool: "🚁 Found 8 LADD aircraft: ..."


### pia_aircraft()

**目的**:列出有趣/特殊的飞机

**输入**:无

**退货**:所有PIA(特殊利益)飞机

**示例**:

User: "Show special/private aircraft" Tool: "🛡️ Found 156 PIA aircraft: ..."


## 输出格式

所有工具都返回带表情符号指示符的格式化字符串:

✈️ Callsign: BA387 📋 Registration: G-EUPA 🛩️ Type: A350 📍 Position: 51.4769, -0.4589 📏 Altitude: 35000 ft ⚡ Ground Speed: 485 knots 🧭 Track: 089° 🔖 Mode S Hex: 406ee9 👁️ Last Seen: 3 seconds ago


这提供了:

- 表情符号的视觉清晰度
- 轻松扫描信息
- 格式一致
- 专业形象

## 添加新工具

要向此服务器添加新工具,请执行以下操作:

### 步骤1:创建工具函数

@mcp.tool() async def new_tool(param1: str = "", param2: str = "") -> str: """Single-line description of what this tool does.""" if not param1.strip(): return "❌ Error: param1 is required"

try: # Your implementation result = await make_api_request("/endpoint") formatted = format_aircraft_data(result.get('ac', [])) return f"✅ Success:\n\n{formatted}" except Exception as e: return f"❌ Error: {str(e)}"


### 步骤2:添加到目录

更新 `tools:` custom.yaml中的部分:

tools: - name: new_tool


### 步骤3:重建Docker镜像

docker build -t airplane-mcp-server .


### 步骤4:重新启动克劳德桌面

新工具将自动出现。

## 测试

### 单元测试模式

import asyncio

async def test_aircraft_by_callsign(): result = await aircraft_by_callsign("BA387") assert "✈️" in result assert "Found" in result print(result)

Run with: asyncio.run(test_aircraft_by_callsign())


### 集成测试

Start server

python airplane_server.py

In another terminal, test via stdin:

echo '{"jsonrpc":"2.0","method":"tools/list","id":1}' | python airplane_server.py


## 性能注意事项

### API响应时间

- 典型值:500ms-1s
- 复杂查询:1s-2s
- 超时:15秒

### 数据限制

- 每次查询最多1000架飞机(API限制)
- 半径搜索:最大250海里
- 呼号/注册:逗号分隔,最多8000个字符

### 优化提示

1. **使用特定搜索** -窄搜索更快
1. **避免敲打API** -合理的请求频率
1. **在本地缓存结果** -考虑存储最近的查询
1. **监视器超时** -API在高峰流量期间可能较慢

## 故障排除指南

### 问题:工具不出现

**解决方案**:

1. 验证已构建的映像: `docker images | grep airplane`
1. 检查目录: `cat ~/.docker/mcp/catalogs/custom.yaml`
1. 验证注册表: `cat ~/.docker/mcp/registry.yaml`
1. 重启克劳德:完全退出,然后重新打开

### 问题:“未找到飞机”

**原因**:

- 坐标错误(验证lat/lon格式)
- 半径太小
- 那个地区没有交通
- 类型代码错误(请尝试大写)

**解决方案**:尝试更广泛的搜索或不同的参数

### 问题:API超时

**原因**:API速度缓慢或速率受限

**解决方案**:

- 等待30秒
- 尝试更简单的查询
- 检查互联网连接

### 问题:Docker权限被拒绝

**解决方案**:

Add user to docker group

sudo usermod -aG docker $USER

Log out and back in

newgrp docker


## 🗺️ 未来的增强功能

> **⚠️ 重要提示**:此计划中的仪表板旨在作为 **教育补充** 致优秀官员 [飞机.全球实况观众](https://globe.airplanes.live),而不是替代品。目标是演示web开发与MCP服务器的集成,以供学习。

- \[ \] **缓存系统** -Redis缓存可减少API调用
- \[ \] **速率限制** -智能请求限制
- \[ \] **导出功能** -将结果保存为JSON/CSV/KML格式
- \[ \] **增强格式** -Claude中更好的数据可视化
- \[ \] **航班警报** -特定飞机出现时通知
- \[ \] **历史跟踪** -存储和跟踪飞机动态
- \[ \] **统计仪表板** -汇总数据和分析
- \[ \] **API扩展** -额外的飞机。实时端点

#### 🤖 **AI驱动的功能**

- 🧠 **飞行预报** -基于ML的飞行路径估计
- 📈 **模式分析** -识别异常飞行模式
- 🚨 **异常检测** -针对有趣事件的自动警报
- 📊 **趋势分析** -历史数据洞察

## 安全

### 当前方法

- 无需身份验证(公共API数据)
- 考虑申请API密钥用于生产
- 未存储敏感凭据
- 以非root用户身份运行
- 所有参数的输入验证

### 未来的考虑因素

- 如果需要,添加速率限制
- 实施查询日志记录以进行监控
- 考虑缓存以减少API调用
- 为自定义端点添加输入净化

## 📚 资源

- **API文档**: https://airplanes.live/
- **API使用条款**: https://airplanes.live/api-guide/
- **MCP规范**: https://docs.anthropic.com/mcp
- **FastMCP文档**: https://github.com/jlowin/fastmcp
- **httpx文档**: https://www.python-httpx.org/

## 🤝 贡献

这是一个开源教育项目!欢迎捐款:

- 🐛 **错误报告** -打开一个问题
- 💡 **功能请求** -提出改进建议
- 🔧 **拉取请求** -提交代码更改
- 📖 **文档** -改进指南和示例

## 📄 许可与免责声明

**MIT许可证** -您可以出于教育目的自由使用、修改和分发。

### ⚖️ 法律声明:

- 本软件按“原样”提供,不提供保修
- 作者对使用或合规性不承担任何责任
- 用户必须遵守API实时条款
- 仅用于教育和非商业用途
- 不隶属于航空公司。live

### 🎯 项目意图:

这个项目是 **社区贡献** 用于教育目的,演示MCP服务器开发和API集成。目标是帮助开发人员学习并为MCP生态系统做出贡献,而不是为了商业利益。

______________________________________________________________________

**由...制作❤️ 对于MCP社区** ✈️

*记住:始终尊重API条款并负责任地使用!*

目录标签

目录标签

PythonClaude教育工具飞机追踪本地部署实时数据API集成非商业用途

支持客户端

Claude DesktopClaude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP