Robotics MCP Server

Robotics MCP Server

Provides unified control for both physical robots (ROS-based like Moorebot Scout, Unitree) and virtual robots in Unity3D/VRChat, enabling multi-robot coordination, environment generation, and automated 3D model creation.

Category
Visit Server

README

Robotics MCP Server

Unified robotics control via MCP - Physical and virtual robots (bot + vbot)

FastMCP Python License

๐ŸŽฏ Overview

Robotics MCP Server provides unified control for both physical robots (ROS-based) and virtual robots (Unity/VRChat), with a focus on Moorebot Scout, Unitree robots, and virtual robotics testing.

Key Features

  • Physical Robot Control: Moorebot Scout (ROS 1.4), Unitree Go2/G1
  • YDLIDAR SuperLight (95g) LiDAR integration for Scout
  • Virtual Robot Control: Unity3D/VRChat/Resonite integration via existing MCP servers
  • ROS Bridge Integration: ROS 1.4 (Melodic) via rosbridge_suite
  • Multi-Robot Coordination: Physical and virtual robots together
  • World Labs Marble/Chisel: Environment generation and import
  • Dual Transport: stdio (MCP) + HTTP (FastAPI) endpoints
  • MCP Server Composition: Integrates with osc-mcp, unity3d-mcp, vrchat-mcp, avatar-mcp, blender-mcp, gimp-mcp
  • Robot Model Creation: Automated 3D model creation using blender-mcp (geometry) + gimp-mcp (textures)

๐Ÿ“š Documentation

๐Ÿš€ Quick Start

Installation

# Clone repository
git clone https://github.com/sandraschi/robotics-mcp.git
cd robotics-mcp

# Install dependencies
pip install -e ".[dev]"

# Or install from PyPI (when published)
pip install robotics-mcp

Configuration

Create configuration file at ~/.robotics-mcp/config.yaml:

robotics:
  moorebot_scout:
    enabled: false
    robot_id: "scout_01"
    ip_address: "192.168.1.100"
    port: 9090
    mock_mode: true
  virtual:
    enabled: true
    platform: "unity"
    unity:
      host: "localhost"
      port: 8080
  mcp_integration:
    osc_mcp:
      enabled: true
      prefix: "osc"
    unity3d_mcp:
      enabled: true
      prefix: "unity"
    vrchat_mcp:
      enabled: true
      prefix: "vrchat"
    avatar_mcp:
      enabled: true
      prefix: "avatar"
    blender_mcp:
      enabled: true
      prefix: "blender"
    gimp_mcp:
      enabled: true
      prefix: "gimp"
server:
  enable_http: true
  http_port: 8080
  log_level: "INFO"

Running the Server

stdio Mode (MCP Protocol)

python -m robotics_mcp.server --mode stdio

HTTP Mode (FastAPI)

python -m robotics_mcp.server --mode http --port 8080

Dual Mode (Both stdio + HTTP)

python -m robotics_mcp.server --mode dual --port 8080

๐Ÿ› ๏ธ Usage

MCP Tools

Robot Control

# Get robot status
await robot_control(robot_id="scout_01", action="get_status")

# Move robot
await robot_control(
    robot_id="scout_01",
    action="move",
    linear=0.2,
    angular=0.0
)

# Stop robot
await robot_control(robot_id="scout_01", action="stop")

Virtual Robotics

# Spawn virtual robot in Unity
await virtual_robotics(
    robot_type="scout",
    action="spawn_robot",
    platform="unity",
    position={"x": 0, "y": 0, "z": 0}
)

# Load Marble environment
await virtual_robotics(
    action="load_environment",
    environment="stroheckgasse_apartment",
    platform="unity"
)

Robot Model Tools

# Create Scout model from scratch (uses blender-mcp + gimp-mcp)
await robot_model_create(
    robot_type="scout",
    output_path="D:/Models/scout_model.fbx",
    format="fbx",
    dimensions={"length": 0.115, "width": 0.10, "height": 0.08},
    create_textures=True,
    texture_style="realistic"
)

# Import robot model into Unity
await robot_model_import(
    robot_type="scout",
    model_path="D:/Models/scout_model.fbx",
    format="fbx",
    platform="unity",
    project_path="D:/Projects/UnityRobots"
)

# Convert model between formats
await robot_model_convert(
    source_path="D:/Models/scout.fbx",
    source_format="fbx",
    target_format="glb",
    target_path="D:/Models/scout.glb"
)

HTTP API

Health Check

curl http://localhost:8080/api/v1/health

List Robots

curl http://localhost:8080/api/v1/robots

Control Robot

curl -X POST http://localhost:8080/api/v1/robots/scout_01/control \
  -H "Content-Type: application/json" \
  -d '{"action": "move", "linear": 0.2, "angular": 0.0}'

List Tools

curl http://localhost:8080/api/v1/tools

Call Tool

curl -X POST http://localhost:8080/api/v1/tools/robot_control \
  -H "Content-Type: application/json" \
  -d '{"robot_id": "scout_01", "action": "get_status"}'

๐Ÿ“š Documentation

๐Ÿงช Testing

# Run all tests
pytest

# Run unit tests only
pytest tests/unit

# Run integration tests
pytest tests/integration

# Run with coverage
pytest --cov=robotics_mcp --cov-report=html

๐Ÿ”ง Development

Project Structure

robotics-mcp/
โ”œโ”€โ”€ src/robotics_mcp/
โ”‚   โ”œโ”€โ”€ server.py              # Main FastMCP server
โ”‚   โ”œโ”€โ”€ clients/               # Robot client implementations
โ”‚   โ”œโ”€โ”€ integrations/          # MCP server integration wrappers
โ”‚   โ”œโ”€โ”€ tools/                 # Portmanteau tool implementations
โ”‚   โ””โ”€โ”€ utils/                 # Utilities (config, state, mock data)
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ unit/                  # Unit tests
โ”‚   โ””โ”€โ”€ integration/           # Integration tests
โ”œโ”€โ”€ docs/                      # Documentation
โ”œโ”€โ”€ scripts/                   # Utility scripts
โ””โ”€โ”€ mcpb/                      # MCPB packaging

Code Quality

# Format code
black src/ tests/

# Lint code
ruff check src/ tests/

# Type checking
mypy src/

๐Ÿค Contributing

Contributions welcome! Please see CONTRIBUTING.md for guidelines.

๐Ÿ“„ License

MIT License - see LICENSE for details.

๐Ÿ™ Acknowledgments

  • FastMCP framework
  • ROS community
  • Unity3D, VRChat, World Labs Marble/Chisel
  • MCP ecosystem contributors

Status: Beta - Virtual robotics (vbot) prioritized, physical robot support coming after hardware arrives (XMas 2025)

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
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
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
VeyraX MCP

VeyraX MCP

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

Official
Featured
Local
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
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
Qdrant Server

Qdrant Server

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

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

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
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured