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.
Discovered via agent-topic:ai-agent and last synced 1w ago.
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)
Theme
Conversational AI — Q&A, drafting, reasoning
What you'll build
concern + empathy
Emit text through TTS and the protocol bus
URL
Status
**Semantic** agent map + `/api/watsonx/embed`
Used for
Payload
Write a memory entry (user, feedback, project, or reference type)
URL
`/x402`
Cloudflare R2
Key URLs
Batch text embeddings (1–64) for RAG, search, clustering
Status
Selectable avatar **brain** + all narration
Widget Studio
`{ trigger, weight: 0..1 }`
boolean
**Trust Layer** — allow/review/block governance gate, inline in `/api/chat` before an avatar moves value
**Vision** — reads an avatar into a full agent identity
115+
What it does
`{ skill, result }`
Set a named morph target weight directly
Structured doc analysis — entities, sentiment, risk, next steps
`{ thought }`
Zero-shot time-series forecasting via Granite TTM
`{ name, duration }`
`{ state }`
+0.6
Interaction mode
What it covers
`{ target: 'user'\
Play a wave gesture animation
patience + curiosity
boolean
Backed by
Minimum
scene controller
Direct the agent's gaze (user, camera, or scene center)
+0.5
iframe dimensions when generating embed code
Settlement
`{ skill, args, animationHint }`
`{ errors, warnings }`
Play a named animation clip from the model or animation library
Live
Role
[api/newsletter-subscribe.js](api/newsletter-subscribe.js)
Path
Tokens that recently graduated from the bonding curve to PumpAMM, with creator and holder analysis.
`npm run db:status`
Emotion
`view` \
`/api/x402-checkout`
$0.001
`scripts/build-animations.mjs`
`/x402-discover`
`GET /api/pump/dashboard`
$0.005
Anthropic API proxy
`/communities`, `/worlds`
`/api/x402/subscriptions`
`/admin/news`
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
`/api/x402-status`
`/news/<slug>`
syndication adapter
[src/selfie-pipeline.js](src/selfie-pipeline.js)
Path
Where
Once configured, Claude can call these tools directly in conversation — no API key required, each call is settled in USDC via x402:
`/api/agent-memory/:id`
What it does
`npm run fetch-animations`
`0x8004A818BFB912233c491871b3d84c89A494BD9e`
Purpose
`npm run format`
$0.01
Path
Free-text + tag search across the public avatar gallery; useful for finding characters to render without prior knowledge of an id.
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.
`npm run install:sdk`
List all commands
up to $0.50
Endpoint
Produce an HTML `<model-viewer>` snippet that renders the given avatar, with configurable background, camera orbit, poster, and AR button.
`POST /api/pump/launch-prep`
`npm run validate:cards`
Wraps
Soft-delete an avatar you own. Requires the `avatars:delete` scope.
`/api/cron/run-subscriptions`
`POST /api/pump/quote-sdk`
`npm run db:migrate` (with confirmation)
Module
Run the Khronos glTF-Validator against a public https GLB/glTF URL; returns a structured report of errors, warnings, infos, and hints. SSRF-hardened.
Full intel on a pump.fun token: graduation status, bonding-curve progress, creator profile, top holders, volume, bundle detection, and trust signals.
all&network=devnet
`npm run pump:smoke`
List the authenticated user's avatars with id, name, slug, size, visibility, and (when permitted) direct `model_url`.
`0x8004B663056A597Dffe9eCcC1965A193B7388713`
[api/agents/solana/[action].js](api/agents/solana/[action].js) (`action=reputation`)
`npm run clean`
[api/agents/solana/[action].js](api/agents/solana/[action].js) (`action=card`)
`npm run deploy` (with confirmation)
Fetch a single avatar by id or owner+slug; returns metadata plus a public `model_url` or short-lived signed URL for private avatars.
List recent on-chain attestations (feedback, validation, task offers, acceptances, disputes) about a Solana agent; each row includes verified/disputed/revoked flags.
`0x8004Cb1BF31DAf7788923b405b754f57acEB4272`
Reputation profile for a pump.fun creator wallet: prior launches, graduation rate, claim activity, and behavioural trust signals.
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.
Address
[src/agent-skills-pumpfun-watch.js](src/agent-skills-pumpfun-watch.js)
What it shows
`GET /api/pump/helius-stats`
`npm run seed:skills`
What it exercises
`npm run test`
[tests/api/persona.test.js](tests/api/persona.test.js)
How it works
avatar (emotion)
Run
[src/animation-manager.js](src/animation-manager.js)
Stability
Manage iframe origin allowlist
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.
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.
`/x402-revenue`
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 a stored avatar to a real PNG/JPEG/WebP image (headless three.js) with camera framing, pose preset, and ARKit-52 expression; cached.
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.
Generate / review / refactor / explain / test / document code
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.
Where
Path
`/rss/announcements.xml`
File
[tests/billing.test.js](tests/billing.test.js)
Type
string
Description
[src/pose-rig.js](src/pose-rig.js)
`/launchpad`
Route
`/api/agent-memory/:id`
`/api/widgets/:id`
`/api/llm/anthropic`
`/api/widgets/:id`
[src/widgets/pumpfun-feed.js](src/widgets/pumpfun-feed.js)
`GET /api/pump/curve`
Windows 11 widgets board
Any web page
Android home screen
macOS
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.
Best for