Cursor · Server MCP
Server MCP per Cursor: messaggistica ed email nel suo IDE
Un URL e un header aggiungono il Server MCP Unipile a Cursor. Il suo agente costruisce poi funzionalità LinkedIn, WhatsApp ed email nel suo progetto.
Prova gratuita di 7 giorni, senza carta di credito.
Cursor · crm-app
Unipile MCP connesso
Aggiungi la connessione dell'account LinkedIn al mio CRM.
Lettura endpointPOST /v2/auth/linkschema caricato
Aggiunti la route di connessione e il pulsante Settings. L'account ID viene salvato sull'utente.
Descriva la prossima funzionalità…
L'obiettivo
Che cosa si vuole ottenere
Aggiungere al suo prodotto una connessione LinkedIn, WhatsApp, email o calendario. Significa leggere un riferimento API, scegliere gli endpoint giusti, collegare Hosted Auth e i suoi callback, e poi conservare gli ID corretti dalla ricerca fino al messaggio. Con il server MCP di Unipile in Cursor, è l'agente a fare quella lettura per lei e a scrivere il codice nel suo stack.
Connettere il server MCP Unipile a CursorUnipile MCP connesso
Selezioni i canali da connettere
developer.unipile.com/mcpConnetti tutti i canali9 canali
↑↓naviga spazioseleziona ↵connettiun URL, un header
Senza
Schede aperte, tentativi, codice di collegamento
Cursor indovina nomi di endpoint e payload dai dati di training, e sbaglia gli ID.
Si incollano gli schemi del riferimento nella chat, un endpoint alla volta.
La prima chiamata reale avviene in produzione, dopo la code review.
Con il server MCP di Unipile
Il risultato nella sua applicazione
Una route di connessione e un pulsante Settings: ogni utente collega il proprio account tramite Hosted Auth.
Un ricevitore di webhook e una inbox che mostra messaggi ed email man mano che arrivano.
Ogni richiesta già eseguita una volta sulla sua applicazione Development prima di rivedere il diff.
mcp.json, globale o di progetto
Aggiungere il server MCP Unipile a Cursor
Il server è remoto: un URL su streamable HTTP e un header. Niente npx, nessun processo locale, nessuna versione di Node da gestire. Scelga dove mettere la voce, incolli il blocco dalla documentazione ufficiale, salvi, e Cursor carica il server.
Cursor aggiornato, con MCP disponibile in Customize (barra laterale) o la Cursor CLI.
Un'applicazione Development nella dashboard Unipile, con uno Scope e una chiave API Account scoped.
Almeno un account di test collegato a quello Scope tramite Hosted Auth, così l'agente può eseguire richieste reali.
Configurazione globale~/.cursor/mcp.json
Configurazione di progetto.cursor/mcp.json (radice del repository)
Chiave da una variabile d'ambiente${env:UNIPILE_API_KEY}
?
Globale o di progetto?Globale quando sviluppa più integrazioni Unipile dalla stessa macchina. Di progetto quando ogni repository richiede la propria chiave scoped, la scelta giusta quando Development e Production vivono in repository diversi. Cursor legge prima il progetto, poi la configurazione globale.
{
"mcpServers": {
"unipile": {
"url": "https://developer.unipile.com/mcp?branch=v2.0",
"headers": {
"X-API-KEY": "your-scoped-api-key"
}
}
}
}
{
"mcpServers": {
"unipile": {
"url": "https://developer.unipile.com/mcp?branch=v2.0",
"headers": {
"X-API-KEY": "your-scoped-api-key"
}
}
}
}
{
"mcpServers": {
"unipile": {
"url": "https://developer.unipile.com/mcp?branch=v2.0",
"headers": {
"X-API-KEY": "${env:UNIPILE_API_KEY}"
}
}
}
}
Salvi il file. Cursor carica il server e lo elenca in Customize. Cursor risolve ${env:NAME} in url e headers, così la chiave non deve mai stare nel file.
Opzionale: installazione in un clic
Incolli la sua chiave API Account scoped per ottenere un link di installazione che apre Cursor con il server già compilato. Tutto avviene nel suo browser; la chiave non viene mai inviata a unipile.com.
Se lo lascia vuoto, il link installa il server con un segnaposto da sostituire in Cursor.
Aggiungere Unipile a Cursor
Verifica
Verificare la connessione
Tre controlli: nell'editor, nella CLI, poi in una chat. Nessuno tocca un account collegato.
1In CustomizeApra Customize nella barra laterale: il server unipile è elencato, abilitato, e mostra il suo stato. L'interruttore lo disabilita senza rimuovere la voce.
2Nella Cursor CLILa CLI condivide la configurazione dell'editor, prima il progetto, poi la globale.agent mcp list
# oppure /mcp list in una sessione interattiva
3In una chat, senza toccare un accountChieda qualcosa che legga soltanto la specifica dell'API. Se l'agente risponde con route e parametri reali, il server è collegato.Usando l'MCP di Unipile, elenca gli endpoint per la ricerca di persone su LinkedIn e i loro parametri obbligatori.
Prompt, non codice di collegamento
Dia il prompt al suo agente
Tre integrazioni, ciascuna con il prompt esatto da incollare in Cursor, gli endpoint Unipile che l'agente legge ed esegue e ciò che arriva nel suo progetto. I percorsi sono completi, sull'URL di base dell'API
https://api.unipile.com, con la sua chiave scoped passata nell'header X-API-KEY della richiesta.Aggiungi la messaggistica LinkedIn al mio ATS: sincronizza la inbox di ogni recruiter e permettigli di rispondere dalla pagina del candidato.
Ricerca endpoint"chats messages send"3 risultati
Esecuzione richiestaGET /v2/{account_id}/chats12 chat
Creati
linkedin/inbox-sync.ts (chat e messaggi salvati sul candidato, paginazione a cursore) e POST /candidates/:id/reply, che chiama la route di invio con l'account ID della chat stessa. Sync eseguita sull'app Development: 12 chat, 87 messaggi.Incolli il prompt, riveda il diff
Cursor legge i contratti di chat e messaggi tramite il server, scrive il job di sincronizzazione e l'endpoint di risposta nel suo stack ed esegue le prime richieste sulla sua applicazione Development. WhatsApp, Instagram e Telegram usano le stesse route di chat, quindi il secondo canale richiede un prompt più breve del primo.
Endpoint usati dall'agente
GET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Errore comune: mescolare gli ID. Un messaggio parte sempre dall'account proprietario della chat; tenga
Costruire un'integrazione LinkedIn
account_id e chat_id insieme dalla chiamata di lista fino a quella di invio.Implementa Unipile Hosted Auth in questa app React e Fastify, così gli utenti collegano il proprio account LinkedIn da Settings.
Lettura endpointPOST /v2/auth/linkschema caricato
Esecuzione richiestaPOST /v2/auth/link201 · link
Aggiunta
POST /api/accounts/connect in Fastify: crea il link di autenticazione lato server e restituisce l'URL ospitato. La pagina Settings in React lo apre e, al ritorno, salva il nuovo account_id nel workspace. Verificato sull'app Development con un account LinkedIn di test.I suoi utenti collegano i propri account, la sua app riceve un account ID
Hosted Auth è la pagina che Unipile mostra ai suoi utenti perché colleghino da soli LinkedIn, WhatsApp, Gmail, Outlook o un calendario. L'agente configura la creazione del link nel backend, il redirect nel frontend e il salvataggio dell'account ID, necessario a ogni richiesta successiva.
Endpoint usati dall'agente
POST/v2/auth/linkPOST/v2/auth/intentGET/v2/accounts/{account_id}
Errore comune: creare il link di autenticazione dal browser. Il link si crea sul suo server con la sua chiave; il frontend riceve solo l'URL ospitato.
Implementare Hosted Auth con un agente
Iscriviti ai webhook dei nuovi messaggi e costruisci una inbox unificata LinkedIn, WhatsApp ed email, con una sola lista di thread e il canale come badge.
Lettura endpointPOST /v2/webhooks/endpoints/schema caricato
Esecuzione richiestaGET /v2/{account_id}/emails200 OK
Registrato un endpoint webhook per gli eventi dei messaggi sull'app Development, aggiunta
POST /webhooks/unipile che risponde subito 200 e mette l'evento in coda, un modello Thread che riporta chat e thread email a un'unica forma, e la lista dei thread con i badge di canale. Inviato un messaggio di test: la lista si è aggiornata in meno di un secondo.Tempo reale senza polling, una sola lista per messaggistica ed email
Chat ed email arrivano da due famiglie di route, ciascuna con il proprio schema. L'agente legge entrambi i contratti, progetta il modello comune, scrive la sincronizzazione e il ricevitore dei webhook, poi controlla il log delle consegne tramite la route delle conversazioni webhook.
Endpoint usati dall'agente
POST/v2/webhooks/endpoints/GET/v2/{account_id}/chatsGET/v2/{account_id}/emailsGET/v2/webhooks/conversations/
Errore comune: fare il lavoro dentro l'handler del webhook. Risponda subito con un 2xx ed elabori l'evento in modo asincrono, altrimenti le consegne vanno in timeout e vengono ritentate.
Costruire una inbox unificata con un agente
Dallo sviluppo alla produzione
Testare prima su un'applicazione Development
La dashboard Unipile separa un' applicazione Development da una di Produzione. Dia a Cursor una chiave scoped dell'applicazione Development, con uno o due account di test collegati tramite Hosted Auth. L'agente esegue richieste reali su quegli account, per conto dell'utente autenticato che li ha collegati e nei limiti di ogni provider, e nulla tocca gli account dei suoi utenti fino al rilascio.
Validi il flusso di connessione end to end: auth link creato lato server, account ID salvato sull'utente.
Validi una lettura e una scrittura per funzionalità: elenco delle chat, invio di un messaggio sull'account di test.
Validi una consegna webhook e uno stato di riconnessione o checkpoint prima di passare la chiave alla Produzione.
crm-app · DevelopmentUsata da Cursor
Scopedev-tests · 2 account
Chiave
scoped Account API keyAccountAccount LinkedIn di test, casella Gmail di test
Webhooks1 endpoint · eventi message
crm-app · ProductionIntatta
Scopeuno per workspace
Chiave
scoped keys, in your backend onlyAccountgli account dei suoi utenti, tramite Hosted Auth
Troubleshooting
Errori frequenti e cosa significano
I messaggi che Cursor mostra quando una voce MCP non è corretta, e come risolverli. Quasi sempre si tratta del file, del JSON o della chiave.
Nessun tool o prompt
Cursor ha caricato la voce ma non ha ricevuto nulla dal server.
SoluzioneControlli il file che ha modificato (globale ~/.cursor/mcp.json o di progetto .cursor/mcp.json nella radice del repository), validi il JSON (una virgola di troppo è la causa più comune), poi ricarichi il server da Customize o riavvii Cursor.
No server info found
La voce c'è ma Cursor non riesce a descrivere il server.
SoluzioneIl valore di url deve essere esattamente https://developer.unipile.com/mcp?branch=v2.0, come voce remota con url e headers, non command. Rimuova qualsiasi type: "stdio" rimasto da un altro server.
Connection failed
L'URL risponde, ma non come server MCP.
SoluzioneUn errore di battitura nell'host o in ?branch=v2.0, oppure un proxy aziendale che blocca la richiesta. Apra l'URL in un browser: deve rispondere, non restituire 404.
401 Unauthorized sulle richieste
Il server è connesso, ma l'esecuzione di una richiesta fallisce.
SoluzioneLa chiave manca da headers, il nome dell'header non è X-API-KEY, oppure ha usato una chiave Service o una chiave Account globale invece di una chiave API Account scoped della sua applicazione Development.
La configurazione di progetto viene ignorata
Cursor continua a usare la voce globale, o nessuna.
Soluzione.cursor/mcp.json deve trovarsi nella radice della cartella aperta in Cursor, non in una sottocartella. Cursor legge prima il progetto, poi la configurazione globale, poi le cartelle superiori.
Dove leggere i log
Ognuno dei casi qui sopra lascia una traccia.
SoluzioneApra il pannello Output (Cmd+Shift+U su macOS, Ctrl+Shift+U su Windows e Linux) e selezioni MCP Logs nel menu a tendina: inizializzazione, richieste ed errori sono elencati lì.
6000+
Aziende che innovano con Unipile
Fiducia da parte dei leader del settore
1 API
Semplificare le operazioni per tutti i principali canali di comunicazione
2 giorni
Integrazione rapida con una configurazione minima
30%
Riduzione dell'impegno e delle risorse per la manutenzione
Sicurezza e conformità integrate
Protezione di livello aziendale per i vostri dati e flussi di lavoro Per saperne di più sulla nostra sicurezza
SOC 2 Tipo II
Certificato
Controlli di sicurezza verificati in modo indipendente che garantiscono la protezione dei dati e l'integrità operativa.
GDPR
Conforme
Piena conformità alle normative europee sulla protezione dei dati per la privacy degli utenti.
99.9%
Uptime della piattaforma negli ultimi 24 mesi
24/7
Supporto globale con API ad alte prestazioni
FAQ server MCP per Cursor
Le domande che si fanno davvero: dove si trova mcp.json, globale o di progetto, server remoti e header, cosa controllare quando non appare nulla, chiavi, installazione in un clic e CLI.
In due posizioni.
~/.cursor/mcp.json nella sua cartella home è la configurazione globale, disponibile in tutti i progetti. .cursor/mcp.json nella radice della cartella aperta in Cursor è la configurazione di progetto. Cursor legge prima il file di progetto, poi quello globale, poi le cartelle superiori. Entrambi usano lo stesso blocco mcpServers di configurazione.A livello globale quando costruisce diverse integrazioni Unipile dalla stessa macchina e con una sola applicazione Development. Per progetto quando ogni repository richiede la propria chiave scoped, la scelta giusta quando le integrazioni Development e Production vivono in repository diversi. In entrambi i casi la chiave è una chiave API Account scoped, mai una chiave Service o globale.
Sì. Una voce remota in
mcp.json accetta un campo url e un headers di tipo oggetto, e Cursor risolve ${env:NAME} in entrambi. Il server Unipile è esattamente questo: streamable HTTP su https://developer.unipile.com/mcp?branch=v2.0 , con l'header X-API-KEY . Niente npx, nessun processo locale, nessuna versione di Node da gestire.In questo ordine: il file modificato (globale o di progetto, nella radice del repository), la validità del JSON, un ricaricamento del server da Customize o un riavvio di Cursor, poi gli MCP Logs nel pannello Output (Cmd+Shift+U, selezioni MCP Logs). Se il server si connette ma le richieste falliscono con un 401, la chiave manca nell'header oppure non è una chiave API Account scoped.
Il server risponde senza chiave quando l'agente si limita a leggere la specifica dell'API. Per eseguire richieste reali, crei uno Scope nella sua applicazione Development, vi assegni gli account di test e generi una chiave API Account scoped per quello Scope. Non dia mai a un client MCP una chiave Service o una chiave Account globale.
Sì. Il link di installazione in questa pagina codifica la configurazione del server; apre Cursor con la voce unipile già compilata, e lei sostituisce il segnaposto con la sua chiave scoped. Il generatore facoltativo qui sopra crea lo stesso link con la sua chiave già inserita, interamente nel suo browser.
Sì. La CLI condivide la configurazione dell'editor, prima quella di progetto, poi quella globale.
agent mcp list mostra i server configurati e il loro stato, e /mcp list fa lo stesso in una sessione interattiva. L'agente usa poi il server Unipile quando una richiesta lo rende necessario.