Vicon DataStream MCP Server

Vicon DataStream MCP Server

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.

Category
访问服务器

README

Vicon DataStream MCP Server

English | 中文

MCP Python Vicon SDK

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.


📋 Features

🔌 Connection Management

  • ✅ TCP Direct Connection (Port 801)
  • ✅ Multicast Connection (224.0.0.0/4)
  • ✅ Multicast Forwarding Control
  • ✅ Configurable Buffer Size

🏃 Kinematic Data (Complete)

  • ✅ Global Pose: Position + 4 rotation formats (Euler/Quaternion/Matrix/Helical)
  • ✅ Local Pose: Relative parent segment transform, 4 rotation formats
  • ✅ Static Offset: PRE-POSITION/PRE-ORIENTATION
  • ✅ Segment Hierarchy: Parent segments, child segments, root segment
  • ✅ Occlusion Status: Real-time markers

📍 Marker Tracking

  • ✅ Labeled Markers (subject + parent segment + position + occlusion)
  • ✅ Unlabeled Markers (raw reflection points)
  • ✅ Marker Ray Tracking (ray-tracing camera assignment)

📊 Biomechanical Devices

  • ✅ Force Plate Data:
    • Global coordinates: Force vector (N), Moment vector (Nm), Center of Pressure (mm)
    • Local coordinates: Relative to force plate's own coordinate system
    • Analog channel voltage
  • ✅ Eye Tracker: Eye position + gaze vector (with occlusion detection)
  • ✅ Generic Devices: EMG etc., auto-recognized units

📷 Cameras and Centroids

  • ✅ Camera list (ID, type, resolution, display name)
  • ✅ Dynamic cameras (movable cameras)
  • ✅ Camera Calibration Parameters:
    • Global pose (translation + 4 rotation types)
    • Lens parameters (focal length, principal point, distortion coefficients k1,k2,k3)
  • ✅ Centroid data (reflected point position + weight per camera)

⚙️ Advanced Configuration

  • ✅ 3 Stream Modes (ClientPull/ClientPullPreFetch/ServerPush)
  • ✅ Subject Filtering (receive only specified subjects)
  • ✅ Coordinate System Mapping (6-direction customization, auto-detect Unity/Unreal/ROS)
  • ✅ Latency Analysis (total latency + stage breakdown)
  • ✅ Timecode (hours:minutes:seconds:frames)
  • ✅ Wireless Network Optimization (Windows)

📚 Documentation Navigation

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

Windows Users Quick Start

If you use Windows, please check the Windows Complete Installation Guide, which includes:

  • Vicon SDK download and installation steps
  • Detailed SDK directory structure
  • OpenClaw connection configuration (including multi-server configuration)
  • Port description (801/804/8802/7000/51001)
  • Real-time data acquisition complete tutorial
  • Troubleshooting and performance optimization

Vicon Tracker Setup


🚀 Quick Start

1. Install Vicon SDK

cd "D:\Program Files\Vicon\DataStream SDK\Win64\Python"
pip install -e vicon_dssdk

2. Install MCP Dependencies

cd vicon-datastream-mcp
pip install -r requirements.txt

3. Configure OpenClaw/Claude Desktop

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

4. Run

# stdio mode (default)
python -m src.mcp_server

# SSE mode
python -m src.mcp_server --transport sse --port 8000

💬 Natural Language Examples

Connection and Configuration

"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 Kinematic Data

"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")

Biomechanical Data

"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)

Cameras and Calibration

"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)")

Analysis and Debugging

"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")

🛠️ Complete MCP Tools List (36)

Connection (5)

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

Data Configuration (5)

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

Time and Latency (4)

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

Subjects and Segments (5)

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

Markers (2)

Tool Description
vicon_get_markers Markers (with rays)
vicon_get_unlabeled_markers Unlabeled markers

Devices and Force Plates (4)

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

Eye Trackers (2)

Tool Description
vicon_get_eye_trackers Eye tracker list
vicon_get_eye_tracker Position + gaze vector

Cameras (3)

Tool Description
vicon_get_cameras Camera list
vicon_get_centroids Centroid data
vicon_get_camera_calibration Calibration parameters

Coordinate System (3)

Tool Description
vicon_set_axis_mapping Set coordinate system
vicon_get_axis_mapping Get coordinate system
vicon_get_server_orientation Server orientation

Debugging (2)

Tool Description
vicon_set_timing_log Timing log
vicon_configure_wireless Wireless optimization

📡 Data Format Examples

Segment Pose (Complete)

{
  "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"]
  }
}

Force Plate Data

{
  "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 Calibration

{
  "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}
  }
}

🌐 Coordinate System Quick Reference

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")

📁 Project Structure

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

🐛 Troubleshooting

SDK Not Found

# 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"

Connection Failed

  1. Is Vicon Tracker/Nexus/Evoke running?
  2. Is DataStream enabled? (in software settings)
  3. Is firewall blocking port 801?

Empty Data

Ensure the correct call sequence:

  1. vicon_connect()
  2. vicon_enable_data("segment")
  3. vicon_get_frame()
  4. vicon_get_segment(...)

📚 Related Resources


🔬 SDK Information

Property Value
SDK Name Vicon DataStream SDK
SDK Version 1.12.145507h
Protocol TCP / Multicast
Documentation SDK Manual
License Vicon Proprietary

Part of ROSClaw


Made with precision for motion capture professionals 🎯

Generated by ROSClaw SDK-to-MCP Transformer SDK: Vicon DataStream SDK v1.12.145507h | Protocol: TCP/Multicast

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选