robot-mcp-server
Provides tools to control DJI Tello drones, including takeoff, land, emergency stop, status, and routines like hover, observation, and perimeter scan.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@robot-mcp-serverrun the inspection sweep routine on the Unitree robot"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
robot-mcp-server
A more complete robot-control MCP server for LLMs, agent systems, and automation platforms, with unified control for Unitree robots and DJI Tello drones.
What Was Improved
Compared with the original version, this project is now a more practical engineering baseline instead of a minimal prototype:
Supports both
mockandhardwarebackends so workflows can be validated without real devicesAdds a unified configuration layer with environment-variable and CLI overrides
Adds health checks, status inspection, capability discovery, and a global emergency-stop tool
Adds built-in routine templates for common robot workflows
Adds a lightweight sequence executor so clients can submit multiple built-in routines in one request
Strengthens adapters with stricter parameter validation and connection-state protection
Fixes missing dependency declarations, fragile startup flow, and unstable relative imports
Adds unit tests and a local demo for easier verification and regression checks
Related MCP server: nUR MCP Server
Project Structure
.
├── examples/
│ └── demo.py
├── src/
│ ├── __init__.py
│ ├── config.py
│ ├── dji_adapter.py
│ ├── exceptions.py
│ ├── main.py
│ ├── service.py
│ └── unitree_adapter.py
├── tests/
│ └── test_service.py
├── README.md
├── README.zh-CN.md
├── requirements.txt
└── run.ps1Installation
Requirements:
Python 3.10+
Windows PowerShell or any terminal that can run Python
Install dependencies:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install -r requirements.txtIncluded by default:
mcpdjitellopy
If you want to connect to real Unitree hardware, install the corresponding SDK as well:
python -m pip install git+https://github.com/unitreerobotics/unitree_sdk2_python.gitQuick Start
Recommended mock-mode startup:
.\run.ps1or:
python -m src.main --backend mock --transport stdioStart with HTTP transport:
.\run.ps1 -Backend mock -Transport streamable-http -Host 127.0.0.1 -Port 8000Connect to real hardware:
python -m src.main --backend hardware --transport stdioIt is recommended to validate your workflow in mock mode before switching to hardware.
Environment Variables
Variable | Default | Description |
|
| Backend mode: |
|
| Transport: |
|
| HTTP bind host |
|
| HTTP port |
|
| Log level |
|
| Unitree connection timeout |
|
| Default DJI takeoff height in meters |
| empty | Specific Tello host |
Available MCP Tools
Shared tools:
server_statuslist_robot_capabilitieslist_robot_routinesrun_routine_sequencehealth_checkemergency_stop_all
Unitree tools:
unitree_connectunitree_move(velocity, duration=1.0)unitree_stopunitree_statusunitree_disconnectunitree_move_and_stop(velocity, duration=1.0)unitree_out_and_back(velocity, forward_duration=1.0, return_duration=None)unitree_pulse_patrol(velocity, pulse_duration=0.8, pause_duration=0.3, cycles=3)unitree_inspection_sweep(velocity=1.0, forward_duration=1.0, checkpoint_pause=0.5, cycles=2)
Notes:
velocityrange:-3.0 ~ 3.0m/sdurationrange:0.1 ~ 30.0seconds
DJI tools:
dji_connectdji_takeoff(height=None)dji_landdji_emergency_stopdji_statusdji_disconnectdji_takeoff_hover_land(height=None, hover_seconds=3.0)dji_quick_observe(height=None, hover_seconds=5.0)dji_perimeter_scan(height=None, hover_seconds=2.0, checkpoints=3)
Notes:
heightrange:0.2 ~ 10.0metersWhen
heightis omitted, the configured default is used
Built-in Routines
To save client-side development time, the server includes several composed actions:
unitree_move_and_stopConnects if needed, performs one move, and stops automaticallyunitree_out_and_backMoves forward, returns, and stops for a simple round-trip patrolunitree_pulse_patrolRepeats short move/pause cycles for lightweight patrol scenariosunitree_inspection_sweepRuns a compact inspection routine with forward movement, checkpoint stop, and return movementdji_takeoff_hover_landTakes off, hovers for a configurable duration, and lands automaticallydji_quick_observeA convenience observation routine with takeoff, hover, and landingdji_perimeter_scanA lightweight aerial scan routine with multiple hover checkpoints
Sequence Executor
run_routine_sequence lets clients submit several built-in routines and pause steps in one request.
Example:
[
{
"action": "unitree_move_and_stop",
"params": {
"velocity": 1.0,
"duration": 1.2
}
},
{
"action": "pause",
"params": {
"duration": 1
}
},
{
"action": "dji_takeoff_hover_land",
"params": {
"height": 1.5,
"hover_seconds": 3
}
}
]Supported sequence actions:
pauseunitree_move_and_stopunitree_out_and_backunitree_pulse_patrolunitree_inspection_sweepdji_takeoff_hover_landdji_quick_observedji_perimeter_scan
Resources and Prompts
In addition to tools, the server also exposes:
Resource:
robot://status/summaryPrompt:
safe_operation_checklist(device)
Local Demo
python examples\demo.pyTests
python -m unittest discover -s tests -vUsage Tips
Prefer
mockmode during developmentCall
health_checkbefore connecting real hardwareInspect
server_statusbefore movement or takeoff commandsUse
emergency_stop_allfirst when something goes wrong
Known Limits
Unitree hardware control is still a lightweight SDK integration layer intended as a starting point for extension
Current tests mainly cover
mockmode; real hardware behavior still needs on-site integration testingExact
streamable-httpbehavior depends on the installedmcppackage version
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseDqualityCmaintenanceA server built on the Model Context Protocol that enables controlling the Unitree Go2 robot using natural language commands, which are translated into ROS2 instructions for the robot to perform corresponding actions.Last updated1285Apache 2.0
- FlicenseCqualityCmaintenanceA Model Context Protocol server that enables natural language interactive control of Universal Robots collaborative robots, allowing users to control robot motion, monitor status, and execute programs through direct commands to large language models.Last updated397
- FlicenseCqualityCmaintenanceAn intelligent middleware system that enables natural language interactive control of Universal Robots collaborative robots, allowing users to connect to and control industrial robots through voice/text commands with MCP-compatible LLMs.Last updated397
- AlicenseAqualityBmaintenanceMCP server for controlling the Noetix Bumi humanoid robot via ROS 2, with support for autonomous mission planning using LLMs and computer vision.Last updated24MIT
Related MCP Connectors
MCP server for AI dialogue using various LLM models via AceDataCloud
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/showkeyjar/robot-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server