Queber MCP

Запускайте автоматизации Queber через MCP

Подключайте MCP-compatible клиентов к Queber, выдавайте scoped access, а Queber Desktop будет локально выполнять поддерживаемые automation jobs через ваши browser profiles

Как это работает

MCP-клиент не обращается напрямую к локальному приложению.

1

Клиент отправляет tool call

Ваш MCP-клиент вызывает удалённый endpoint Queber с access token.

2

Сервер проверяет доступ

Queber проверяет токен, платный план и нужные MCP scopes.

3

Desktop выполняет локально

Сервер передаёт команду в авторизованное Queber Desktop-приложение через защищённое фоновое соединение.

4

Результат возвращается клиенту

Клиент получает структурированный статус, профили, задачи или результат автоматизации из desktop-приложения.

Доступные инструменты

Что может делать авторизованный клиент.

Проверять статус Desktop

Понять, подключён ли desktop relay и какие возможности доступны.

Читать браузерные профили

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

Смотреть задачи

Получать список задач по страницам, читать задачу с результатом, логами и прогрессом, редактировать, отменять, архивировать, удалять и повторять задачи.

Запускать поддерживаемую автоматизацию

Создавать публикации в Reddit и проверки постов Reddit сразу или по расписанию.

Доступ контролируется OAuth-токенами, запрошенными scopes, проверкой платного плана и активным подключением Queber Desktop. Отзовите клиент, если больше ему не доверяете.

Пример: проверка постов Reddit

Следите за постами Reddit после публикации

Задание проверки открывает каждую ссылку в фоновой вкладке браузерного профиля и возвращает то, что показывает страница поста: жив ли пост, удалён или его больше нет, рейтинг, долю апвоутов, комментарии и просмотры ваших собственных постов. Достаточно двух инструментов: queber_job_run и queber_job_get.

Создайте проверку

Вызовите queber_job_run с automationType post_read, ссылками в platformData.reddit.post_read.links и idempotencyKey. Подойдут полные ссылки на посты, old.reddit, redd.it, посты в профилях и ссылки «Поделиться»; инструмент вернёт задание со статусом pending.

Опрашивайте задание

Вызывайте queber_job_get с id задания раз в несколько секунд, пока статус не станет completed или failed. Ссылки проверяются по очереди с человеческой паузой, поэтому длинный список проверяется дольше.

Прочитайте результаты

В resultData.reddit.post_read.items по одному элементу на ссылку со статусом ok, removed, not_found или failed, а summary их считает. У удалённого поста сообщение Reddit об удалении лежит в removalMessage; значение, которое Reddit не показал, равно null, а warnings объясняет почему.

Просмотры своих постов

Reddit показывает просмотры только автору поста, поэтому они приходят только для постов профиля, который проверяет, в том округлённом виде, в каком их показывает Reddit, например 5.2K. Каждая проверка своего поста добавляет на Reddit один просмотр.

Задание завершается ошибкой, только если не удалось проверить ни одной ссылки; неудачная ссылка получает статус failed, и проверка идёт дальше. Запуск оплачивается, если проверен хотя бы один пост, а сколько ссылок можно взять в один запуск, задаёт ваш тариф.

tools/call queber_job_run
{
  "profileId": "3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607",
  "platform": "reddit",
  "automationType": "post_read",
  "platformData": { "reddit": { "post_read": { "links": [
    "https://www.reddit.com/r/SideProject/comments/1abc234/queber_desktop_116_queue_view/",
    "https://old.reddit.com/r/webdev/comments/1abd345/how_do_you_schedule_reddit_posts/",
    "https://redd.it/1abe456"
  ] } } },
  "idempotencyKey": "post-read-2026-08-12-01"
}
→ { "id": "e2d4f6a8-1b3c-4d5e-8f70-9a1b2c3d4e5f", "automationType": "post_read", "status": "pending", … }

tools/call queber_job_get
{ "jobId": "e2d4f6a8-1b3c-4d5e-8f70-9a1b2c3d4e5f" }
→ { "status": "completed", "resultData": { "reddit": { "post_read": {
  "items": [
    { "url": "https://www.reddit.com/r/SideProject/comments/1abc234/", "status": "ok", "readAs": "author",
      "score": 13, "upvoteRatio": 0.93, "comments": 8, "views": 5200, "shares": 4, "reposts": 1,
      "topCountries": [{ "country": "US", "name": "United States", "percent": 41.2 }, …], "authorRank": 2,
      "warnings": [{ "field": "views", "code": "rounded", "message": "Reddit shows views rounded: 5.2K views" }], … },
    { "url": "https://www.reddit.com/r/webdev/comments/1abd345/", "status": "ok", "readAs": "other",
      "score": 1001, "upvoteRatio": 0.96, "comments": 5348, "views": null,
      "warnings": [{ "field": "views", "code": "author_only", "message": "Reddit shows views only to the post author" }], … },
    { "url": "https://www.reddit.com/comments/1abe456/", "status": "removed", "readAs": "author",
      "removalMessage": "Sorry, this post has been removed by the moderators of r/example.", … }
  ],
  "summary": { "total": 3, "read": 3, "removed": 1, "notFound": 0, "failed": 0 }
} } }, … }
Пример: комментарий в Reddit

Комментарии и ответы в Reddit

Задание на комментарий оставляет один комментарий под постом или ответом на один из его комментариев, в фоновой вкладке браузерного профиля. Хватает трёх инструментов: queber_reddit_comment_check, queber_job_run и queber_job_get.

Проверьте пост

Вызовите queber_reddit_comment_check с profileId и link. Он откроет пост этим профилем, бесплатно и вне очереди, и вернёт blocked (почему комментировать нельзя, или null), медиа, которые принимает поле комментария, и до 300 комментариев в thread. Если профиль нужно запустить, это может занять до 3 минут.

Выберите, куда ответить

Передайте id комментария из thread в replyToCommentId или не передавайте его, чтобы прокомментировать сам пост. У каждого комментария в thread есть автор, так что ответ конкретному пользователю — это фильтр по author. Ссылка на комментарий в link работает так же, как его id.

Создайте комментарий

Вызовите queber_job_run с automationType comment, platformData.reddit.comment (link, body и не больше одного медиа из queber_media_import) и idempotencyKey; инструмент вернёт задание со статусом pending.

Прочитайте результат

Опрашивайте задание до завершения. resultUrl — страница нового комментария, а resultData.reddit.comment содержит его id, комментарий, на который он отвечает, и alreadyPosted, если его оставил прошлый запуск и повторно ничего не отправлялось. Упавшее задание называет причину, например rate_limited с минутами, которые Reddit просит подождать.

Проверка бесплатна. Комментарий списывается, когда Reddit его показал; неудачный запуск и запуск, нашедший тот же комментарий на месте, ничего не стоят. С тем же Idempotency-Key второе задание не создаётся.

tools/call queber_reddit_comment_check
{
  "profileId": "3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607",
  "link": "https://www.reddit.com/r/SideProject/comments/1abc234/queber_desktop_116_queue_view/"
}
→ { "ok": true, "check": {
  "post": { "postId": "1abc234", "community": "r/SideProject", "comments": 8, … },
  "blocked": null,
  "media": { "images": true, "animatedImages": true, "videos": false, "maxMedia": 1 },
  "thread": { "loaded": 8, "complete": true, "comments": [
    { "id": "ohd7k2m", "author": "quiet_reader", "body": "Does it keep the profile logged in?", … },
    …
  ] }
} }

tools/call queber_job_run
{
  "profileId": "3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607",
  "platform": "reddit",
  "automationType": "comment",
  "platformData": { "reddit": { "comment": {
    "link": "https://www.reddit.com/r/SideProject/comments/1abc234/queber_desktop_116_queue_view/",
    "replyToCommentId": "ohd7k2m",
    "body": "Yes, every profile keeps its own session."
  } } },
  "idempotencyKey": "comment-2026-08-12-01"
}
→ { "id": "b7c9d1e3-5f7a-4b9c-8d1e-3f5a7b9c1d2e", "automationType": "comment", "status": "pending", … }

tools/call queber_job_get
{ "jobId": "b7c9d1e3-5f7a-4b9c-8d1e-3f5a7b9c1d2e" }
→ { "status": "completed", "resultUrl": "https://www.reddit.com/r/SideProject/comments/1abc234/comment/ohe2p4q/",
  "resultData": { "reddit": { "comment": {
    "commentId": "ohe2p4q", "parentId": "ohd7k2m",
    "repliedTo": { "commentId": "ohd7k2m", "author": "quiet_reader" }, …
  } } }, … }
Надёжность

Повторы и обрывы связи

MCP-инструменты работают с тем же Queber Desktop, поэтому те же правила не дают повтору выполнить действие дважды. queber_app_status показывает relayState перед длинным пакетом.

Передавайте idempotencyKey

Инструменты, которые что-то создают или меняют, принимают аргумент idempotencyKey: от 1 до 200 латинских букв, цифр, точек, подчёркиваний, двоеточий или дефисов. Повторный вызов с тем же ключом вернёт первый результат, а не выполнит действие второй раз. Для каждого задания нужен новый ключ; ключ с другими символами отклоняется с ошибкой validation_error.

Читайте retryAfterSeconds

Неудачный вызов возвращает isError и JSON с полями code, message, retryable, когда код говорит, сработает ли тот же вызов позже, и retryAfterSeconds, когда время ожидания известно. После desktop_reconnecting или reddit_rate_limited подождите столько и вызовите инструмент снова с тем же idempotencyKey.

tools/call queber_job_schedule
{
  "profileId": "3f1a2b4c-5d6e-4f70-8a91-b2c3d4e5f607",
  "scheduledAt": "2026-08-13T07:00:00.000Z",
  …,
  "idempotencyKey": "post-2026-08-13-r-webdev-01"
}

isError: true
{
  "code": "desktop_reconnecting",
  "message": "Queber Desktop lost its connection and is reconnecting. Retry the request shortly; you do not need to restart the app.",
  "retryable": true,
  "retryAfterSeconds": 12
}
Нужна помощь?

Вопросы по интеграции MCP

Если подключение клиента, OAuth-авторизация, MCP-вызовы или выполнение через Queber Desktop работают не так, как ожидается, напишите в поддержку Queber или в Telegram.