К содержанию
API v3

ИИ-ассистенты

MCP Server

Подключите Claude, Cursor и другие AI-ассистенты к WebAsk через Model Context Protocol

Model Context Protocol (MCP) — стандарт, позволяющий AI-моделям (Claude, Cursor, Copilot и др.) подключаться к WebAsk и работать с вашими данными напрямую: читать опросы, ответы, аналитику и выполнять действия без ручного копирования.

Готовые скиллы для ассистента

MCP даёт ассистенту доступ к инструментам. Скилл добавляет готовую методику работы с ними: какие данные собрать, что посчитать и в каком виде показать результат.

Каталог скиллов → · Как это работает →

1. Подключение

Получение API-ключа

  1. Войдите в свой аккаунт WebAsk.
  2. Перейдите в раздел Настройки → API / MCP.
  3. Нажмите «Создать API-ключ» и скопируйте его — ключ показывается только один раз.

Эндпоинт

POST https://mcp.webask.io/mcp/v1

Аутентификация

Передайте API-ключ в заголовке Authorization:

Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG

OAuth 2.1 сервер не поддерживает

Авторизация только по API-ключу в заголовке Authorization. Поля «OAuth Client ID» и «OAuth Client Secret» заполнять нечем, подходящих значений нет. Отсюда практическое ограничение: подключить сервер через нативный облачный коннектор пока нельзя, такая форма не передаёт постоянный заголовок Authorization.

Конфигурация для Claude Desktop

Файл claude_desktop_config.json

Клиент общается с MCP-серверами через stdio, поэтому удалённый сервер подключается через прокси. Ниже сторонний пакет mcp-remote: своего npm-пакета у WebAsk нет.

{
  "mcpServers": {
    "webask": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://mcp.webask.io/mcp/v1",
        "--header",
        "Authorization:${WEBASK_AUTH}"
      ],
      "env": {
        "WEBASK_AUTH": "Bearer <ваш_api_ключ>"
      }
    }
  }
}
  • После Authorization: пробела нет намеренно, а слово Bearer вынесено в переменную окружения: Claude Desktop под Windows и Cursor не экранируют пробелы внутри args, и заголовок доходит искажённым. Это описано в документации самого mcp-remote.
  • После правки файла клиент надо полностью закрыть и запустить заново.
  • Нужны установленные Node.js и npm, команда npx должна работать из терминала.

Конфигурация для Cursor

Файл ~/.cursor/mcp.json. Прокси не нужен, ключ верхнего уровня mcpServers.

{
  "mcpServers": {
    "webask": {
      "url": "https://mcp.webask.io/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${env:WEBASK_API_KEY}"
      }
    }
  }
}

Конфигурация для VS Code

Файл .vscode/mcp.json. Ключ верхнего уровня здесь другой, servers, и нужен тип транспорта.

{
  "servers": {
    "webask": {
      "type": "http",
      "url": "https://mcp.webask.io/mcp/v1",
      "headers": {
        "Authorization": "Bearer ${input:webask-api-key}"
      }
    }
  }
}

Лимиты

  • 180 запросов в минуту на пользователя (tools/call, resources/read и т.д.)
  • Экспортные ссылки действуют 1 час

2. Ресурсы (Resources)

Ресурсы предназначены только для чтения данных. Для их вызова отправляется запрос resources/read с соответствующим URI.

URI Описание
Пользователь и воркспейсы
user://meБазовая информация о текущем пользователе
workspace://listСписок всех рабочих пространств пользователя
Папки и опросы
folder://listСписок всех папок пользователя
quiz://listСписок всех доступных опросов
Структура и конфигурация опроса
quiz://{id}/structureПолная структура виджетов опроса
quiz://{id}/textsПользовательские надписи интерфейса
quiz://{id}/variablesСкрытые переменные (extra fields)
quiz://{id}/hidden_optionsСлужебные конфигурационные опции опроса
quiz://{id}/widgets_hiddenСкрытая мета-информация виджетов
Ответы и аналитика
quiz://{id}/answersСписок ответов респондентов с пагинацией
quiz://{id}/summaryСводная аналитика (воронка, устройства, гео)
quiz://{id}/reportДетальный отчёт по виджетам (с фильтрами)
quiz://{id}/report_filtersСохранённые фильтры пользователя
quiz://{id}/report/{uuid}/inputsТекстовые ответы на input-виджеты
quiz://{id}/report/{uuid}/filesФайлы, загруженные респондентами
Темы и промокоды
theme://listСписок тем оформления воркспейса
theme://{id}/detailsДетальные настройки темы
promocode://listСписки групп промокодов
promocode://{id}/codesКоды в конкретном списке промокодов

3. Инструменты (Tools)

Tools — действия, которые выполняются на стороне WebAsk по запросу AI-модели через метод tools/call.

Формат ответа инструментов

Каждый инструмент возвращает объект с полями content (массив текстовых блоков) и isError (false — успех, true — ошибка). При успехе добавляются доп. поля с данными.

4. Технические детали

Версии протокола

2026-07-28, 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05

Транспорт

HTTP POST (JSON-RPC 2.0)

Метод подключения

POST /mcp/v1

Поддерживаются обе схемы работы. Клиенты до 2025-11-25 включительно начинают с initialize. Клиенты 2026-07-28 рукопожатия не делают: объявляют версию в каждом запросе и могут спросить server/discover — он одним ответом отдаёт версии, возможности и представление сервера.

Клиент 2026-07-28 дублирует в заголовки то, что объявил в теле: версию, имя метода, а для вызова инструмента, чтения ресурса и получения шаблона — ещё и имя цели. Если заголовок и тело расходятся или обязательного заголовка нет, запрос отклоняется. Имя цели, которое нельзя записать в заголовок как есть (например, с кириллицей), передаётся в виде =?base64?…?=.

Код Когда Ответ
-32022Запрошена версия протокола, которой сервер не поддерживает400, в data — список версий сервера и запрошенная
-32020Заголовок противоречит телу или обязательный заголовок отсутствует400
-32601Метод неизвестен404 для клиента 2026-07-28, 200 для прежних

Стандартные JSON-RPC методы

Метод Описание
server/discoverВерсии протокола, возможности и представление сервера одним запросом
initializeИнициализация сессии, получение capabilities сервера (клиенты прежних версий)
tools/listПолучить список всех доступных инструментов
tools/callВызвать инструмент с параметрами
resources/listПолучить список всех доступных ресурсов
resources/readПрочитать содержимое ресурса по URI
prompts/listПолучить список prompt-шаблонов
prompts/getПолучить конкретный prompt-шаблон

Пример запроса

POST https://mcp.webask.io/mcp/v1
Authorization: Bearer 42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG
Content-Type: application/json

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "rename_quiz",
    "arguments": {
      "quiz_id": 123,
      "name": "Новое название опроса"
    }
  }
}

Формат ответа при ошибке

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "Invalid params: quiz_id is required"
  }
}

5. Типичные сценарии

1. Получить список опросов и структуру конкретного

1. resources/read: quiz://list → получаем список опросов с ID

2. resources/read: quiz://{id}/structure → получаем структуру виджетов

2. Работа с ответами

1. resources/read: quiz://{id}/answers → получаем ответы (с answer_id)

2. tools/call: tag_answer (добавить теги) или toggle_answer_visibility (скрыть/показать)

3. Экспорт с фильтрацией

1. tools/call: generate_filtered_report (quiz_id, dateFrom/dateTo в формате d.m.Y, фильтры) → report_uuid

↳ Формат дат здесь d.m.Y (01.01.2024), тогда как ресурс quiz://report использует Y-m-d

2. resources/read: quiz://{id}/report/{uuid}/files или /inputs

3. tools/call: export_filtered_report_pdf (quiz_id) → ссылка на PDF

↳ export_filtered_report_pdf и _word принимают только quiz_id; report_uuid передавать не нужно

4. Добавление промокодов

1. tools/call: create_promocode_group → создаём список с первыми кодами → получаем list_id

2. tools/call: add_promocodes → добавляем ещё коды в список

3. resources/read: promocode://{id}/codes → проверяем добавленные коды

5. Применить тему и сразу получить структуру опроса

1. resources/read: theme://list → получаем список тем с ID

2. tools/call: apply_quiz_theme (quiz_id, theme_id)

→ в ответе сразу поле quiz со структурой — дополнительный resources/read не нужен

Полная документация MCP в markdown-формате для работы с AI:

/static/mcp_user_guide.md — полный справочник ресурсов и инструментов.