# AXIS Avatar Foundry (remote · api.avatar.jonathanarvay.com)

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

- Trust score: 77/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-13

## Components

- remote · `api.avatar.jonathanarvay.com`: 77/100 (this document), [markdown](https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api.md), [page](https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api)

## Channel facts

- Endpoint: `https://api.avatar.jonathanarvay.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.4.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-13.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 85/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1923 tokens (~137/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Tools include usage examples.
- **Stability & Change Management**: 20/100
  - Stability observed for 6 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-jonathanarvay-axis-avatar-foundry https://api.avatar.jonathanarvay.com/mcp
```

### Codex

```toml
[mcp_servers.com-jonathanarvay-axis-avatar-foundry]
url = "https://api.avatar.jonathanarvay.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-jonathanarvay-axis-avatar-foundry": {
      "type": "remote",
      "url": "https://api.avatar.jonathanarvay.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-jonathanarvay-axis-avatar-foundry --url https://api.avatar.jonathanarvay.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-jonathanarvay-axis-avatar-foundry:
    url: "https://api.avatar.jonathanarvay.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-jonathanarvay-axis-avatar-foundry": {
      "type": "http",
      "url": "https://api.avatar.jonathanarvay.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-12 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-11 (score 76, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-09 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-08 (score 74, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-08-07 (score 74)

First indexed and scored.

## MCP tools (14)

### `axis_list_capabilities` (~45 tokens)

List Foundry Capabilities

List all AXIS Foundry capabilities (input formats, export platforms, validation rules). [Free — no payment required.]

Input parameters:

- `kind` (string): Filter by capability kind

### `axis_validate` (~110 tokens)

Validate Mesh (38 Rules)

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.]

Input parameters:

- `file_path` (string, required): Path to mesh file (.glb, .obj, .stl, etc.)
- `platform` (string): Target platform for platform-specific validation
- `profile` (string): Validation strictness profile

### `axis_inspect` (~104 tokens)

Inspect Mesh File

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.]

Input parameters:

- `file_path` (string, required): Path to mesh file

### `axis_compare` (~97 tokens)

Compare Two Meshes

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.]

Input parameters:

- `file_a` (string, required): Path to first mesh file
- `file_b` (string, required): Path to second mesh file
- `sections` (array): Limit comparison to specific contract sections

### `axis_process` (~101 tokens)

Process Mesh File (Full Pipeline)

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.]

Input parameters:

- `export` (boolean): Also export to the target platform
- `file_path` (string, required): Path to mesh file
- `platform` (string): Target platform

### `post_process_mesh` (~214 tokens)

Post-Process Generated Mesh (Inline GLB)

Post-process a RAW generated mesh given INLINE as base64 GLB (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). [Paid: $1.50 USDC via x402 for unauthenticated calls on the hosted /mcp endpoint; settled only on a successful (non-error) result.]

Input parameters:

- `asset_kind` (string): Asset kind (skinning auto-on for avatar only)
- `glb_base64` (string, required): Base64-encoded raw binary GLB to post-process
- `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_export` (~82 tokens)

Export to Engine 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.]

Input parameters:

- `file_path` (string, required): Path to mesh file
- `platform` (string, required): Target platform

### `axis_manifest_verify` (~81 tokens)

Verify Export Manifest

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.]

Input parameters:

- `expected_hash` (string): Expected content hash for verification
- `manifest` (object, required): Export manifest JSON object

### `repair_mesh` (~130 tokens)

Repair Mesh to Canonical Frame

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.]

Input parameters:

- `file_path` (string, required): Path to mesh file
- `fix_normals` (boolean): Recalculate missing normals
- `remove_degenerates` (boolean): Remove zero-area triangles
- `scale_unit` (string): Source scale unit
- `up_axis` (string): Source up axis

### `retarget_animation` (~105 tokens)

Retarget Animation Clip

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.]

Input parameters:

- `clip_name` (string, required): Built-in clip name from animation library
- `drop_unmapped` (boolean): Drop channels not found in the target mapping
- `platform` (string, required): Target platform mapping

### `roblox_compliance_check` (~73 tokens)

Roblox R15 Compliance Check

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.]

Input parameters:

- `file_path` (string, required): Path to mesh file

### `generate_avatar_from_text` (~226 tokens)

Generate 3D Avatar from Text (Paid)

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). [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).]

Input parameters:

- `asset_kind` (string): Asset taxonomy
- `platform` (string): Target engine (adds rigging + engine export)
- `polygon_tier` (string): Quality tier (defaults to the platform's configured tier)
- `prompt` (string, required): What to generate (subject description)
- `texture_size` (number): Texture bake size in px (defaults per platform, else 2048)

### `generate_avatar_from_image` (~248 tokens)

Generate 3D Avatar from Image (Paid)

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). [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).]

Input parameters:

- `asset_kind` (string): Asset taxonomy
- `image_b64` (string, required): Base64-encoded reference image (PNG/JPEG)
- `platform` (string): Target engine (adds rigging + engine export)
- `polygon_tier` (string): Quality tier (defaults to the platform's configured tier)
- `prompt` (string): Optional style/subject hint alongside the image
- `texture_size` (number): Texture bake size in px (defaults per platform, else 2048)

### `get_generation_status` (~70 tokens)

Get Generation Job Status

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. [Free — no payment required.]

Input parameters:

- `job_id` (string, required): Job id returned by a generate tool

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api#diagnostics

## Score history

- 2026-08-13: 77
- 2026-08-12: 77
- 2026-08-11: 76
- 2026-08-10: 75
- 2026-08-09: 75
- 2026-08-08: 74
- 2026-08-07: 74

## Links

- Remote endpoint: https://api.avatar.jonathanarvay.com/mcp
- Website: https://avatar.jonathanarvay.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api.json
- HTML version of this page: https://verifymcp.io/servers/com-jonathanarvay-axis-avatar-foundry/api
