3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.
Inferred from the transports this listing declares (streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read from a real MCP initialize → tools/list handshake against the declared endpoint. No tool was ever invoked — tools/list is the read-only introspection call the protocol defines for this. It reflects what the server advertised at that moment; a hosted endpoint is not pinned to any version and can change without notice.
https://api.avatar.jonathanarvay.com/mcp14 tools · 510msaxis_list_capabilitiesList all AXIS Foundry capabilities (input formats, export platforms, validation rules). [Free — no payment required.]List all AXIS Foundry capabilities (input formats, export platforms, validation rules). [Free — no payment required.]
| Parameter | Type | Description |
|---|---|---|
| kind | string | Filter by capability kind |
axis_validateValidate 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file (.glb, .obj, .stl, etc.) |
| platform | string | Target platform for platform-specific validation |
| profile | string | Validation strictness profile |
axis_inspectInspect 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 en…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 en…
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file |
axis_compareCompare 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_a* | string | Path to first mesh file |
| file_b* | string | Path to second mesh file |
| sections | array | Limit comparison to specific contract sections |
axis_processRun 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file |
| platform | string | Target platform |
| export | boolean | Also export to the target platform |
post_process_meshPost-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…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…
| Parameter | Type | Description |
|---|---|---|
| glb_base64 | string | Base64-encoded raw binary GLB to post-process. Provide exactly one of glb_base64 or mesh_url. |
| mesh_url | string | 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 de… |
| asset_kind | string | Asset kind (skinning auto-on for avatar only) |
| platform | string | Target engine platform (adds export validation) |
| polygon_tier | string | Decimation tier for the output mesh |
| run_skinning | boolean | Override skinning (default: avatars only) |
axis_exportExport 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file |
| platform* | string | Target platform |
axis_manifest_verifyVerify 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| manifest* | object | Export manifest JSON object |
| expected_hash | string | Expected content hash for verification |
repair_meshRepair 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file |
| scale_unit | string | Source scale unit |
| up_axis | string | Source up axis |
| remove_degenerates | boolean | Remove zero-area triangles |
| fix_normals | boolean | Recalculate missing normals |
retarget_animationRetarget 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| clip_name* | string | Built-in clip name from animation library |
| platform* | string | Target platform mapping |
| drop_unmapped | boolean | Drop channels not found in the target mapping |
roblox_compliance_checkRun 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.]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.]
| Parameter | Type | Description |
|---|---|---|
| file_path* | string | Path to mesh file |
generate_avatar_from_textPAID (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_ge…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_ge…
| Parameter | Type | Description |
|---|---|---|
| prompt* | string | What to generate (subject description) |
| platform | string | Target engine (adds rigging + engine export) |
| polygon_tier | string | Quality tier (defaults to the platform's configured tier) |
| texture_size | number | Texture bake size in px (defaults per platform, else 2048) |
| asset_kind | string | Asset taxonomy |
| idempotency_key | string | 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… |
generate_avatar_from_imagePAID (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_…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_…
| Parameter | Type | Description |
|---|---|---|
| image_b64* | string | Base64-encoded reference image (PNG/JPEG) |
| prompt | string | Optional style/subject hint alongside the image |
| platform | string | Target engine (adds rigging + engine export) |
| polygon_tier | string | Quality tier (defaults to the platform's configured tier) |
| texture_size | number | Texture bake size in px (defaults per platform, else 2048) |
| asset_kind | string | Asset taxonomy |
| idempotency_key | string | 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… |
get_generation_statusFREE: 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 pa…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 pa…
| Parameter | Type | Description |
|---|---|---|
| job_id | string | Job id returned by a generate tool |
| idempotency_key | string | Alternate lookup key: the idempotency_key passed to the original generate call. Requires payer. |
| payer | string | x402 payer address the original generate call used — required when looking up by idempotency_key (scopes the key to its owner). |
14 of 14 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
3D avatar/asset foundry: text/image -> rigged, validated, engine-ready GLB via x402.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
This entry publishes no npm package, so Forge has no dependency tree for it. That is a gap in coverage — not a statement that it has no dependencies.