mcpField
T
three.ws Assistant Widget

three.ws Assistant Widget

ローカル
three.ws開発ツール255今日更新

three.ws Assistant Widget について

three.ws Assistant Widgetは、ウェブサイトに置くフローティング3Dアバターチャットボットの埋め込みコードを生成するMCPサーバーです。ウィジェットを設定するAIアシスタントや開発者向けで、設定を検証し、オフラインで決定的に生成します。

主な機能

  1. 01埋め込みタグ、フレームURL、JavaScriptスニペットを生成
  2. 02アバター、背景、モード、外観を設定
  3. 03組み込みオプションと属性を一覧表示
  4. 04設定値を検証して正規化
  5. 05ネットワーク接続なしでコードを生成

活用シーン

  1. 01ウェブサイトにアバターチャットボットを追加
  2. 02埋め込み用の単独フレームURLを生成
  3. 03利用可能なアバターや操作設定を確認

MCP 対応

`build_assistant_widget`と`list_assistant_options`をMCPクライアントに公開し、ウィジェットの埋め込みコード生成と対応オプションの一覧取得を可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"nirholas-assistant-widget": {
"command": "npx",
"args": [
"-y",
"@three-ws/assistant-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>"
}
}
}
}
起動コマンドnpx -y @three-ws/assistant-mcp
設定が必要な環境変数
THREE_WS_BASEOrigin used in the generated embed URLs (script src, frame URL, builder link). Override only when targeting a preview or self-hosted three.ws deployment.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@three-ws/assistant-mcp0.1.2

ツール

2

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
modeenumいいえインタラクションモード:"chat"(テキストのみ)、"speak"(音声のみ)、または "both"(既定)。chat | speak | both
namestringいいえアシスタント/ウィジェットのヘッダーに表示する名前。
agentstringいいえアシスタントを動作させる three.ws エージェント ID。アバターを直接選ぶ代わりに指定します。
badgebooleanいいえ小さな "three.ws" のクレジットバッジを表示します。デフォルトでオンです。
voicebooleanいいえ起動時に音声をオン(true)またはオフ(false)にします。デフォルトはオンです。
accentstringいいえウィジェット UI のアクセントカラー "#hex"。デフォルトは "#f97316" です。16 進数以外の値はデフォルトに戻ります。
avatarstringいいえ表示するアバター:three.ws のアバター ID、"/avatars/*.glb" パス(例:"/avatars/selfie-girl.glb")、または完全な GLB URL。省略するとデフォルトのマネキンを使用します。
contextstringいいえアシスタントがサイトについて把握しておくべき情報(チャットで根拠となるコンテキストとして使用)。
greetingstringいいえ読み込み時にアシスタントが表示する最初のメッセージ。
positionenumいいえランチャーを配置する隅:"right"(デフォルト)または "left"。right | left
backgroundstringいいえアバターの背後の背景:"transparent"(デフォルト)、"#hex" カラー、プリセット(ember、ocean、violet、forest、dusk、slate)、または "gradient:#aabbcc,#112233,160"。それ以外の値は透明に戻ります。

詳細

three.ws

@three-ws/assistant-mcp

あらゆる AI エージェントから、あらゆるウェブサイトに設置できる、貼り付けるだけの three.ws アシスタントウィジェット(浮遊する 3D アバターのチャットボット)を生成します。

npm ライセンス node MCP レジストリ three.ws 製


どの AI アシスタントからでも、stdio 経由で three.ws のアシスタントウィジェット用の貼り付けるだけの埋め込みコードを作成できる、Model Context Protocol サーバーです。アシスタントの見た目や動作を指定すると、build_assistant_widget がそのまま貼り付けられる <script> タグ、<iframe> 埋め込み用のスタンドアロンフレーム URL、および同等の ThreeAssistant.init({...}) JavaScript API スニペットを返します。これにより、あらゆるサイトの隅に浮かぶ 3D アバターのチャットボットを設置できます。list_assistant_options では、組み込みアバター、背景プリセット、インタラクションモード、チャットレーン、および設定可能なすべての data-* 属性を一覧表示します。

どちらのツールも純粋なオフライン処理です。埋め込みコードの生成は、ローカルのバリデーターを使った決定的な文字列処理です。すべてのフィールドが検証され、範囲内に調整されるため、不正または悪意のある値は安全なデフォルト値に置き換えられ、生成される HTML は常に整形式です。API キー、署名者、支払い、ネットワーク呼び出しは不要です。THREE_WS_BASE をデプロイ先に設定する(またはデフォルトのままにする)だけで使えます。

インストール

npm install @three-ws/assistant-mcp

または、npx で実行します(インストール不要)。

npx -y @three-ws/assistant-mcp

クイックスタート

Claude Code の場合、1 行で設定できます。

claude mcp add assistant -- npx -y @three-ws/assistant-mcp

Claude Desktop / Cursor の場合(claude_desktop_config.json または mcp.json):

{
	"mcpServers": {
		"assistant": {
			"command": "npx",
			"args": ["-y", "@three-ws/assistant-mcp"]
		}
	}
}

MCP Inspector でインターフェースを確認します。

npx -y @modelcontextprotocol/inspector npx @three-ws/assistant-mcp

ツール

ツール種類機能
build_assistant_widget読み取り専用設定から、貼り付けるだけの <script> 埋め込みコード(デフォルト以外の設定は data-* として指定)、フレーム URL、ThreeAssistant.init() スニペット、および正規化された設定を生成します。
list_assistant_options読み取り専用組み込みアバター、背景プリセットと文法、インタラクションモード、チャットレーン、および data-* 属性の完全なリファレンスを一覧表示します。

build_assistant_widget は純粋関数です。同じ設定からは常に同じ埋め込みコードが生成され、ネットワークには一切アクセスしません。生成される <script> タグには、デフォルト値と異なる設定のみが含まれるため、最小限の設定からは最小限のタグが生成されます。frame_url には、デフォルト値を含む解決済みのすべての値が含まれるため、スタンドアロンフレームを <iframe> に挿入したときも決定的にレンダリングされます。

入力パラメーター

build_assistant_widget(すべて省略可能):

フィールド型/値デフォルト
avatarアバター ID、/avatars/*.glb パス、または GLB URLmannequin
agentthree.ws エージェント ID(avatar の代わりに指定)(none)
backgroundtransparent | #hex | ember/ocean/violet/forest/dusk/slate | gradient:#a,#b[,angle]transparent
modechat | speak | bothboth
name文字列(≤ 60)(none)
greeting文字列(≤ 200)(none)
context文字列(≤ 500)、アシスタントがサイトについて把握しておくべき情報(none)
accent#hex#f97316
positionright | leftright
voiceブール値、音声をオン/オフにして起動on
badgeブール値、three.ws の帰属表示バッジを表示on

検証に失敗した値(不正な hex、未定義の背景、文字数超過の文字列など)は拒否されず、デフォルト値に置き換えられるため、常に動作する埋め込みを利用できます。

list_assistant_options:filter(省略可能:avatars | backgrounds | modes | chat_lanes | attributes)。省略するとすべて取得します。

例

// build_assistant_widget
> {
    "avatar": "/avatars/selfie-girl.glb",
    "background": "ocean",
    "mode": "both",
    "name": "Aria",
    "greeting": "Hi! Ask me anything about the site.",
    "accent": "#00c2ff",
    "position": "left"
  }
{
  "ok": true,
  "snippet": "<script src=\"https://three.ws/assistant/v1.js\" async data-avatar=\"/avatars/selfie-girl.glb\" data-bg=\"ocean\" data-name=\"Aria\" data-greeting=\"Hi! Ask me anything about the site.\" data-accent=\"#00c2ff\" data-position=\"left\"></script>",
  "frame_url": "https://three.ws/assistant-frame?avatar=%2Favatars%2Fselfie-girl.glb&bg=ocean&mode=both&name=Aria&greeting=Hi%21+Ask+me+anything+about+the+site.&accent=%2300c2ff",
  "js_api": "ThreeAssistant.init({\n  \"bg\": \"ocean\",\n  \"mode\": \"both\",\n  \"accent\": \"#00c2ff\",\n  \"position\": \"left\",\n  \"avatar\": \"/avatars/selfie-girl.glb\",\n  \"name\": \"Aria\",\n  \"greeting\": \"Hi! Ask me anything about the site.\"\n});",
  "builder_url": "https://three.ws/assistant",
  "config": { "bg": "ocean", "mode": "both", "accent": "#00c2ff", "position": "left", "avatar": "/avatars/selfie-girl.glb", "name": "Aria", "greeting": "Hi! Ask me anything about the site." },
  "notes": "Chat runs on the free three.ws LLM chain by default (no key). Visitors can paste their own Groq or OpenRouter key in the widget settings for a private lane; that key stays in their browser."
}

snippet を任意のページの </body> の前に貼り付けるか、frame_url を <iframe> に指定してください。まず three.ws/assistant で見た目をデザインできます。

要件

  • Node.js >= 20。
  • ネットワークアクセスは不要です。THREE_WS_BASE は、生成される URL に埋め込まれるオリジンのみを設定します。
環境変数
変数必須デフォルト
THREE_WS_BASEいいえhttps://three.ws

プログラムからの利用

パッケージのエントリーポイントでは、すべてのツール定義(name、title、 description、inputSchema、annotations、handler)を含む**TOOLSと、トランスポートが接続されていない、完全に登録済みの McpServer を返すbuildServer()**をエクスポートしています。どちらのツールも純粋なオフラインツールなので、MCP クライアントを介さず、ウィジェット構築ライブラリとして直接呼び出せます。

// run from a checkout: node this-file.mjs
import { TOOLS, buildServer } from '@three-ws/assistant-mcp';

const build = TOOLS.find((t) => t.name === 'build_assistant_widget');
const { snippet } = await build.handler({ avatar: '/avatars/michelle.glb', background: 'dusk' });
console.log(snippet);

// Or hand the whole registered server to your own MCP transport.
buildServer();
<script src="https://three.ws/assistant/v1.js" async data-avatar="/avatars/michelle.glb" data-bg="dusk"></script>

リンク


three.ws の SDK スイートの一部です。3D AI エージェント、オンチェーン ID、エージェント決済を提供します。
ウェブサイト · 変更履歴 · GitHub

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。