three.ws Concierge

io.github.nirholas由 GitHub 账号 nirholas 发布v0.1.1更新于 Nov 1, 2026

Ask any website's AI concierge a grounded question, and generate the embed to add one to a site.

概览

AI 生成的概览

本地 stdio MCP 服务器,让助手向任意网站的 AI 客服提问并获得有依据的回答,同时生成把客服组件嵌入网站的代码。

可以做什么
  • 向网站客服提问,可基于抓取的页面 URL,或基于提供的知识文本、原始文本作答
  • 生成可直接粘贴的网站客服嵌入代码(script 标签、Web Component、npm 或命令式 mount),可配置主题色、头像、问候语、知识和推荐问题
  • 列出客服可使用的 3D 头像,便于为嵌入代码挑选头像 id
适用场景
适合让助手依据某个具体网页或你已有的文本回答问题,或需要可直接粘贴的代码在网站上安装 three.ws Concierge 聊天组件时使用。
运行要求
通过 npx 从 npm 包 @three-ws/concierge-mcp 以 stdio 在本地运行(需要 Node.js)。无需 API 密钥或账号。提问工具需要联网,会调用 three.ws 的公开回答接口。可选环境变量:THREE_WS_BASE、THREE_WS_TIMEOUT_MS 和 CONCIERGE_PAGE_TIMEOUT_MS。
安装前请注意
提问工具会抓取你提供的 URL,并把提取的页面文本发送到 three.ws 回答服务,因此不要指向私密或敏感页面。免费回答通道有按 IP 的速率限制(HTTP 429)。嵌入代码会加载 CDN 构建并指向所配置的 THREE_WS_BASE 源。另外两个工具为离线生成器。

安装

在 SourceWeft 中

  1. 打开 控制台中的 three.ws Concierge,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[three.ws]

@three-ws/concierge-mcp

Ask any website's AI concierge a grounded question, and generate the embed to add one to a site, from any AI assistant.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that puts the three.ws Concierge, the embeddable AI chat widget with a talking 3D avatar, in reach of any AI assistant over stdio.

Three tools:

ToolWhat it doesNetwork
concierge_askAsk a website's AI concierge a question. Give it a url and it fetches that page and answers grounded in the real content (title, headings, nav, main text), the way to ask any website a question. Or pass knowledge/content to answer from text you already have.Free three.ws lane + fetches the URL
concierge_embedGenerate ready-to-paste embed code that adds a Concierge to a website: the one-tag <script>, the <three-concierge> web component, an npm snippet, or an imperative mount() call, configured with accent, avatar, greeting, curated knowledge, and suggested prompts.Offline
concierge_avatarsList the rigged 3D avatars a Concierge can wear.Offline

No API key, no signer, no payment. concierge_ask runs on the public, free POST /api/concierge answer lane; the other two are pure local generators.

Install

bash
npm install @three-ws/concierge-mcp

Or run with npx (no install):

bash
npx @three-ws/concierge-mcp

Quick start

Claude Code, one line:

bash
claude mcp add concierge -- npx -y @three-ws/concierge-mcp

Claude Desktop / Cursor (claude_desktop_config.json or mcp.json):

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

Inspect the surface with the MCP Inspector:

bash
npx -y @modelcontextprotocol/inspector npx -y @three-ws/concierge-mcp

What you can do with it

Ask any website a question, grounded in its real content:

Use concierge_ask to answer "what does the Pro plan include?" from https://example.com/pricing

The server fetches the page, harvests its readable text, sends it to the concierge answer engine, and returns an answer that is told not to invent anything the page doesn't say.

Ask from text you already have (no URL):

concierge_ask: question = "what's the refund window?", knowledge = "Returns accepted within 30 days."

Generate a copy-paste embed for a site:

Use concierge_embed for siteName "Acme", accent "#f97316", avatar "nova", suggestions ["What is Acme?", "Pricing?"], flavor "script"

Returns the exact <script> tag to drop into the site's HTML.

Pick an avatar first:

concierge_avatars → then use the id you like as concierge_embed's avatar

Tools in detail

concierge_ask

Read-only, open-world.

ParameterTypeNotes
questionstring (required)The question, in natural language.
urlstring (url)A page to ground the answer in. Fetched + harvested.
siteNamestringDisplay name; inferred from the page when omitted.
knowledgestringCurated authoritative facts. Leads over harvested text.
contentstringRaw text to ground in when you pass no url.
personastringTone instruction for the reply.
langstringBCP-47 hint, e.g. en, es.

At least one of url, knowledge, or content is required. Returns { ok, question, answer, grounded_in, provider, model, endpoint }.

concierge_embed

Read-only, idempotent, offline.

Key parameters: siteName, flavor (script | web-component | npm | imperative | all, default all), accent, avatar, customAvatar, position, theme, greeting, persona, knowledge, suggestions[], endpoint, muted, open, noPicker, noTeaser, lang. Returns { ok, flavor, snippets, applied_config, docs }. The script, web-component, and imperative snippets are all plain-HTML paste-ready (they load the CDN global build); the npm snippet is for bundler users.

concierge_avatars

Read-only, idempotent, offline. No parameters. Returns { ok, default, count, avatars, note }, each avatar carrying id, name, tagline, style, and framing.

Configuration

All optional environment variables:

VariableDefaultPurpose
THREE_WS_BASEhttps://three.wsAPI origin for the answer call + the origin the embed snippets point at.
THREE_WS_TIMEOUT_MS45000Timeout for the concierge answer (it may fail over across LLM providers).
CONCIERGE_PAGE_TIMEOUT_MS12000Timeout for fetching a page in concierge_ask.

Errors

A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object: { "ok": false, "error": "<code>", "message": "…" }, plus status on upstream rejections:

errorMeaningRecovery
bad_requestBad arguments: no url/knowledge/content on concierge_ask, a non-http(s) url, or an unknown avatar id.Fix the call.
unsupported_mediaThe fetched url is not an HTML/text page.Point at a readable page, or pass content.
upstream_errorThe answer endpoint rejected the request; status carries the HTTP code (429 = the free lane's IP rate limit).Act on status; back off on 429.
stream_errorThe answer stream failed before completing.Retry.
timeoutNo answer within THREE_WS_TIMEOUT_MS, or the page fetch outran CONCIERGE_PAGE_TIMEOUT_MS.Retry or raise the timeout.
network_errorThe request never reached the API (DNS, offline, TLS).Check connectivity / THREE_WS_BASE.
bad_configTHREE_WS_TIMEOUT_MS is not a positive number. Thrown while the server starts (module load), so the process exits before serving.Fix the env var.

How it relates to the widget

This server is the agent-facing side of @three-ws/concierge, the browser widget. Same answer engine, same avatar catalog, same grounding model, exposed as MCP tools so an assistant can use a site's concierge or install one, not just a human visitor.

Develop

bash
npm test    # node --test, offline (registration, harvest, embed, SSE parsing)npm start   # run the server over stdio

A live end-to-end check against a running three.ws (test/_manual-e2e.mjs) drives all three tools through a real stdio client; see the file header to run it.

License

Apache-2.0. See LICENSE. Free to run against the public three.ws API.

来源:packages/concierge-mcp/README.md,提交 c8f2cde

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.1.1最新Oct 10, 2026
  2. v0.1.0Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分