bumi-mcp
The bumi-mcp server is a control and information hub for the Noetix Bumi humanoid robot, offering two main tools:
bumi_tool — Core information and status retrieval:
info(default): Tagline, vendor details, and key specsspecs: Full structured technical specifications (height, weight, DOF, compute, sensors, battery, etc.)sdk_links: GitHub repositories and open-source landing page linksrobot_status: Pings a live robot's health endpoint ifBUMI_ROBOT_URLis configured; otherwise returnsconnected=falsevirtual_twin: Guidance on simulating a virtual Bumi via resonite-mcp, robotics-mcp, or worldlabs-mcp integrationsfleet_peers: Narrative context on how Bumi fits into the RoboFang fleet alongside yahboom-mcp, dreame-mcp, and robotics-mcpmarket: Market context on Noetix's story, the China humanoid robot wave, and distribution channels
bumi_agentic_workflow — LLM-powered orchestration:
Accepts natural language goals (e.g., "Summarize Bumi specs and how to show a virtual twin in Resonite")
Uses the host LLM to coordinate calls to
bumi_tooland sibling MCPs, returning a coherent summarySupports goals around specs lookup, SDK setup, virtual twin configuration, and fleet composition
Additionally, the server supports a mock bridge mode for development/testing without physical hardware, and integrates with rosbridge via roslibpy for telemetry and gated movement commands (walk, estop) — with full motion control pending hardware integration.
Enables LLM-based mission planning on device using Ollama models (e.g., Gemma3:1b) for autonomous behavior and task execution.
Provides ROS 2 integration for controlling the Bumi humanoid robot, including mission execution, vision detection, and sensor data via rosbridge.
Allows secure remote control of the Bumi robot over Tailscale VPN, enabling remote operation and demos such as the coffee shop demo.
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., "@bumi-mcptell Bumi to wave and say hello"
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.
Bumi MCP — Noetix Bumi Humanoid Robot Control
📖 Installation Guide — quick start, manual setup, and troubleshooting
MCP server + REST bridge scaffold for the Noetix Bumi humanoid.
v0.2 adds
/api/v1/*(health, telemetry, gated control) and mock bridge for CI/teleoperator prep. Full physical motion awaits EDU hardware + Noetix SDK topic mapping — see STATUS.md and INTEGRATION.md.
Bumi Product Info
Spec | Value |
Manufacturer | Noetix Robotics (Beijing) — 北京松延动力科技集团股份有限公司 |
Website | |
Models | Lite · Air · Pro · Max · EDU-Air · EDU-Pro · EDU-Max |
Price | From |
Height/Weight | 98cm / ~17kg |
DOF | 21 (6 per leg, 4 per arm, 1 lumbar, hands) |
Compute (base) | 6 TOPS |
Compute (EDU) | NVIDIA Jetson Orin Nano Super / Orin NX |
Sensors | RGB camera, IMU |
Battery | 48V 3.5Ah, 2-3h runtime, quick-swap |
Connectivity | WiFi + Bluetooth, optional 4G/5G |
Knee torque | 70 N·m |
Status | Shipping — thousands of orders placed (Dec 2025 news) |
Features (from Noetix)
"Bumi Bumi" voice wake word + interaction
Object recognition (RGB camera)
One-click auto-standing on startup
Mobile app control + visual programming
Smart OTA updates
Autonomous lying down / standing up
Open Source SDK & development tools
Ordering
No direct e-commerce (no JD.com, Amazon, etc.). Noetix sells B2B through their sales team:
Contact | Details |
Sales email | |
Hotline | 400-096-9300 (Mon-Fri 10:00-19:00 Beijing) |
Scan QR code on noetixrobotics.com/en/contact-us | |
Inquiry form | |
Partner inquiry |
Pricing from 10,000 CNY (€1,300) for Lite model. Models: Lite · Air · Pro · Max · EDU-Air · EDU-Pro · EDU-Max. Price depends on model and quantity — contact sales for quote.
Related MCP server: robot-mcp-server
Architecture
PC (Goliath) ──Tailscale── Bumi (Jetson Orin)
│
rosbridge :9090
│
bumi-mcp :10774 (/api/v1)
│
Noetix SDK (walk, joints, estop)Mock mode:
BUMI_USE_MOCK_BRIDGE=1— no hardware (default in.env.example)Physical:
BUMI_IP=<tailnet>+uv sync --extra robotYahboom copies in
ros2/,minimal_mission_executor.py— reference only, not biped-safe
Files (physical path)
File | Purpose |
| roslibpy telemetry + gated walk/estop |
| CI / dev stand-in |
| teleoperator-facing REST |
| Readiness + bring-up |
Legacy Yahboom ports (reference)
File | Origin | Purpose |
| yahboom-mcp | Holonomic missions — not for Bumi |
| yahboom-mcp | COCO detection bridge |
| yahboom-mcp | Deprecated Pi deploy |
| boomy fork | Wheeled mission package |
Quick Start
git clone https://github.com/sandraschi/bumi-mcp
cd bumi-mcp
justThis opens an interactive dashboard showing all available commands. Run just serve with .env from .env.example (mock bridge by default).
Copy-Item .env.example .env
just serve
Invoke-RestMethod http://127.0.0.1:10774/api/v1/health
just test
just ciPhysical bot
See INTEGRATION.md — BUMI_IP, uv sync --extra robot, telemetry first, then gated motion.
License
MIT
Available Tools
2 toolsbumi_agentic_workflowB
BUMI_AGENTIC_WORKFLOW — High-level goals: specs, SDK setup, virtual twin, fleet composition.
Uses ctx.sample() so the host LLM can call bumi_tool and sibling MCPs (resonite, robotics).
Args: goal: Natural language, e.g. "Summarize Bumi specs and how to show a virtual twin in Resonite"
Returns: LLM summary string.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It reveals that the tool uses ctx.sample() to invoke other MCPs and returns an LLM summary string, which is helpful. However, it does not explain side effects, error handling, or what occurs when called (e.g., does it actually execute the orchestration?). This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a single paragraph with clear sections: purpose, mechanism, args, returns. Every sentence adds value, with no unnecessary repetition or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter) and the presence of an output schema (not described but acknowledged), the description is fairly complete. It explains the orchestration behavior and provides an example. Minor gap: it doesn't specify what triggers the orchestration or any prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It describes the 'goal' parameter as 'Natural language' with one example ('Summarize Bumi specs...'). This adds some context but lacks constraints (e.g., length, format, scope). The compensation is weak.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it handles high-level goals like specs, SDK setup, virtual twin, and fleet composition, and that it orchestrates other tools via ctx.sample(). This gives a clear purpose but does not differentiate from its sibling 'bumi_tool', leaving ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions it uses ctx.sample() to call sibling tools (bumi_tool, resonite, robotics), implying it is for orchestration rather than direct execution. However, it lacks explicit when-to-use or when-not-to-use guidance and does not describe alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bumi_toolA
BUMI — Noetix Bumi humanoid: hero product info, OSS links, fleet virtual-twin map.
PORTMANTEAU RATIONALE: Single entry for discovery and setup; hardware control arrives when a documented local API or ROS bridge is wired (set BUMI_ROBOT_URL for optional ping).
Operations: info — tagline + vendor + key specs (default) specs — full structured hero dict sdk_links — GitHub repos + opensource landing page robot_status — if BUMI_ROBOT_URL set, GET {url}/health or /api/health; else connected=false virtual_twin — how to drive virtual Bumi via resonite-mcp / robotics-mcp / worldlabs-mcp fleet_peers — yahboom-mcp / dreame-mcp / robotics-mcp narrative for RoboFang fleet market — Noetix story, China humbot wave, JD.com + tier-1 offline context (not legal advice)
Returns: success, message, and operation-specific data.
| Name | Required | Description | Default |
|---|---|---|---|
| operation | No | info |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses behavioral traits such as the conditional nature of robot_status (requires BUMI_ROBOT_URL for ping) and mentions that hardware control requires a documented local API or ROS bridge. It also notes that market info is not legal advice. However, it does not explicitly state idempotency or side effects, limiting a higher score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear sections and bullet points for operations. Each sentence serves a purpose, but it is slightly verbose in parts (e.g., the portmanteau rationale could be tightened). Overall, it is well-organized and front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple sub-operations, conditional behavior), the description covers most aspects: operation details, prerequisites (BUMI_ROBOT_URL), and a return structure note. An output schema exists, so the brief return description is acceptable. Missing details on error handling or response format, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'operation' has no enum values in the schema (0% coverage). The description adds significant meaning by listing seven specific operation values (info, specs, sdk_links, etc.) with detailed explanations for each. This fully compensates for the schema gap and provides rich semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for retrieving information about the Bumi humanoid robot, including hero product info, OSS links, and a fleet virtual-twin map. It distinguishes from the sibling tool 'bumi_agentic_workflow' by being a single entry for discovery and setup, establishing a unique purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed context for each sub-operation (info, specs, sdk_links, etc.) but does not explicitly state when to use this tool over the sibling or when not to use it. The portmanteau rationale offers some implicit guidance, but without clear exclusions or alternatives, the score is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
bumi_agentic_workflow - First observed
bumi_tool
TDQS
The two tools have clearly distinct purposes: 'bumi_agentic_workflow' handles high-level orchestration by delegating to other tools, while 'bumi_tool' provides direct operations on the Bumi robot. There is no ambiguity or overlap.
Both tool names share the 'bumi_' prefix, but one uses a descriptive 'agentic_workflow' while the other uses the generic 'tool', lacking a consistent pattern. The naming is passable but not uniform.
With only 2 tools, the surface is thin but arguably appropriate for an early-stage MCP server that bundles many operations into a single 'bumi_tool' and provides an orchestration layer. It does not feel excessive, but more tools might be expected for a robot server.
The tool set covers information retrieval (specs, SDK, status) and conceptual guidance (virtual twin, fleet), but lacks actual robot control or modification operations. The server's stated scope is discovery and setup, which is partially met, but interactive features are missing.
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 Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceA Python-based server that enables AI assistants to control robots by integrating the Model Context Protocol (MCP) with ROS 2, allowing for natural language commands that translate into robot movement via the /cmd\_vel topic.84-
- AlicenseNot gradedqualityDmaintenanceA robot-control MCP server enabling LLMs to control Unitree robots and DJI Tello drones with mock and hardware backends, built-in routines, and sequence execution.12MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for controlling Unitree robots via DDS protocol, supporting G1, Go2, H1, H2, B2, A2, R1 and more. Enables LLM agents to command robots with high-level actions and safety guards.3MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for AI agents to inspect and control ROS2 graphs, enabling topic listing, node info, service calls, parameter management, and pub/echo without manual ROS2 CLI usage.11MIT
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/sandraschi/bumi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server