# Platform, documentation and diagnostics — tool reference

Generated from the OpenAPI document (`https://maison-labs.com/api/v1/openapi.json`). Field types are JSON Schema types; GET/DELETE inputs travel as path or query, other methods as a JSON body.

## `chat_site_diagnostic` — Ask the diagnostic agent

Send a follow-up question about a finished or running diagnostic session and get the agent's answer.

- REST: `POST https://maison-labs.com/api/v1/diagnostic/{sessionId}/chat`
- MCP tool / A2A skill: `chat_site_diagnostic`
- Needs: a valid API key

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `sessionId` | path | string | yes | Diagnostic session id (64 hex chars) from start_site_diagnostic |
| `message` | body | string | yes |  |

## `check_website` — Check a website

Fetch a public website and report its framework, whether the Maison widget loader is embedded and which client id it carries. Use it to verify an embed or to size an onboarding before `create_client`.

- REST: `POST https://maison-labs.com/api/v1/tools/sitecheck`
- MCP tool / A2A skill: `check_website`
- Needs: a valid API key
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `url` | body | string | yes | Public http(s) URL |

## `get_documentation` — Documentation index

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). Pass `topic` for a single entry.

- REST: `GET https://maison-labs.com/api/v1/docs`
- MCP tool / A2A skill: `get_documentation`
- Needs: a valid API key
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `topic` | query | enum: quickstart \| auth \| apireference \| mcp \| a2a \| widget \| installation \| integrations \| diagnostic | no | One topic id; omit for the whole index |

## `get_platform_status` — 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. For incidents and maintenance read the status page.

- REST: `GET https://maison-labs.com/api/v1/status`
- MCP tool / A2A skill: `get_platform_status`
- Needs: a valid API key
- Read-only.

Inputs:

_No inputs._

## `get_site_diagnostic` — Diagnostic session

The full history of a diagnostic session — run events, progress, findings and chat turns. An empty history is a valid, still-starting session.

- REST: `GET https://maison-labs.com/api/v1/diagnostic/{sessionId}`
- MCP tool / A2A skill: `get_site_diagnostic`
- Needs: a valid API key
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `sessionId` | path | string | yes | Diagnostic session id (64 hex chars) from start_site_diagnostic |

## `get_widget_embed_code` — 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. Use `check_website` afterwards to verify the embed went live.

- REST: `GET https://maison-labs.com/api/v1/client/{clientId}/embed`
- MCP tool / A2A skill: `get_widget_embed_code`
- Needs: clients READ (client)
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |

## `start_site_diagnostic` — Start a site diagnostic

Start the AI website diagnostic for a URL: it crawls the site, checks the widget, content and structure, and streams findings. Returns a session id; poll `get_site_diagnostic` for progress and findings, then `chat_site_diagnostic` to ask about them.

- REST: `POST https://maison-labs.com/api/v1/diagnostic`
- MCP tool / A2A skill: `start_site_diagnostic`
- Needs: a valid API key

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `url` | body | string | yes | Public http(s) URL |
