> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mattone.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Collegare PriceLabs: Client ID e OAuth MCP

> Come collegare PriceLabs a Mattone via MCP (Client ID + OAuth), così la piattaforma legge gli insight di pricing dello studente.

Lo studente collega PriceLabs a Mattone incollando solo il suo **Client ID**: il resto è OAuth. Una volta collegato, la piattaforma legge gli insight di pricing (e Francesco AI può agire read+write sui prezzi in chat).

## Prerequisiti

* **Lo studente ha un account PriceLabs attivo** su [pricelabs.co](https://pricelabs.co), con i suoi listing **già sincronizzati** dal suo PMS (è PriceLabs a tenere il sync coi listing/prezzi, noi ci agganciamo in lettura/scrittura via MCP).
* Costo: **\~\$1/unità/mese** extra per l'accesso API/MCP.

## Collegamento

<Steps>
  <Step title="Prendi il Client ID in PriceLabs">
    Lo studente va su **PriceLabs → Account Settings → AI Connector (MCP)** e copia il **Client ID** (è per-account). Non serve nessun client secret.
  </Step>

  <Step title="Incollalo nella piattaforma Mattone">
    Su **Connessioni → PriceLabs**, incolla il Client ID nel campo dedicato e clicca **Connetti**. Parte il flusso OAuth.
  </Step>

  <Step title="Autorizza (OAuth PKCE)">
    Lo studente fa login su PriceLabs e approva l'accesso (scope `read write`). Torni in piattaforma con esito **verde** (`?pricelabs=ok`).
  </Step>

  <Step title="Verifica che i listing siano leggibili">
    Dopo il connect, `get_listings` deve tornare i listing dello studente (`listing_id`, `pms_name`). Considera solo quelli **synced**.
  </Step>
</Steps>

## Come funziona (tecnico)

* MCP runtime: `https://mcp.pricelabs.co/mcp` (Bearer access\_token).
* OAuth **PKCE S256**, grant authorization\_code + refresh\_token, **niente client\_secret** (public client). Il token si rinfresca al 401.

<Note>
  I connettori MCP si legano all'**avvio sessione**: un reconnect a caldo non entra nella sessione in corso, serve una sessione nuova. Se il connect non parte, il Client ID è errato o preso dalla sezione sbagliata (dev'essere quello di **AI Connector (MCP)**).
</Note>

<Tip>
  **▷ Prompt Claude Code: Collega PriceLabs**  ·  incolla in Claude Code:
</Tip>

```text theme={null}
Contesto: in questa sessione di Claude Code NON hai il repo/codice caricato.
Per prima cosa apri il repo `~/Projects/mattone-platform` (connettore PriceLabs
/ connessioni) e LEGGI la pagina mattone-docs /integrazioni/pricelabs/collegamento;
per verificare i listing usa l'MCP PriceLabs (get_listings). Poi procedi:

Aiutami a collegare PriceLabs per lo studente [NOME] seguendo mattone-docs
/integrazioni/pricelabs/collegamento. Chiedimi il Client ID (lo prende da
PriceLabs -> Account Settings -> AI Connector (MCP)); non serve client_secret
(OAuth PKCE). Dopo il connect, verifica che get_listings torni i suoi listing
(listing_id, pms_name) e considera solo quelli synced. Ricordami che i
connettori si legano all'avvio sessione (un reconnect a caldo non entra nella
sessione in corso).
```

<CardGroup cols={2}>
  <Card title="Connessioni (piattaforma)" icon="arrow-up-right-from-square" href="https://app.mattone.co/connessioni">Card PriceLabs → incolla il Client ID</Card>
  <Card title="PriceLabs → AI Connector (MCP)" icon="key">Account Settings: da qui il Client ID</Card>
</CardGroup>
