loading…
Search for a command to run...
loading…
Enables AI agents and LLMs to interact with Vicon motion capture systems for real-time streaming of kinematic data, markers, force plates, eye trackers, and cam
Enables AI agents and LLMs to interact with Vicon motion capture systems for real-time streaming of kinematic data, markers, force plates, eye trackers, and camera calibration.
English | 中文
A full-featured Vicon motion capture data streaming server based on MCP (Model Context Protocol).
📚 SDK Reference: Vicon DataStream SDK Manual.pdf 📦 Based on SDK: Vicon DataStream SDK v1.12.145507h (Win64 Python)
✨ 100% Feature Complete: Implements all 47+ core functions of Vicon DataStream SDK.
Part of the ROSClaw Embodied Intelligence Operating System.
| Document | Description |
|---|---|
| 📖 Windows Setup Guide | Windows system detailed installation, configuration, troubleshooting |
| ⚙️ Configuration Reference | OpenClaw/Claude Desktop configuration details |
| 🏗️ Architecture | System architecture and technical details |
| ✅ Feature Checklist | Complete feature checklist |
| 📄 SDK Developer Manual | Vicon DataStream SDK v1.12.145507h Official PDF Documentation |
If you use Windows, please check the Windows Complete Installation Guide, which includes:
![]()
cd "D:\Program Files\Vicon\DataStream SDK\Win64\Python"
pip install -e vicon_dssdk
cd vicon-datastream-mcp
pip install -r requirements.txt
Edit the configuration file (Windows path: C:\Users\<username>\.openclaw\openclaw.json):
{
"mcpServers": {
"vicon": {
"command": "python",
"args": ["D:/workspace/rosclaw/mcp/vicon-datastream-mcp/src/mcp_server.py"],
"env": {
"VICON_HOST": "192.168.20.24:801"
}
}
}
}
Port Selection Reference:
| Port | Use Case | Latency |
|---|---|---|
| 801 | DataStream Live/Offline (Recommended) | Standard |
| 804 | DataStream Low Latency | Lower |
| 8802 | DataStream Live (Legacy Compatibility) | Standard |
💡 Tip: If port 801 connection fails, try 804 or 8802
Detailed configuration instructions can be found in the Windows Setup Guide
# stdio mode (default)
python -m src.mcp_server
# SSE mode
python -m src.mcp_server --transport sse --port 8000
"Connect to Vicon system"
→ vicon_connect(host="localhost:801")
"Connect via multicast using local IP 192.168.1.100"
→ vicon_connect_multicast(local_ip="192.168.1.100")
"Enable low latency push mode"
→ vicon_set_stream_mode("ServerPush")
"Set Unity coordinate system (Y-up)"
→ vicon_set_axis_mapping("Forward", "Up", "Right")
"Only receive Colin's data"
→ vicon_clear_subject_filter() + vicon_add_subject_filter("Colin")
"Get Colin's pelvis complete pose"
→ vicon_get_segment(subject_name="Colin", segment_name="Pelvis")
Returns: Global/Local/Static transforms, each containing Euler/Quaternion/Matrix/Helical
"Get all segments hierarchy"
→ vicon_get_all_segments("Colin")
"Get marker LPSI ray tracing information"
→ vicon_get_markers(subject_name="Colin")
"Get force plate force and moment (global coordinates)"
→ vicon_get_force_plates()
"Get force plate local coordinate data"
→ vicon_get_force_plates(include_local=true)
"Get eye tracker 1 gaze direction"
→ vicon_get_eye_tracker(eye_tracker_id=1)
"List all cameras"
→ vicon_get_cameras()
"Get calibration parameters for camera Vantage001"
→ vicon_get_camera_calibration(camera_name="Vantage001")
Returns: Global pose + focal length + distortion coefficients
"Get centroid data for camera 1"
→ vicon_get_centroids(camera_name="Vantage 16 (2105980)")
"Analyze system latency bottleneck"
→ vicon_get_latency_samples()
Returns: {acquisition: 0.001s, processing: 0.005s, network: 0.002s}
"Get current frame timecode"
→ vicon_get_timecode()
Returns: 01:12:24:02
"Enable timing log debugging"
→ vicon_set_timing_log(client_log="timing.log")
| Tool | Description |
|---|---|
vicon_connect |
TCP connection |
vicon_connect_multicast |
Multicast connection |
vicon_start_multicast_transmit |
Start multicast forwarding |
vicon_stop_multicast_transmit |
Stop multicast forwarding |
vicon_set_buffer_size |
Set buffer size |
| Tool | Description |
|---|---|
vicon_enable_data |
Enable data type |
vicon_disable_data |
Disable data type |
vicon_check_data_enabled |
Check enabled status |
vicon_set_stream_mode |
Set stream mode |
vicon_get_frame |
Get frame |
| Tool | Description |
|---|---|
vicon_get_timecode |
Timecode |
vicon_get_frame_rates |
All frame rates |
vicon_get_latency_total |
Total latency |
vicon_get_latency_samples |
Latency samples |
| Tool | Description |
|---|---|
vicon_get_subjects |
Subject list |
vicon_clear_subject_filter |
Clear filter |
vicon_add_subject_filter |
Add filter |
vicon_get_segment |
Single segment data (full format) |
vicon_get_all_segments |
All segments |
| Tool | Description |
|---|---|
vicon_get_markers |
Markers (with rays) |
vicon_get_unlabeled_markers |
Unlabeled markers |
| Tool | Description |
|---|---|
vicon_get_devices |
Device list |
vicon_set_apex_feedback |
Apex haptic feedback |
vicon_get_force_plates |
Force plates (global + local) |
vicon_get_analog_voltage |
Analog voltage |
| Tool | Description |
|---|---|
vicon_get_eye_trackers |
Eye tracker list |
vicon_get_eye_tracker |
Position + gaze vector |
| Tool | Description |
|---|---|
vicon_get_cameras |
Camera list |
vicon_get_centroids |
Centroid data |
vicon_get_camera_calibration |
Calibration parameters |
| Tool | Description |
|---|---|
vicon_set_axis_mapping |
Set coordinate system |
vicon_get_axis_mapping |
Get coordinate system |
vicon_get_server_orientation |
Server orientation |
| Tool | Description |
|---|---|
vicon_set_timing_log |
Timing log |
vicon_configure_wireless |
Wireless optimization |
{
"subject": "Colin",
"segment": "Pelvis",
"global": {
"translation": {"x": -522.3, "y": -1.6, "z": 1119.1},
"rotation_euler_xyz": {"x": 0.1, "y": -0.2, "z": 0.05},
"rotation_quaternion": {"x": 0.0, "y": 0.1, "z": 0.0, "w": 0.99},
"rotation_matrix": [[1,0,0], [0,1,0], [0,0,1]],
"rotation_helical": {"x": 0.0, "y": 0.1, "z": 0.0, "magnitude": 0.1},
"occluded": false
},
"local": { /* Relative to parent segment */ },
"static": { /* PRE-POSITION/PRE-ORIENTATION */ },
"hierarchy": {
"parent": "Hips",
"children": ["Spine", "LeftUpperLeg", "RightUpperLeg"]
}
}
{
"plate_id": 1,
"global": {
"force_vectors": [{"x": 0.0, "y": 0.0, "z": 823.5, "unit": "N"}],
"moment_vectors": [{"x": 12.3, "y": -5.2, "z": 0.0, "unit": "Nm"}],
"center_of_pressure": [{"x": 125.0, "y": -45.0, "z": 0.0, "unit": "mm"}]
},
"local": {
/* Relative to force plate's own coordinate system */
}
}
{
"camera": "Vantage 16 (2105980)",
"global_pose": {
"translation": {"x": 1200.5, "y": -800.2, "z": 2400.0, "unit": "mm"},
"rotation": {
"euler_xyz": {"x": 0.0, "y": 0.1, "z": 0.0},
"quaternion": {"x": 0.0, "y": 0.05, "z": 0.0, "w": 0.998}
}
},
"lens": {
"focal_length_mm": 24.0,
"principal_point": {"x": 960.0, "y": 540.0},
"lens_parameters": {"k1": 0.001, "k2": -0.0001, "k3": 0.0}
}
}
| Software | X | Y | Z | Call |
|---|---|---|---|---|
| Vicon Default | Forward | Left | Up | (default) |
| Unity | Forward | Up | Right | vicon_set_axis_mapping("Forward", "Up", "Right") |
| Unreal | Forward | Right | Up | vicon_set_axis_mapping("Forward", "Right", "Up") |
| ROS | Forward | Left | Up | vicon_set_axis_mapping("Forward", "Left", "Up") |
| Blender | Left | Forward | Up | vicon_set_axis_mapping("Left", "Forward", "Up") |
vicon-datastream-mcp/
├── src/
│ ├── __init__.py # Python package init
│ └── mcp_server.py # Main MCP Server (81KB, complete implementation)
├── prompts/ # Prompt templates
│ ├── system.txt # System prompt
│ └── examples/ # Example prompts
│ └── basic_usage.txt
├── docs/ # Documentation
│ ├── WINDOWS_SETUP.md # Windows setup guide
│ ├── CONFIG.md # Configuration guide
│ ├── ARCHITECTURE.md # Architecture details
│ └── Vicon DataStream SDK Manual.pdf # 📚 SDK v1.12.145507h official doc
├── config.json # MCP client configuration
├── requirements.txt # Python dependencies
├── CHECKLIST.md # ✅ Feature completeness checklist
├── README.md # This document (English)
└── README.zh.md # Chinese version
# Method 1: Standard installation
cd "D:\Program Files\Vicon\DataStream SDK\Win64\Python"
pip install -e vicon_dssdk
# Method 2: Set environment variable
$env:VICON_SDK_PATH = "D:\Program Files\Vicon\DataStream SDK\Win64\Python"
Ensure the correct call sequence:
vicon_connect()vicon_enable_data("segment")vicon_get_frame()vicon_get_segment(...)D:\Program Files\Vicon\DataStream SDK\| Property | Value |
|---|---|
| SDK Name | Vicon DataStream SDK |
| SDK Version | 1.12.145507h |
| Protocol | TCP / Multicast |
| Documentation | SDK Manual |
| License | Vicon Proprietary |
Made with precision for motion capture professionals 🎯
Generated by ROSClaw SDK-to-MCP Transformer SDK: Vicon DataStream SDK v1.12.145507h | Protocol: TCP/Multicast
Выполни в терминале:
claude mcp add vicon-datastream-mcp-server -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.