AXIS Avatar Foundry
3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"axis-avatar-foundry": {
"url": "https://api.avatar.jonathanarvay.com/mcp"
}
}
}Remote-Endpunkte
https://api.avatar.jonathanarvay.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (14)
🟢axis_list_capabilities(kind)
List all AXIS Foundry capabilities (input formats, export platforms, validation rules). [Free — no payment required.]
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"description": "Filter by capability kind",
"enum": [
"input_format",
"export_platform",
"validation_rule"
]
}
},
"examples": [
{
"kind": "export_platform"
}
]
}🟢axis_validate(file_path, platform, profile)
Validate an avatar mesh file. Returns pass/warn/fail counts and detailed rule results. [Paid: $0.25 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file (.glb, .obj, .stl, etc.)"
},
"platform": {
"type": "string",
"description": "Target platform for platform-specific validation",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"profile": {
"type": "string",
"description": "Validation strictness profile",
"enum": [
"default",
"strict",
"lenient"
]
}
},
"required": [
"file_path"
],
"examples": [
{
"file_path": "avatars/hero.glb",
"platform": "unity",
"profile": "strict"
}
]
}🟢axis_inspect(file_path)
Inspect an avatar's contract state and provenance chain (stage, bone/vertex counts, provenance step count, chain_valid + any broken links). Does not return a quality grade — use axis_validate for pass/warn/fail rule results. [Paid: $0.10 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file"
}
},
"required": [
"file_path"
],
"examples": [
{
"file_path": "avatars/hero.glb"
}
]
}🟢axis_compare(file_a, file_b, sections)
Compare two avatar contracts. Returns similarity score and section-level diffs. [Paid: $0.10 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_a": {
"type": "string",
"description": "Path to first mesh file"
},
"file_b": {
"type": "string",
"description": "Path to second mesh file"
},
"sections": {
"type": "array",
"description": "Limit comparison to specific contract sections"
}
},
"required": [
"file_a",
"file_b"
],
"examples": [
{
"file_a": "avatars/hero_v1.glb",
"file_b": "avatars/hero_v2.glb"
}
]
}🟢axis_process(file_path, platform, export)
Run the full AXIS avatar pipeline (classify → normalize → rig → skin → validate). Returns contract summary. [Paid: $1.50 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file"
},
"platform": {
"type": "string",
"description": "Target platform",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"export": {
"type": "boolean",
"description": "Also export to the target platform"
}
},
"required": [
"file_path"
],
"examples": [
{
"file_path": "avatars/hero.glb",
"platform": "unreal",
"export": true
}
]
}🟢post_process_mesh(glb_base64, mesh_url, asset_kind, platform, polygon_tier, ...)
Post-process a RAW generated mesh (normalize → mesh-repair → rig/skin → validate → export) and return the finished, validated GLB as base64. The inline counterpart of axis_process (which needs a server file path) — the generation post-process step, callable by an LLM/agent that holds the mesh bytes (e.g. fresh TRELLIS output) or a URL to them. Provide the mesh EXACTLY one of two ways: inline as base64 (glb_base64) or as an HTTPS URL (mesh_url) — the URL's host must be on this server's operator-configured allowlist (off by default; an unconfigured allowlist refuses every mesh_url call, it is never open to an arbitrary host). Providing both or neither is a real input error. [Paid: $1.50 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"glb_base64": {
"type": "string",
"description": "Base64-encoded raw binary GLB to post-process. Provide exactly one of glb_base64 or mesh_url."
},
"mesh_url": {
"type": "string",
"description": "HTTPS URL to fetch the raw GLB from instead of inline base64 (e.g. a presigned storage URL) — the host must be on this server's configured allowlist (off by default). Provide exactly one of glb_base64 or mesh_url."
},
"asset_kind": {
"type": "string",
"description": "Asset kind (skinning auto-on for avatar only)",
"enum": [
"avatar",
"prop",
"vehicle",
"environment",
"vfx",
"weapon_armor",
"character_accessory",
"generic"
]
},
"platform": {
"type": "string",
"description": "Target engine platform (adds export validation)",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"polygon_tier": {
"type": "string",
"description": "Decimation tier for the output mesh"
},
"run_skinning": {
"type": "boolean",
"description": "Override skinning (default: avatars only)"
}
},
"examples": [
{
"glb_base64": "Z2xURgIAAAA...",
"asset_kind": "avatar",
"platform": "roblox"
}
]
}🟢axis_export(file_path, platform)
Export an avatar to a target engine platform with validation and HMAC-signed manifest. [Paid: $0.50 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file"
},
"platform": {
"type": "string",
"description": "Target platform",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
}
},
"required": [
"file_path",
"platform"
],
"examples": [
{
"file_path": "avatars/hero.glb",
"platform": "godot"
}
]
}🟢axis_manifest_verify(manifest, expected_hash)
Verify an export manifest's integrity and optionally check content hash. [Paid: $0.10 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"manifest": {
"type": "object",
"description": "Export manifest JSON object"
},
"expected_hash": {
"type": "string",
"description": "Expected content hash for verification"
}
},
"required": [
"manifest"
],
"examples": [
{
"manifest": {
"platform": "unity",
"artifact_hash": "…"
},
"expected_hash": "…"
}
]
}🟢repair_mesh(file_path, scale_unit, up_axis, remove_degenerates, fix_normals)
Repair a mesh into AXIS canonical frame (scale/axis/degenerates/normals) and return repair metrics. [Paid: $0.75 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file"
},
"scale_unit": {
"type": "string",
"description": "Source scale unit",
"enum": [
"meters",
"centimeters",
"millimeters",
"inches",
"feet"
]
},
"up_axis": {
"type": "string",
"description": "Source up axis",
"enum": [
"Y",
"Z",
"-Z",
"X",
"-Y"
]
},
"remove_degenerates": {
"type": "boolean",
"description": "Remove zero-area triangles"
},
"fix_normals": {
"type": "boolean",
"description": "Recalculate missing normals"
}
},
"required": [
"file_path"
],
"examples": [
{
"file_path": "raw_scans/statue.obj",
"scale_unit": "centimeters",
"up_axis": "Z"
}
]
}🟢retarget_animation(clip_name, platform, drop_unmapped)
Retarget a built-in animation clip to a platform mapping and report coverage + deterministic hashes. [Paid: $0.75 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"clip_name": {
"type": "string",
"description": "Built-in clip name from animation library"
},
"platform": {
"type": "string",
"description": "Target platform mapping",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"drop_unmapped": {
"type": "boolean",
"description": "Drop channels not found in the target mapping"
}
},
"required": [
"clip_name",
"platform"
],
"examples": [
{
"clip_name": "walk_cycle",
"platform": "unreal"
}
]
}🟢roblox_compliance_check(file_path)
Run Roblox R15 compliance checks against a mesh using canonical pipeline outputs. [Paid: $0.25 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]
Eingabe-Schema
{
"type": "object",
"properties": {
"file_path": {
"type": "string",
"description": "Path to mesh file"
}
},
"required": [
"file_path"
],
"examples": [
{
"file_path": "avatars/hero.glb"
}
]
}🟡generate_avatar_from_text(prompt, platform, polygon_tier, texture_size, asset_kind, ...)
PAID (x402, 5 USDC): generate a production 3D avatar from a text prompt — xAI concept image → TRELLIS.2 GPU mesh → full canonical post-process (repair/validate/export). Payment settles ONLY when generation completes; a failed generation is never charged. Returns a job_id — poll with the free get_generation_status tool (typical runtime 5-15 minutes). Pass idempotency_key when a retry is possible (timeout/5xx) — replaying the same key returns the original job_id instead of a second GPU job/charge. [Paid: $5.00 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; DEFERRED settlement — charged only when the generation job completes, a failed job is never charged. Poll get_generation_status (free).]
Eingabe-Schema
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "What to generate (subject description)"
},
"platform": {
"type": "string",
"description": "Target engine (adds rigging + engine export)",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"polygon_tier": {
"type": "string",
"description": "Quality tier (defaults to the platform's configured tier)",
"enum": [
"mobile_light",
"mobile_standard",
"web_vr",
"desktop_standard",
"desktop_high",
"film_vfx",
"ultra_hd"
]
},
"texture_size": {
"type": "number",
"description": "Texture bake size in px (defaults per platform, else 2048)"
},
"asset_kind": {
"type": "string",
"description": "Asset taxonomy",
"enum": [
"avatar",
"prop",
"vehicle",
"environment",
"vfx",
"weapon_armor",
"character_accessory",
"generic"
]
},
"idempotency_key": {
"type": "string",
"description": "Optional caller-chosen dedup key (<=200 chars, [A-Za-z0-9_.:-]). Replaying the same key (per payer) returns the original job_id — no new GPU job, no new charge. Use on any retry after a timeout/5xx."
}
},
"required": [
"prompt"
],
"examples": [
{
"prompt": "a friendly adventurer character, fantasy game hero",
"platform": "unity"
}
]
}🟡generate_avatar_from_image(image_b64, prompt, platform, polygon_tier, texture_size, ...)
PAID (x402, 6 USDC): generate a production 3D avatar from a reference photo (base64) — xAI A-pose normalize → TRELLIS.2 GPU mesh → full canonical post-process. Payment settles ONLY when generation completes; a failed generation is never charged. Returns a job_id — poll with the free get_generation_status tool (typical runtime 5-15 minutes). Pass idempotency_key when a retry is possible (timeout/5xx) — replaying the same key returns the original job_id instead of a second GPU job/charge. [Paid: $6.00 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; DEFERRED settlement — charged only when the generation job completes, a failed job is never charged. Poll get_generation_status (free).]
Eingabe-Schema
{
"type": "object",
"properties": {
"image_b64": {
"type": "string",
"description": "Base64-encoded reference image (PNG/JPEG)"
},
"prompt": {
"type": "string",
"description": "Optional style/subject hint alongside the image"
},
"platform": {
"type": "string",
"description": "Target engine (adds rigging + engine export)",
"enum": [
"unity",
"unreal",
"godot",
"roblox",
"axis_engine"
]
},
"polygon_tier": {
"type": "string",
"description": "Quality tier (defaults to the platform's configured tier)",
"enum": [
"mobile_light",
"mobile_standard",
"web_vr",
"desktop_standard",
"desktop_high",
"film_vfx",
"ultra_hd"
]
},
"texture_size": {
"type": "number",
"description": "Texture bake size in px (defaults per platform, else 2048)"
},
"asset_kind": {
"type": "string",
"description": "Asset taxonomy",
"enum": [
"avatar",
"prop",
"vehicle",
"environment",
"vfx",
"weapon_armor",
"character_accessory",
"generic"
]
},
"idempotency_key": {
"type": "string",
"description": "Optional caller-chosen dedup key (<=200 chars, [A-Za-z0-9_.:-]). Replaying the same key (per payer) returns the original job_id — no new GPU job, no new charge. Use on any retry after a timeout/5xx."
}
},
"required": [
"image_b64"
],
"examples": [
{
"image_b64": "iVBORw0KGgo...",
"platform": "unity"
}
]
}🟢get_generation_status(job_id, idempotency_key, payer)
FREE: poll a generation job submitted by the paid generate tools. Returns status/progress; once complete AND the deferred payment has settled, returns the download URLs. A failed generation reports charged=false. Look up by job_id, or by idempotency_key + payer if the job_id was lost. [Free — no payment required.]
Eingabe-Schema
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"description": "Job id returned by a generate tool"
},
"idempotency_key": {
"type": "string",
"description": "Alternate lookup key: the idempotency_key passed to the original generate call. Requires payer."
},
"payer": {
"type": "string",
"description": "x402 payer address the original generate call used — required when looking up by idempotency_key (scopes the key to its owner)."
}
},
"examples": [
{
"job_id": "cd464f2f473a4b6e"
}
]
}Community
Nachweis