{"$schema":"https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json","name":"ai.elav8.fala/fala","title":"FALA","description":"Build, train and install a voice + chat AI agent for a business website: read the site into a knowledge base, create and style the widget, and get the one-line install code.","version":"1.0.0","icons":[{"src":"https://fala.elav8.ai/fala-icon.png","mimeType":"image/png","sizes":["512x512"]}],"websiteUrl":"https://fala.elav8.ai/developers","remotes":[{"type":"streamable-http","url":"https://fala.elav8.ai/mcp","supportedProtocolVersions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"]}],"serverInfo":{"name":"fala","title":"FALA","version":"1.0.0"},"transport":{"type":"streamable-http","endpoint":"https://fala.elav8.ai/mcp"},"capabilities":{"tools":{"listChanged":false},"prompts":{"listChanged":false}},"authentication":{"required":true,"schemes":["bearer"],"protectedResourceMetadata":"https://fala.elav8.ai/.well-known/oauth-protected-resource/mcp","methods":["oauth2","api_key"],"apiKeys":"Workspace keys (fala_sk_…) issued by the workspace owner or an admin."},"tools":[{"name":"whoami","description":"Start here. The workspace this key acts on: plan and limits, your role and scopes, what already exists, and whether the install terms are on record."},{"name":"list_brands","description":"Every brand (a business website) in the workspace, with its knowledge bases and widgets."},{"name":"create_brand_from_website","description":"Read a business website: capture its name, logo, colours and tone as a brand, create its knowledge base, and start reading every page into it in the background. Re-running on the same site refreshes the brand. Then poll get_knowledge_status until the site has been read."},{"name":"list_knowledge_bases","description":"Knowledge bases with their document counts and pending (unpublished) documents."},{"name":"get_knowledge_status","description":"What the agent knows so far: pages read, the facts it learned, the topics still missing, and whether it is still reading the website."},{"name":"add_knowledge","description":"Teach the agent something the website does not say (hours, policies, pricing details). On a widget already live on the site it is STAGED until publish_widget; otherwise it is used immediately."},{"name":"ask_knowledge_base","description":"Test what the agent would find for a visitor's question (includes staged, unpublished knowledge — the dashboard's Test box)."},{"name":"list_unanswered_questions","description":"Questions visitors asked that the knowledge base could not answer — the best list of what to add with add_knowledge."},{"name":"list_widgets","description":"Widgets with their look (unpublished changes applied), install state and domain lock."},{"name":"create_widget","description":"Create the brand's voice + chat widget, wired to its knowledge base and locked to its website. A brand has one widget: if it already has one, that widget is returned (reused_existing) unless create_another is true."},{"name":"update_widget_look","description":"Change how the widget looks. On a widget already live on the site the change is STAGED (visitors keep the old look) until publish_widget; on a widget not installed yet it applies directly. Send only what changes."},{"name":"publish_widget","description":"Put staged look changes and pending knowledge live on the website. Idempotent: with nothing staged it changes nothing."},{"name":"allow_domain","description":"Let the widget run on another site (subdomains included). Widgets are locked to their brand's website by default."},{"name":"get_install_code","description":"The one-line install code plus step-by-step placement instructions for a coding agent. Requires the install terms to be on record: if they are not, returns agreement_required with a link the workspace owner or an admin must open themselves — you cannot agree on their behalf."},{"name":"check_install","description":"Whether the widget has loaded on the real website, where, and whether it is switched on for visitors. The only source for saying it is live."}],"documentation":"https://fala.elav8.ai/developers"}