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

# MCP (Assistenti IA)

> Collega assistenti IA come Claude Desktop o Cursor ai tuoi dati Jarvi

## Cos'è MCP?

Il [Model Context Protocol (MCP)](https://modelcontextprotocol.io) è uno standard aperto che permette agli assistenti IA di connettersi a strumenti e fonti di dati esterni. Jarvi espone un server MCP così puoi usare assistenti IA per cercare, leggere e aggiornare i tuoi dati Jarvi direttamente.

## Client compatibili

Qualsiasi client compatibile con MCP può connettersi a Jarvi, tra cui:

* [Claude Desktop](https://claude.ai/download)
* [Cursor](https://cursor.com)
* [Windsurf](https://codeium.com/windsurf)
* Qualsiasi client che supporta il trasporto **Streamable HTTP**

## Configurazione

### Claude Desktop

Vai su **Impostazioni > Connettori > Aggiungi un connettore personalizzato**, inserisci un nome (es: "Jarvi") e l'URL:

```
https://mcp.jarvi.tech
```

Claude Desktop gestisce l'autenticazione automaticamente tramite OAuth2 — verrai reindirizzato per accedere con il tuo account Jarvi.

### Altri client

Per i client che non supportano OAuth2, utilizza una chiave API privata:

* **Trasporto**: Streamable HTTP
* **URL**: `https://mcp.jarvi.tech`
* **Autenticazione**: header `x-api-key` con la tua [chiave API privata](./api-keys)

<Warning>
  La tua chiave privata garantisce accesso completo ai tuoi dati Jarvi. Non condividerla mai pubblicamente.
</Warning>

## Strumenti disponibili

Una volta connesso, i seguenti strumenti sono disponibili per il tuo assistente IA:

| Strumento                 | Descrizione                                                                                      |
| ------------------------- | ------------------------------------------------------------------------------------------------ |
| `whoAmI`                  | Restituisce l'identità dell'utente connesso (nome, email, workspace)                             |
| `getStatuses`             | Elencare gli stati disponibili per profili, aziende o progetti                                   |
| `getCustomFields`         | Elencare i campi personalizzati definiti per un tipo di entità                                   |
| `getHistorySubtypes`      | Elencare i sottotipi personalizzati di interazioni (es: categorie di chiamate)                   |
| `advancedSearch`          | Cercare profili, aziende o progetti in linguaggio naturale                                       |
| `getEntityData`           | Recuperare i dati dettagliati di profili, aziende o progetti tramite ID                          |
| `getAgenda`               | Recuperare gli eventi imminenti dalle agende connesse                                            |
| `getNotifications`        | Recuperare le notifiche recenti dell'utente                                                      |
| `createProfile`           | Creare un nuovo profilo (talento e/o contatto)                                                   |
| `createCompany`           | Creare una nuova azienda                                                                         |
| `createProject`           | Creare un nuovo progetto / missione di recruiting                                                |
| `associateProfiles`       | Collegare un profilo a un progetto (talento o contatto) o a un'azienda                           |
| `createHistoryEntry`      | Aggiungere una nota o un log di chiamata alla cronologia di un profilo                           |
| `createTodo`              | Creare un promemoria/todo collegato a un profilo, azienda o progetto                             |
| `sendMessage`             | Inviare messaggi a uno o più profili (email, LinkedIn, WhatsApp, Telegram, SMS)                  |
| `getMessageTemplates`     | Elencare i template di messaggi disponibili (personali e condivisi dai colleghi)                 |
| `uploadFile`              | Caricare un file e collegarlo a un'entità (profilo, azienda o progetto)                          |
| `cancelScheduledMessages` | Annullare uno o più messaggi programmati                                                         |
| `updateProfile`           | Aggiornare un profilo, aggiungere email o numeri di telefono                                     |
| `updateCompany`           | Aggiornare un'azienda, modificare lo stato per nome, aggiungere email                            |
| `updateProject`           | Aggiornare un progetto, modificare lo stato per nome, collegare un'azienda                       |
| `fillJobOffer`            | Generare o perfezionare un'offerta di lavoro partendo dai dati del progetto                      |
| `getOutboxDiagnostic`     | Diagnosticare la casella di invio: elencare i messaggi programmati in attesa con stato ed errori |
| `retryOutboxTasks`        | Rilanciare le attività in errore reimpostando il loro stato                                      |
| `queryGraphQL`            | Eseguire query/mutazioni GraphQL sulle tabelle autorizzate (si applicano i tuoi permessi)        |

<Info>
  Tutte le operazioni vengono eseguite con **i tuoi permessi**. Si applica la sicurezza a livello di riga — puoi accedere solo ai dati a cui il tuo account ha accesso.
</Info>

## Esempi di prompt

Una volta connesso, prova a chiedere al tuo assistente IA:

* *"Chi sono?"*
* *"Cerca sviluppatori React a Parigi"*
* *"Mostrami i dettagli del progetto X"*
* *"Crea un profilo per Jean Dupont, sviluppatore"*
* *"Posiziona questo candidato sul progetto X"*
* *"Imposta lo stato dell'azienda Acme su Qualificato"*
* *"Quali campi personalizzati esistono sui profili?"*
* *"Annota una chiamata con Jean Dupont: discusso della sua disponibilità"*
* *"Ricordami di ricontattare Acme lunedì prossimo"*
* *"Aggiorna il titolo di Jean Dupont in Sviluppatore Senior"*

## Limitazioni

* Si applicano gli stessi [limiti di utilizzo](./introduction#condizioni-duso), calcolati sul tempo di esecuzione cumulato. Se ti serve di più, contatta il nostro supporto.
* Le operazioni di eliminazione sono bloccate — usa l'eliminazione soft (aggiornamento di `deletedAt`) invece.
* Le risposte troppo voluminose vengono automaticamente troncate. Usa argomenti `limit` nelle tue richieste.
* Gli strumenti distruttivi (mutazioni, lancio di campagne, reinvio di messaggi) richiedono una conferma dell'assistente IA prima dell'esecuzione.
