three.ws Assistant Widget
io.github.nirholasPublished by GitHub account nirholasv0.1.2Updated Nov 1, 2026
Generate a paste-ready embed for a floating 3D avatar chatbot on any website.
Overview
Generates paste-ready embed code for a floating 3D avatar chatbot widget on a website, from a described look and behavior.
- What you can do
- Build an embed: turn a config (avatar, background, mode, name, greeting, site context, accent, position, voice, badge) into a script tag, a frame URL, a JavaScript init snippet and the normalized config.
- List options: enumerate built-in avatars, background presets, interaction modes, chat lanes and the data-* attribute reference, optionally filtered.
- Validate settings: invalid or over-long values fall back to defaults so the output stays well-formed.
- Use as a library: the package also exports the tool definitions and a server builder for direct calls.
- When to use it
- Useful when you want an assistant to draft the embed markup for a three.ws 3D avatar chatbot on a site, or to look up which avatars, backgrounds and attributes are available before hand-editing the snippet.
- Requirements
- Runs locally over stdio via npx from the npm package, so Node.js 20 or newer is needed. No account, API key or network access is required; the optional THREE_WS_BASE variable changes the origin baked into generated URLs.
Installation
In SourceWeft
- Open three.ws Assistant Widget 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/assistant-mcp
Generate a paste-ready three.ws assistant widget, a floating 3D avatar chatbot for any website, from any AI agent.
[npm] [license] [node] [MCP Registry] [three.ws]
A Model Context Protocol server that lets any AI assistant build a paste-ready embed for the three.ws assistant widget over stdio. Describe how you want the assistant to look and behave and
build_assistant_widgetreturns a ready-to-paste<script>tag, a standalone frame URL for<iframe>embedding, and an equivalentThreeAssistant.init({...})JavaScript-API snippet, a floating 3D avatar chatbot that lives in the corner of any site.list_assistant_optionsenumerates every built-in avatar, background preset, interaction mode, chat lane, anddata-*attribute you can set.
Both tools are pure and offline: building an embed is deterministic string logic over local validators. Every field is validated and clamped, so a bad or hostile value falls back to a safe default and the generated HTML is always well-formed. No API key, no signer, no payment, no network call. Point THREE_WS_BASE at a deployment (or leave the default) and go.
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
build_assistant_widget is a pure function: the same config always yields the same embed, and it never touches the network. The generated <script> tag carries only the settings that differ from their defaults, so a minimal config yields a minimal tag. The frame_url carries every resolved value (including defaults) so the standalone frame renders deterministically when dropped into an <iframe>.
Input parameters
build_assistant_widget, all optional:
Any value that fails validation (a bad hex, an unknown background, an over-long string) falls back to its default rather than being rejected, so you always get a working embed.
list_assistant_options, filter (optional: avatars | backgrounds | modes | chat_lanes | attributes). Omit to get everything.
Example
Paste the snippet before </body> on any page, or drop the frame_url into an <iframe>. Design it visually first at three.ws/assistant.
Requirements
- Node.js >= 20.
- No network access needed.
THREE_WS_BASEonly sets the origin baked into the generated URLs.
Environment variables
Programmatic use
The package entry point exports TOOLS (every tool definition: name, title,
description, inputSchema, annotations, handler) and buildServer(), which returns a
fully-registered McpServer with no transport attached. Both tools are pure and offline, so you
can call them directly as a widget-builder library with no MCP client involved.
Links
- Builder: https://three.ws/assistant
- Docs: https://three.ws/docs/assistant-widget
- Homepage: https://three.ws
- 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/assistant-mcp/README.md at commit c8f2cde
Tools
0Version history
2- v0.1.2LatestOct 10, 2026
- v0.1.1Sep 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