Tello Drone MCP Server

Tello Drone MCP Server

site icon
2025.04.10 4
Python无人机控制MCP 服务器其它
drone-mcp 是一个基于 Model Context Protocol (MCP) 的服务器实现,专门用于控制 DJI Tello 无人机。该服务器通过标准化的接口,允许任何兼容 MCP 的客户端控制 Tello 无人机。它支持实时无人机控制、错误处理和日志记录,并提供了基本的无人机操作命令,如起飞、降落、移动和旋转。
View on GitHub

Overview

基本能力

产品定位

drone-mcp 是一个用于控制 DJI Tello 无人机的 MCP 服务器实现,通过标准化的接口提供无人机控制功能。

核心功能

  • 支持 MCP 协议
  • 通过 SSE (Server-Sent Events) 实现实时无人机控制
  • 强大的错误处理和日志记录
  • 支持 CORS,便于 Web 客户端(如 mcp inspector)使用
  • 支持基本的 Tello 无人机命令:
  • 起飞 (Takeoff)
  • 降落 (Land)
  • 移动 (上下左右前后)
  • 旋转 (顺时针/逆时针)

适用场景

  • 无人机开发与测试
  • 无人机自动化控制
  • 教育与研究项目
  • 无人机表演与展示

工具列表

  1. Takeoff:命令无人机起飞。
  2. Land:命令无人机降落。
  3. Move:控制无人机向指定方向移动。
  4. Rotate:控制无人机旋转。

常见问题解答

  • 服务器无法启动:确保有 root/sudo 权限,检查 Tello WiFi 连接,确认端口 3000 未被占用。
  • 无人机无法连接:确保无人机已开机,检查 WiFi 连接,确认没有其他应用在控制无人机。
  • 命令执行失败:检查无人机电量,确保飞行环境安全,确认命令参数在允许范围内。

使用教程

使用依赖

  • Python 3.7+
  • DJI Tello 无人机
  • 连接到 Tello 无人机的网络
  • Root/sudo 权限(用于 UDP 套接字绑定)

安装教程

  1. 克隆仓库:
git clone <repository-url>
cd drone-mcp
  1. 安装依赖:
pip install -r requirements.txt

MCP 配置

mcp.json 文件中添加以下配置:

{
  "tello-drone": {
    "url": "http://localhost:3000/sse"
  }
}

调试方式

  1. 连接到 Tello 无人机的 WiFi 网络(通常以 "TELLO-" 开头)。
  2. 启动 MCP 服务器:
sudo python tello_mcp.py
  1. 服务器将初始化连接并启动在 http://0.0.0.0:3000,SSE 端点为 /sse,消息处理端点为 /message

MCP 客户端集成

  1. 连接到 SSE 端点:
GET http://localhost:3000/sse
  1. 初始化请求:
{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize"
}
  1. 列出可用工具:
{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "listTools"
}
  1. 调用工具(例如起飞):
{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "callTool",
    "params": {
        "name": "takeoff",
        "arguments": {}
    }
}

许可证

该项目遵循 MIT 开源许可条款。