AXIS Avatar Foundry

3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
98%
Qualität der Benennung
84%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~3,432Tokens (Tool-Definitionen)
~1.5 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (2.68% von 128k Kontext)

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-http

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢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

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools
verifiziertVersion nicht aufgezeichnet14 Tools