Tello Drone MCP Server

Tello Drone MCP Server

Enables controlling a Tello drone through natural language commands in Claude. Supports takeoff, landing, movement, photo capture, and battery monitoring.

Category
Visit Server

README

Tello Drone MCP Server - Mac Setup Guide

Prerequisites

  1. Python 3.10 or higher - Check your version:

    python3 --version
    
  2. 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

  1. Open Finder
  2. Press Cmd + Shift + G (Go to Folder)
  3. Paste: ~/Library/Application Support/Claude
  4. Open claude_desktop_config.json with 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured