MCP

Инструменты кабинета для Cursor, Claude и своих агентов

MCP подключает внешнего агента к кабинету: поиск звонков и переписок, база знаний, оценки качества, память по участникам, спикеры. Все вызовы — JSON-RPC 2.0 на одном URL POST /mcp. Для своих бэкендов те же сущности удобнее брать из Public API.

Базовый URL

https://mcp.a5x.pro

Передайте API-ключ (sk_live_…) в заголовке Authorization: Bearer <token> или X-API-Key: <token>. Ключ создаётся в кабинете: Настройки → API. Партнёрские ключи (sk_partner_…, int_live_…) не принимаются. Невалидный ключ → 401. Агент видит только данные вашего кабинета.

Быстрый старт

curl -sS https://mcp.a5x.pro/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "demo", "version": "0.1.0" }
    }
  }'

Как вызывать

Это не REST: один адрес, в теле — JSON-RPC. Клиенты вроде Cursor и Claude подключаются как remote MCP (Streamable HTTP).

  • Все методы: POST https://mcp.a5x.pro/mcp.
  • Тело запроса: { "jsonrpc": "2.0", "id": 1, "method": "…", "params": { } }.
  • Методы: initialize, notifications/initialized, tools/list, tools/call.
  • notifications/initialized — без поля id; ответ пустой.
  • Схемы аргументов инструментов берите из tools/list, не копируйте их вручную.
  • Лимит: 120 запросов в минуту на ключ.
  • При паузе кабинета чтение через MCP остаётся доступным.

initialize

POSThttps://mcp.a5x.pro/mcp

Первый запрос клиента. Сообщите версию протокола; в ответе — версия сервера и поддержка инструментов.

Параметры запроса

ПолеТипОписание
jsonrpc*stringВсегда 2.0.
id*number | stringИдентификатор запроса.
method*stringinitialize
params.protocolVersion*string2024-11-05
params.capabilitiesobjectВозможности клиента. Можно {}.
params.clientInfoobject{ name, version } — имя и версия вашего клиента.

curl

curl -sS https://mcp.a5x.pro/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2024-11-05",
      "capabilities": {},
      "clientInfo": { "name": "demo", "version": "0.1.0" }
    }
  }'

Ответ

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "protocolVersion": "2024-11-05",
    "capabilities": { "tools": {} },
    "serverInfo": { "name": "a5x", "version": "0.1.0" }
  }
}

Коды ответов

HTTPerror.codeСитуация
401—Нет ключа или ключ неверный. Тело `{ "error": "unauthorized" }`.
405—Нужен `POST`, не `GET`.
429—Больше 120 запросов в минуту на ключ.

tools/list

POSThttps://mcp.a5x.pro/mcp

Каталог инструментов: имя, описание и JSON Schema аргументов.

Параметры запроса

ПолеТипОписание
jsonrpc*stringВсегда 2.0.
id*number | stringИдентификатор запроса.
method*stringtools/list

curl

curl -sS https://mcp.a5x.pro/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

Ответ

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "tools": [
      {
        "name": "list_kb_spaces",
        "description": "Список пространств базы знаний",
        "inputSchema": { "type": "object", "properties": {} }
      }
    ]
  }
}

tools/call

POSThttps://mcp.a5x.pro/mcp

Вызов инструмента по имени из tools/list. Успех — result.content (текст, обычно JSON). Ошибка инструмента приходит как JSON-RPC error при HTTP 200. HTTP 401 и 429 — до разбора JSON-RPC.

Параметры запроса

ПолеТипОписание
jsonrpc*stringВсегда 2.0.
id*number | stringИдентификатор запроса.
method*stringtools/call
params.name*stringИмя из tools/list.
params.argumentsobjectАргументы по inputSchema инструмента.

curl

curl -sS https://mcp.a5x.pro/mcp \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": { "name": "list_kb_spaces", "arguments": {} }
  }'

Ответ

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"spaces\":[{\"id\":\"…\",\"name\":\"Регламенты\"}]}"
      }
    ],
    "isError": false
  }
}

Коды ответов

HTTPerror.codeСитуация
200-32601Неизвестный `method`.
200-32603Инструмент не найден или аргументы не соответствуют схеме.

Формат ошибки

{
  "jsonrpc": "2.0",
  "id": 3,
  "error": {
    "code": -32603,
    "message": "Tool call failed"
  }
}

Типичные коды

HTTPerror.codeСитуация
401—Нет ключа или ключ неверный. Тело `{ "error": "unauthorized" }`.
405—Нужен `POST`, не `GET`.
429—Больше 120 запросов в минуту на ключ.
200-32601Неизвестный JSON-RPC `method`.
200-32603Сбой `tools/call`: инструмент не найден или неверные аргументы.

Инструменты

Инструменты ограничены данными вашего кабинета. Схемы аргументов — в ответе tools/list.

Инструмент

ПолеТипОписание
search_speakerstoolПоиск клиентов и сотрудников.
search_communicationstoolПоиск звонков, чатов и писем.
search_commitmentstoolЗадачи и обещания по спикеру.
search_memorytoolПамять по участникам.
get_period_metricstoolKPI и агрегаты за период.
rank_peopletoolТопы людей и отделов.
rank_signalstoolТопы по сигналам (возражения, churn).
rank_qctoolТопы по оценке QC (если QC включён).
get_communicationtoolКарточка коммуникации: статусы, summary, участники, реплики.
get_qc_evaluationtoolЧек-лист QC по коммуникации (если QC включён).
search_documentstoolПоиск по базе знаний компании.
search_product_docstoolДокументация платформы A5X.
list_kb_spacestoolПространства базы знаний.
list_kb_documentstoolКаталог документов пространства.
list_kb_chunkstoolОглавление документа (чанки).

Cursor, Claude, AMMA

Ключ — в кабинете → Настройки → API. Не вставляйте его в публичные репозитории и промпты.

{
  "mcpServers": {
    "a5x": {
      "url": "https://mcp.a5x.pro/mcp",
      "headers": {
        "Authorization": "Bearer sk_live_…"
      }
    }
  }
}