rerun-3d-mcp
v1.0.0
Published
MCP server for Rerun.io ↔ SceneView integration — generate AR loggers, Python sidecars, web viewer embeds, and project scaffolding to visualize ARCore/ARKit sessions in Rerun.
Maintainers
Readme
rerun-3d-mcp
MCP server that helps Claude generate SceneView ↔ Rerun.io integration code: AR loggers, Python sidecars, Web Viewer embeds, and project scaffolding to visualize ARCore / ARKit sessions in the Rerun viewer.
Install
npx rerun-3d-mcpOr configure as a Claude Code MCP server:
{
"mcpServers": {
"rerun": {
"command": "npx",
"args": ["-y", "rerun-3d-mcp"]
}
}
}Tools
| Tool | Purpose |
|---|---|
| setup_rerun_project | Generates the minimum set of files to wire Rerun into an existing SceneView project (Android, iOS, Web, or standalone Python). |
| generate_ar_logger | Returns a ready-to-paste Kotlin or Swift helper that streams camera pose / planes / point clouds / anchors / hit results from an AR session to Rerun. |
| generate_python_sidecar | Returns a standalone Python script that receives the JSON-lines wire format over TCP and re-logs each event into the Rerun viewer. |
| embed_web_viewer | Returns HTML + module-script snippets that embed the Rerun Web Viewer (WASM) in a web page, pointing at a .rrd file you host. |
| explain_concept | Returns a focused explanation of one Rerun concept (rrd, timelines, entities, archetypes, transforms) tailored to a SceneView / AR developer audience. |
Wire format
The generated Kotlin and Swift bridges share the same JSON-lines wire format over TCP — one JSON object per line, terminated by \n:
{"t": 123456789, "type": "camera_pose", "entity": "world/camera", "translation": [x,y,z], "quaternion": [x,y,z,w]}
{"t": 123456789, "type": "plane", "entity": "world/planes/<id>", "polygon": [[x,y,z], ...], "kind": "horizontal"}
{"t": 123456789, "type": "point_cloud", "entity": "world/points", "positions": [[x,y,z], ...], "confidences": [f, ...]}
{"t": 123456789, "type": "anchor", "entity": "world/anchors/<id>", "translation": [x,y,z], "quaternion": [x,y,z,w]}
{"t": 123456789, "type": "hit_result", "entity": "world/hits/<id>", "translation": [x,y,z], "distance": f}The Python sidecar (generated by generate_python_sidecar) maps each event type to the matching Rerun archetype (Transform3D, LineStrips3D, Points3D, etc.).
Typical workflow
npx rerun-3d-mcp— register the server in Claude Code.- Ask Claude: "Generate an Android ARScene that logs camera pose and planes to Rerun at 10 Hz".
- Claude calls
generate_ar_logger(language=kotlin, dataTypes=[pose, planes], rateHz=10)and pastes the result into your project. - Ask Claude: "Give me the Python sidecar to receive this".
- Claude calls
generate_python_sidecar()and you drop the script next to your build. - On your dev machine:
pip install rerun-sdk && python rerun-bridge.py. - On the device:
adb reverse tcp:9876 tcp:9876(Android) or connect to your Mac's LAN IP (iOS). - Launch the app — the Rerun viewer shows the live camera trajectory, detected planes, and point cloud.
About
This MCP is part of the SceneView ecosystem — an AI-first 3D / AR SDK for Jetpack Compose, SwiftUI, and the Web. See github.com/sceneview/sceneview for the main project.
Rerun is a trademark of Rerun AB — this MCP is an independent integration, not affiliated with Rerun.
License
Apache-2.0 — see LICENSE.
