Cold Leads

Працюйте з Cold Leads у Cursor, Claude Desktop і Windsurf через MCP

Для кого
Розробники, які користуються AI-асистентами в Cursor, Claude Desktop або Windsurf
Проблема
Копіювати адреси між асистентом, CRM та інструментом перевірки довго, і легко помилитися, а асистент, якого просять знайти контакти, охоче вигадає їх сам.
Рішення
Підключений асистент керує вашими контактами, імпортує структуровані рядки, читає синхронізовані розмови, редагує шаблони й чернетки кампаній та створює веб-форми. Надсилання потребує явного підтвердження користувача та підлягає перевіркам згоди, відписки, DNC і лімітів Cold Leads.
Що ви отримаєте
Асистент, підключений до ваших контактів, пошти й чернеток кампаній через MCP або Node SDK.

Адреси, ідентифікатори та результати в прикладах ілюстративні. Домен example.com зарезервовано для документації, тож реальна перевірка цих адрес поверне invalid.

Приклади коду однакові для всіх мов, коментарі в них — англійською.

Що пропонує сервер

ІнструментЩо робитьВартість
search_leadsКонтакти, які вже є у вашій CRM Cold Leads, на домені компанії (включно з піддоменами), з необов’язковим ключовим словом ролі, яке зіставляється з іменем, локальною частиною e-mail, тегами, нотатками й типом контакту. Повертає e-mail, ім’я, компанію, телефон, стадію, теги, верифікацію та do_not_contact.Безкоштовно
verify_emailПеревірка синтаксису, одноразових доменів, рольових скриньок і MX, а також SMTP-перевірка скриньки й accept-all, коли Cold Leads може відкрити SMTP-з’єднання з поштовим сервером одержувача. Повертає validity, score, reasons, catch_all, disposable і role_account.1 кредит
CRM, inbox, шаблони, кампанії та веб-інструментиІмпортуйте й оновлюйте контакти (до 100 структурованих рядків за виклик; CSV/XLSX спершу розбирає асистент). Переглядайте синхронізовані розмови, керуйте шаблонами й чернетками; окремий лист та кампанія надсилаються лише після підтвердження. Веб-заявки мають inquiry, а не автоматичну згоду на холодний outreach.Безкоштовно; діють ліміти надсилання
provision_account_and_get_payment_link, check_provisioning_statusПідключення без ключа: посилання на оплату в Stripe для власника-людини, а потім API-ключ, виданий один раз. Лише в локальному сервері.Без кредитів

Cold Leads не має сторонньої бази людей чи компаній. MCP працює лише з підключеним робочим простором. Імпортовані файли мають бути розібрані на структуровані рядки, імпорт нічого не надсилає. Веб-заявки мають статус inquiry; верифікація не є згодою. Масові кампанії залишаються чернетками, доки людина їх не перевірить і не запустить.

  • Локальний сервер (stdio): npx -y --allow-git=root github:anttka4cz/mcp-server-coldleads зі змінною COLDLEADS_API_KEY в оточенні. Його не опубліковано в npm; npx встановлює його з GitHub. Потрібен Node.js 20 або новіший. npm 12 блокує встановлення з git, якщо ви їх не дозволите, — саме це й робить --allow-git=root для цієї команди; npm 10 цей прапорець теж приймає.
  • Хостований ендпоінт: https://coldleads.app/api/mcp, MCP Streamable HTTP. Використовуйте секретний API-ключ або OAuth ChatGPT. Інструменти керують контактами, розмовами, шаблонами, чернетками кампаній, дозволеною відправкою, веб-формами, пошуком і верифікацією.
  • Ключ — це секретний ключ (sk_…) з Налаштування → API-ключі. API, а разом з ним і MCP, входить у тариф Business.

Cursor

Додайте сервер у ~/.cursor/mcp.json, щоб користуватися ним у всіх проєктах, або в .cursor/mcp.json усередині одного проєкту. Локальний сервер:

~/.cursor/mcp.json (локальний сервер)
{
  "mcpServers": {
    "coldleads": {
      "command": "npx",
      "args": ["-y", "--allow-git=root", "github:anttka4cz/mcp-server-coldleads"],
      "env": { "COLDLEADS_API_KEY": "sk_your_secret_key" }
    }
  }
}

Cursor також підключається до віддалених серверів із власними заголовками, тож хостований ендпоінт працює без Node.js. Cursor підставляє ${env:NAME} в url і headers, тому ключ не потрапляє у файл:

~/.cursor/mcp.json (хостований ендпоінт)
{
  "mcpServers": {
    "coldleads": {
      "url": "https://coldleads.app/api/mcp",
      "headers": { "Authorization": "Bearer ${env:COLDLEADS_API_KEY}" }
    }
  }
}

Claude Desktop

  1. Відкрийте меню Claude в системному рядку меню (а не налаштування всередині вікна чату), виберіть Settings…, відкрийте вкладку Developer і натисніть Edit Config.
  2. Файл розташований у ~/Library/Application Support/Claude/claude_desktop_config.json на macOS і в %APPDATA%\Claude\claude_desktop_config.json на Windows. Додайте блок нижче й збережіть.
  3. Повністю закрийте Claude Desktop і запустіть знову: MCP-сервери він завантажує лише під час запуску.
claude_desktop_config.json
{
  "mcpServers": {
    "coldleads": {
      "command": "npx",
      "args": ["-y", "--allow-git=root", "github:anttka4cz/mcp-server-coldleads"],
      "env": { "COLDLEADS_API_KEY": "sk_your_secret_key" }
    }
  }
}

Локальні сервери Claude Desktop запускає з цього файлу. Віддалені сервери натомість додаються як конектори в налаштуваннях застосунку, а надсилання заголовка з API-ключем із конектора — бета-функція, доступна лише деяким організаціям, тож локальний сервер — це шлях, який працює для всіх.

Windsurf (Devin Desktop) і Claude Code

2 червня 2026 року Windsurf став Devin Desktop. На панелі Cascade відкрийте меню … (Actions) у правому верхньому куті й натисніть Open MCP config file у розділі MCPs, потім додайте той самий блок mcpServers, що й для Cursor (локальний сервер), і збережіть. Документація Devin вказує для цього файлу шлях ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json на Windows); версії Windsurf до перейменування читають ~/.codeium/windsurf/mcp_config.json. Віддалені сервери задаються через url (або serverUrl) із headers:

mcp_config.json (хостований ендпоінт)
{
  "mcpServers": {
    "coldleads": {
      "url": "https://coldleads.app/api/mcp",
      "headers": { "Authorization": "Bearer sk_your_secret_key" }
    }
  }
}

У Claude Code додайте будь-який із двох варіантів із термінала:

bash
# 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"

Промпти, що відповідають справжнім інструментам

  • Знайди в моїй CRM Cold Leads контакти на example.com з тегом cto і перевір їхні адреси. (search_leads з domain example.com і role cto, потім verify_email для кожного ліда без do_not_contact: 1 кредит за адресу.)
  • Які з моїх контактів Cold Leads на example.com позначені do_not_contact? (Лише search_leads, безкоштовно.)
  • Перевір anna@example.com і скажи, чи перевірялася сама скринька. (verify_email; відповідь — у reasons: ok означає, що поштовий сервер прийняв скриньку, smtp_unreachable — що її не перевіряли.)
  • Перевір ці п’ять адрес і розсортуй їх за кодами причин на «надсилати», «переглянути» і «відкинути». (verify_email п’ять разів, 5 кредитів.)
  • З локальним сервером і поки без ключа: підключи Cold Leads для owner@example.com. (provision_account_and_get_payment_link повертає посилання на оплату, щодо якого рішення ухвалюєте ви, людина.)

Ключове слово ролі зіставляється з іменем, локальною частиною e-mail, тегами, нотатками й типом контакту; поля посади в Cold Leads немає. Позначайте контакти тегами з їхньою роллю (cto, ceo, sales), якщо хочете, щоб пошук за роллю працював. Результати інструментів повертаються як компактний JSON:

Результат search_leads
{
  "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
    }
  ]
}
Результат verify_email (поштовий сервер недосяжний через SMTP)
{
  "status": "success",
  "email": "jan.novak@example.com",
  "validity": "valid",
  "catch_all": null,
  "score": 75,
  "reasons": ["smtp_unreachable"],
  "disposable": false,
  "role_account": false
}

Перевірка хостованого ендпоінта з термінала

Ендпоінт не зберігає стану, тож один POST працює без рукостискання initialize. Це також швидкий спосіб переконатися, що ключ дійсний і належить акаунту Business.

bash
# 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"}}}'

Ліміти та вартість

  • search_leads безкоштовний і повертає до 50 контактів за виклик (за замовчуванням 10).
  • verify_email коштує 1 кредит за виклик, зокрема й для результатів із 30-денного кешу. Відповідь приходить приблизно за 5 секунд: хостований ендпоінт виділяє кожній перевірці 4,5 секунди, а локальний сервер запитує 4 секунди. Коли цей час вичерпано, результат — risky з причиною timeout, і він не кешується; для довшої перевірки POST /api/v1/verify приймає timeout_ms до 30 000.
  • Кожен запит до хостованого ендпоінта, зокрема initialize і tools/list, зараховується до ліміту ключа в 120 запитів на хвилину. Локальний сервер звертається до API лише під час викликів інструментів.
  • Тариф Business коштує $99 на місяць і містить 10 000 кредитів на місяць; додаткові пакети по 1 000 кредитів коштують $5.

Питання

Чи може асистент знайти нових людей у компанії?

Ні. Cold Leads не має бази людей чи компаній. search_leads охоплює лише контакти у вашому власному робочому просторі Cold Leads. Для імені, яке ви вже знаєте, POST /api/v1/find повертає найімовірнішу адресу з позначкою pattern, якщо поштовий сервер не підтвердив скриньку.

Локальний сервер чи хостований ендпоінт?

Локальний сервер працює в кожному клієнті, який уміє запускати команду, і також підтримує підключення без ключа. Хостованому ендпоінту не потрібен Node.js, але він працює лише в клієнтах, які можуть надсилати власний заголовок Authorization. Обидва виконують ті самі перевірки.

Чому catch_all дорівнює null?

catch_all відомий лише тоді, коли поштовий сервер відповів на перевірку, — це видно з останньої причини ok, catch_all або mailbox_missing. Інакше і хостований ендпоінт, і локальний сервер повертають null: accept-all не перевірявся, тож дивіться в reasons, що саме було перевірено.

Куди потрапляє мій ключ?

У блок env або в заголовок вашої локальної конфігурації MCP. Сервер надсилає його на coldleads.app як Authorization: Bearer. Не вставляйте ключ у чат, а якщо він витече, перевипустіть його в Налаштування → API-ключі.