three.ws Loom
io.github.nirholasPublished by GitHub account nirholasv0.1.3Updated Oct 24, 2026
Browse the community 3D-creation gallery, fetch a creation with its viewer URL, and submit it.
Overview
A local stdio MCP server for the three.ws Loom gallery: browse community 3D creations, fetch one with its viewer URL, and submit your own GLB.
- What you can do
- Browse the public Loom feed of community 3D creations, newest-first and paginated with a cursor, with a configurable page size up to 120 items per request (get_loom_feed). Fetch a single creation by its UUID, returning its metadata plus a viewer URL, social card image and paste-ready iframe snippet for inline preview (get_creation). Submit a GLB creation to the public gallery with a prompt, an allowed-host https glbUrl, optional author attribution and optional preview image, tier and backend fields (submit_creation).
- When to use it
- Use it when you want an assistant to explore the three.ws community 3D gallery, pull a model with an embeddable viewer link, or publish a GLB you produced with the other three.ws tools to the public feed.
- Requirements
- Runs locally over stdio via npx from the npm package @three-ws/loom-mcp; needs Node.js 20 or newer and network access to Optional environment variables THREE_WS_BASE (API base URL) and THREE_WS_TIMEOUT_MS (per-request timeout, default 20000). No account, API key or signer is required.
Installation
In SourceWeft
- Open three.ws Loom in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@three-ws/loom-mcp
Loom — the three.ws community 3D-creation gallery, from any AI agent. Browse the public feed of community-forged GLB creations, fetch one with its viewer URL, and submit your own.
[npm] [license] [node] [MCP Registry] [three.ws]
A Model Context Protocol server that exposes Loom, the three.ws community 3D-creation gallery, over stdio. Browse what others have forged, pull any creation with a ready-to-embed viewer URL, and contribute your own GLB to the public feed.
Loom closes the loop with the rest of the three.ws 3D suite: forge a model with @three-ws/avatar-agent or compose a world with @three-ws/scene-mcp, then publish it here for the whole platform to see. Every read is live and public; submitting needs no key or account — it is gated server-side only by an IP rate limit.
Install
Or run with npx (no install):
Quick start
Claude Code, one line:
Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):
Inspect the surface with the MCP Inspector:
Tools
Each read returns the creation's glbUrl plus a viewer_url (the /forge/embed orbit + AR viewer), an og_image_url (social card), and a paste-ready iframe_snippet, so any MCP client can preview the model inline.
Input parameters
get_loom_feed — limit (1–120, default 60), before (ms-epoch cursor; pass the prior page's nextBefore to page backwards).
get_creation — id (required — the creation UUID).
submit_creation — prompt (required, ≤1000 chars), glbUrl (required — see allowed hosts below), author (optional attribution, ≤40 chars, defaults to anon), previewImageUrl, tier, backend (all optional).
Submitting a creation
submit_creation posts to the public, world-readable gallery — only submit models you intend to share. There is no account, key, or signer: the endpoint is open and gated server-side by an IP rate limit (~20 submissions/hour) plus strict input sanitization. author is free-text attribution, not an authenticated identity.
The glbUrl must be an https URL hosted on one of these domains (enforced both client-side here and server-side):
three.ws · r2.dev · cloudflarestorage.com · replicate.delivery · githubusercontent.com
Re-submitting the exact same glbUrl returns the existing creation instead of duplicating it. The dedupe is best-effort by design: it scans only the newest few entries, which is where an accidental re-POST lands. Re-submitting a GLB that has since scrolled down the feed creates a second record.
get_creation answers an id that no longer exists with a typed not_found error rather than an empty creation, so a stale id in a saved reference is unambiguous.
Example
Drop a creation's iframe_snippet onto any web page, or open its viewer_url to orbit the model (with AR on supported devices).
Examples
Runnable examples live in examples/:
Both spawn this server over stdio and read the live public gallery. They are
deliberately read-only: submit_creation posts to a world-readable feed, so no
example writes on your behalf. See examples/README.md
for expected output.
Requirements
- Node.js >= 20.
- Network access to
https://three.ws(or your ownTHREE_WS_BASE).
Environment variables
No API key, signer, or account is needed for any tool.
Links
- Homepage: https://three.ws
- Forge gallery: https://three.ws/forge
- Changelog: https://three.ws/changelog
- Issues: https://github.com/nirholas/three.ws/issues
- License: Apache-2.0, see LICENSE
Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub
Source: packages/loom-mcp/README.md at commit 0e68f46
Tools
0Version history
2- v0.1.3LatestOct 10, 2026
- v0.1.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts