Tello Drone MCP Server
Enables controlling a Tello drone through natural language commands in Claude. Supports takeoff, landing, movement, photo capture, and battery monitoring.
README
Tello Drone MCP Server - Mac Setup Guide
Prerequisites
-
Python 3.10 or higher - Check your version:
python3 --version -
Homebrew (optional, but recommended for installing Python if needed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Step-by-Step Setup
1. Create Project Directory
mkdir ~/tello-mcp
cd ~/tello-mcp
2. Create a Virtual Environment (Recommended)
python3.12 -m venv venv
source venv/bin/activate
3. Install Dependencies
pip install mcp djitellopy opencv-python
4. Make the Server Script executable
chmod +x tello_server.py
5. Test the Server (Optional)
Before configuring Claude, you can test that everything works:
# Make sure you're in the virtual environment
source ~/tello-mcp/venv/bin/activate
# Turn on your Tello and connect to its WiFi first!
# Run the server
python tello_server.py
Press Ctrl+C to stop when done testing.
Configure Claude Desktop
Location of claude_desktop_config.json on Mac
The config file is located at:
~/Library/Application Support/Claude/claude_desktop_config.json
Open the Config File
Option 1: Using Terminal
# Create the directory if it doesn't exist
mkdir -p ~/Library/Application\ Support/Claude
# Open in your default text editor
open ~/Library/Application\ Support/Claude/claude_desktop_config.json
Option 2: Using Finder
- Open Finder
- Press
Cmd + Shift + G(Go to Folder) - Paste:
~/Library/Application Support/Claude - Open
claude_desktop_config.jsonwith TextEdit or VS Code
Option 3: Using nano (command line editor)
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
Add the Configuration
If the file is empty or doesn't exist, add this:
{
"mcpServers": {
"tello-drone": {
"command": "/Users/YOUR_USERNAME/tello-mcp/venv/bin/python",
"args": [
"/Users/YOUR_USERNAME/tello-mcp/tello_server.py"
]
}
}
}
Replace YOUR_USERNAME with your actual Mac username!
Find Your Username
If you're not sure of your username:
echo $USER
Or use the ~ shortcut (though absolute paths are more reliable):
# Get the full path
echo ~/tello-mcp/venv/bin/python
echo ~/tello-mcp/tello_server.py
Alternative: Using System Python
If you prefer not to use a virtual environment:
{
"mcpServers": {
"tello-drone": {
"command": "python3",
"args": [
"/Users/YOUR_USERNAME/tello-mcp/tello_server.py"
]
}
}
}
Using the Tello with Claude
1. Connect to Tello WiFi
- Turn on your Tello drone
- Go to Mac WiFi settings
- Connect to the Tello network (usually named
TELLO-XXXXXX)
2. Restart Claude Desktop
Quit and restart Claude Desktop for the configuration to take effect.
3. Start Flying!
Try these commands in Claude:
- "Connect to my Tello drone"
- "What's the battery level?"
- "Take off"
- "Move forward 50 centimeters"
- "Take a photo"
- "Land"
Troubleshooting
"Command not found" error
- Make sure the paths in the config are absolute (start with
/Users/) - Verify the Python path:
which python3 - Check that tello_server.py exists:
ls ~/tello-mcp/tello_server.py
"Module not found" error
- Activate your virtual environment:
source ~/tello-mcp/venv/bin/activate - Reinstall dependencies:
pip install mcp djitellopy opencv-python - Make sure you're using the venv Python in the config
Can't connect to drone
- Verify you're connected to Tello WiFi
- Check the drone is powered on and the lights are blinking
- Try pinging the drone:
ping 192.168.10.1
Photos not saving
The photos will save to the directory where you run Claude from. To specify a location, modify the take_photo function in tello_server.py to use an absolute path:
filename = arguments.get("filename", "/Users/YOUR_USERNAME/tello-mcp/photos/tello_photo.jpg")
Quick Reference
Activate virtual environment:
source ~/tello-mcp/venv/bin/activate
Deactivate virtual environment:
deactivate
View Claude logs (if there are issues):
tail -f ~/Library/Logs/Claude/mcp*.log
Config file location:
~/Library/Application Support/Claude/claude_desktop_config.json
Debug
The Tello sends two types of communication:
Command responses (working ?) - on UDP port 8889 State data stream (working ?) - on UDP port 8890
Find what's using a port, for example 8889:
lsof -i :8889
# You'll see output like:
# COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
# Python 1234 linsun 3u IPv4 0x... 0t0 UDP *:8889
# Kill that process (replace 1234 with the actual PID)
kill -9 1234
If 8889 works but 8890 doesn't, macOS might be blocking UDP port 8890.
Safety Reminders
- Always fly in an open area away from people and obstacles
- Keep the drone in visual line of sight
- Monitor battery levels (don't fly below 20%)
- Have a clear landing area
- The emergency stop cuts motors immediately - use only in real emergencies
Happy flying! 🚁
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.