Solved Docs

Quickstart: MCP (5 минут)

Тот же вызов из MCP-клиента — Claude Code, Cursor и аналогов.

Цель: выполнить ту же операцию, что в REST-quickstart, из MCP-клиента (Claude Code, Cursor или любого клиента с поддержкой кастомных заголовков).

1. Получите ключ. Тот же ключ, что и для REST — один credential на оба способа. См. API-ключи.

2. Укажите сервер в клиенте. MCP-эндпоинт Solved — Streamable HTTP, один URL на продукт:

{
  "mcpServers": {
    "solved-link": {
      "url": "https://api.link.solved.group/mcp",
      "headers": { "Authorization": "Bearer slv_live_e17Hk2Qp…9xZr4fT2aB" }
    }
  }
}

(Точный формат конфига зависит от клиента — это форма, которую сегодня принимают и Claude Code, и Cursor. OAuth-вход для хостед-коннекторов — Claude.ai, ChatGPT — появится в волне 2; до этого клиенты на API-ключах работают уже сейчас.)

3. Вызовите инструмент. Попросите агента сократить ссылку, либо вызовите link_create напрямую:

{ "destination_url": "https://example.com/spring", "slug": "spring-sale",
  "idempotency_key": "8f1c6e2a-9b7d-4e3f-9a21-9c2b7a0f5e41" }

Платные write-инструменты всегда требуют idempotency_key — по той же причине, что и REST-заголовок: повторный вызов инструмента не должен списать кредиты дважды.

4. Разберите результат.

{
  "id": "lnk_01J9Z4A7R3V5W2XN4V6B0RTC5H",
  "short_url": "https://slv.link/spring-sale",
  "destination_url": "https://example.com/spring",
  "created_at": "2026-10-02T12:00:00Z",
  "credits_charged": 1,
  "credits_balance": 2499
}

Те же поля, что и в REST — structuredContent зеркалит JSON-ответ, в content — человекочитаемая строка. При ошибке вернётся isError: true со стабильным error_code, на который агент может среагировать (не protocol-level JSON-RPC ошибка) — см. Концепцию ошибок.

Проверить баланс можно в любой момент без платного вызова: каждый сервер также отдаёт solved_whoami и solved_get_credit_balance.

Куда дальше: