MCP-сервер для ИИ-ассистентов
Подключите Claude Code, Claude Desktop или Cursor к рабочему пространству по Model Context Protocol: готовые конфиги, каталог инструментов, права и тариф.
Обновлено 14 августа 2026 г.
MCP-сервер позволяет ИИ-ассистенту работать с вашими ссылками и аналитикой напрямую: «сократи эту посадочную страницу на нашем брендированном домене», «какие пять ссылок собрали больше всего кликов на прошлой неделе», «заглуши правило оповещений для домена кампании до понедельника». Ассистент делает это через тот же публичный API, который вы вызвали бы сами, ровно с правами того ключа, которым вы его подключили.
https://api.linkprofit.com/v1/mcp
Транспорт — JSON-RPC 2.0 поверх HTTP, по редакции 2025-06-18 протокола Model
Context Protocol (редакция 2025-03-26 тоже принимается). Потока событий со
стороны сервера нет, состояния сессии нет: GET и DELETE отвечают 405,
Mcp-Session-Id не выдаётся, а каждый запрос несёт весь нужный ему контекст в
самом ключе. Подойдёт любой MCP-клиент, умеющий HTTP, — три клиента ниже просто
те, для которых у нас есть готовые конфиги.
1. Создайте ключ для ассистента
В панели откройте Настройки → Ключи API и создайте ключ рабочего
пространства (lp_live_…). Выдайте ему только те области действия, которые
ассистенту действительно нужны, — каталог инструментов ниже показывает, что
требует каждый из них. Ключ с links:read + analytics:read даёт ассистента
только на чтение: он отвечает на вопросы, но ничего не меняет.
Полное значение ключа показывается один раз. Относитесь к нему как к паролю: он попадёт в файл конфигурации на вашей машине.
2. Добавьте сервер в свой клиент
Claude Code
Одна команда, никаких файлов конфигурации:
claude mcp add --transport http linkprofit https://api.linkprofit.com/v1/mcp \
--header "Authorization: Bearer lp_live_…your key…"
Добавьте --scope user, чтобы сервер был доступен во всех проектах на машине,
а не только в текущем. Проверить результат — claude mcp list, убрать
позже — claude mcp remove linkprofit.
Claude Desktop
Откройте файл конфигурации — на macOS это
~/Library/Application Support/Claude/claude_desktop_config.json, на Windows
%APPDATA%\Claude\claude_desktop_config.json — и добавьте сервер:
{
"mcpServers": {
"linkprofit": {
"type": "http",
"url": "https://api.linkprofit.com/v1/mcp",
"headers": {
"Authorization": "Bearer lp_live_…your key…"
}
}
}
}
Перезапустите Claude Desktop. Инструменты появятся в списке инструментов нового диалога.
Cursor
Создайте в проекте .cursor/mcp.json (или ~/.cursor/mcp.json, чтобы сервер
был доступен везде):
{
"mcpServers": {
"linkprofit": {
"url": "https://api.linkprofit.com/v1/mcp",
"headers": {
"Authorization": "Bearer lp_live_…your key…"
}
}
}
}
Cursor подхватывает файл при сохранении и показывает сервер в Settings → MCP.
Проверка соединения вручную
Проблемы любого клиента проще читать на уровне протокола. Это то же рукопожатие, которое выполняют клиенты:
curl -s -X POST https://api.linkprofit.com/v1/mcp \
-H "Authorization: Bearer $LINKPROFIT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-06-18",
"capabilities": {},
"clientInfo": { "name": "curl", "version": "1.0" }
}
}'
Здоровый ответ называет версию протокола, сервер и его возможность работы с
инструментами. Замените метод на tools/list, чтобы увидеть каталог, и на
ping, если нужно проверить одну лишь доступность.
Инструменты
Десять инструментов, и все действуют внутри того рабочего пространства, которому принадлежит ключ. В колонке области действия указано, что обязан нести ключ; инструмент, области для которого у ключа нет, просто вернёт ошибку при вызове — из каталога он не прячется.
| Инструмент | Что делает | Требуемая область действия |
| --- | --- | --- |
| list_links | Список коротких ссылок рабочего пространства, при желании с фильтром по строке поиска | links:read |
| get_link | Чтение одной ссылки по её идентификатору | links:read |
| create_link | Создание короткой ссылки; без domain_id берётся домен рабочего пространства по умолчанию | links:write |
| update_link | Изменение адреса назначения или заголовка существующей ссылки | links:write |
| analytics_summary | Клики, посетители и сканирования QR за период, при желании по одной ссылке | analytics:read |
| analytics_breakdown | Клики и посетители в разбивке по стране, городу, устройству, браузеру, ОС, рефереру или UTM | analytics:read |
| analytics_top_links | Самые кликаемые ссылки периода вместе с кликами и посетителями | analytics:read |
| analytics_timeseries | Клики и посетители во времени — по часам, дням или неделям | analytics:read |
| list_alert_rules | Список правил оповещений с их каналами и окном подавления | alerts:read |
| update_alert_rule | Включение, выключение или перенастройка окна подавления у правила оповещений | alerts:write |
Схемы аргументов берутся из тех же описаний, которые проверяют вызов, поэтому
то, что рассказано ассистенту об инструменте, и то, что сервер на самом деле
принимает, не могут разойтись. Инструменты только на чтение помечены как
таковые, и именно это позволяет клиенту спросить подтверждение перед
тремя инструментами, которые меняют данные: create_link, update_link и
update_alert_rule — плюс всё, что добавит в этот список будущий выпуск.
Каждый изменяющий вызов инструмента попадает в журнал аудита рабочего пространства вместе с ключом, который его сделал, и пометкой, что он пришёл по MCP, — правки ассистента отслеживаются так же, как правки человека.
Права и безопасность
Граница прав — это ключ. Никакого привилегированного «режима ассистента»
нет: вызов инструмента идёт с областями действия ключа, внутри рабочего
пространства ключа, под тем же лимитом частоты и с той же изоляцией
арендаторов, что и вызов REST. Идентификатор из другого рабочего пространства
отвечает not_found — ровно так же, как по REST.
Три привычки, которые стоит завести:
- Дайте ассистенту собственный ключ, а не тот, которым пользуется ваша продакшен-интеграция. Тогда его отзыв ничего не стоит.
- Начните с чтения.
links:read+analytics:readпокрывает те вопросы по отчётности, которые люди действительно задают ассистенту. Добавляйтеlinks:writeтолько тогда, когда захотите создавать ссылки прямо из чата. - Меняйте ключ при засветке. Ключ в файле конфигурации путешествует вместе
с резервными копиями, демонстрациями экрана и обращениями в поддержку.
Отзовите его в панели сразу, как только он утёк, — следующий запрос получит
401.
Лимит частоты общий с REST API — на каждый ключ, по скользящему окну в одну минуту, — поэтому болтливый ассистент и фоновая задача на одном ключе делят один бюджет. Ещё один довод в пользу отдельного ключа. Заголовки и правила повторов описаны в лимитах частоты.
Требования тарифа
Доступ к эндпоинту закрывают две возможности тарифа:
api_access— право пользоваться API вообще;assistant_tools— право пользоваться каталогом инструментов, а значит, и MCP.
Обе задаются в том тарифе, на котором находится ваше рабочее пространство.
Рабочее пространство, в тарифе которого нет хотя бы одной из них, получает
403 с кодом plan_restricted и сообщением, называющим недостающую
возможность. Если вы перепродаёте LinkProfit под собственным брендом, вам и
решать, включить эту возможность в тариф или продавать её как повышение.
Диагностика
403 plan_restricted — в тарифе нет assistant_tools (или api_access).
Повысьте тариф; ни ключ, ни настройки клиента здесь ничего не изменят.
401 unauthorized — заголовок отсутствует, испорчен или сам ключ
неизвестен, отозван либо истёк. Эти три случая нарочно неотличимы. Проверьте,
что передаётся ключ целиком, что перед ним стоит Bearer , и что клиент
действительно отправляет заголовок, — рукопожатие через curl выше отвечает на
это одним запросом.
403 forbidden — использован партнёрский ключ (lpp_live_…). MCP —
поверхность рабочего пространства, создайте ключ рабочего пространства.
429 rate_limited — ключ исчерпал своё окно. В ответе есть Retry-After;
клиенты, повторяющие запрос немедленно, лишь держат ключ заблокированным.
405 на GET — так и задумано, это не сбой. Сервер не предлагает потока
событий и не хранит сессию; клиент, который умеет только SSE-транспорт старых
редакций, подключиться не сможет.
Инструмент отвечает ошибкой вместо данных — в переписке похоже выглядят две
разные вещи. Аргументы, не прошедшие проверку, возвращаются как результат
инструмента, помеченный ошибкой, с перечислением проблемных полей, и ассистент
может поправиться и повторить вызов. Недостающая область действия возвращается
как ошибка протокола с кодом insufficient_scope и названием области: здесь
нужен новый ключ, а не ещё одна попытка.
Что почитать рядом
- Аутентификация — ключи, полный список областей действия, ротация.
- Ошибки — каждый код ошибки и как его обрабатывать.
- Справочник API — REST-эндпоинты, стоящие за инструментами.
- Клиентские библиотеки — те же операции из вашего собственного кода.