1. Главная
  2. Документация
  3. MCP

Подключение ИИ-ассистентов по MCP

Claude, ChatGPT, Cursor и другие ИИ-ассистенты: адрес сервера, вход, разрешения и инструменты.

Linkodium CRM работает как MCP-сервер: Claude, ChatGPT, Cursor и другие ИИ-ассистенты подключаются к нему и работают с заявками, чатами и почтой с вашими правами. Подключить ассистента может любой сотрудник, которому разрешено выпускать себе API-ключи. Коротко о возможностях: ИИ-ассистенты в CRM.

Содержание

  1. Что такое MCP
  2. Адрес сервера и вход
  3. Claude
  4. ChatGPT
  5. Cursor
  6. Другие клиенты
  7. Разрешения
  8. Инструменты
  9. Безопасность
  10. Ограничения
  11. Вопросы

1. Что такое MCP

MCP (Model Context Protocol) это открытый протокол, по которому ИИ-приложения подключаются к внешним сервисам. Linkodium CRM работает как MCP-сервер: ассистент получает набор инструментов (поиск заявок, чтение переписки, ответ клиенту и другие) и вызывает их от имени сотрудника.

Ассистент видит только то, что видит сотрудник, и не может больше, чем он: те же заявки, чаты по его режиму доступа и только ящики почты, где он участник. Каждое изменение заявки видно в её ленте с пометкой «через MCP».

2. Адрес сервера и вход

Адрес MCP-сервера:

https://crm.linkodium.com/api/v1/mcp

Его же можно скопировать в CRM: «Профиль», блок «ИИ-ассистенты (MCP)».

  • Вход через OAuth. Приложение само откроет страницу CRM, где вы входите по коду, выбираете компанию и разрешения. Ключ копировать не нужно. Так подключаются claude.ai, Claude Desktop, Claude Code, ChatGPT и Cursor.
  • Вход по API-ключу. Для клиентов без OAuth. Выпустите ключ в профиле (блок «API-ключи») с нужными областями и передайте его в заголовке Authorization: Bearer crm_.... Подходит только ключ сотрудника: ключ компании, выпущенный до появления ключей сотрудников, MCP не принимает.
  • Подключить можно в компании, где у вас есть право «Выпускать себе API-ключи в профиле». Если его нет, попросите администратора включить право в разделе «Права доступа».

Что происходит при входе через OAuth:

  1. Приложение открывает в браузере страницу «Подключение ИИ-ассистента». Если вы не вошли в CRM, сначала войдите по коду из письма.
  2. Проверьте название приложения и адрес, куда вы вернётесь после решения. Если адрес вам незнаком или подключение начинали не вы, нажмите «Отказать».
  3. Выберите компанию: ассистент будет работать только в ней и только с вашими правами в ней.
  4. Отметьте, что разрешить. По умолчанию включено только чтение заявок, чатов и почты.
  5. Нажмите «Разрешить»: браузер вернёт вас в приложение.

Подключение работает как API-ключ «MCP: название приложения». Его видно в профиле в блоке «ИИ-ассистенты (MCP)» и в списке ключей компании у администратора. Повторное подключение того же приложения в той же компании использует тот же ключ, новые разрешения действуют сразу.

3. Claude

claude.ai и Claude Desktop

  1. Откройте Настройки (Settings), раздел Коннекторы (Connectors).
  2. Нажмите «Добавить свой коннектор» (Add custom connector).
  3. Название: Linkodium CRM, адрес: https://crm.linkodium.com/api/v1/mcp.
  4. Нажмите «Подключить» (Connect): откроется страница CRM. Войдите, выберите компанию и разрешения, нажмите «Разрешить».
  5. В новом чате включите коннектор в меню инструментов.

Свои коннекторы доступны на тарифах Claude, где их разрешает Anthropic; в организации их может включать администратор. Коннектор, добавленный на claude.ai, появляется и в Claude Desktop.

Claude Code

claude mcp add --transport http linkodium-crm https://crm.linkodium.com/api/v1/mcp

Затем в Claude Code выполните /mcp и выберите linkodium-crm, чтобы войти через браузер.

С API-ключом вместо входа через браузер:

claude mcp add --transport http linkodium-crm https://crm.linkodium.com/api/v1/mcp --header "Authorization: Bearer crm_ваш_ключ"

4. ChatGPT

  1. В ChatGPT откройте Настройки, раздел «Приложения и коннекторы» (Apps & Connectors), в «Дополнительно» включите режим разработчика (Developer mode).
  2. Нажмите «Создать» (Create), укажите название Linkodium CRM и адрес https://crm.linkodium.com/api/v1/mcp, способ входа OAuth.
  3. Подтвердите вход на странице CRM.
  4. В чате выберите Linkodium CRM в списке инструментов.

Режим разработчика доступен не на всех тарифах ChatGPT; названия пунктов меню могут отличаться в новых версиях.

5. Cursor

Добавьте сервер в файл ~/.cursor/mcp.json (для всех проектов) или .cursor/mcp.json в папке проекта:

{
  "mcpServers": {
    "linkodium-crm": {
      "url": "https://crm.linkodium.com/api/v1/mcp"
    }
  }
}

Cursor предложит войти через браузер.

Вариант с API-ключом:

{
  "mcpServers": {
    "linkodium-crm": {
      "url": "https://crm.linkodium.com/api/v1/mcp",
      "headers": { "Authorization": "Bearer crm_ваш_ключ" }
    }
  }
}

6. Другие клиенты

  • Транспорт Streamable HTTP, один POST на сообщение, ответ JSON, без потока событий. Сессий нет: заголовок Mcp-Session-Id сервер не выдаёт. GET и DELETE отвечают 405.
  • Вход: OAuth 2.1 с динамической регистрацией клиента и PKCE (метаданные по адресу https://crm.linkodium.com/.well-known/oauth-protected-resource) или заголовок Authorization: Bearer с API-ключом сотрудника. Без входа сервер отвечает 401 с заголовком WWW-Authenticate, где указан адрес метаданных.
  • Редакции протокола: 2025-11-25, 2025-06-18, 2025-03-26. На неизвестную редакцию в initialize сервер отвечает новейшей.
  • Запросы из браузера с чужим заголовком Origin сервер отклоняет (защита от подмены адреса): MCP Inspector и похожие отладчики подключайте в режиме прокси или из командной строки, а не прямо из вкладки браузера.
  • Пакетные запросы JSON-RPC принимаются только в редакции 2025-03-26.

Пример: initialize и список инструментов с API-ключом.

curl -s -X POST https://crm.linkodium.com/api/v1/mcp \
  -H "Authorization: Bearer $CRM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'

curl -s -X POST https://crm.linkodium.com/api/v1/mcp \
  -H "Authorization: Bearer $CRM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Вызов инструмента:

curl -s -X POST https://crm.linkodium.com/api/v1/mcp \
  -H "Authorization: Bearer $CRM_API_KEY" \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"search_leads","arguments":{"search":"Иванов","limit":5}}}'

В ответе result.structuredContent содержит данные, а result.content[0].text те же данные текстом. Поле untrusted перечисляет пути к текстам, которые написали клиенты и посторонние люди. Ошибка прав, проверки аргументов или лимита приходит результатом с isError: true и кодом в structuredContent.error.code (коды те же, что в API), чтобы ассистент увидел причину и исправил вызов.

7. Разрешения

При входе через OAuth разрешения выбираются галками на странице согласия. При входе по ключу действуют области ключа. Ассистент видит только инструменты, которые открывают выбранные разрешения.

Галка на странице согласияОбласть ключаКакие инструменты открывает
«Чтение заявок, ленты событий и справочников» (включена)leads:readget_reference, search_leads, get_lead, get_lead_events, leads_summary
«Чтение чатов с клиентами» (включена)chats:readlist_chats, get_chat_messages
«Чтение почты ваших ящиков» (включена)mail:readlist_mailboxes, search_mail, get_mail_thread
«Создание и изменение заявок, комментарии»leads:write (включает leads:create)create_lead, update_lead, set_lead_status, add_lead_comment, archive_lead, merge_leads
«Ответы клиентам в чатах»chats:writesend_chat_message, dismiss_chat_awaiting, link_chat_to_lead
«Отправка писем клиентам»mail:sendsend_email, link_mail_thread_to_lead; вместе с созданием заявок create_lead_from_mail. Новое письмо по заявке требует ещё чтения заявок
«Расшифровка записей звонков»calls:transcriberequest_call_transcript
«Просмотр сотрудников и каналов компании» (только администратору)company:readlist_team, get_channels_status

whoami доступен всегда. Прочие области API (настройки компании, сотрудники, ключи, интеграции, профиль, удаление) подключение через OAuth не получает никогда, а инструментов для них нет и при входе по ключу.

8. Инструменты

ИнструментЧто делаетОбластьМеняет данныеУходит клиенту
whoamiКто подключён: сотрудник, роль, компания и её часовой пояс, права и области подключениялюбаянетнет
get_referenceСправочники: статусы заявок, сотрудники для назначения ответственными, услугиleads:read, leads:create или leads:writeнетнет
search_leadsПоиск заявок: статусы, ответственный, период, текст, архивleads:readнетнет
get_leadКарточка заявки: контакты, статус, ответственный, источник и меткиleads:readнетнет
get_lead_eventsЛента заявки: комментарии, смена статуса и полей, звонки с расшифровками, чаты и письмаleads:readнетнет
leads_summaryСводка как на дашборде: всего, сегодня, за месяц, конверсия, по статусам и источникамleads:readнетнет
create_leadСоздать заявку; повторное обращение подшивается к заявке клиентаleads:createданет
update_leadИзменить поля заявки и ответственного (нужна version из get_lead)leads:writeданет
set_lead_statusСменить статус; для провала нужна причина отказаleads:writeданет
add_lead_commentКомментарий в ленте заявки от имени сотрудника; клиент его не видитleads:writeданет
archive_leadОтправить заявку в архив или вернуть из архиваleads:writeданет
merge_leadsОбъединить дубли: сначала предпросмотр, само объединение только с вашего согласияleads:writeданет
request_call_transcriptПоставить запись звонка на расшифровкуcalls:transcribeданет
list_chatsПереписки в Telegram, MAX и чате на сайте: все, мои, ждут ответа, поискchats:readнетнет
get_chat_messagesШапка переписки и сообщенияchats:readнетнет
send_chat_messageОтветить клиенту в его мессенджер или чат на сайтеchats:writeдада
dismiss_chat_awaitingСнять отметку «Ждёт ответа» без ответа клиентуchats:writeданет
link_chat_to_leadПривязать переписку к другой заявке того же клиентаchats:writeданет
list_mailboxesЯщики, где вы участник: адрес, состояние, непрочитанныеmail:readнетнет
search_mailПоиск переписки в почте: ящик, входящие или отправленные, тема, адрес, заявкаmail:readнетнет
get_mail_threadПисьма треда с текстом, заявки тредаmail:readнетнет
send_emailОтвет отправителю письма или новое письмо клиенту заявкиmail:sendдада
link_mail_thread_to_leadПривязать переписку к заявке или отвязатьmail:sendданет
create_lead_from_mailСоздать заявку из письма и привязать к ней перепискуleads:create и mail:sendданет
list_teamТолько администратору: сотрудники с ролями и статусом, приглашенияcompany:readнетнет
get_channels_statusТолько администратору: состояние ботов Telegram и MAX и виджета на сайтеcompany:readнетнет

Инструменты, которые меняют данные или отправляют сообщение клиенту, помечены для приложения соответствующими признаками, и Claude, ChatGPT и Cursor спрашивают ваше подтверждение перед их вызовом. Если в приложении разрешить такой инструмент «всегда», оно перестанет спрашивать: для ответов клиентам и писем так делать не стоит. Инструменты чтения ничего не меняют и не ставят отметки «прочитано».

9. Безопасность

  • Чтение ничего не меняет: ни один инструмент чтения не пишет в CRM и не отмечает сообщения и письма прочитанными.
  • Изменения и отправка только по разрешениям, которые вы дали. По умолчанию подключение через OAuth только читает. Удаления, настроек компании, сотрудников, ключей, паролей и интеграций через ассистента нет.
  • Перед отправкой сообщения или письма приложение показывает, что собирается сделать, и ждёт вашего согласия. Не разрешайте инструменты отправки «всегда»: тогда приложение перестанет спрашивать.
  • Письма уходят только отправителю письма в существующей переписке или клиенту заявки на адрес, который оставил сам клиент или сотрудник в CRM, а не ассистент. Копий и вложений через ассистента нет.
  • Ассистент получает данные с пометкой, какие тексты написали клиенты и посторонние люди, и инструкцию не выполнять указания из них.
  • Каждое изменение заявки видно в ленте с пометкой «через MCP».

Ассистент может ошибиться или поддаться тексту из сообщения клиента. Поэтому отправку и изменения подтверждаете вы, а письма уходят только на адрес, который оставил сам клиент, или в ответ на его письмо. Полностью исключить попытку выманить у ассистента данные в ответе тому, кто пишет, нельзя: последнее слово за вами, когда приложение спрашивает подтверждение.

Повтор той же отправки в течение 10 минут второй раз не уходит.

Как отключить: Профиль, блок «ИИ-ассистенты (MCP)», «Отключить». Администратор компании видит все подключения на вкладке «API-ключи» и может отключить любое. Подключение перестаёт работать и само, если сотрудника исключили из компании или отключили его учётную запись. Кнопка «Выйти на всех устройствах» подключения не отключает.

10. Ограничения

  • 60 вызовов инструментов в минуту на подключение.
  • Ответов в чаты 20 и писем 10 за 5 минут.
  • Списки до 50 строк за раз; следующая страница по next_cursor.
  • Файлы и вложения через ассистента не передаются; письма отдаются текстом до 8000 знаков на письмо.
  • Отметки «прочитано» ассистент не ставит.

11. Вопросы

Видит ли ассистент заявки коллег?

Только если их видите вы.

Куда уходят данные?

В ИИ-приложение, которое вы подключили, и обрабатываются по его правилам. Подключайте только приложения, которым доверяете.

Почему ассистент не видит почту?

Почта видна, если вы участник ящика и при подключении оставили «Чтение почты».

Почему нет кнопки «Разрешить»?

Подключить ассистента можно только в компании, где вам разрешено выпускать API-ключи. Попросите администратора включить право «Выпускать себе API-ключи в профиле» в разделе «Права доступа». У сотрудника может быть до 10 действующих ключей в компании: если их уже 10, отзовите ненужный в профиле.

Приложение пишет, что нужно подключиться заново

Запустите подключение в приложении ещё раз: доступ восстановится с тем же ключом. В профиле такое подключение отмечено «нужно подключить заново».