The Cyberwave MCP Server exposes Cyberwave platform operations as tools that AI agents can discover and call autonomously. Instead of manually clicking through the dashboard or writing Python scripts, an AI model (Claude, GPT, Gemini, or any MCP-compatible client) can inspect your environments, create digital twins, position robots, capture camera frames, trigger workflows, and verify results visually, all through natural language.
The Model Context Protocol (MCP) is an open standard that defines how AI models discover and invoke external tools. It works like a universal adapter, any MCP-compatible AI client can connect to any MCP server and immediately know what operations are available, what parameters they accept, and what they return.When you connect the Cyberwave MCP server to an AI agent:
The agent sends a tool discovery request and receives a list of all available Cyberwave tools with their schemas
Based on your natural language instruction, the agent decides which tools to call and in what order
Each tool call is a JSON-RPC 2.0 request sent to the MCP endpoint
The MCP server translates the tool call into the corresponding Cyberwave REST API operation
Results are returned to the agent, which can reason about them and decide what to do next
Action tools enforce safety guardrails before executing. These limits can be configured via environment variables on self-hosted deployments.
Limit
Default
Env var
Max position delta
2.0 m
CYBERWAVE_MCP_MAX_POSITION_DELTA_M
Max navigation distance
5.0 m
CYBERWAVE_MCP_MAX_NAV_DISTANCE_M
Max joint delta
0.7 rad
CYBERWAVE_MCP_MAX_JOINT_DELTA_RAD
If a tool call exceeds these limits, the server returns an error with code POSITION_DELTA_TOO_LARGE, NAV_DISTANCE_TOO_LARGE, or JOINT_DELTA_TOO_LARGE instead of executing the action.
The MCP server maintains session context to reduce verbosity. When you interact with a workspace, environment, or twin, the server remembers your last selection.
Twins: If twin_uuid is omitted, the server uses the last twin from session context set by a previous cw_get_twin or any action tool call. If no twin has been used yet, the tool returns an AMBIGUOUS_TARGET error prompting the agent to resolve the twin first.
Environments: If environment_uuid is omitted, it falls back to session context or the CYBERWAVE_ENVIRONMENT_ID env var. Some tools (like cw_list_areas and cw_render_environment_preview) additionally auto-resolve when only one environment is visible to the user.
Workspaces: If workspace_uuid is omitted, it falls back to session context or CYBERWAVE_WORKSPACE_ID. Tools that require a workspace auto-resolve when only one workspace is visible.
This means agents can say “capture a frame” without specifying UUIDs after they’ve already inspected a twin with cw_get_twin.
MCP resources provide read-only data URIs that agents can fetch directly without calling tools.
URI
MIME Type
Description
cyberwave://env/{environment_uuid}/areas
application/json
All areas defined in an environment
cyberwave://env/{environment_uuid}/twins
application/json
All twins in an environment
cyberwave://twin/{twin_uuid}/schema
application/json
Twin universal schema (URDF-derived structure)
cyberwave://twin/{twin_uuid}/state
application/json
Twin state plus current joint states
Resources are useful when agents need to read structured data without triggering tool calls — for example, fetching the full joint schema before deciding which joints to move.
Connect the Cyberwave MCP server to your preferred AI client. All examples use the hosted endpoint, replace <CYBERWAVE_API_KEY> with your key from the profile page.
import anthropicclient = anthropic.Anthropic()response = client.beta.messages.create( model="claude-opus-4-1", max_tokens=1024, messages=[{ "role": "user", "content": "Create an environment with an SO101 arm positioned at x=1, y=0, z=0.5" }], mcp_servers=[{ "type": "url", "name": "cyberwave", "url": "https://mcp.cyberwave.com/mcp", "authorization_token": "YOUR_CYBERWAVE_API_KEY" }], tools=[{"type": "mcp_toolset", "mcp_server_name": "cyberwave"}],)
Claude discovers the available Cyberwave tools, plans the sequence of operations (create environment, add twin, set position), executes them through the MCP server, and can verify the result visually with cw_render_environment_preview.
stub: After calling cw_create_urdf_asset_from_zip, immediately call cw_set_asset_capabilities to define capabilities for the newly created asset. Use capability semantics from the Digital Twins documentation (/use-cyberwave/digital-twins/overview).
area_id (required), environment_uuid?, x?, y?, z? (at least one, must be > 0), execute=false
cw_set_area_image
area_id (required), environment_uuid?, image_url?, image_base64?, image_mime_type, keep_proportions?, remove_image? (exactly one of remove/url/base64), execute=false
Area images can be attached via a direct image_url (recommended for large images) or inline as image_base64 bytes with image_mime_type. Images are stored in environment settings.