Hosted MCP server · #132 most used on Smithery
srv-d7aoqmh5pdvs7391dcqg
ciprianpater/srv-d7aoqmh5pdvs7391dcqg
# NWO Robotics MCP Server Control real robots, IoT devices, and autonomous agent swarms through natural language — powered by the NWO Robotics API. --- ## What This Server Does This MCP server exposes the full NWO Robotics API as 64 ready-to-use tools. Any MCP-compatible AI agent (Claude, ChatGPT, Cursor, etc.) can use it to: - Send natural language instructions to physical robots - Run Visual-Language-Action (VLA) inference on live camera feeds - Plan, validate, and execute multi-step robot tasks - Monitor sensors, detect slip, and fuse multi-modal data - Train robots online with reinforcement learning - Register and manage agent identities on Base mainnet via the Cardiac biometric ID system No local installation needed. The server runs on Render and is ready to connect. --- ## Tools Overview ### 🤖 VLA Inference & Models Run Vision-Language-Action inference on any supported robot. Send a text instruction and camera images, receive joint action vectors in real time. Supports auto model routing, ultra-low-latency Cloudflare edge inference (28ms avg), and WebSocket streaming at up to 50Hz. `vla_inference` · `edge_inference` · `list_models` · `get_model_info` · `get_streaming_config` --- ### 🦾 Robot Control & State Query live robot state (joint angles, gripper, battery, position), execute pre-computed action sequences, and fuse camera + lidar + thermal + force + GPS sensor inputs into a single inference call. `query_robot_state` · `execute_actions` · `sensor_fusion` · `robot_query` · `get_agent_status` --- ### 🗺️ Task Planning & Learning Decompose complex instructions into ordered subtasks, execute them step by step, poll progress, and log outcomes so the model learns and improves with every run. `task_planner` · `execute_subtask` · `status_poll` · `learning_recommend` · `learning_log` --- ### 🔑 Agent Management Self-register a new AI agent in under 2 seconds, check your monthly API quota, upgrade tiers by paying ETH, and manage robot registrations and capabilities. | Tier | Calls/month | Cost | |------|-------------|------| | Free | 100,000 | $0 | | Prototype | 500,000 | ~0.015 ETH/mo | | Production | Unlimited | ~0.062 ETH/mo | `register_agent` · `check_balance` · `pay_upgrade` · `create_wallet` · `register_robot` · `update_agent` · `get_agent_info` --- ### 🔍 Agent Discovery Discover all available execution modes (mock / simulated / live), robot types, VLA models, and sensor capabilities. Validate tasks with a dry-run before committing to execution. `nwo_health` · `nwo_whoami` · `discover_capabilities` · `dry_run` · `plan_task` --- ### 🔌 ROS2 Bridge (Physical Robots) Connect directly to physical robots over the ROS2 bridge. Send joint commands, submit action sequences, and trigger emergency stops on one or all robots within 10ms. Supported: UR5e, Panda, Spot, Unitree G1, and more. `ros2_list_robots` · `ros2_robot_status` · `ros2_send_command` · `ros2_submit_action` · `ros2_emergency_stop` · `ros2_emergency_stop_all` · `ros2_get_robot_types` --- ### 🧪 Physics Simulation Simulate trajectories, check for collisions, estimate joint torques, validate grasps, and plan collision-free motions with MoveIt2 — before touching real hardware. `simulate_trajectory` · `check_collision` · `estimate_torques` · `validate_grasp` · `plan_motion` · `get_scene_library` · `generate_scene` --- ### 📐 Embodiment & Calibration Browse the robot embodiment registry (DOF, joint limits, sensors), download URDF models, get normalization parameters for VLA inference, and run automatic joint calibration. `list_embodiments` · `get_robot_specs` · `get_normalization` · `download_urdf` · `get_test_results` · `compare_robots` · `run_calibration` · `calibrate_confidence` --- ### 🧠 Online RL & Fine-Tuning Start online reinforcement learning sessions, stream state/action/reward telemetry, build fine-tuning datasets from logged runs, and launch LoRA fine-tuning jobs on any base VLA model. `start_rl_training` · `submit_rl_telemetry` · `create_finetune_dataset` · `start_finetune_job` --- ### 🖐️ Tactile Sensing (ORCA Hand) Read 256-taxel tactile sensor arrays from the ORCA robot hand, assess grip quality and object texture, and detect slip in real time to prevent dropped objects. `read_tactile` · `process_tactile` · `detect_slip` --- ### 📦 Dataset Hub Access 1.54 million+ human robot demonstrations for the Unitree G1 humanoid (430+ hours, LeRobot-compatible format) for training and fine-tuning. `list_datasets` --- ### 🫀 Cardiac Blockchain Identity (Base Mainnet) Register AI agents on Base mainnet and receive a permanent soul-bound Digital ID (`rootTokenId`). Issue verifiable credentials for task authorization, swarm control, location access, and payments — all gasless via the NWO relayer. Smart contracts deployed on Base Mainnet (Chain ID 8453): - `NWOIdentityRegistry` — `0x78455AFd5E5088F8B5fecA0523291A75De1dAfF8` - `NWOAccessController` — `0x29d177bedaef29304eacdc63b2d0285c459a0f50` - `NWOPaymentProcessor` — `0x4afa4618bb992a073dbcfbddd6d1aebc3d5abd7c` `cardiac_register_agent` · `cardiac_identify_agent` · `cardiac_renew_key` · `cardiac_issue_credential` · `cardiac_check_credential` · `cardiac_grant_access` · `cardiac_get_nonce` · `cardiac_check_access` · `cardiac_payment_process` --- ### 🔮 Cardiac Oracle Validate ECG biometric data from smartwatches to authenticate human identities, compute cardiac hashes, and verify recent validations. `oracle_health` · `oracle_validate_ecg` · `oracle_hash_ecg` · `oracle_verify` --- ## Supported Robot Models | Model | Type | Capabilities | |-------|------|--------------| | `xiaomi-robotics-0` | VLA | Grasp, navigate, manipulate | | `pi05` | VLA | General manipulation | | `groot_n1.7` | VLA | Humanoid control | | `deepseek-ocr-2b` | OCR | Label reading, text recognition | --- ## Example Usage **Pick and place:** > "Pick up the red box from the table and place it on shelf B" **Sensor query:** > "What is the temperature in warehouse zone 3?" **Safety:** > "Run a safety check before moving robot_001 to the loading dock" **Swarm:** > "Deploy all available robots to patrol the perimeter" **Learning:** > "What grip technique should I use for fragile glass objects?" --- ## Links - 🌐 NWO Capital - 📄 Agent Skill File - 📖 API Docs - 🧬 Cardiac SDK - 🔑 Get API Key - 🤗 Live Demo - 📜 OpenAPI Spec --- ## Support 📧 support@nwo.capital
- Uses
- 4.1k
- Tools
- 70
- Runs
- Hosted
- Listed
- 7mo ago
Get started
Add it to your agent
npx -y @smithery/cli@latest install ciprianpater/srv-d7aoqmh5pdvs7391dcqg --client claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http srv-d7aoqmh5pdvs7391dcqg https://server.smithery.ai/ciprianpater/srv-d7aoqmh5pdvs7391dcqg/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.srv-d7aoqmh5pdvs7391dcqg]
url = "https://server.smithery.ai/ciprianpater/srv-d7aoqmh5pdvs7391dcqg/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"srv-d7aoqmh5pdvs7391dcqg": {
"url": "https://server.smithery.ai/ciprianpater/srv-d7aoqmh5pdvs7391dcqg/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"srv-d7aoqmh5pdvs7391dcqg": {
"type": "http",
"url": "https://server.smithery.ai/ciprianpater/srv-d7aoqmh5pdvs7391dcqg/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http srv-d7aoqmh5pdvs7391dcqg https://server.smithery.ai/ciprianpater/srv-d7aoqmh5pdvs7391dcqg/mcpSaved to .gemini/settings.json.
What it can do
70 tools
vla_inference5 paramsRun VLA inference: send instruction + base64 images, receive joint actions
| Parameter | Type | Description |
|---|---|---|
images | array | Base64-encoded camera images |
agent_id | string | Target robot/agent ID |
model_id | string | e.g. xiaomi-robotics-0, pi05, groot_n1.7 |
instruction | string | Natural language robot instruction |
use_model_router | boolean | Auto-select best model for task type |
edge_inference2 paramsUltra-low-latency VLA inference via Cloudflare global edge (28ms avg)
| Parameter | Type | Description |
|---|---|---|
images | array | |
instruction | string |
list_modelsList all available VLA models with capabilities, status, and latency
get_model_info1 paramGet detailed info and benchmark performance for a specific model
| Parameter | Type | Description |
|---|---|---|
model_id | string | e.g. xiaomi-robotics-0 |
get_streaming_configGet available WebSocket streaming frequencies and chunk size ranges
query_robot_state2 paramsQuery robot state: joint angles, gripper state, position (x,y,z), battery
| Parameter | Type | Description |
|---|---|---|
agent_id | string | Robot or agent ID |
include_image | boolean | Include camera image in response |
execute_actions4 paramsExecute a sequence of pre-computed joint action vectors on a robot
| Parameter | Type | Description |
|---|---|---|
speed | number | |
actions | array | 2D array: each row is one joint-space action |
agent_id | string | |
safety_check | boolean |
sensor_fusion4 paramsRun VLA inference fusing camera + lidar + thermal + force + GPS sensor data
| Parameter | Type | Description |
|---|---|---|
images | array | |
sensors | object | |
agent_id | string | |
instruction | string |
robot_query1 paramQuick query: robot active/idle, battery percent, current task
| Parameter | Type | Description |
|---|---|---|
agent_id | string |
get_agent_status1 paramGet tasks completed and success rate for a robot agent
| Parameter | Type | Description |
|---|---|---|
agent_id | string |
task_planner3 paramsDecompose a complex instruction into ordered subtasks with time estimates
| Parameter | Type | Description |
|---|---|---|
context | object | Environment context e.g. {location, known_objects} |
agent_id | string | |
instruction | string |
execute_subtask3 paramsExecute a numbered subtask from a multi-step plan
| Parameter | Type | Description |
|---|---|---|
plan_id | string | |
agent_id | string | |
subtask_order | integer | 1-based subtask index |
status_poll2 paramsPoll the progress and status of a running task (completed, progress%, errors)
| Parameter | Type | Description |
|---|---|---|
task_id | string | |
agent_id | string |
learning_recommend2 paramsGet technique recommendations for a task (grip_force, approach_speed, etc.)
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
task_description | string |
learning_log7 paramsLog a completed task execution so the model can learn from it
| Parameter | Type | Description |
|---|---|---|
success | boolean | |
task_id | string | |
agent_id | string | |
sensor_data | object | |
technique_used | string | |
task_description | string | |
execution_time_ms | number |
register_agent4 paramsSelf-register a new AI agent — returns api_key, agent_id, and 100k free monthly quota
| Parameter | Type | Description |
|---|---|---|
agent_name | string | |
agent_type | string | |
capabilities | array | |
wallet_address | string | Ethereum wallet (or "auto" to generate) |
check_balanceCheck quota: used this month, remaining, limit, tier, subscription expiry
pay_upgrade3 paramsUpgrade tier by paying ETH (prototype=500k/mo ~0.015ETH, production=unlimited ~0.062ETH)
| Parameter | Type | Description |
|---|---|---|
tier | string | |
tx_hash | string | ETH transaction hash of payment |
billing_period | string |
create_walletCreate a hosted MoonPay wallet so the agent can be funded via credit card
register_robot4 paramsRegister a new robot entity in the NWO system
| Parameter | Type | Description |
|---|---|---|
name | string | |
type | string | mobile_arm | manipulator | mobile | humanoid |
agent_id | string | |
capabilities | array |
update_agent3 paramsUpdate a robot agent's capabilities or operational status
| Parameter | Type | Description |
|---|---|---|
status | string | |
agent_id | string | |
capabilities | array |
get_agent_info1 paramGet full agent profile: name, type, status, total tasks, success rate
| Parameter | Type | Description |
|---|---|---|
agent_id | string |
nwo_healthCheck NWO API online status and timestamp
nwo_whoamiGet the agent_id, tier, and quota_remaining for the current API key
discover_capabilitiesDiscover execution modes, robot/task types, available models, sensors, and features
dry_run3 paramsValidate task feasibility without executing — safety check, confidence, duration estimate
| Parameter | Type | Description |
|---|---|---|
robot_id | string | |
instruction | string | |
execution_mode | string |
plan_task3 paramsGenerate a phased plan: preparation → perception → execution → verification
| Parameter | Type | Description |
|---|---|---|
robot_id | string | |
instruction | string | |
execution_mode | string |
ros2_list_robotsList all robots currently connected to the ROS2 bridge
ros2_robot_status1 paramGet live status of a specific physical robot via ROS2 bridge
| Parameter | Type | Description |
|---|---|---|
robot_id | string |
ros2_send_command3 paramsSend a named command + joint angles to a physical robot via ROS2 bridge
| Parameter | Type | Description |
|---|---|---|
command | string | e.g. move_arm, home, open_gripper, close_gripper |
robot_id | string | |
joint_angles | array |
ros2_submit_action2 paramsSubmit a computed action sequence directly to a robot via ROS2 bridge
| Parameter | Type | Description |
|---|---|---|
actions | array | 2D action array from VLA inference |
robot_id | string |
ros2_emergency_stop2 paramsEmergency stop a single robot via ROS2 bridge (10ms response)
| Parameter | Type | Description |
|---|---|---|
reason | string | |
robot_id | string |
ros2_emergency_stop_all1 paramEmergency stop ALL connected robots via ROS2 bridge
| Parameter | Type | Description |
|---|---|---|
reason | string |
ros2_get_robot_typesGet all robot types supported by the ROS2 bridge with DOF, speed, and specs
simulate_trajectory4 paramsSimulate a trajectory with physics: check feasibility, collisions, time estimate
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
trajectory | array | |
physics_params | object | |
check_collision | boolean |
check_collision3 paramsCheck a trajectory for collisions with environment obstacles
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
trajectory | array | |
environment | object |
estimate_torques3 paramsEstimate joint torques for a trajectory given payload mass
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
trajectory | array | |
payload_mass | number | Payload mass in kg |
validate_grasp4 paramsValidate whether a grasp will be stable for object shape, mass, and grip force
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
grip_force | number | Grip force in Newtons |
object_mass | number | Mass in kg |
object_shape | string | cylinder | box | sphere | irregular |
plan_motion5 paramsPlan a collision-free motion path using MoveIt2
| Parameter | Type | Description |
|---|---|---|
planner | string | |
agent_id | string | |
goal_pose | array | Goal joint angles or Cartesian pose |
start_pose | array | Start joint angles |
avoid_collisions | boolean |
get_scene_libraryGet available simulation scenes (warehouse, kitchen, outdoor, etc.)
generate_scene4 paramsGenerate synthetic robot training scenes using NVIDIA Cosmos 3
| Parameter | Type | Description |
|---|---|---|
prompt | string | Scene description, e.g. "Warehouse with pallets and boxes" |
objects | array | |
lighting | string | |
variations | integer |
list_embodiments1 paramList all supported robot embodiments filterable by type
| Parameter | Type | Description |
|---|---|---|
filter_type | string | manipulator | mobile | humanoid | mobile_arm |
get_robot_specs1 paramGet full specifications for a robot type: DOF, joint limits, sensors, max speed
| Parameter | Type | Description |
|---|---|---|
robot_type | string | e.g. ur5e, panda, spot, g1 |
get_normalization1 paramGet joint normalization parameters (min, max, mean, std) needed for VLA inference
| Parameter | Type | Description |
|---|---|---|
robot_type | string |
download_urdf1 paramGet URDF robot model XML for a given robot type
| Parameter | Type | Description |
|---|---|---|
robot_type | string |
get_test_results1 paramGet LIBERO, CALVIN, and SimplerEnv benchmark results for a robot type
| Parameter | Type | Description |
|---|---|---|
robot_type | string |
compare_robots2 paramsCompare multiple robot types on DOF, speed, accuracy, and other fields
| Parameter | Type | Description |
|---|---|---|
robot_types | array | e.g. ["ur5e", "panda", "spot"] |
compare_fields | array |
run_calibration4 paramsRun automatic calibration on a robot (joint offset, force-torque, camera extrinsic)
| Parameter | Type | Description |
|---|---|---|
method | string | |
samples | integer | |
agent_id | string | |
calibration_type | string |
calibrate_confidence2 paramsCalibrate raw model confidence score to a calibrated success probability with CI
| Parameter | Type | Description |
|---|---|---|
model_id | string | |
model_confidence | number |
start_rl_training3 paramsStart an online RL training session with custom reward configuration
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
task_name | string | |
reward_config | object |
submit_rl_telemetry5 paramsSubmit state/action/reward data to an active RL session for online policy update
| Parameter | Type | Description |
|---|---|---|
state | array | |
action | array | |
reward | number | |
telemetry | object | |
rl_session_id | string |
create_finetune_dataset4 paramsCreate a fine-tuning dataset from logged task executions over a date range
| Parameter | Type | Description |
|---|---|---|
format | string | |
agent_id | string | |
end_date | string | YYYY-MM-DD |
start_date | string | YYYY-MM-DD |
start_finetune_job4 paramsStart a LoRA fine-tuning job on a base VLA model using a prepared dataset
| Parameter | Type | Description |
|---|---|---|
rank | integer | |
algorithm | string | |
base_model | string | |
dataset_id | string |
read_tactile2 paramsRead ORCA robot hand tactile sensor data (256 taxels per finger, force, slip)
| Parameter | Type | Description |
|---|---|---|
finger | string | |
sensor_type | string |
process_tactile2 paramsProcess tactile data to assess grip quality, object texture, recommended grip force
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
tactile_data | object |
detect_slip3 paramsDetect object slip by comparing current vs previous tactile readings
| Parameter | Type | Description |
|---|---|---|
agent_id | string | |
current_tactile | array | |
previous_tactile | array |
list_datasetsList Unitree G1 robot demonstration datasets — 1.54M+ episodes, 430+ hours, LeRobot format
cardiac_register_agent2 paramsRegister AI agent on Base mainnet. Returns permanent soul-bound rootTokenId.
| Parameter | Type | Description |
|---|---|---|
api_key_hash | string | keccak256(api_key) as 0x hex string |
moonpay_wallet | string | Agent Ethereum wallet address |
cardiac_identify_agent1 paramLook up an agent rootTokenId on-chain by their hashed API key
| Parameter | Type | Description |
|---|---|---|
api_key_hash | string | keccak256(api_key) as 0x hex string |
cardiac_renew_key4 paramsRenew agent API key binding on Base mainnet (requires EIP-712 agent signature)
| Parameter | Type | Description |
|---|---|---|
deadline | integer | Unix timestamp deadline for signature |
agent_sig | string | EIP-712 agent signature 0x... |
root_token_id | string | |
new_api_key_hash | string |
cardiac_issue_credential4 paramsIssue a verifiable credential to an identity (task_auth, capability, swarm_cmd, emergency)
| Parameter | Type | Description |
|---|---|---|
expires_at | integer | Unix timestamp for expiry |
root_token_id | string | |
credential_hash | string | |
credential_type | string | keccak256 of credential name e.g. keccak256("task_auth") |
cardiac_check_credential2 paramsCheck if a rootTokenId currently holds a valid credential of the given type
| Parameter | Type | Description |
|---|---|---|
root_token_id | string | |
credential_type | string |
cardiac_grant_access3 paramsGrant location access credential to an identity for a time window
| Parameter | Type | Description |
|---|---|---|
location_hash | string | |
root_token_id | string | |
duration_seconds | integer |
cardiac_get_nonce1 paramGet EIP-712 signing nonce for a wallet (required before relay message signing)
| Parameter | Type | Description |
|---|---|---|
wallet | string |
cardiac_check_access2 paramsCheck location access for a rootTokenId. Returns granted + deny reason code.
| Parameter | Type | Description |
|---|---|---|
location_id | string | |
root_token_id | string |
cardiac_payment_process4 paramsProcess a payment via Cardiac NWOPaymentProcessor smart contract (0x4afa...)
| Parameter | Type | Description |
|---|---|---|
terminal_id | string | |
amount_cents | integer | |
currency_code | string | |
root_token_id | string |
oracle_healthCheck Cardiac oracle: health, chain, relayer balance, ECG config
oracle_validate_ecg2 paramsValidate ECG biometric data to prove human identity (10/min rate limit)
| Parameter | Type | Description |
|---|---|---|
wallet | string | |
ecg_data | object |
oracle_hash_ecg2 paramsCompute a cardiac hash from ECG RR intervals without full validation
| Parameter | Type | Description |
|---|---|---|
wallet | string | |
rr_intervals | array | RR intervals in ms |
oracle_verify2 paramsVerify a recent ECG validation is cached by cardiac hash (in-memory, resets on restart)
| Parameter | Type | Description |
|---|---|---|
wallet | string | |
cardiac_hash | string |