Agent Skills / maison-platform
Install this skill alone, or read it below. Raw file: SKILL.md · references/tools.md
npx skills add https://docs.maison-labs.com --skill maison-platformMaison — Platform, documentation and diagnostics
Orient and verify: the documentation index with machine-readable discovery URLs, the exact widget embed code for a hotel, a website check (framework, widget present, client id), the AI site diagnostic (start, read findings, ask follow-ups) and a live platform health summary. Use when installing the widget on a hotel's site, when a site seems not to load the concierge, or to find the right documentation page.
Part of the Maison public API. Read the maison-public-api skill first for authentication, discovery and transport details (https://docs.maison-labs.com/skills/maison-public-api/SKILL.md).
When to use
- Install the widget —
get_widget_embed_code, thencheck_websiteto verify. - A hotel site misbehaves —
start_site_diagnostic→get_site_diagnostic→chat_site_diagnostic. - Find documentation —
get_documentation.
Before you start
- Send
x-api-key: <key>on every call; the key only reaches/api/v1. GET /api/v1/tools(or MCPtools/list) returns the tools THIS key may run — if a tool below is missing there, you lack a grant; do not retry it.- Client-scoped tools take
clientId(a hotel id).whoamilists the ids you can act on.
Tools
| Tool | What it does | REST | Needs |
|---|---|---|---|
chat_site_diagnostic | Send a follow-up question about a finished or running diagnostic session and get the agent's answer. | POST /api/v1/diagnostic/{sessionId}/chat | a valid API key |
check_website | Fetch a public website and report its framework, whether the Maison widget loader is embedded and which client id it carries. | POST /api/v1/tools/sitecheck | a valid API key; read-only |
get_documentation | Where the public documentation lives: the docs site topics (quick start, authentication, API reference, MCP, A2A, widget SDK, installation guides, integrations, diagnostic), plus the machine-readable discovery URLs (OpenAPI document, agent card, filtered tool catalogue). | GET /api/v1/docs | a valid API key; read-only |
get_platform_status | A live health summary from the API's point of view: environment, database reachability, LLM service reachability and the public status page URL. | GET /api/v1/status | a valid API key; read-only |
get_site_diagnostic | The full history of a diagnostic session — run events, progress, findings and chat turns. | GET /api/v1/diagnostic/{sessionId} | a valid API key; read-only |
get_widget_embed_code | The exact HTML a hotel pastes into its website to show the Maison chat widget: the hardened loader <script> tag for this environment's CDN and the initMcbs call with the hotel's client id. | GET /api/v1/client/{clientId}/embed | clients READ (client); read-only |
start_site_diagnostic | Start the AI website diagnostic for a URL: it crawls the site, checks the widget, content and structure, and streams findings. | POST /api/v1/diagnostic | a valid API key |
Full input fields for every tool: references/tools.md.
Recommended workflows
Install and verify the widget
get_widget_embed_codefor the hotel; give the operator thehtmlblock.- After they publish,
check_websitewith the site URL:hasAgentScriptand the detected client id confirm the install. - If something is off,
start_site_diagnosticand read the findings.
Tips
get_platform_statusis a quick way to tell an API outage from a hotel-specific problem.
Pitfalls
- Diagnostics run against public URLs only; private or password-protected sites cannot be checked.
Calling conventions
Same tool, three transports — pick whichever your runtime already speaks. Always send x-api-key.
# REST
curl -X POST "https://maison-labs.com/api/v1/diagnostic/<sessionId>/chat" -H "x-api-key: $MAISON_API_KEY" -H "content-type: application/json" -d '{ "message": … }'// MCP (https://maison-labs.com/mcp, Streamable HTTP): tools/call
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "chat_site_diagnostic", "arguments": { "message": … } } }// A2A (https://maison-labs.com/a2a): tasks/send with a data part
{ "jsonrpc": "2.0", "id": 1, "method": "tasks/send", "params": { "message": { "role": "user", "parts": [{ "type": "data", "data": { "tool": "chat_site_diagnostic", "input": { "message": … } } }] } } }Errors are the same everywhere: 401 no/invalid key; 403 forbidden with details.missing (the grants you lack — fall back to the composite's parts or stop); 403 not_entitled (the hotel's plan lacks the feature); 404, 409, 413 too_large, 503. Inputs that fail validation return 400 invalid_input with the Zod issues — fix and retry once.