three.ws Concierge

io.github.nirholasPublished by GitHub account nirholasv0.1.1Updated Nov 1, 2026

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

Overview

AI-generated overview

Local stdio MCP server that lets an assistant ask a website's AI concierge grounded questions and generate embed code for adding a concierge widget to a site.

What you can do
  • Ask a website's concierge a question, optionally grounding the answer in a fetched page URL or in supplied knowledge or raw text
  • Generate paste-ready embed snippets for a site concierge (script tag, web component, npm, or imperative mount) with accent, avatar, greeting, knowledge and suggested prompts
  • List the rigged 3D avatars a concierge can wear, to pick an avatar id for the embed
When to use it
Useful when you want an assistant to answer questions from a specific web page or from text you already have, or when you need ready-to-paste code to install a three.ws Concierge chat widget on a site.
Requirements
Runs locally over stdio via npx from the npm package @three-ws/concierge-mcp (Node.js). No API key or account. Network access is needed for the question tool, which calls the public three.ws answer endpoint. Optional environment variables: THREE_WS_BASE, THREE_WS_TIMEOUT_MS and CONCIERGE_PAGE_TIMEOUT_MS.
Before you install
The question tool fetches the URL you give it and sends the harvested page text to the three.ws answer service, so avoid pointing it at private or sensitive pages. The free answer lane is IP rate limited (HTTP 429). Embed snippets load a CDN build and point at the configured THREE_WS_BASE origin. The other two tools are offline generators.

Installation

In SourceWeft

  1. Open three.ws Concierge in the dashboard and add it to a workspace.
  2. 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]

@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.

Source: packages/concierge-mcp/README.md at commit c8f2cde

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.1.1LatestOct 10, 2026
  2. v0.1.0Sep 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