protogrid

Search / io.github.24repost-ru/24repost-mcp

24Repost

R1· needs a key

Cross-posting between Telegram, MAX and VK: routes, copy rules, history import, chatbots.

v1.0.1 · active · repository · website · descriptor JSON · versions

An agent can connect on its own if it already holds 24REPOST_MCP_TOKEN.Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.
Quality77new
Trust97of 100
Uptime, 30 days100%
Latency p501279 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "24repost-mcp": {
      "type": "http",
      "url": "https://my.24repost.ru/mcp",
      "headers": {
        "Authorization": "Bearer ${24REPOST_MCP_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http 24repost-mcp https://my.24repost.ru/mcp --header "Authorization: Bearer ${24REPOST_MCP_TOKEN}"
[mcp_servers.24repost-mcp]
url = "https://my.24repost.ru/mcp"
bearer_token_env_var = "24REPOST_MCP_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "24repost-mcp": {
      "type": "remote",
      "url": "https://my.24repost.ru/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:24REPOST_MCP_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "24repost-mcp": {
      "type": "http",
      "url": "https://my.24repost.ru/mcp",
      "headers": {
        "Authorization": "Bearer ${24REPOST_MCP_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=24repost-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbXkuMjRyZXBvc3QucnUvbWNwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7MjRSRVBPU1RfTUNQX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "24repost-mcp": {
      "type": "http",
      "url": "https://my.24repost.ru/mcp",
      "headers": {
        "Authorization": "Bearer ${24REPOST_MCP_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "24repost-mcp": {
      "httpUrl": "https://my.24repost.ru/mcp",
      "headers": {
        "Authorization": "Bearer ${24REPOST_MCP_TOKEN}"
      }
    }
  }
}
extensions:
  "24repost-mcp":
    enabled: true
    name: "24repost-mcp"
    type: streamable_http
    uri: "https://my.24repost.ru/mcp"
    headers:
      "Authorization": "Bearer ${24REPOST_MCP_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${24REPOST_MCP_TOKEN}. The registry never accepts secret values.

Quality 77 / 100new

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-06-18; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations41 of 41 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: route_pause (destructiveHint, idempotentHint); route_set_schedule (destructiveHint, idempotentHint); chatbot_show (destructiveHint, idempotentHint); …
  • warn
    tools.token_costabout 17,319 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 1 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

41 tools, about 17,319 tokens to load them all · tool set 6487f7796c11 · checked 2026-11-07 18:01 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-1d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://my.24repost.ru/mcp streamable-httpapi_key ${24REPOST_MCP_TOKEN}yes100%1279 ms2025-06-182026-11-07

Tools (41)

bot_constant_deleteУдаляет константу бота. Сценарии, где она подставлена, после этого не пройдут проверку, пока в них не заведут свою константу с тем же именем, — поэтому перед удалением стоит посмотреть usedIn в bot.constants.list.
bot_constant_setЗаводит или правит константу бота по имени: общее для всех сценариев бота значение, в тексте — {{const.имя}}. Открытой константе нужно значение. Скрытую (secret: true — ключ, пароль) можно завести, но её значение задаёт только владелец на странице бота в кабинете.
bot_constants_listread-onlyКонстанты бота: общие для всех сценариев этого бота значения (телефон, адрес, часы работы), подставляются в любом его сценарии как {{const.имя}}. Константа сценария с тем же именем перекрывает константу бота. У скрытой константы (ключ, пароль) значения в ответе нет — подставлять её можно только в запрос к сервису.
channel_statsread-onlyПоказывает статистику своего канала: сколько подписчиков сейчас и прирост за неделю, месяц и три месяца, ряд подписчиков по дням, сколько постов вышло за период, средние просмотры постов и лучшие посты (время, ссылка на пост в канале, просмотры или реакции). Площадки отдают разное: просмотры постов есть только у MAX, реакции — только у Telegram, подписчики и прирост — у обеих; чего площадка не даёт, в ответе пусто, а не ноль, и в поле countedAs сказано почему. Прирост пуст, пока ряд короче периода. Текстов постов в статистике нет.
chat_assign_botНазначает чату бота, который будет ходить в него во всех маршрутах чата: свой бот клиента или общий бот сервиса (botId = null). Свой бот должен быть той же площадки, что чат, работать и уже стоять в чате администратором.
chatbot_rulesread-onlyПравила конструктора чат-ботов для этого бота: какие бывают шаги, как ссылаться на шаги и переменные, пределы кнопок и текста его мессенджера, что конструктор не умеет, и маленький образец сценария. Звать перед тем, как собирать или править сценарий для chatbot.save.
chatbot_saveСохраняет сценарий чат-бота: новый (черновик) или правку существующего. Сценарий передаётся целиком, по схеме поля scenario. Перед записью он проверяется для площадки бота; если в нём есть ошибки, он не сохраняется, а ошибки возвращаются словами с номерами шагов. Сохранение не включает сценарий: включает chatbot.enable. Правка уже включённого сценария действует сразу.
chatbot_showread-onlyПоказывает один сценарий чат-бота целиком: состояние, ревизию, сам документ сценария (scenario), его пересказ словами (description), замечания проверки и константы бота (botConstants: общие для всех сценариев бота, подставляются как {{const.имя}}; своя константа сценария с тем же именем их перекрывает; у скрытых значения нет). Звать перед правкой существующего сценария: править нужно текущий документ, а ревизию передавать в chatbot.save.
chatbots_listread-onlyПоказывает сценарии чат-ботов: свои боты клиента и у каждого — сценарии с номером, названием, состоянием (draft — черновик, enabled — включён и бот отвечает по нему, withdrawn — снят) и ревизией. Без указания бота показывает все боты; с указанием — только этот. Звать первым, чтобы узнать номер бота и сценария для остальных действий с чат-ботами.
chatbot_statsread-onlyСтатистика сценария чат-бота за 7 и 30 дней: сколько раз подписчики дошли до каждого шага (button пустая) и сколько раз нажали каждую кнопку шага. Номера шагов и кнопок — как в документе сценария (chatbot.show).
chats_listread-onlyПоказывает чаты человека — каналы и группы, где он администратор и где есть наш бот. У каждого чата: номер, площадка, название, подключён ли бот с правами администратора (connectionState = active — можно пересылать), сколько маршрутов идёт из чата и в него. Звать первым, когда нужно найти нужный чат по названию.
group_createСоздаёт группу маршрутов — общее название для нескольких маршрутов в списках кабинета и бота. Можно сразу указать маршруты, которые в неё попадут. Название группы должно быть новым: без учёта регистра и пробелов по краям оно не должно совпадать с названием другой группы человека.
group_renameПереименовывает группу маршрутов. Маршруты в группе остаются в ней.
import_cancelОтменяет перенос истории по маршруту: подсчёт, ожидание выбора постов или перенос останавливается, уже перенесённые посты остаются в приёмнике. Отменённый перенос не продолжить — можно начать новый (уже перенесённое в него второй раз не попадёт).
import_pauseСтавит перенос истории по маршруту на паузу: мост закончит пост, который переносит, и остановится. Уже перенесённое остаётся, продолжить можно в любой момент — с того места, где остановились. Пока идёт подсчёт постов, паузу поставить нельзя: можно подождать или отменить.
import_resumeПродолжает перенос истории по маршруту после паузы — с того места, где остановились: уже перенесённые посты заново не переносятся.
import_showread-onlyПоказывает ход переноса истории по маршруту: считаем посты, идёт перенос, на паузе, закончен, остановлен или прервался; сколько постов нашли, перенесли, пропустили (правила маршрута, уже есть в приёмнике) и сколько не удалось; сколько примерно осталось. Если историю по маршруту не переносили, говорит об этом.
import_startНачинает перенос истории по маршруту: последние посты источника (10, 50, 100 или 500, не больше 500) переносятся в приёмник, чтобы новый канал не был пустым. Посты идут от старых к новым, по одному, по правилам маршрута (замены, фильтры, подпись) и без дублей: что уже есть в приёмнике, не переносится. Задержка и окна публикации маршрута к переносу не применяются. Сначала считается, сколько постов нашлось, — пока ничего не отправляется. Перенос можно поставить на паузу и отменить. Работает для источников Telegram и MAX; по одному маршруту — один перенос за раз. Доступен на платных тарифах. Если перенос из Telegram не начался, потому что сервис ещё не видел ни одного поста канала, запустите его снова, назвав номер последнего поста канала (число из ссылки на пост). Выборочный перенос (selected) делается в кабинете или боте: человек сам отмечает посты.
notifications_showread-onlyПоказывает, о чём бот пишет человеку и куда: виды уведомлений по категориям (обязательные — с причиной, почему их нельзя выключить), Telegram, MAX или оба, часы тишины и пояс.
route_change_targetМеняет чат-приёмник маршрута: копии пойдут в другой чат, история доставки сохраняется. Новый приёмник — чат человека, где наш бот администратор; не источник маршрута, не чат, куда из этого источника уже идёт другой маршрут,; стена сообщества ВКонтакте — только если публикация на стену открыта. Источник маршрута не меняется: для другого источника создают новый маршрут.
route_comments_stateread-onlyПоказывает, включён ли у маршрута постов перенос комментариев «туда» (под копию в приёмнике) и «обратно» (под пост источника), подходит ли маршрут (оба конца — каналы Telegram или MAX) и что мешает: нет группы обсуждения у канала Telegram, бота нет в ней. Звать перед включением.
route_configureМеняет основные настройки маршрута: своё название, подпись автора, заголовок-ссылку на канал, пересылку собственных сообщений бота. Меняются только переданные поля, остальные остаются как были. Текст до и после копии, правила, приёмник и группа настраиваются другими действиями.
route_createСоздаёт маршрут пересылки из одного чата человека в другой и сразу включает его. Оба чата должны быть чатами человека, где наш бот назначен администратором; источник и приёмник должны различаться. Стена сообщества ВКонтакте может быть только источником. Если такой маршрут уже есть, он просто включается. Учитываются предел тарифа и условия бесплатной версии: при отказе в ответе сказано, что не так.
route_pauseСтавит маршрут на паузу: пересылка прекращается, настройки и правила остаются, включить можно в любой момент. Если маршрут работает в обе стороны, на паузу встаёт вся пара целиком.
route_resumeВключает маршрут: он начинает пересылать новые сообщения. Если маршрут работает в обе стороны, включается вся пара целиком. Настройки и правила не меняются.
route_set_ad_filterВключает или снимает фильтр рекламы маршрута: сообщения с признаками маркировки рекламы не пересылаются. Признаки: идентификатор рекламы — слово «erid»; метка «#реклама»; метка «#ad». Это набор стоп-слов с пометкой «Фильтр рекламы»; стоп-слова самого человека фильтр не затрагивает. Платная возможность тарифа, как и стоп-слова: снять фильтр можно на любом тарифе, включить — только на платном. Если то же слово уже стоит среди стоп-слов человека, фильтр не включится, пока одно из них не убрано.
route_set_attachmentsЗадаёт, что делать с вложениями маршрута по видам (фото, видео, аудио, голосовое, файл, стикер и другие): пересылать как есть, снять вложение (остальное сообщение уходит) или не пересылать сообщение с таким вложением вовсе. Вид, не названный в списке, пересылается как есть. Прежние правила вложений заменяются переданным списком; стоп-слова, замены и остальные правила остаются как есть, поэтому сначала прочитайте нынешние правила (route.show) и передайте их вместе с изменениями. Пустой список пересылает вложения всех видов.
route_set_commentsВключает или выключает у маршрута постов перенос комментариев: «туда» — комментарии под постом источника уходят под его копию в приёмнике с именем автора, «обратно» — комментарии под копией уходят под пост источника. Только текст; ответ остаётся ответом; правка и удаление доходят; правила копии маршрута действуют. Только между каналами Telegram и MAX. Что передано, то и меняется.
route_set_delayЗадаёт задержку публикации маршрута: копия выходит в приёмнике не сразу, а через указанное время после появления оригинала. Пока копия ждёт, правка оригинала меняет её, а удаление оригинала отменяет. Ноль снимает задержку. Не больше суток; ждущая копия лежит в очереди зашифрованной. Если у маршрута есть окна публикации, задержка прибавляется к моменту прихода, а потом момент сдвигается к открытию окна.
route_set_frame_textЗадаёт текст, который встаёт перед копией и после неё (например, «Новый пост в нашем канале» со ссылкой). Платная возможность тарифа: снять текст можно на любом тарифе, задать новый — только на платном. Текст — в лёгкой разметке, до 1000 знаков.
route_set_groupПереносит один или несколько маршрутов в существующую группу маршрутов либо выводит их из группы (groupId = null). Новую группу сначала создают действием group.create.
route_set_replacementsЗадаёт замены маршрута: замены текста (найти и заменить; пустая замена удаляет найденное — так убирают «подвал» чужого поста) и подмену ссылок. Замены применяются по порядку списка: одна может подготовить текст для следующей. Прежние замены заменяются переданными; стоп-слова, старт-слова, фильтры вложений и остальные правила остаются как есть, поэтому сначала прочитайте нынешние замены (route.show) и передайте их вместе с изменениями. Пустой список снимает все замены.
route_set_rulesЗадаёт правила маршрута целиком: стоп-слова и старт-слова (платная возможность тарифа), замены текста и ссылок, фильтры вложений, очистку меток utm. Текст до и после копии в правилах не задаётся — для него есть действие route.set_frame_text. Прежний набор заменяется переданным полностью, поэтому сначала прочитайте текущие правила (route.show) и передайте их вместе с изменениями. Порядок правил — порядок применения. Если меняется только одна группа правил, проще и безопаснее действие для неё: слова, замены, вложения, очистка меток или фильтр рекламы.
route_set_scheduleЗадаёт окна публикации маршрута целиком: в какие дни недели и часы приёмник принимает копии (allow) и когда публиковать нельзя (quiet, тихие часы: отложить до конца или не публиковать). Копия, пришедшая вне окна, ждёт открытия; тихий час старше разрешения. Время — местное время приёмника. Прежний набор заменяется переданным полностью, поэтому сначала прочитайте нынешний (route.show). Копия ждёт открытия в очереди зашифрованной не дольше трёх суток: пост, которому до открытия окна больше трёх суток, не публикуется. Пустой список снимает расписание.
route_set_topicsНастраивает маршрут для групп с темами (форумов Telegram) и групп вообще: из каких тем источника брать сообщения (по умолчанию — из всех), в какую тему приёмника писать (по умолчанию — в общую), подписывать ли копию названием темы, брать ли из группы только сообщения администраторов. Что передано, то и меняется. Ответ на копию уходит ответом на исходное сообщение — Telegram кладёт его в ту же тему.
route_set_two_wayВключает или выключает пересылку в обе стороны для маршрута. Включение заводит встречный маршрут (из приёмника в источник) с теми же настройками и в том же состоянии; выключение снимает встречный, если у него нет своих правил. Встречный маршрут занимает место в пределе тарифа, как обычный; стена сообщества ВКонтакте встречным приёмником — только если публикация на стену открыта.
route_set_utmВключает или выключает очистку меток utm у маршрута: метки utm_source, utm_medium и подобные убираются из всех ссылок копии (из видимого текста и из адреса под словами), остальное в адресе остаётся. Нужна, когда клиент не хочет переносить в свой канал чужую статистику переходов. Остальные правила маршрута остаются как есть.
route_set_wordsЗадаёт стоп-слова и старт-слова маршрута (заводить новые слова — платная возможность тарифа, убрать слова можно на любом тарифе). Прежние слова заменяются переданными; слово, которое уже стояло, остаётся как было, со своим способом сравнения; остальные правила маршрута — замены, вложения, выключенные слова — остаются как есть. Одно и то же слово не может быть и в стоп-, и в старт-словах: такие сообщения не пересылались бы никогда.
route_showread-onlyПоказывает один маршрут целиком: откуда и куда, включён ли, настройки (название, подпись автора, текст до и после копии, задержка в секундах), расписание публикации (окна и тихие часы по дням недели), состояние доставки и все правила в порядке применения (стоп-слова, старт-слова, замены, фильтры вложений).
routes_listread-onlyПоказывает маршруты пересылки человека и его группы маршрутов. У каждого маршрута: номер, название, откуда и куда идёт, включён ли (state = active) или на паузе (paused), пересылка ли в обе стороны (twoWay), доставляет ли (transport) и сколько доставлено сегодня (health). Звать, когда нужно найти маршрут по названию или чатам.
topics_listread-onlyПоказывает темы группы-форума Telegram, которые видел бот: номер и название. Тема появляется в списке после первого сообщения в ней (или когда её создали либо переименовали при боте). «0» — общая тема. Звать перед выбором тем для маршрута.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.24repost-ru/24repost-mcp",
  "icons": [
    {
      "src": "https://24repost.ru/assets/apple-touch-icon.png",
      "sizes": [
        "180x180"
      ],
      "mimeType": "image/png"
    },
    {
      "src": "https://24repost.ru/assets/logo.svg",
      "sizes": [
        "any"
      ],
      "mimeType": "image/svg+xml"
    }
  ],
  "title": "24Repost",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://my.24repost.ru/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "isRequired": true,
          "description": "Bearer access key from the 24Repost cabinet, section «Ключи доступа»: Bearer aibo_live_…"
        }
      ]
    }
  ],
  "version": "1.0.1",
  "repository": {
    "url": "https://github.com/24repost-ru/24repost-mcp",
    "source": "github"
  },
  "websiteUrl": "https://24repost.ru/?ot=d_mcp",
  "description": "Cross-posting between Telegram, MAX and VK: routes, copy rules, history import, chatbots."
}