Skip to main content

MCP server connecting Anki Vector robots to AI assistants via Wire-Pod

Project description

๐Ÿค– VectorClaw

CI Python 3.11+ PyPI License: MIT Status: v1.0.0

Give your AI assistant a body.

VectorClaw is an MCP server that exposes Anki Vector robot capabilities as tools for AI assistants like OpenClaw โ€” bridging natural language to real-world robot actions over a fully local, cloud-free stack.


Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    stdio MCP    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    gRPC/WiFi    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  AI Agent   โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚  vectorclaw-mcp  โ”‚ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ โ”‚  Vector โ”‚
โ”‚  (OpenClaw) โ”‚                 โ”‚  (Python 3.11+)  โ”‚                 โ”‚  Robot  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

All communication is local-only โ€” no cloud dependency at runtime (Wire-Pod setup path).

See Security Architecture for the full trust model.


Table of Contents


Current Status

v1.0.0 Released ยท 2026-03-01

16 tools verified โœ… on hardware | 7 tools experimental โš ๏ธ

Known limitations:

  • vector_drive_on_charger โ€” activates cube but no reliable charger approach
  • Perception detections โ€” often returns empty lists; SDK semantics under investigation
  • Idle behaviors โ€” Vector's autonomous animations can overlap with commanded behaviors

See ROADMAP.md for the full milestone plan.


Quickstart

Requirements: Python 3.11+ ยท Wire-Pod running ยท Vector on local WiFi

For the complete walkthrough (Wire-Pod install, robot auth, WiFi config, troubleshooting) see docs/SETUP.md.

Guided Setup (recommended for new users)

The vectorclaw-setup wizard handles configuration, SDK validation, connectivity check, and a smoke test in one go:

pip install vectorclaw-mcp
vectorclaw-setup

You will be prompted for your robot's serial number and optional IP address. On success you'll see a clear SETUP PASSED message and the next-steps command. On failure every step includes an exact remediation hint.

See docs/OPENCLAW_SETUP_SKILL.md for full details.


Manual Setup

Step 1 โ€” Install VectorClaw

pip install vectorclaw-mcp

Step 2 โ€” Configure Vector SDK

Wire-Pod is the canonical self-hosted server for Vector. Install the SDK distribution and run the one-time auth wizard:

pip install wirepod_vector_sdk
python -m anki_vector.configure

Note: wirepod_vector_sdk installs under the anki_vector Python namespace, so all imports and CLI commands use anki_vector.

Legacy cloud path (best-effort only)

The standalone anki_vector package requires working DDL cloud servers and is brittle on modern Python runtimes.

pip install "vectorclaw-mcp[legacy]"
python -m anki_vector.configure

Prefer wirepod_vector_sdk for reliable, cloud-independent operation.

Step 3 โ€” Set environment variables

export VECTOR_SERIAL="your-robot-serial"   # required โ€” printed on underside of robot
export VECTOR_HOST="192.168.x.x"           # optional โ€” auto-discovered if omitted

Step 4 โ€” Run the server

vectorclaw-mcp
# or
python -m vectorclaw_mcp

MCP Client Configuration

Add the following block to your mcporter.json (or equivalent MCP client config).

With uvx (recommended โ€” no prior install needed)

{
  "mcpServers": {
    "vectorclaw": {
      "command": "uvx",
      "args": ["vectorclaw-mcp"],
      "env": {
        "VECTOR_SERIAL": "your-serial-here"
      }
    }
  }
}

With pip install (if installed locally)

{
  "mcpServers": {
    "vectorclaw": {
      "command": "vectorclaw-mcp",
      "env": {
        "VECTOR_SERIAL": "your-serial-here"
      }
    }
  }
}

Available Tools

Tool Category Description Status
vector_say ๐ŸŽ™๏ธ Speech Make the robot speak text aloud โœ…
vector_animate ๐ŸŽญ Expression Play a named animation โš ๏ธ
vector_drive_off_charger ๐ŸŽ๏ธ Motion Drive the robot off its charger โœ…
vector_drive ๐ŸŽ๏ธ Motion Drive straight and/or turn in place โœ…
vector_drive_on_charger ๐ŸŽ๏ธ Motion Drive Vector back onto its charger โš ๏ธ
vector_emergency_stop ๐ŸŽ๏ธ Motion Stop all motion immediately โœ…
vector_head ๐Ÿฆพ Actuation Set head angle (โˆ’22ยฐ โ€“ 45ยฐ) โœ…
vector_lift ๐Ÿฆพ Actuation Set lift height (0.0 โ€“ 1.0) โœ…
vector_look ๐Ÿ‘€ Perception Capture image from front camera โœ…
vector_capture_image ๐Ÿ‘€ Perception One-shot image capture โœ…
vector_face ๐Ÿ–ผ๏ธ Display Display custom image on face screen โœ…
vector_scan ๐Ÿ” Perception Head scan for environment โœ…
vector_find_faces ๐Ÿ” Perception Scan for faces โš ๏ธ
vector_list_visible_faces ๐Ÿ” Perception List currently visible faces โš ๏ธ
vector_face_detection ๐Ÿ” Perception Get face detection summary โš ๏ธ
vector_list_visible_objects ๐Ÿ” Perception List currently visible objects โš ๏ธ
vector_cube ๐ŸŽฒ Interaction Interact with cube (dock/pickup/drop/roll) โš ๏ธ
vector_vision_reset ๐Ÿ‘€ Perception Disable all vision modes โœ…
vector_pose ๐Ÿ“ Sensing Get current position and orientation โœ…
vector_status ๐Ÿ“Š Status Get battery level and charging status โœ…
vector_charger_status ๐Ÿ“Š Status Get charger connection state โœ…
vector_touch_status ๐Ÿ“Š Status Get touch sensor state โœ…
vector_proximity_status ๐Ÿ“Š Status Get proximity sensor reading โœ…

Status legend: โœ… Verified on hardware | โš ๏ธ Experimental (limited/reliable issues)

โš ๏ธ Charger prerequisite: vector_drive requires the robot to be off the charger. Call vector_drive_off_charger first, or set VECTOR_AUTO_DRIVE_OFF_CHARGER=1 for automatic undocking.

See docs/MCP_API_REFERENCE.md for full parameter details and response schemas.


Contributing

  1. ๐ŸŒฟ Branch: branch off dev, use <type>/<short-description> naming (e.g. fix/vector-face-payload, feat/vector-scan)
  2. ๐Ÿงช Tests: add or update tests under tests/; all tests use the mocked SDK โ€” no hardware required
  3. โœ… CI: Python 3.11 is required and must pass; Python 3.12 is experimental/informational โ€” run pytest tests/ -v locally before opening a PR
  4. ๐Ÿค– Hardware: if your change touches a tool or connection layer, record a smoke-test run in Hardware Smoke Log following the Hardware Test Playbook
  5. ๐ŸŽฏ PR scope: keep PRs focused โ€” separate docs, feature, and refactor changes to reduce merge-conflict risk with parallel lanes

Docs Map

๐Ÿ› ๏ธ Setup & Runtime

Document Description
Setup Guide Wire-Pod install, robot auth, WiFi, SDK config, troubleshooting
Troubleshooting Common runtime failures, smoke baseline, and escalation path
Runtime Support Supported Python versions and CI policy

๐Ÿ“ก API & SDK

Document Description
API Reference MCP tool signatures, parameters, response schemas
Wire-Pod SDK Reference Full SDK capability catalog
Wire-Pod SDK โ†’ MCP Integration Priorities Now/Later/Skip decision table for future tools

๐Ÿ”ฌ Hardware Validation

Document Description
Hardware Test Playbook Repeatable on-robot validation protocol and PR checklist
Hardware Smoke Log Running record of real-world smoke tests
Tool Docking Prerequisites Which tools require undocked state

๐Ÿ”’ Security

Document Description
Security Architecture Threat model, credential handling, input validation, network posture

License

MIT โ€” see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vectorclaw_mcp-1.0.1.tar.gz (184.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vectorclaw_mcp-1.0.1-py3-none-any.whl (26.1 kB view details)

Uploaded Python 3

File details

Details for the file vectorclaw_mcp-1.0.1.tar.gz.

File metadata

  • Download URL: vectorclaw_mcp-1.0.1.tar.gz
  • Upload date:
  • Size: 184.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vectorclaw_mcp-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1b91add94accc12a27f54f5a799db400adba9e72df93eb17b9e88d9585dd5e77
MD5 b6499984c37b4af73bab22e6bd348bba
BLAKE2b-256 18dae4c9ad761bc08ce0c4dbb130087da8ae15cb89b451138dc491b2b9b33c96

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectorclaw_mcp-1.0.1.tar.gz:

Publisher: release.yml on danmartinez78/VectorClaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file vectorclaw_mcp-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: vectorclaw_mcp-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 26.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for vectorclaw_mcp-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f4e266cf0eda48b5538dd35f1e76011e86f43df37635dd0a5d883ac1244a250
MD5 5312637db270fd008f7e42a2389aabb1
BLAKE2b-256 a900f2570f02692b658d52e70b44eacc4809c30a1f86b4791c9229ed60ea885c

See more details on using hashes here.

Provenance

The following attestation bundles were made for vectorclaw_mcp-1.0.1-py3-none-any.whl:

Publisher: release.yml on danmartinez78/VectorClaw

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page