Войти

MCP для ИИ-ассистентов

MCP (Model Context Protocol) — способ дать ИИ-ассистенту наши данные. Подключите сервер datool.ru, и ассистент сам найдёт канал, посмотрит его статистику и посты и ответит на вопрос вроде «как рос канал @rbc в октябре».

Адрес и ключ

  • Адрес сервера: https://api.datool.ru/v1/mcp/ (MCP поверх HTTP, «Streamable HTTP»).
  • Ключ — тот же, что для API: заголовок Authorization: Bearer dtk_ваш_ключ. Ключ создаётся на странице «API-ключи» в кабинете.

К сведению

Ассистент тратит запросы так же, как ваш код: каждый вызов инструмента стоит столько же единиц, сколько метод API, и открыто ему то же, что вашему тарифу. Справочники и /v1/me/ — бесплатно.

Claude Code

# добавить сервер datool в Claude Code; ключ — со страницы «API-ключи» в кабинете
claude mcp add --transport http datool https://api.datool.ru/v1/mcp/ \
  --header "Authorization: Bearer dtk_ваш_ключ"

Cursor и другие клиенты

Добавьте сервер в настройки MCP (в Cursor — файл .cursor/mcp.json):

{
  "mcpServers": {
    "datool": {
      "url": "https://api.datool.ru/v1/mcp/",
      "headers": { "Authorization": "Bearer dtk_ваш_ключ" }
    }
  }
}

Claude Desktop и другим клиентам, которые умеют только запускать программу у себя, поможет переходник mcp-remote (нужен Node.js). В Claude Desktop настройка — файл claude_desktop_config.json (Settings → Developer → Edit Config). Ключ передаётся через переменную окружения: пробел внутри аргумента ломает настройку в Windows.

{
  "mcpServers": {
    "datool": {
      "command": "npx",
      "args": ["mcp-remote", "https://api.datool.ru/v1/mcp/",
               "--header", "Authorization:${AUTH_HEADER}"],
      "env": { "AUTH_HEADER": "Bearer dtk_ваш_ключ" }
    }
  }
}

Инструменты

Инструменты — это методы API, которые читают данные, с теми же именами и параметрами, что в справочнике методов:

Инструмент Что делает
me_retrieve кто я, тариф и остаток запросов
max_channels_resolve_retrieve найти канал по ссылке, @имени или ID MAX
max_channels_list каталог каналов с фильтрами
max_channels_retrieve карточка канала
max_stats_daily_list статистика по дням
max_channels_posts_retrieve посты канала
max_posts_retrieve один пост
max_categories_list, max_territories_list справочники рубрик и территорий

Изменять что-либо через MCP нельзя — например, вебхуки управляются только через API ключом «чтение и запись».

Как это устроено внутри

Свой клиент MCP можно написать и без готовых программ: сервер принимает JSON-RPC 2.0 запросом POST и отвечает JSON.

# список инструментов (бесплатно)
curl -X POST https://api.datool.ru/v1/mcp/ \
  -H "Authorization: Bearer dtk_ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

# вызвать инструмент: карточка канала @citynews (стоит как метод API — 1 единица)
curl -X POST https://api.datool.ru/v1/mcp/ \
  -H "Authorization: Bearer dtk_ваш_ключ" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "max_channels_retrieve", "arguments": {"channel": "citynews"}}}'

Ответ на вызов инструмента — ответ метода API текстом (content) и объектом (structuredContent):

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{"type": "text", "text": "{\"id\": 4821, \"title\": \"Городские новости\", …}"}],
    "structuredContent": {"id": 4821, "title": "Городские новости", "subscribers": 128450},
    "isError": false
  }
}
Метод протокола Что делает
initialize Знакомство: версия протокола, имя сервера, подсказка ассистенту
tools/list Список инструментов с описаниями и входными схемами
tools/call Вызвать инструмент: name и arguments (как параметры метода API)
ping Проверка связи

Сеансов и потока событий нет: каждый запрос самостоятельный, GET на адрес сервера — 405.

Если ассистент пишет об ошибке

Ошибка метода приходит ассистенту текстом с кодом, например 403 tariff_required — посты закрыты на «API.Max Тест», или 429 quota_exceeded — запросы за период закончились. Коды — на странице «Ошибки».

Что случилось Что приходит
Ошибка метода API (тариф, нет канала, лимит) result с isError: true и текстом вида 403 tariff_required: …
Неизвестный инструмент, лишний или пропущенный аргумент, значение, ломающее адрес (/, ?, #) ошибка JSON-RPC -32602
Неверный тип или значение аргумента (например, kind=group) result с isError: true и ошибкой метода 400 — стоит как запрос
Неизвестный метод протокола ошибка JSON-RPC -32601
Тело не JSON или не объект JSON-RPC 2.0 ошибки JSON-RPC -32700 и -32600
Нет ключа или ключ неверный ответ HTTP 401
Страница полезна?

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти