EN IT

Server MCP

Contit espone un server MCP (Model Context Protocol) che permette ad agenti come Claude Code, Claude Desktop o altri client MCP di leggere i contenuti di un workspace come tool nativi.

L'endpoint è remoto (Streamable HTTP) ed è raggiungibile a:

https://api.contit.cloud/mcp

L'autenticazione avviene tramite un Personal Access Token (PAT) per-utente, inviato come Bearer. Ogni token è legato a un utente e a un workspace, e ne eredita i permessi (lettura / lettura-scrittura, e gli eventuali permessi per tipo di contenuto).

1. Genera un Personal Access Token

Esistono due tipi di PAT, a seconda dell'ambito:

Tipo Dove si crea Ambito
Per-workspace Console → Impostazioni → Sviluppatore → Personal Access Token del workspace un singolo workspace, con permessi per content type
Admin (multi-workspace) Profilo utente (IDP) → Personal Access Token tutti i workspace che amministri; riservato a Owner/Manager della sottoscrizione

Il token (formato ctpat_...) viene mostrato una sola volta: copialo subito.

Con un token admin usi un'unica entry MCP per tutti i tuoi workspace: l'agente sceglie il workspace per ogni operazione (vedi contit_list_workspaces e il parametro workspaceId sotto).

2. Configura l'agente

Claude Code

claude mcp add --transport http contit https://api.contit.cloud/mcp \
  --header "Authorization: Bearer ctpat_xxxxxxxx"

Claude Desktop

Nel file claude_desktop_config.json, tramite mcp-remote con header X-Api-Key (consigliato: evita problemi di parsing dello spazio in Authorization: Bearer):

{
  "mcpServers": {
    "contit": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.contit.cloud/mcp",
        "--header",
        "X-Api-Key: ctpat_xxxxxxxx"
      ]
    }
  }
}

Il PAT (ctpat_…) è accettato indifferentemente come Authorization: Bearer, header X-Api-Key o query ?api_key=.

Tool disponibili

Tool Descrizione
contit_list_workspaces Elenca i workspace accessibili (utile per i token admin multi-workspace)
contit_list_content_types Elenca i content type (schemi) del workspace
contit_query_content Cerca i contenuti pubblicati di un content type, con paginazione
contit_get_content Recupera un singolo contenuto pubblicato dato content type e id

Tutti i tool richiedono almeno il permesso di lettura. Con un token per-workspace il workspace è implicito; con un token admin i tool accettano un parametro workspaceId (l'accesso dell'utente a quel workspace è verificato a runtime). I tool di scrittura saranno aggiunti in una versione successiva.

Se il PAT ha permessi per tipo di contenuto configurati, i tool vedono e restituiscono solo i content type consentiti.

Validazione centralizzata per le app riservate

Le app riservate possono validare lo stesso Personal Access Token in modo centralizzato tramite l'endpoint /connect/introspect, così l'autorità che conosce i token resta unica (l'IDP). Nell'SDK .NET:

var validator = new ContitTokenValidator(appClientId, appClientSecret);
var info = await validator.ValidateAsync(incomingToken);
if (info.Active)
{
    // info.UserId, info.WorkspaceId, info.CanRead, info.CanWrite
}

Per chiamare le API a nome dell'utente con un PAT:

var client = DelegatedContitClient.FromPersonalAccessToken("ctpat_xxxxxxxx");