MCP

Тот же сервис, но для ИИ-агентов. Подключите Claude, Cursor или своего агента — и отправка ссылок, проверка статусов и учёт расхода делаются словами, без обёртки на HTTP.

Адрес https://dobermanindexztoken.com/mcpПротокол 2025-06-1811 инструментовКлюч тот же, что у API

Что это даёт#

MCP — открытый протокол, по которому ИИ-агент получает доступ к внешнему сервису: не к описанию в подсказке, а к настоящим вызовам с настоящими ответами. Подключив наш сервер, агент видит ваш баланс, отправляет ссылки и читает статусы сам.

Разговор с подключённым агентом выглядит примерно так:

text
— Отправь на индексацию все статьи из sitemap блога, которые вышли в августе.
— Нашёл 42 адреса. Проверка показывает, что 11 из них поисковик уже знает —
  отправлять их незачем. Остальные 31 обойдутся в 93 токена (≈ $0.09),
  на счету 4980. Отправляю?
— Да.
— Задание 965 создано. Загляну через час и скажу, по скольким прошёл бот.

Тот же результат достижим и через HTTP API — разница в том, кто пишет код. Здесь его не пишет никто.

Подключение#

Сервер отвечает по HTTP, отдельной установки не требует. Нужен ключ — тот же, что у API: создаётся в кабинете, на странице «API и ключи».

Claude Desktop и Claude Code

json
{
  "mcpServers": {
    "doberman-index": {
      "type": "http",
      "url": "https://dobermanindexztoken.com/mcp",
      "headers": { "Authorization": "Bearer ik_ВАШ_КЛЮЧ" }
    }
  }
}

В Claude Desktop файл настроек открывается через «Настройки → Разработчик → Изменить конфигурацию». В Claude Code то же самое делает команда claude mcp add.

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

Настройка одинаковая: адрес сервера и заголовок с ключом. Клиенты, умеющие только запускать локальный процесс, подключаются через мост mcp-remote.

json
{
  "mcpServers": {
    "doberman-index": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://dobermanindexztoken.com/mcp",
               "--header", "Authorization: Bearer ik_ВАШ_КЛЮЧ"]
    }
  }
}

Проверить связь

Список инструментов отдаётся без ключа — клиент показывает его до того, как человек введёт токен, и отказ на этом шаге читался бы как «сервер не работает».

bash
curl -X POST https://dobermanindexztoken.com/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc": "2.0", "id": 1, "method": "tools/list"}'

Инструменты#

Одиннадцать штук. Платный ровно один — тот, что отправляет ссылки; остальные только читают или возвращают ваши же токены.

ИнструментЧто делаетСтоимость
index_balanceСколько токенов на счету и сколько это в долларахбесплатно
index_servicesУслуги и цена за одну ссылку — чтобы посчитать до отправкибесплатно
index_submit_linksОтправляет ссылки на индексацию и списывает токены. До 1000 адресов за вызовплатно
index_task_statusСостояние задания и его счётчикибесплатно
index_link_statusЧто стало с каждой ссылкой: заходил ли бот, когда, проверялась ли выдачабесплатно
index_list_tasksЗадания с отбором по статусу, услуге и датамбесплатно
index_cancel_taskОтменяет задание до начала работы, замороженные токены возвращаются. После старта отмена невозможнабесплатно
index_spendingДвижения токенов: пополнения, заморозки, списания, возвратыбесплатно
index_list_webhooksПодписки на событиябесплатно
index_create_webhookНовая подписка. Секрет возвращается один разбесплатно
index_delete_webhookУдаляет подписку, доставки прекращаютсябесплатно

Заход бота и проверка выдачи — разные факты. В ответе index_link_status crawled_at означает, что по ссылке прошёл подтверждённый поисковый бот, а checked_at — что мы смотрели поисковую выдачу. Пустой checked_at значит «проверки не было», а не «страницы нет в индексе»: описания инструментов говорят об этом агенту прямо, чтобы он не выдал одно за другое.

Подтверждение расхода#

Единственный платный инструмент требует поле confirm_cost_tokens — сколько, по мнению агента, будет списано. Не совпало с нашим расчётом больше чем на 5% — вызов отклоняется с подсказкой пересчитать через index_services.

json
{
  "name": "index_submit_links",
  "arguments": {
    "urls": ["https://site.com/a", "https://site.com/b"],
    "confirm_cost_tokens": 20
  }
}

Зачем это. Модель ошибается в арифметике молча, а платит клиент. Поле заставляет агента посчитать стоимость до отправки и назвать её вслух — разойдясь с нами, он получит отказ, а не счёт.

Ограничение на объём тоже есть: до 1000 адресов за вызов. Больше — разбивайте на несколько заданий; так ошибка в списке стоит одной тысячи, а не всего баланса.

Протокол#

JSON-RPC 2.0 поверх HTTP POST, версия протокола 2025-06-18. Сервер представляется как doberman-index. Открыты без ключа initialize, tools/list, ping и notifications/initialized — всё остальное требует Authorization: Bearer.

bash
curl -X POST https://dobermanindexztoken.com/mcp \
  -H "Authorization: Bearer ik_ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0", "id": 2, "method": "tools/call",
    "params": { "name": "index_balance", "arguments": {} }
  }'
json
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "На счету 4980 токенов (≈ $4.98)" }],
    "structuredContent": {
      "account": { "id": 4320, "balance": { "total": 4980, "usd": "4.98" } }
    }
  }
}

Ответ приходит в двух видах сразу: текстом — чтобы агент мог просто прочитать его человеку, и структурой — чтобы мог посчитать. Ошибка инструмента приходит как isError с объяснением, что делать дальше: агент, получивший «неверные данные» без продолжения, обычно повторяет то же самое.

Что агенту недоступно#

Ключ даёт агенту ровно то же, что даёт вашему коду, и ни на шаг больше.

  • Нельзя пополнить баланс или потратить деньги. Расход возможен только токенами и только тем единственным платным инструментом.
  • Нельзя увидеть чужое. Задания, ссылки и подписки — только владельца ключа; чужой номер задания отвечает «не найдено».
  • Нельзя тронуть аккаунт. Пароль, почта, ключи и настройки менять недоступно — это делается руками в кабинете.
  • Отзыв ключа действует сразу. Если агент повёл себя не так, доступ снимается одной кнопкой, и остальные ключи продолжают работать.

Инструменты, которые меняют состояние, но не тратят токены — отмена задания и удаление подписки, — описаны для агента с прямой просьбой спросить человека перед вызовом.

Обход сайта агент заказать не может — намеренно. Сколько адресов в карте сайта, знает только сама карта, поэтому назвать стоимость до запуска невозможно. Платящий инструмент здесь один, и он требует суммы заранее: модель ошибается в арифметике молча, а платит клиент. Следить за уже заказанным обходом агент может — задания видны через index_task_status и index_list_tasks. Заказ — в кабинете или через API.

Нужен обычный HTTP вместо агента? Те же действия доступны через API — ключ подходит один и тот же.

Ключ выдаётся сразу после регистрации

Один и тот же ключ работает и в MCP, и в обычном API. Пробные десять ссылок доступны там же — проверить связку можно, не пополняя баланс.

Получить ключ и проверить 10 ссылокБез карты · без подписки