3d-agent

data-ai MCP Server

Open-source 3D AI agent framework — GLB/glTF avatars with LLM brains, memory, emotions, and autonomous payments. MCP server · x402 · Solana/EVM · Three.js. Embed anywhere as a web component. Character studio, animation gallery, OAuth 2.1. Browser-native.

VerifiedInstall Ready
data-aidata-ai
8 views195 stars46 forksv1.5.2Apache-2.0

Why This Matters

Discovered via agent-topic:ai-agent and last synced 1w ago.

VerifiedInstall Ready
Source
agent-topic:ai-agent
Stars
195
Last synced
1w ago
Install
Instructions detected

Install

1. Install the package

npx -y @three-ws/mcp-server

2. Add to claude_desktop_config.json

{
  "mcpServers": {
    "3d-agent": {
      "command": "npx",
      "args": [
        "-y",
        "@three-ws/mcp-server"
      ]
    }
  }
}

Config file location: ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) / %APPDATA%\Claude\claude_desktop_config.json (Windows)

158
Tools
0
Resources
0
Prompts
Standard I/O
Transport

Available Tools (158)

Phase

Theme

ibm_granite_chat

Conversational AI — Q&A, drafting, reasoning

Tutorial

What you'll build

skill-error

concern + empathy

speak

Emit text through TTS and the protocol bus

body

URL

Cloud

Status

granite-embedding-278m-multilingual

**Semantic** agent map + `/api/watsonx/embed`

Resource

Used for

Event

Payload

remember

Write a memory entry (user, feedback, project, or reference type)

brain

URL

Bazaar

`/x402`

Output

Cloudflare R2

Section

Key URLs

ibm_granite_embed

Batch text embeddings (1–64) for RAG, search, clustering

Directory

Status

granite-3-8b-instruct

Selectable avatar **brain** + all narration

Viewer

Widget Studio

emote

`{ trigger, weight: 0..1 }`

eager

boolean

granite-guardian-3-8b

**Trust Layer** — allow/review/block governance gate, inline in `/api/chat` before an avatar moves value

granite-vision-3-2-2b

**Vision** — reads an avatar into a full agent identity

Firefox

115+

Tool

What it does

skill-done

`{ skill, result }`

setExpression

Set a named morph target weight directly

ibm_granite_analyze

Structured doc analysis — entities, sentiment, risk, next steps

think

`{ thought }`

ibm_granite_forecast

Zero-shot time-series forecasting via Granite TTM

gesture

`{ name, duration }`

presence

`{ state }`

concern

+0.6

embed

Interaction mode

Spec

What it covers

look-at

`{ target: 'user'\

wave

Play a wave gesture animation

load-start

patience + curiosity

sandbox

boolean

Capability

Backed by

Browser

Minimum

skills

scene controller

lookAt

Direct the agent's gaze (user, camera, or scene center)

celebration

+0.5

number

iframe dimensions when generating embed code

Chain

Settlement

perform-skill

`{ skill, args, animationHint }`

validate

`{ errors, warnings }`

play_clip

Play a named animation clip from the model or animation library

Yes

Live

Path

Role

Newsletter

[api/newsletter-subscribe.js](api/newsletter-subscribe.js)

Demo

Path

pumpfun_recent_graduations

Tokens that recently graduated from the bonding curve to PumpAMM, with creator and holder analysis.

db-status

`npm run db:status`

Trigger

Emotion

mode

`view` \

Checkout

`/api/x402-checkout`

get_pose_seed

$0.001

Builder

`scripts/build-animations.mjs`

Discovery

`/x402-discover`

Dashboard

`GET /api/pump/dashboard`

pump_snapshot

$0.005

api-key

Anthropic API proxy

Lobby

`/communities`, `/worlds`

Subscriptions

`/api/x402/subscriptions`

CMS

`/admin/news`

Live

Every CDP-settled endpoint ships a Permit2 sibling that accepts an EIP-2612 permit instead of an upfront approval — the buyer signs once, and the relayer pays gas. Wire-level checks live in `tests/e2e/` and exercise the buyer/seller flow end-to-end. ### Paid endpoints

Status

`/api/x402-status`

Article

`/news/<slug>`

Medium

syndication adapter

Pipeline

[src/selfie-pipeline.js](src/selfie-pipeline.js)

SDK

Path

Control

Where

Cursor

Once configured, Claude can call these tools directly in conversation — no API key required, each call is settled in USDC via x402:

PUT

`/api/agent-memory/:id`

Price

What it does

Fetcher

`npm run fetch-animations`

IdentityRegistry

`0x8004A818BFB912233c491871b3d84c89A494BD9e`

Endpoint

Purpose

format

`npm run format`

agent_reputation

$0.01

Provider

Path

search_public_avatars

Free-text + tag search across the public avatar gallery; useful for finding characters to render without prior knowledge of an id.

solana_agent_passport

Full discovery card for a Solana agent: identity, owner wallet, reputation summary, latest validation result, and attestation schema endpoint — the Solana equivalent of an ERC-8004 passport.

install-sdk

`npm run install:sdk`

help

List all commands

vanity_grinder

up to $0.50

Schedule

Endpoint

render_avatar

Produce an HTML `<model-viewer>` snippet that renders the given avatar, with configurable background, camera orbit, poster, and AR button.

Prep

`POST /api/pump/launch-prep`

validate-cards

`npm run validate:cards`

Command

Wraps

delete_avatar

Soft-delete an avatar you own. Requires the `avatars:delete` scope.

Hourly

`/api/cron/run-subscriptions`

Quote

`POST /api/pump/quote-sdk`

db-migrate

`npm run db:migrate` (with confirmation)

Skill

Module

validate_model

Run the Khronos glTF-Validator against a public https GLB/glTF URL; returns a structured report of errors, warnings, infos, and hints. SSRF-hardened.

pumpfun_token_intel

Full intel on a pump.fun token: graduation status, bonding-curve progress, creator profile, top holders, volume, bundle detection, and trust signals.

validation

all&network=devnet

pump-smoke-test

`npm run pump:smoke`

list_my_avatars

List the authenticated user's avatars with id, name, slug, size, visibility, and (when permitted) direct `model_url`.

ReputationRegistry

`0x8004B663056A597Dffe9eCcC1965A193B7388713`

Reputation

[api/agents/solana/[action].js](api/agents/solana/[action].js) (`action=reputation`)

clean

`npm run clean`

Passport

[api/agents/solana/[action].js](api/agents/solana/[action].js) (`action=card`)

deploy

`npm run deploy` (with confirmation)

get_avatar

Fetch a single avatar by id or owner+slug; returns metadata plus a public `model_url` or short-lived signed URL for private avatars.

solana_agent_attestations

List recent on-chain attestations (feedback, validation, task offers, acceptances, disputes) about a Solana agent; each row includes verified/disputed/revoked flags.

ValidationRegistry

`0x8004Cb1BF31DAf7788923b405b754f57acEB4272`

pumpfun_creator_intel

Reputation profile for a pump.fun creator wallet: prior launches, graduation rate, claim activity, and behavioural trust signals.

optimize_model

Inspect the model and return actionable suggestions for reducing size and draw-call overhead: triangle budget, Draco/Meshopt, oversized textures, KTX2 transcoding, non-indexed primitives, redundant materials, and more.

Contract

Address

Skills

[src/agent-skills-pumpfun-watch.js](src/agent-skills-pumpfun-watch.js)

Mode

What it shows

Stats

`GET /api/pump/helius-stats`

seed-skills

`npm run seed:skills`

Smoke

What it exercises

test

`npm run test`

Persona

[tests/api/persona.test.js](tests/api/persona.test.js)

Input

How it works

viewer

avatar (emotion)

Package

Run

Manager

[src/animation-manager.js](src/animation-manager.js)

Surface

Stability

session

Manage iframe origin allowlist

inspect_model

Parse a GLB/glTF and return structural stats: scene/node/mesh counts, vertex and triangle totals, material and texture summaries, and extensions used. Pure inspection — no advice.

solana_agent_reputation

Computed reputation summary for a Solana-registered agent: total/verified feedback counts, raw + verified-only score averages, validation pass/fail, task-acceptance, and dispute counts.

Revenue

`/x402-revenue`

bsc

solana network: 'mainnet', resource: 'https://three.ws/api/your-endpoint', description: 'What the buyer is paying for', handler: async (req, res, { payer }) => { // payer is verified — settle the request res.json({ ok: true, payer }); }, }); ``` The helper handles the 402 challenge, Permit2 sibling, receipt write-back, idempotency-token enforcement, and CSRF/SSRF guards. See [api/\_lib/x402-paid-endpoint.js](api/_lib/x402-paid-endpoint.js). ### Wire checks - Wire-level CORS, CDP, and Permit2 sibling checks: `tests/e2e/` - Offer receipts schema + buyer fetch: [api/\_lib/x402-buyer-fetch.js](api/_lib/x402-buyer-fetch.js) - Error envelope: full 402 body returned in the `PAYMENT-REQUIRED` header --- ## A2A — Agent-to-Agent Protocol Agents transact with each other directly through an A2A bridge that sits on top of the MCP server and x402 payments. **How it works** When agent A wants to call a paid tool from agent B: 1. **Discover** — A resolves B's DID via `POST /api/x402/did`, receiving B's MCP endpoint URL and payment wallet address. 2. **Call** — A sends a `tools/call` JSON-RPC request to B's MCP endpoint. 3. **Pay** — B's server returns `402 Payment Required` with a USDC price. A's SDK settles the x402 payment on-chain (Base or Solana) and retries with the payment proof in the `X-PAYMENT` header. 4. **Execute** — B verifies the payment, runs the tool, and writes a signed receipt to `api/a2a/receipts`. 5. **Ledger** — Both sides accumulate a row in `api/a2a/spending` — A for outbound spend, B for inbound revenue. Agent wallets sign with **EIP-7710 delegated permissions** — the delegated signer acts on behalf of the agent's root key without ever exposing it.

render_avatar_image

Render a stored avatar to a real PNG/JPEG/WebP image (headless three.js) with camera framing, pose preset, and ARKit-52 expression; cached.

pumpfun_recent_claims

Most recent pump.fun GitHub social-fee claim events with full enrichment: GitHub profile, X/Twitter follower data, influencer tier, first-time-claim flag, fake-claim detection, and AI summary.

ibm_granite_code

Generate / review / refactor / explain / test / document code

base

bsc; Solana listed first by default description: 'What the buyer is paying for', handler: async ({ req, payer }) => { // payer is verified. RETURN the good; the wrapper settles, then flushes it return { ok: true, payer }; }, }); ``` The helper handles the 402 challenge, Permit2 sibling, receipt write-back, idempotency-token enforcement, and CSRF/SSRF guards. Optional hooks: `metered` attaches a signed metered-job receipt to the response (the inference network's proof-of-work lane), and `onSettled` fires fire-and-forget after settlement (used for per-call skill royalty accrual). See [api/\_lib/x402-paid-endpoint.js](api/_lib/x402-paid-endpoint.js). ### Wire checks - Wire-level CORS, CDP, and Permit2 sibling checks: `tests/e2e/` - Offer receipts schema + buyer fetch: [api/\_lib/x402-buyer-fetch.js](api/_lib/x402-buyer-fetch.js) - Error envelope: full 402 body returned in the `PAYMENT-REQUIRED` header --- ## A2A — Agent-to-Agent Protocol Agents transact with each other directly through an A2A bridge that sits on top of the MCP server and x402 payments. **How it works** When agent A wants to call a paid tool from agent B: 1. **Discover** — A resolves B's DID via `POST /api/x402/did`, receiving B's MCP endpoint URL and payment wallet address. 2. **Call** — A sends a `tools/call` JSON-RPC request to B's MCP endpoint. 3. **Pay** — B's server returns `402 Payment Required` with a USDC price. A's SDK settles the x402 payment on-chain (Base or Solana) and retries with the payment proof in the `X-PAYMENT` header. 4. **Execute** — B verifies the payment, runs the tool, and writes a signed receipt to `api/a2a/receipts`. 5. **Ledger** — Both sides accumulate a row in `api/a2a/spending` — A for outbound spend, B for inbound revenue. Agent wallets sign with **EIP-7710 delegated permissions** — the delegated signer acts on behalf of the agent's root key without ever exposing it.

Step

Where

Module

Path

RSS

`/rss/announcements.xml`

Area

File

Billing

[tests/billing.test.js](tests/billing.test.js)

Attribute

Type

agent-id

string

Feature

Description

Mannequin

[src/pose-rig.js](src/pose-rig.js)

Studio

`/launchpad`

Method

Route

GET

`/api/agent-memory/:id`

PATCH

`/api/widgets/:id`

POST

`/api/llm/anthropic`

DELETE

`/api/widgets/:id`

Widget

[src/widgets/pumpfun-feed.js](src/widgets/pumpfun-feed.js)

Curve

`GET /api/pump/curve`

1

Windows 11 widgets board

2

Any web page

3

Android home screen

4

macOS

5

Phases 1 and 2 unblock the consumer story — _anyone gets an agent of themselves_. Phases 3 and 4 unblock the onchain story — _those agents are real economic actors that don't depend on any one company to keep running_. Both are required for the vision; neither is funded yet. If you want to support the project — compute credits, grants, partnerships, or contributions — open an issue or reach out via [three.ws](https://three.ws). --- ## Selfie Reconstruction Pipeline (Phase 1) Anyone takes 3 selfies (left, center, right) and receives a rigged, animatable 3D avatar in under a minute. The pipeline ships native — no third-party black box.

Where

Best for