PL
Cursor · Serwer MCP

Serwer MCP dla Cursor: wiadomości i e-mail w IDE

Jeden URL i jeden nagłówek dodają serwer Unipile MCP do Cursor. Agent buduje potem w projekcie funkcje LinkedIn, WhatsApp i e-mail.
7 dni za darmo, bez karty kredytowej.
Cursor · crm-app
Unipile MCP połączony
Sarah
Dodaj do mojego CRM połączenie konta LinkedIn.
Odczyt endpointuPOST /v2/auth/linkschemat wczytany
Dodano endpoint połączenia i przycisk w Ustawieniach. ID konta jest zapisywane przy użytkowniku.
3 zmienione pliki · przetestowane w aplikacji Development
Opisz kolejną funkcję…
Zadanie

Co trzeba zrobić

Dodanie do produktu połączenia z LinkedIn, WhatsApp, e-mailem lub kalendarzem oznacza lekturę dokumentacji API, wybór właściwych endpointów, podłączenie Hosted Auth i jego callbacków, a potem pilnowanie właściwych ID od wyszukiwania po wiadomość. Z serwerem Unipile MCP w Cursor agent czyta to wszystko za Państwa i pisze kod w Państwa stacku.
Podłącz serwer Unipile MCP do CursorUnipile MCP połączony
Wybierz kanały do podłączeniadeveloper.unipile.com/mcp
Podłącz wszystkie kanały9 kanałów
LinkedInLinkedIn/v2/{account_id}/chats
WhatsAppWhatsApp/v2/{account_id}/chats
InstagramInstagram/v2/{account_id}/chats
TelegramTelegram/v2/{account_id}/chats
GmailGmail/v2/{account_id}/emails
OutlookOutlook/v2/{account_id}/emails
IMAPIMAP/v2/{account_id}/emails
Google CalendarGoogle Calendar/v2/{account_id}/calendars
Outlook CalendarOutlook Calendar/v2/{account_id}/calendars
↑↓nawigacja spacjawybór ↵połączjeden URL, jeden nagłówek
Bez tego Karty, zgadywanie, kod klejący
Cursor zgaduje nazwy endpointów i payloady na podstawie danych treningowych i myli ID.
Schematy z dokumentacji wkleja się do czatu ręcznie, endpoint po endpoincie.
Pierwsze prawdziwe wywołanie następuje na produkcji, już po code review.
Z serwerem Unipile MCP Efekt w aplikacji
Endpoint połączenia i przycisk w Ustawieniach: każdy użytkownik podłącza własne konto przez Hosted Auth.
Odbiornik webhooków i inbox, który pokazuje wiadomości i e-maile na bieżąco.
Każde żądanie wykonane już raz w aplikacji Development, zanim przejrzą Państwo diff.
mcp.json, globalnie lub w projekcie

Dodaj serwer Unipile MCP do Cursor

Serwer jest zdalny: jeden URL przez streamable HTTP i jeden nagłówek. Bez npx, bez lokalnego procesu, bez wersji Node do utrzymywania. Wystarczy wybrać, gdzie ma być wpis, wkleić blok z oficjalnej dokumentacji i zapisać, a Cursor wczyta serwer.
Aktualny Cursor, z MCP dostępnym w Customize (pasek boczny) lub w Cursor CLI.
Aplikacja Development w dashboardzie Unipile, ze Scope i kluczem Account API przypisanym do tego Scope.
Co najmniej jedno konto testowe podłączone do tego Scope przez Hosted Auth, aby agent mógł wykonywać prawdziwe żądania.
G
Konfiguracja globalna~/.cursor/mcp.json
P
Konfiguracja projektu.cursor/mcp.json (katalog główny repozytorium)
E
Klucz ze zmiennej środowiskowej${env:UNIPILE_API_KEY}
?
Globalnie czy w projekcie?Globalnie, gdy buduje się kilka integracji Unipile na jednej maszynie. W projekcie, gdy każde repozytorium potrzebuje własnego klucza przypisanego do Scope, co jest właściwym wyborem, gdy Development i Production żyją w różnych repozytoriach. Cursor czyta najpierw projekt, potem konfigurację globalną.
~/.cursor/mcp.json
{ "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}" } } } }
Zapisz plik. Cursor wczyta serwer i wyświetli go w Customize. Cursor rozwija ${env:NAME} w url i headers, więc klucz nigdy nie musi leżeć w pliku.
Opcjonalnie: instalacja jednym kliknięciem Wklej klucz Account API przypisany do Scope, aby dostać link instalacyjny, który otwiera Cursor z wstępnie wypełnionym serwerem. Wszystko dzieje się w przeglądarce; klucz nigdy nie jest wysyłany do unipile.com. Bez klucza link zainstaluje serwer z placeholderem, który podmienia się w Cursor.
Dodaj Unipile do Cursor
Weryfikacja

Sprawdzenie połączenia

Trzy testy: w edytorze, w CLI, a potem na czacie. Żaden nie dotyka podłączonego konta.
1W CustomizeOtwórz Customize w pasku bocznym: serwer unipile jest na liście, włączony, i pokazuje swój stan. Przełącznik wyłącza go bez usuwania wpisu.
2W Cursor CLICLI współdzieli konfigurację edytora: najpierw projekt, potem globalna.agent mcp list # lub /mcp list w sesji interaktywnej
3Na czacie, bez dotykania kontaWystarczy zapytać o coś, co wymaga tylko odczytu specyfikacji API. Jeśli agent odpowie prawdziwymi endpointami i parametrami, serwer jest podłączony.Korzystając z Unipile MCP, wypisz endpointy wyszukiwania osób na LinkedIn i ich wymagane parametry.
Prompty zamiast kodu klejącego

Prompt dla agenta

Trzy zadania integracyjne, a przy każdym dokładny prompt do wklejenia w Cursor, endpointy Unipile, które agent czyta i wywołuje, oraz to, co trafia do projektu. Ścieżki są pełne, względem bazowego URL API https://api.unipile.com, z kluczem przypisanym do Scope w nagłówku X-API-KEY każdego żądania.
Cursor · ats-appAplikacja Development
Dodaj wiadomości LinkedIn do mojego ATS: synchronizuj inbox każdego rekrutera i pozwól mu odpowiadać ze strony kandydata.
Wyszukiwanie endpointów"chats messages send"3 wyniki
Wykonaj zapytanieGET /v2/{account_id}/chats12 czatów
Utworzono linkedin/inbox-sync.ts (czaty i wiadomości zapisywane przy kandydacie metodą upsert, paginacja kursorem) oraz POST /candidates/:id/reply, który wywołuje endpoint wysyłki z ID konta, do którego należy czat. Synchronizacja uruchomiona w aplikacji Development: 12 czatów, 87 wiadomości.3 zmienione pliki · przetestowane w aplikacji Development

Wklej prompt, przejrzyj diff

Cursor czyta przez serwer kontrakty czatów i wiadomości, pisze w Państwa stacku zadanie synchronizacji i endpoint odpowiedzi, a pierwsze żądania wykonuje w aplikacji Development. WhatsApp, Instagram i Telegram używają tych samych endpointów czatów, więc drugi kanał to krótszy prompt niż pierwszy.
Endpointy używane przez agenta
GET/v2/{account_id}/chatsGET/v2/{account_id}/chats/{chat_id}/messagesPOST/v2/{account_id}/chats/{chat_id}/messages/send
Częsty błąd: Mieszanie ID. Wiadomość zawsze wysyła się z konta, do którego należy czat; trzeba trzymać account_id i chat_id razem od wywołania listy aż do wysyłki.
Zbuduj integrację z LinkedIn
Cursor · crm-appAplikacja Development
Zaimplementuj Hosted Auth Unipile w tej aplikacji React i Fastify, aby użytkownicy podłączali własne konto LinkedIn z poziomu Ustawień.
Odczyt endpointuPOST /v2/auth/linkschemat wczytany
Wykonaj zapytaniePOST /v2/auth/link201 · link
Dodano POST /api/accounts/connect w Fastify: tworzy link auth po stronie serwera i zwraca hostowany URL. Strona Settings w React otwiera go, a po powrocie zapisuje nowe account_id przy workspace. Sprawdzone w aplikacji Development z testowym kontem LinkedIn.4 zmienione pliki · przepływ połączenia przetestowany od początku do końca

Użytkownicy podłączają własne konta, aplikacja dostaje ID konta

Hosted Auth to strona, którą Unipile udostępnia użytkownikom, aby sami podłączyli LinkedIn, WhatsApp, Gmail, Outlook lub kalendarz. Agent podłącza tworzenie linku w backendzie, przekierowanie we frontendzie i zapis ID konta, którego wymaga każde kolejne żądanie.
Endpointy używane przez agenta
POST/v2/auth/linkPOST/v2/auth/intentGET/v2/accounts/{account_id}
Częsty błąd: Tworzenie linku auth w przeglądarce. Link tworzy się na serwerze, z własnym kluczem; frontend dostaje tylko hostowany URL.
Hosted Auth wdrożony przez agenta
Cursor · support-consoleAplikacja Development
Zasubskrybuj webhooki nowych wiadomości i zbuduj ujednolicony inbox dla LinkedIn, WhatsApp i e-maila: jedna lista wątków z kanałem jako etykietą.
Odczyt endpointuPOST /v2/webhooks/endpoints/schemat wczytany
Wykonaj zapytanieGET /v2/{account_id}/emails200 OK
Zarejestrowano endpoint webhooka dla zdarzeń wiadomości w aplikacji Development, dodano POST /webhooks/unipile zwracający od razu 200 i kolejkujący zdarzenie, model Thread mapujący czaty i wątki e-mail na jeden format oraz listę wątków z etykietami kanałów. Wysłano testową wiadomość: lista zaktualizowała się w mniej niż sekundę.6 zmienionych plików · 3 kanały na jednej liście

Czas rzeczywisty bez odpytywania, jedna lista dla wiadomości i e-maili

Czaty i e-maile pochodzą z dwóch rodzin endpointów, każda z jednym schematem. Agent czyta oba kontrakty, projektuje wspólny model, pisze synchronizację i odbiornik webhooków, a potem sprawdza log dostarczeń przez endpoint rozmów webhooków.
Endpointy używane przez agenta
POST/v2/webhooks/endpoints/GET/v2/{account_id}/chatsGET/v2/{account_id}/emailsGET/v2/webhooks/conversations/
Częsty błąd: Wykonywanie pracy wewnątrz handlera webhooka. Należy od razu potwierdzić odbiór kodem 2xx i przetworzyć zdarzenie asynchronicznie, inaczej dostarczenia przekroczą czas i będą ponawiane.
Zbuduj ujednolicony inbox z agentem
Od Development do produkcji

Najpierw testy w aplikacji Development

Dashboard Unipile oddziela aplikację Development od aplikacji Production. Cursor dostaje klucz przypisany do Scope z aplikacji Development i jedno lub dwa konta testowe podłączone przez Hosted Auth. Agent wykonuje prawdziwe żądania na tych kontach, w imieniu uwierzytelnionego użytkownika, który je podłączył, w granicach limitów każdego dostawcy, a konta użytkowników pozostają nietknięte aż do wdrożenia.
Sprawdzić przepływ połączenia od początku do końca: link auth tworzony po stronie serwera, ID konta zapisane przy użytkowniku.
Sprawdzić jeden odczyt i jeden zapis na funkcję: lista czatów, wysłanie wiadomości z konta testowego.
Sprawdzić dostarczenie webhooka oraz stan ponownego połączenia lub checkpointu przed przełączeniem klucza na Production.
crm-app · DevelopmentUżywana przez Cursor
Scopedev-tests · 2 konta
Kluczklucz Account API przypisany do Scope
KontaTestowe konto LinkedIn, testowa skrzynka Gmail
Webhooki1 endpoint · zdarzenia wiadomości
crm-app · ProductionNietknięta
Scopejeden na workspace
Kluczklucze przypisane do Scope, tylko w backendzie
Kontawłasne konta użytkowników, przez Hosted Auth
Rozwiązywanie problemów

Częste błędy i ich znaczenie

Komunikaty, które Cursor pokazuje, gdy wpis MCP jest nieprawidłowy, i rozwiązanie dla każdego z nich. Większość sprowadza się do pliku, JSON-a albo klucza.
No tools or prompts
Cursor wczytał wpis, ale nie dostał nic z serwera. RozwiązanieSprawdź edytowany plik (globalny ~/.cursor/mcp.json lub projektowy .cursor/mcp.json w katalogu głównym repozytorium), zwaliduj JSON (zwykle winny jest przecinek na końcu), a potem przeładuj serwer w Customize lub zrestartuj Cursor.
No server info found
Wpis istnieje, ale Cursor nie potrafi opisać serwera. RozwiązaniePole url musi mieć dokładnie wartość https://developer.unipile.com/mcp?branch=v2.0, jako wpis zdalny z polami url i headers, a nie command. Usuń wszelkie type: "stdio" pozostałe po innym serwerze.
Connection failed
URL odpowiada, ale nie jak serwer MCP. RozwiązanieLiterówka w hoście lub w ?branch=v2.0, albo proxy firmowe blokuje żądanie. Otwórz URL w przeglądarce: musi odpowiedzieć, a nie zwrócić 404.
401 Unauthorized przy żądaniach
Serwer jest połączony, ale wykonanie żądania kończy się błędem. RozwiązanieBrakuje klucza w headers, nazwa nagłówka to nie X-API-KEY, albo użyto klucza Service lub globalnego klucza Account zamiast klucza Account API przypisanego do Scope z aplikacji Development.
Konfiguracja projektu jest ignorowana
Cursor nadal używa wpisu globalnego albo żadnego. Rozwiązanie.cursor/mcp.json musi leżeć w katalogu głównym folderu otwartego w Cursor, a nie w podfolderze. Cursor czyta najpierw projekt, potem konfigurację globalną, potem katalogi nadrzędne.
Gdzie czytać logi
Każdy z tych przypadków zostawia ślad. RozwiązanieOtwórz panel Output (Cmd+Shift+U w macOS, Ctrl+Shift+U w Windows i Linux) i wybierz MCP Logs z listy: znajdziesz tam inicjalizację, żądania i błędy.
6000+ Firmy, które wprowadzają innowacje z Unipile
Zaufali nam liderzy branży
1 API
Usprawnij obsługę wszystkich głównych kanałów komunikacji
2 dni
Szybkie uruchomienie integracji przy minimalnej konfiguracji
30%
Mniej pracy i zasobów na utrzymanie

Wbudowane bezpieczeństwo i zgodność

Ochrona klasy enterprise dla danych i procesów Więcej o naszym bezpieczeństwie
SOC 2 Type II
SOC 2 Type II
Certyfikat
Niezależnie audytowane mechanizmy bezpieczeństwa, które zapewniają ochronę danych i ciągłość działania.
GDPR
GDPR
Zgodność
Pełna zgodność z europejskimi przepisami o ochronie danych osobowych.
99.9%
Dostępności platformy w ciągu ostatnich 24 miesięcy
24/7
Globalne wsparcie i wydajne API

FAQ: serwer MCP w Cursor

Pytania, które ludzie naprawdę wpisują: gdzie leży mcp.json, globalnie czy w projekcie, zdalne serwery i nagłówki, co sprawdzić, gdy nic się nie pojawia, klucze, instalacja jednym kliknięciem i CLI.
W dwóch miejscach. ~/.cursor/mcp.json w folderze domowym to konfiguracja globalna, dostępna w każdym projekcie. .cursor/mcp.json w katalogu głównym folderu otwartego w Cursor to konfiguracja projektu. Cursor czyta najpierw plik projektu, potem globalny, a potem katalogi nadrzędne. Oba pliki zawierają blok mcpServers o tej samej strukturze.
Globalnie, gdy buduje się kilka integracji Unipile na jednej maszynie i z jedną aplikacją Development. Per projekt, gdy każde repozytorium potrzebuje własnego klucza przypisanego do Scope, co jest właściwym wyborem, gdy integracje Development i Production żyją w różnych repozytoriach. W obu przypadkach klucz to klucz Account API przypisany do Scope, nigdy klucz Service ani globalny.
Tak. Zdalny wpis w mcp.json przyjmuje pole url oraz obiekt headers i Cursor rozwija w obu zmienne ${env:NAME} bez dodatkowej konfiguracji. Serwer Unipile to dokładnie taki przypadek: streamable HTTP pod adresem https://developer.unipile.com/mcp?branch=v2.0 i nagłówek X-API-KEY do uwierzytelnienia. Bez npx, bez lokalnego procesu, bez wersji Node do utrzymywania.
W tej kolejności: edytowany plik (globalny lub projektowy, w katalogu głównym repozytorium), poprawność JSON-a, przeładowanie serwera w Customize lub restart Cursor, a potem MCP Logs w panelu Output (Cmd+Shift+U, wybierz MCP Logs). Jeśli serwer się łączy, ale żądania kończą się błędem 401, w nagłówku brakuje klucza albo nie jest to klucz Account API przypisany do Scope.
Serwer odpowiada bez klucza, gdy agent tylko czyta specyfikację API. Aby wykonywać prawdziwe żądania, należy utworzyć Scope w aplikacji Development, przypisać konta testowe i wygenerować dla tego Scope klucz Account API. Klientowi MCP nigdy nie należy dawać klucza Service ani globalnego klucza Account.
Tak. Link instalacyjny na tej stronie koduje konfigurację serwera; otwiera Cursor z wstępnie wypełnionym wpisem unipile, a placeholder zastępuje się własnym kluczem przypisanym do Scope. Opcjonalny generator powyżej buduje ten sam link z kluczem już w środku, w całości w przeglądarce.
Tak. CLI współdzieli konfigurację edytora: najpierw projekt, potem globalna. agent mcp list pokazuje skonfigurowane serwery i ich stan, a /mcp list robi to samo w sesji interaktywnej. Agent korzysta potem z serwera Unipile, gdy wymaga tego zadanie.