three.ws Concierge — Claude Code MCP server: site Q&A and embed code
Asks a website's AI concierge questions grounded in the page itself, and writes the embed snippet for a 3D-avatar chat widget.
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --env CONCIERGE_PAGE_TIMEOUT_MS=<CONCIERGE_PAGE_TIMEOUT_MS> --transport stdio concierge-mcp -- npx -y @three-ws/concierge-mcpWhat three.ws Concierge does
The server speaks stdio and exposes three tools to your assistant. concierge_ask takes a url, pulls the readable parts of that page and answers from them. You can skip the URL by handing over your own facts in knowledge or raw text in content; one of the three is required either way.
concierge_embed returns paste-ready code in whichever form you pick: a <script> tag, the <three-concierge> web component, an npm snippet, or a mount() call. Accent colour, avatar, greeting, suggested prompts and position are all configurable. concierge_avatars lists the rigged avatars with their ids, so check it first and feed the id you like into avatar.
No API key, no signer. Answers travel over the public free lane at POST /api/concierge; the embed and avatar tools run entirely on your machine. That free lane is rate-limited per IP, so a 429 comes back as upstream_error with a status code and you should back off. Timeouts live in THREE_WS_TIMEOUT_MS and CONCIERGE_PAGE_TIMEOUT_MS. Set the first one to something that is not a positive number and the process dies at module load, before it ever serves a request.
What it helps with
- answer a question from a live page without opening it
- produce an embed tag for a concierge widget
- pick a 3D avatar for the widget
- ground an answer in private facts instead of a public URL
- drop the widget into a bundler project via the npm snippet
Example prompts for the agent
- Ask the concierge on
https://example.com/pricingwhat the Pro plan includes - Generate embed code for siteName "Acme", accent "#f97316", avatar "nova"
- List the available avatars, then we'll use one of those ids
How to install three.ws Concierge
Platform CLI
claude mcp add --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --env CONCIERGE_PAGE_TIMEOUT_MS=<CONCIERGE_PAGE_TIMEOUT_MS> --transport stdio concierge-mcp -- npx -y @three-ws/concierge-mcpReplace <…> with your own values
Platform CLI
codex mcp add concierge-mcp --env THREE_WS_BASE=<THREE_WS_BASE> --env THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> --env CONCIERGE_PAGE_TIMEOUT_MS=<CONCIERGE_PAGE_TIMEOUT_MS> -- npx -y @three-ws/concierge-mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"concierge-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/concierge-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>",
"CONCIERGE_PAGE_TIMEOUT_MS": "<CONCIERGE_PAGE_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"concierge-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/concierge-mcp"
],
"env": {
"THREE_WS_BASE": "<THREE_WS_BASE>",
"THREE_WS_TIMEOUT_MS": "<THREE_WS_TIMEOUT_MS>",
"CONCIERGE_PAGE_TIMEOUT_MS": "<CONCIERGE_PAGE_TIMEOUT_MS>"
}
}
}
}Replace <…> with your own values
Platform CLI
gemini mcp add -e THREE_WS_BASE=<THREE_WS_BASE> -e THREE_WS_TIMEOUT_MS=<THREE_WS_TIMEOUT_MS> -e CONCIERGE_PAGE_TIMEOUT_MS=<CONCIERGE_PAGE_TIMEOUT_MS> concierge-mcp npx -y @three-ws/concierge-mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about three.ws Concierge
How do I install three.ws Concierge in Claude Code?
Run claude mcp add concierge-mcp -- npx -y @three-ws/concierge-mcp. To pass environment variables, add them with --env flags in the same command.
What does three.ws Concierge do?
It hands your assistant three tools: ask a site's concierge a question grounded in a page, generate widget embed code, and list the 3D avatars.
Do I need an API key?
No. Answers go through the public free lane, and the embed generator and avatar list run locally.