Подключение ИИ-ассистентов по MCP
Claude, ChatGPT, Cursor и другие ИИ-ассистенты: адрес сервера, вход, разрешения и инструменты.
Linkodium CRM работает как MCP-сервер: Claude, ChatGPT, Cursor и другие ИИ-ассистенты подключаются к нему и работают с заявками, чатами и почтой с вашими правами. Подключить ассистента может любой сотрудник, которому разрешено выпускать себе API-ключи. Коротко о возможностях: ИИ-ассистенты в CRM.
Содержание
- Что такое MCP
- Адрес сервера и вход
- Claude
- ChatGPT
- Cursor
- Другие клиенты
- Разрешения
- Инструменты
- Безопасность
- Ограничения
- Вопросы
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:
- Приложение открывает в браузере страницу «Подключение ИИ-ассистента». Если вы не вошли в CRM, сначала войдите по коду из письма.
- Проверьте название приложения и адрес, куда вы вернётесь после решения. Если адрес вам незнаком или подключение начинали не вы, нажмите «Отказать».
- Выберите компанию: ассистент будет работать только в ней и только с вашими правами в ней.
- Отметьте, что разрешить. По умолчанию включено только чтение заявок, чатов и почты.
- Нажмите «Разрешить»: браузер вернёт вас в приложение.
Подключение работает как API-ключ «MCP: название приложения». Его видно в профиле в блоке «ИИ-ассистенты (MCP)» и в списке ключей компании у администратора. Повторное подключение того же приложения в той же компании использует тот же ключ, новые разрешения действуют сразу.
3. Claude
claude.ai и Claude Desktop
- Откройте Настройки (Settings), раздел Коннекторы (Connectors).
- Нажмите «Добавить свой коннектор» (Add custom connector).
- Название:
Linkodium CRM, адрес:https://crm.linkodium.com/api/v1/mcp. - Нажмите «Подключить» (Connect): откроется страница CRM. Войдите, выберите компанию и разрешения, нажмите «Разрешить».
- В новом чате включите коннектор в меню инструментов.
Свои коннекторы доступны на тарифах 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
- В ChatGPT откройте Настройки, раздел «Приложения и коннекторы» (Apps & Connectors), в «Дополнительно» включите режим разработчика (Developer mode).
- Нажмите «Создать» (Create), укажите название
Linkodium CRMи адресhttps://crm.linkodium.com/api/v1/mcp, способ входа OAuth. - Подтвердите вход на странице CRM.
- В чате выберите 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:read | get_reference, search_leads, get_lead, get_lead_events, leads_summary |
| «Чтение чатов с клиентами» (включена) | chats:read | list_chats, get_chat_messages |
| «Чтение почты ваших ящиков» (включена) | mail:read | list_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:write | send_chat_message, dismiss_chat_awaiting, link_chat_to_lead |
| «Отправка писем клиентам» | mail:send | send_email, link_mail_thread_to_lead; вместе с созданием заявок create_lead_from_mail. Новое письмо по заявке требует ещё чтения заявок |
| «Расшифровка записей звонков» | calls:transcribe | request_call_transcript |
| «Просмотр сотрудников и каналов компании» (только администратору) | company:read | list_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, отзовите ненужный в профиле.
Приложение пишет, что нужно подключиться заново
Запустите подключение в приложении ещё раз: доступ восстановится с тем же ключом. В профиле такое подключение отмечено «нужно подключить заново».