Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,551Letters: 14Defects: 1,323counted 1 min ago
teppi

Server definition

Hash
sha256:7c2ae415070a0edd4d3b9007e27bf4ae1ae99686357668df11c9b165d32c902f
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": "AXIS Avatar Foundry turns text prompts or reference images into production 3D assets (GLB + engine-target exports, 38-rule validated, SHA-256 provenance chain).\n\nFree tools: axis_list_capabilities, get_generation_status, tools/list — discovery and job polling never require payment.\n\nPaid tools (hosted /mcp endpoint, unauthenticated callers): priced per call in USDC via the x402 protocol (MCP transport). Call without payment to receive a tool result with isError true whose structuredContent is the x402 PaymentRequired object (exact price and requirements); sign an EIP-3009 USDC authorization and retry the identical call with the payment payload in params._meta[\"x402/payment\"]. Settlement proof returns in result._meta[\"x402/payment-response\"]. Plain x402 HTTP clients instead get HTTP 402 with a PAYMENT-REQUIRED header and retry with PAYMENT-SIGNATURE. An errored tool call is never charged. Generation tools (generate_avatar_from_text $5.00, generate_avatar_from_image $6.00) use DEFERRED settlement: you are charged only when the generation job actually completes — poll get_generation_status (free) for progress, settlement proof, and the download URL. A failed generation is never charged.\n\nAccount holders: authenticated callers (portal Bearer / API key) bypass x402 entirely and can also use POST /api/generate with token billing — same pipeline.", "tools": [ { "description": "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.]", "inputSchema": { "examples": [ { "file_a": "avatars/hero_v1.glb", "file_b": "avatars/hero_v2.glb" } ], "properties": { "file_a": { "description": "Path to first mesh file", "type": "string" }, "file_b": { "description": "Path to second mesh file", "type": "string" }, "sections": { "description": "Limit comparison to specific contract sections", "type": "array" } }, "required": [ "file_a", "file_b" ], "type": "object" }, "name": "axis_compare", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "file_path": "avatars/hero.glb", "platform": "godot" } ], "properties": { "file_path": { "description": "Path to mesh file", "type": "string" }, "platform": { "description": "Target platform", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" } }, "required": [ "file_path", "platform" ], "type": "object" }, "name": "axis_export", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "file_path": "avatars/hero.glb" } ], "properties": { "file_path": { "description": "Path to mesh file", "type": "string" } }, "required": [ "file_path" ], "type": "object" }, "name": "axis_inspect", "outputSchema": null }, { "description": "List all AXIS Foundry capabilities (input formats, export platforms, validation rules). [Free — no payment required.]", "inputSchema": { "examples": [ { "kind": "export_platform" } ], "properties": { "kind": { "description": "Filter by capability kind", "enum": [ "input_format", "export_platform", "validation_rule" ], "type": "string" } }, "type": "object" }, "name": "axis_list_capabilities", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "expected_hash": "…", "manifest": { "artifact_hash": "…", "platform": "unity" } } ], "properties": { "expected_hash": { "description": "Expected content hash for verification", "type": "string" }, "manifest": { "description": "Export manifest JSON object", "type": "object" } }, "required": [ "manifest" ], "type": "object" }, "name": "axis_manifest_verify", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "export": true, "file_path": "avatars/hero.glb", "platform": "unreal" } ], "properties": { "export": { "description": "Also export to the target platform", "type": "boolean" }, "file_path": { "description": "Path to mesh file", "type": "string" }, "platform": { "description": "Target platform", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" } }, "required": [ "file_path" ], "type": "object" }, "name": "axis_process", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "file_path": "avatars/hero.glb", "platform": "unity", "profile": "strict" } ], "properties": { "file_path": { "description": "Path to mesh file (.glb, .obj, .stl, etc.)", "type": "string" }, "platform": { "description": "Target platform for platform-specific validation", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" }, "profile": { "description": "Validation strictness profile", "enum": [ "default", "strict", "lenient" ], "type": "string" } }, "required": [ "file_path" ], "type": "object" }, "name": "axis_validate", "outputSchema": null }, { "description": "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).]", "inputSchema": { "examples": [ { "image_b64": "iVBORw0KGgo...", "platform": "unity" } ], "properties": { "asset_kind": { "description": "Asset taxonomy", "enum": [ "avatar", "prop", "vehicle", "environment", "creature", "weapon_armor", "character_accessory", "generic" ], "type": "string" }, "idempotency_key": { "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.", "type": "string" }, "image_b64": { "description": "Base64-encoded reference image (PNG/JPEG)", "type": "string" }, "platform": { "description": "Target engine (adds rigging + engine export)", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" }, "polygon_tier": { "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" ], "type": "string" }, "prompt": { "description": "Optional style/subject hint alongside the image", "type": "string" }, "texture_size": { "description": "Texture bake size in px (defaults per platform, else 2048)", "type": "number" } }, "required": [ "image_b64" ], "type": "object" }, "name": "generate_avatar_from_image", "outputSchema": null }, { "description": "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).]", "inputSchema": { "examples": [ { "platform": "unity", "prompt": "a friendly adventurer character, fantasy game hero" } ], "properties": { "asset_kind": { "description": "Asset taxonomy", "enum": [ "avatar", "prop", "vehicle", "environment", "creature", "weapon_armor", "character_accessory", "generic" ], "type": "string" }, "idempotency_key": { "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.", "type": "string" }, "platform": { "description": "Target engine (adds rigging + engine export)", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" }, "polygon_tier": { "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" ], "type": "string" }, "prompt": { "description": "What to generate (subject description)", "type": "string" }, "texture_size": { "description": "Texture bake size in px (defaults per platform, else 2048)", "type": "number" } }, "required": [ "prompt" ], "type": "object" }, "name": "generate_avatar_from_text", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "job_id": "cd464f2f473a4b6e" } ], "properties": { "idempotency_key": { "description": "Alternate lookup key: the idempotency_key passed to the original generate call. Requires payer.", "type": "string" }, "job_id": { "description": "Job id returned by a generate tool", "type": "string" }, "payer": { "description": "x402 payer address the original generate call used — required when looking up by idempotency_key (scopes the key to its owner).", "type": "string" } }, "type": "object" }, "name": "get_generation_status", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "asset_kind": "avatar", "glb_base64": "Z2xURgIAAAA...", "platform": "roblox" } ], "properties": { "asset_kind": { "description": "Asset kind (skinning auto-on for avatar only)", "enum": [ "avatar", "prop", "vehicle", "environment", "creature", "weapon_armor", "character_accessory", "generic" ], "type": "string" }, "glb_base64": { "description": "Base64-encoded raw binary GLB to post-process. Provide exactly one of glb_base64 or mesh_url.", "type": "string" }, "mesh_url": { "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.", "type": "string" }, "platform": { "description": "Target engine platform (adds export validation)", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" }, "polygon_tier": { "description": "Decimation tier for the output mesh", "type": "string" }, "run_skinning": { "description": "Override skinning (default: avatars only)", "type": "boolean" } }, "type": "object" }, "name": "post_process_mesh", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "file_path": "raw_scans/statue.obj", "scale_unit": "centimeters", "up_axis": "Z" } ], "properties": { "file_path": { "description": "Path to mesh file", "type": "string" }, "fix_normals": { "description": "Recalculate missing normals", "type": "boolean" }, "remove_degenerates": { "description": "Remove zero-area triangles", "type": "boolean" }, "scale_unit": { "description": "Source scale unit", "enum": [ "meters", "centimeters", "millimeters", "inches", "feet" ], "type": "string" }, "up_axis": { "description": "Source up axis", "enum": [ "Y", "Z", "-Z", "X", "-Y" ], "type": "string" } }, "required": [ "file_path" ], "type": "object" }, "name": "repair_mesh", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "clip_name": "walk_cycle", "platform": "unreal" } ], "properties": { "clip_name": { "description": "Built-in clip name from animation library", "type": "string" }, "drop_unmapped": { "description": "Drop channels not found in the target mapping", "type": "boolean" }, "platform": { "description": "Target platform mapping", "enum": [ "unity", "unreal", "godot", "roblox", "axis_engine" ], "type": "string" } }, "required": [ "clip_name", "platform" ], "type": "object" }, "name": "retarget_animation", "outputSchema": null }, { "description": "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.]", "inputSchema": { "examples": [ { "file_path": "avatars/hero.glb" } ], "properties": { "file_path": { "description": "Path to mesh file", "type": "string" } }, "required": [ "file_path" ], "type": "object" }, "name": "roblox_compliance_check", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:7c2ae415070a0edd4d3b9007e27bf4ae1ae99686357668df11c9b165d32c902f | sha256sum