grounded-motion-mcp
This server provides an evidence-grade motion tracking and validation pipeline using pinned MMPose RTMW whole-body inference. It includes:
track_motion: Run inference on a source video, producing 133 raw landmarks per frame, normalized pose tracks, overlays, trajectories, and a manifest. Optional crop, device, model preset, and minimum score threshold. All tracks start in "tracked/unreviewed" state.
validate_track: Check schema, chronology, required joint coverage (hips, feet, body wrists), review attestations, and event lock. With production gate enabled, it fails unless all conditions are met.
inspect_track: Summarize coverage gaps, landmark uncertainty, events, review state, and gate results.
compare_motion: Mechanically compare a candidate track to a source across hips, feet, wrists, and hands, returning a tri-state judgment (completed/blocked) with per-lane blockers if applicable.
export_artifacts: Verify manifest integrity (SHA-256 hashes) and export a deterministic, content-addressed review bundle.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@grounded-motion-mcptrack motion from video.mp4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
grounded-motion-mcp
grounded-motion-mcp is a standalone, agent-free motion tracking appliance. It runs pinned
MMPose RTMW whole-body inference, preserves all 133 raw landmarks and their exact detector scores,
normalizes the motion into a reviewable grounded-motion-track/v2 graph, and produces evidence for
feet, pelvis/root, hands, detector score, occlusion, and source chronology. RTMW SimCC scores are
backend-native maximum responses, not calibrated probabilities; values above 1 are preserved.
The model is a sensor. It does not author motion or certify its own output.
What it produces
Every content-addressed job contains:
raw-predictions.json— immutable detector output.pose-track.json— normalized landmarks with provenance.pose-track-report.json— structural and production-gate findings.trajectories.svg— pelvis, wrists, heels, and big-toe paths.overlay.mp4andoverlay-slow.mp4— full-speed and slow evidence.manifest.json— artifact paths, sizes, and SHA-256 hashes.receipt.json— exact input, backend, versions, device, status, and job identity.
Inference deliberately ends in tracked/unreviewed. validate_track with the production gate
enabled fails until every required hip, foot, and body-wrist landmark is source-witnessed, the
review attestations are present, and the event map is reviewed and locked. A claimed review flag
without witnessed landmark coverage fails closed.
Related MCP server: video-analyzer
MCP tools
track_motionvalidate_trackinspect_trackcompare_motionexport_artifacts
The default transport is local STDIO. The optional Streamable HTTP lane uses the same service code and expects files to be mounted under the configured workspace root.
Install
Core tools and MCP server:
uv sync --extra devMMPose inference requires OpenMMLab's compiled runtime. The repeatable path is the supplied container:
docker build -t grounded-motion-mcp .For a native install, sync the pinned inference stack, then let OpenMIM install the matching compiled MMCV build into that environment:
uv sync --extra inference --extra dev
uv run mim install "mmcv==2.1.0"Local CLI
uv run grounded-motion --workspace /absolute/path/workspace track \
/absolute/path/source.mp4 \
--device cpu
uv run grounded-motion --workspace /absolute/path/workspace validate \
/absolute/path/workspace/grounded-motion/jobs/<job-id>/pose-track.json \
--production
uv run grounded-motion --workspace /absolute/path/workspace export \
/absolute/path/workspace/grounded-motion/jobs/<job-id>Use --crop x,y,width,height to lock a single subject crop. Coordinates are source pixels.
The entire source interval is decoded without resampling.
MCP configuration
STDIO:
{
"mcpServers": {
"grounded-motion": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/grounded-motion-mcp",
"run",
"grounded-motion-mcp"
],
"env": {
"GROUNDED_MOTION_WORKSPACE": "/absolute/path/motion-workspace"
}
}
}
}Agent-free HTTP appliance:
docker run --rm --gpus all -p 8000:8000 \
-v /absolute/path/data:/data \
-e GROUNDED_MOTION_TRANSPORT=streamable-http \
-e GROUNDED_MOTION_WORKSPACE=/data \
grounded-motion-mcpThe endpoint is /mcp. Do not expose it publicly without authentication and an origin policy.
Model preset
Production uses MMPose 1.3.2 RTMW-X Cocktail14 at 384×288:
133 COCO-WholeBody landmarks.
Apache-2.0 MMPose code.
Explicit body, six foot, face, and 21 landmarks per hand.
The fixed Vanguard canary retains whole-image single-subject inference.
Arbitrary uploads use the hash-pinned RTMDet-m COCO-person detector and preserve every detected person in conservative identity segments. Ambiguous crossings, gaps, exits, and re-entry start new segments instead of inventing re-identification.
The preset records the upstream config and checkpoint URL in every receipt. Downloaded weights must be cached and hashed before production use.
Completion states
tracked → reviewed → event-locked → keyed → transferred →
mechanically-compared → human-accepted
No earlier state implies a later one.
Judgment v2
The comparison result is tri-state. judgment_status=completed permits a boolean
mechanical_pass; judgment_status=blocked always returns mechanical_pass=null with explicit
per-lane blockers. Structural inference is never silently promoted into judgment.
Render registration and pelvis/root translation are diagnostics. Root-relative mechanics subtract each lane's per-frame pelvis and normalize by that lane's hip-to-ankle scale before comparing hips, feet, and COCO body wrists. Render registration never moves root-relative mechanics. For sprite fixtures, all 42 detailed COCO hand landmarks remain in raw and normalized evidence but are explicitly quarantined from mechanical judgment; body wrists remain eligible after review.
ChatGPT production tools
The production profile accepts arbitrary hash-locked MP4s through either a ChatGPT attachment or a direct signed upload:
start_motion_tracking(source_file, expected_sha256?, crop?, minimum_score?, request_id?)create_motion_upload(file_name, size_bytes, sha256, request_id?)finalize_motion_upload(execution_id, crop?, minimum_score?, request_id?)get_motion_status(execution_id)get_motion_result(execution_id)submit_motion_review(execution_id, tracked_evidence_sha256, subjects, excluded_subjects?, request_id?)
Attachments are copied from an approved temporary host into private GCS. Direct upload returns a one-use, 15-minute signed PUT URL bound to video/mp4 and a new object generation. Both paths lock the exact GCS generation and declared SHA-256, then run a CPU-only full-decode preflight before joining a FIFO queue. One user GPU execution runs at a time; the fixed health canary has a separate lock. Inputs are capped at 200 MiB and 10,000 decoded frames. Request ids make starts replay-safe.
The GPU worker runs the pinned RTMDet-m + RTMW-X stack and publishes immutable raw predictions, a multi-person track set, conservative identity findings, overlays with stable subject colors, trajectories, manifest, receipt, input lock, and reproducibility index. get_motion_result returns fresh 24-hour signed GET URLs. Tracking ends at tracked/unreviewed and event_lock_status=unlocked.
Review is a separate authenticated, human-only promotion. Every detector segment must be explicitly included or excluded with a reason. Included identities require interval, continuity, required-landmark, and event-map attestations; merges cannot overlap; sparse corrections cannot edit detector confidence; and unreliable landmarks may be quarantined with a reason. Successful review publishes reviewed tracks, event maps, reviewed overlays, trajectories, audit report, submission, and a new signed evidence index while retaining all raw detector evidence.
The immutable health canary remains available separately:
start_vanguard_canary()get_vanguard_canary_status(execution_id)get_vanguard_canary_result(execution_id)
start launches a one-task Cloud Run L4 GPU Job. The job tracks the immutable canonical Vanguard
Walk v1 and quarantined WalkSwordCarryV2 candidate 003 through the same GroundedMotionService
used by the CLI, verifies both manifests, runs the existing mechanical comparison, and publishes
private GCS evidence. result issues fresh 24-hour signed URLs for every artifact and the complete
evidence index. pipeline_pass proves real pinned MMPose inference, structural track validity,
artifact readback, and diagnostic completion. Because candidate 003 remains human-review pending,
the canary honestly returns judgment_status=blocked, mechanical_pass=null, and
human_accepted=false; it does not manufacture a reviewed event lock.
The fixtures preserve the eight source PNGs at Pose Lab commit
90ca534c46a47c660e7bf5ef7bd2efcf35dbeb9e and the eight candidate PNGs at immutable revision
b2c5bde5d91325726af34e5daea17b96d78b46f3. They are assembled as 82 frames at 100 fps using
repeats 11/9/10/11/11/9/10/11, with no interpolation. The paths, Git blob ids, file hashes,
video hashes, candidate quarantine status, and timing live in
src/grounded_motion_mcp/data/vanguard_canary.json.
Production authentication delegates identity only to Home Center OAuth. Tokens must be bound to
the production /mcp resource, carry grounded-motion:vanguard-canary, and identify
dclarke1005@gmail.com. Grounded Motion receives no Drive scope or Google refresh token.
Infrastructure is prepared by infra/bootstrap_gcp.sh inside the existing billed
home-center-dclar project, using isolated Grounded Motion service accounts, Artifact Registry,
bucket, Cloud Run service, GPU job, and a repository/main-constrained provider in the existing
github-actions WIF pool. The bootstrap refuses to continue unless the exact materialized videos
pass their stored SHA-256 values. Pull requests run .github/workflows/ci.yml. Every merge to main runs
.github/workflows/deploy-production.yml, builds the exact commit, deploys that image to the
CPU control service, CPU preflight/review job, and one-task L4 job, verifies the OAuth challenge, and completes a real GPU
canary before the deployment is green.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceA highly configurable, deployment-ready MCP server with modular architecture for dynamic tool loading and external package support.Last updated1

video-analyzerofficial
Flicense-qualityDmaintenanceMCP server enabling video analysis via scene detection, audio transcription, visual description, and stylistic fingerprinting, with tools for full pipeline execution and storyboard generation.Last updated- Alicense-qualityCmaintenanceAn MCP server that evaluates whether retrieval methods and AI outputs are grounded in long narrative manuscripts by retrieving evidence and scoring coverage deterministically, without external model APIs. It provides tools for chunking, indexing, retrieval, and evaluation.Last updated1MIT
- Alicense-qualityDmaintenanceA configurable MCP server that enables creating custom analysis tools through JSON configuration, with built-in frameworks for error handling, self-evaluation, security guardrails, and output artifacts.Last updated17MIT
Related MCP Connectors
MCP server for the Inistate platform: module discovery, entry management, and activity submission.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server for Wan AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Valar05/grounded-motion-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server