Používejte Cold Leads z Cursoru, Claude Desktop a Windsurfu přes MCP
- Pro koho
- Vývojáři, kteří používají AI asistenty v Cursoru, Claude Desktop nebo Windsurfu
- Problém
- Kopírování adres mezi asistentem, CRM a ověřovacím nástrojem je pomalé a náchylné k chybám a asistent, kterého požádáte o kontakty, si nějaké klidně vymyslí.
- Řešení
- Po připojení může asistent spravovat vlastní kontakty, importovat strukturované řádky, číst synchronizované konverzace, spravovat šablony a koncepty kampaní a připravit webový formulář. Odesílání vyžaduje výslovné potvrzení uživatele a podléhá ochraně souhlasu, odhlášení, DNC a limitům Cold Leads.
- Co získáte
- Asistent propojený s vašimi kontakty, e-mailovou schránkou a návrhy kampaní přes MCP nebo Node SDK.
Adresy, identifikátory a výsledky v příkladech jsou ilustrativní. Doména example.com je vyhrazená pro dokumentaci, takže skutečná kontrola těchto adres vrátí invalid.
Ukázky kódu jsou ve všech jazycích stejné, komentáře v nich jsou anglicky.
Co server nabízí
| Nástroj | Co dělá | Cena |
|---|---|---|
| search_leads | Kontakty na doméně firmy (včetně subdomén), které už máte v CRM Cold Leads, s volitelným klíčovým slovem role, které se porovnává se jménem, lokální částí e-mailu, štítky, poznámkami a typem kontaktu. Vrací e-mail, jméno, firmu, telefon, fázi, štítky, ověření a do_not_contact. | Zdarma |
| verify_email | Kontrola syntaxe, jednorázových domén, rolových schránek a MX a navíc SMTP test schránky a accept-all, pokud Cold Leads dokáže otevřít SMTP spojení s poštovním serverem příjemce. Vrací validity, score, reasons, catch_all, disposable a role_account. | 1 kredit |
| CRM, inbox, šablony, kampaně, workspace a webové nástroje | list_contacts/import_contacts/update_contact spravují vaše kontakty (import až 100 strukturovaných řádků, deduplikace a kontrola DNC; CSV/XLSX parsuje asistent). get_conversation čte synchronizované zprávy; send_contact_message odešle jednu zprávu až po schválení. Šablony a koncepty kampaní lze spravovat a spouštět až po lidské kontrole a potvrzení. Webové formuláře ukládají inquiry, nikoli automatický souhlas s cold outreach. | Zdarma; odesílání má limity účtu |
| provision_account_and_get_payment_link, check_provisioning_status | Onboarding bez klíče: platební odkaz Stripe pro vlastníka účtu (člověka), poté jednou API klíč. Jen v lokálním serveru. | Bez kreditů |
Cold Leads nemá externí databázi lidí ani firem. MCP pracuje jen s připojeným pracovním prostorem. Import souborů vyžaduje strukturované řádky a nic neodesílá. Webové poptávky mají consent inquiry; ověření adresy samo o sobě neznamená souhlas s kontaktováním. Hromadné kampaně zůstávají konceptem, dokud je člověk po kontrole nespustí.
- Lokální server (stdio): npx -y --allow-git=root github:anttka4cz/mcp-server-coldleads s COLDLEADS_API_KEY v prostředí. Na npm publikovaný není; npx ho nainstaluje z GitHubu. Potřebuje Node.js 20 nebo novější. npm 12 instalace z gitu blokuje, pokud je nepovolíte, což pro tento příkaz zajistí --allow-git=root; npm 10 tento přepínač také přijme.
- Hostovaný endpoint: https://coldleads.app/api/mcp, MCP Streamable HTTP. Použijte tajný API klíč nebo připojte ChatGPT přes OAuth. Nástroje spravují kontakty, konverzace, šablony a koncepty kampaní, umožňují potvrzené odeslání, spouštění schválených kampaní, informace o účtu, webové formuláře, vyhledávání a ověřování adres.
- Klíč je tajný klíč (sk_…) z Nastavení → API klíče. API, a s ním i MCP, je součástí tarifu Business.
Cursor
Server zapište do ~/.cursor/mcp.json, chcete-li ho používat ve všech projektech, nebo do .cursor/mcp.json uvnitř jednoho projektu. Lokální server:
{
"mcpServers": {
"coldleads": {
"command": "npx",
"args": ["-y", "--allow-git=root", "github:anttka4cz/mcp-server-coldleads"],
"env": { "COLDLEADS_API_KEY": "sk_your_secret_key" }
}
}
}Cursor se umí připojit i ke vzdáleným serverům s vlastními hlavičkami, takže hostovaný endpoint funguje bez Node.js. Cursor v url a headers dosazuje ${env:NAME}, takže klíč nemusí být v souboru:
{
"mcpServers": {
"coldleads": {
"url": "https://coldleads.app/api/mcp",
"headers": { "Authorization": "Bearer ${env:COLDLEADS_API_KEY}" }
}
}
}Claude Desktop
- V systémovém řádku nabídek otevřete nabídku Claude (ne nastavení v okně chatu), zvolte Settings…, otevřete záložku Developer a klikněte na Edit Config.
- Soubor je na macOS ~/Library/Application Support/Claude/claude_desktop_config.json a na Windows %APPDATA%\Claude\claude_desktop_config.json. Přidejte blok níže a uložte.
- Claude Desktop úplně ukončete a spusťte znovu; MCP servery načítá jen při startu.
{
"mcpServers": {
"coldleads": {
"command": "npx",
"args": ["-y", "--allow-git=root", "github:anttka4cz/mcp-server-coldleads"],
"env": { "COLDLEADS_API_KEY": "sk_your_secret_key" }
}
}
}Claude Desktop z tohoto souboru spouští lokální servery. Vzdálené servery se místo toho přidávají jako konektory v nastavení aplikace a posílání hlavičky s API klíčem z konektoru je beta, kterou mají jen některé organizace, takže lokální server je cesta, která funguje každému.
Windsurf (Devin Desktop) a Claude Code
Windsurf se 2. června 2026 změnil na Devin Desktop. V panelu Cascade otevřete vpravo nahoře nabídku … (Actions), v sekci MCPs klikněte na Open MCP config file, přidejte stejný blok mcpServers jako u Cursoru (lokální server) a uložte. Dokumentace Devinu pro tento soubor uvádí ~/.config/devin/mcp_config.json (na Windows %APPDATA%\devin\mcp_config.json); verze Windsurfu před přejmenováním čtou ~/.codeium/windsurf/mcp_config.json. Vzdálené servery se zadávají přes url (nebo serverUrl) s headers:
{
"mcpServers": {
"coldleads": {
"url": "https://coldleads.app/api/mcp",
"headers": { "Authorization": "Bearer sk_your_secret_key" }
}
}
}V Claude Code přidáte kteroukoli variantu z terminálu:
# local stdio server (Node.js 20 or newer)
claude mcp add --env COLDLEADS_API_KEY=sk_your_secret_key --transport stdio coldleads -- npx -y --allow-git=root github:anttka4cz/mcp-server-coldleads
# or the hosted endpoint
claude mcp add --transport http coldleads https://coldleads.app/api/mcp --header "Authorization: Bearer sk_your_secret_key"Prompty, které odpovídají skutečným nástrojům
- Najdi v mém CRM Cold Leads kontakty na example.com se štítkem cto a ověř jejich adresy. (search_leads s doménou example.com a rolí cto, pak verify_email pro každý lead bez do_not_contact: 1 kredit za adresu.)
- Které z mých kontaktů v Cold Leads na example.com jsou označené do_not_contact? (Jen search_leads, zdarma.)
- Ověř anna@example.com a řekni mi, jestli se kontrolovala i samotná schránka. (verify_email; odpověď je v reasons: ok znamená, že poštovní server schránku přijal, smtp_unreachable, že se nekontrolovala.)
- Zkontroluj těchto pět adres a podle kódů důvodu je roztřiď na odeslat, zkontrolovat a vyřadit. (verify_email pětkrát, 5 kreditů.)
- S lokálním serverem a zatím bez klíče: nastav Cold Leads pro owner@example.com. (provision_account_and_get_payment_link vrátí platební odkaz, o kterém rozhodnete vy, člověk.)
Klíčové slovo role se porovnává se jménem, lokální částí e-mailu, štítky, poznámkami a typem kontaktu; pole pro pracovní pozici Cold Leads nemá. Chcete-li, aby hledání podle role fungovalo, dejte kontaktům štítek s jejich rolí (cto, ceo, sales). Výsledky nástrojů přicházejí jako kompaktní JSON:
{
"status": "success",
"domain": "example.com",
"count": 1,
"source": "crm",
"leads": [
{
"email": "jan.novak@example.com",
"name": "Jan Novák",
"company": "Acme",
"stage": "lead",
"tags": ["cto"],
"verification": { "status": "valid", "score": 75 },
"do_not_contact": false
}
]
}{
"status": "success",
"email": "jan.novak@example.com",
"validity": "valid",
"catch_all": null,
"score": 75,
"reasons": ["smtp_unreachable"],
"disposable": false,
"role_account": false
}Vyzkoušejte hostovaný endpoint z terminálu
Endpoint je bezstavový, takže jediný POST funguje i bez úvodního handshaku initialize. Je to zároveň rychlý způsob, jak ověřit, že je klíč platný a patří k účtu s tarifem Business.
# list the tools of the hosted endpoint (free; counts toward 120 requests per minute)
curl -s https://coldleads.app/api/mcp \
-H "Authorization: Bearer $COLDLEADS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
# call verify_email once (1 credit)
curl -s https://coldleads.app/api/mcp \
-H "Authorization: Bearer $COLDLEADS_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"verify_email","arguments":{"email":"anna@example.com"}}}'Limity a náklady
- search_leads je zdarma a vrací až 50 kontaktů na volání (výchozí je 10).
- verify_email stojí 1 kredit za volání, i u výsledků z 30denní cache. Odpoví přibližně do 5 sekund: hostovaný endpoint dává každé kontrole časový limit 4,5 sekundy a lokální server žádá o 4 sekundy. Když limit vyprší, výsledek je risky s důvodem timeout a do cache se neukládá; pro delší kontrolu přijímá POST /api/v1/verify timeout_ms až 30 000.
- Každý požadavek na hostovaný endpoint, včetně initialize a tools/list, se započítává do limitu klíče 120 požadavků za minutu. Lokální server volá API jen při volání nástrojů.
- Tarif Business stojí $99 měsíčně a zahrnuje 10 000 kreditů měsíčně; další balíčky po 1 000 kreditech stojí $5.
Otázky
Najde asistent nové lidi ve firmě?
Ne. Cold Leads nemá databázi lidí ani firem. search_leads pokrývá jen kontakty ve vašem vlastním pracovním prostoru Cold Leads. Pro jméno, které už znáte, vrátí POST /api/v1/find nejpravděpodobnější adresu, označenou jako pattern, pokud schránku nepotvrdil poštovní server.
Lokální server, nebo hostovaný endpoint?
Lokální server funguje v každém klientovi, který umí spustit příkaz, a zvládne i onboarding bez klíče. Hostovaný endpoint nepotřebuje Node.js, ale funguje jen v klientech, které umí poslat vlastní hlavičku Authorization. Oba provádějí stejné kontroly.
Proč je catch_all null?
catch_all je známý, jen když poštovní server na test odpověděl, což poznáte podle posledního důvodu ok, catch_all nebo mailbox_missing. Jinak hostovaný endpoint i lokální server vracejí null: accept-all se netestoval, takže co se zkontrolovalo, zjistíte z reasons.
Kam patří můj klíč?
Do bloku env nebo do hlavičky ve vaší lokální konfiguraci MCP. Server ho posílá na coldleads.app jako Authorization: Bearer. Nevkládejte ho do chatu, a pokud unikne, přegenerujte ho v Nastavení → API klíče.