
Tello Drone MCP Server

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)
- 移动 (上下左右前后)
- 旋转 (顺时针/逆时针)
适用场景
- 无人机开发与测试
- 无人机自动化控制
- 教育与研究项目
- 无人机表演与展示
工具列表
- Takeoff:命令无人机起飞。
- Land:命令无人机降落。
- Move:控制无人机向指定方向移动。
- Rotate:控制无人机旋转。
常见问题解答
- 服务器无法启动:确保有 root/sudo 权限,检查 Tello WiFi 连接,确认端口 3000 未被占用。
- 无人机无法连接:确保无人机已开机,检查 WiFi 连接,确认没有其他应用在控制无人机。
- 命令执行失败:检查无人机电量,确保飞行环境安全,确认命令参数在允许范围内。
使用教程
使用依赖
- Python 3.7+
- DJI Tello 无人机
- 连接到 Tello 无人机的网络
- Root/sudo 权限(用于 UDP 套接字绑定)
安装教程
- 克隆仓库:
git clone <repository-url>
cd drone-mcp
- 安装依赖:
pip install -r requirements.txt
MCP 配置
在 mcp.json
文件中添加以下配置:
{
"tello-drone": {
"url": "http://localhost:3000/sse"
}
}
调试方式
- 连接到 Tello 无人机的 WiFi 网络(通常以 "TELLO-" 开头)。
- 启动 MCP 服务器:
sudo python tello_mcp.py
- 服务器将初始化连接并启动在
http://0.0.0.0:3000
,SSE 端点为/sse
,消息处理端点为/message
。
MCP 客户端集成
- 连接到 SSE 端点:
GET http://localhost:3000/sse
- 初始化请求:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize"
}
- 列出可用工具:
{
"jsonrpc": "2.0",
"id": 2,
"method": "listTools"
}
- 调用工具(例如起飞):
{
"jsonrpc": "2.0",
"id": 3,
"method": "callTool",
"params": {
"name": "takeoff",
"arguments": {}
}
}