yandex-messenger-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_chatsA | Список чатов с метаданными (последнее сообщение, флаг непрочитанных), отсортированный по свежести. Текст последнего сообщения по умолчанию НЕ отдаётся (только метаданные) - включите include_last_message_text, если он действительно нужен. |
| get_historyA | Страница сообщений конкретного чата с пагинацией по курсору. |
| get_messageA | Одно сообщение по chat_id + message_id (message_id = timestamp в микросекундах) ЛИБО по join-ссылке. Без загрузки истории. Возвращает обогащённое сообщение и детальные реакции/прочтения. |
| get_message_contextA | Окно сообщений вокруг метки: N сообщений до и N после указанного message_id (timestamp в микросекундах). |
| get_threadB | Сообщения треда как микро-чата. Адресуется либо готовым thread_id, либо парой chat + message_id родительского сообщения (деривация thread_id, «Обсудить»). Пустой тред (ещё не материализован) возвращается с empty:true - первое сообщение в него отправляется через send_message с этим thread_id как ChatId. |
| list_reactionsA | Полный список «кто и когда» по сообщению: реакции (сгруппированы по типу, actors_complete:true - ВСЕГДА полный список, в отличие от get_history/get_message_context/get_thread, где актёры реакций могут быть усечённым сиблингом агрегата) и прочтения. Стоит ДВА WS-вызова (UserReactions + UserReads/Mode:1, §17.12) - дороже сиблингов, зато без обрезки. |
| searchA | Поиск по сообщениям, пользователям и чатам через HTTP registry. |
| send_messageA | Отправка текстового сообщения в два шага: без confirm возвращает превью (draft) и НЕ отправляет; с confirm:true и confirm_token из превью отправляет. Отправка необратима, поэтому чат и текст на шаге confirm сверяются с подтверждёнными; расхождение отклоняется. |
| send_fileA | Отправка картинки или файла в два шага: без confirm возвращает превью (draft: имя/размер/тип/чат) и НЕ заливает байты; с confirm:true и confirm_token из превью заливает (3 шага §12.1) и отправляет. Отправка необратима, поэтому чат и файл на шаге confirm сверяются с подтверждёнными; расхождение отклоняется. Тип определяется по расширению (image или file); voice/gallery не отправляются (только чтение). После отправки сообщение читается обратно по file_id и вложение скачивается download_attachment. |
| set_reactionA | Ставит или снимает реакцию на сообщение ОДНИМ вызовом, без confirm (реверсибельно). type - целочисленный id реакции (артворк, НЕ emoji) из поля reactions прочитанного сообщения. Тип валидируется по карте ДО отправки: неизвестный отвергается на входе и на провод не уходит. remove:true снимает ранее поставленную реакцию тем же инструментом. |
| mark_read | Отмечает чат прочитанным ОДНИМ вызовом, без confirm (безобидно). Без message_id отмечает прочитанным до самого свежего сообщения (тянет последнюю страницу истории). Семантика маркера (SeenMarker) подтверждена живьём: обнуляет непрочитанное (form_status: verified в выдаче). |
| pin_messageA | Закрепляет или открепляет сообщение ОДНИМ вызовом, без confirm (легко откатить). С message_id закрепляет это сообщение; без message_id открепляет. Семантика Pin.Timestamp подтверждена живьём (form_status: verified). |
| delete_message | Удаление своего сообщения в два шага: без confirm возвращает превью удаляемого (draft, автор/время/текст) и НЕ удаляет; с confirm:true и confirm_token из превью удаляет. Удаление необратимо, поэтому чат и message_id на шаге confirm сверяются с подтверждёнными; расхождение отклоняется. Удаление чужого сообщения отклоняет сервер. После удаления сообщение читается с deleted:true. |
| edit_messageA | Правка своего сообщения в два шага: без confirm возвращает превью «было -> станет» (draft) и НЕ правит; с confirm:true и confirm_token из превью правит. Правка необратима, поэтому чат, message_id и new_text на шаге confirm сверяются с подтверждёнными; расхождение отклоняется. Правку чужого сообщения отклоняет сервер. После правки сообщение читается с новым текстом и непустым LastEditTimestamp. |
| get_pollA | Читает опрос по chat + message_id (message_id = timestamp в микросекундах), без confirm. Возвращает вопрос (title), варианты (answers, с title/votes и, для не-анонимного опроса, voters - кто голосовал), лимит выбора (max_choices), мой выбор (my_choices), признак анонимности (is_anonymous), число проголосовавших (voted_count) и результаты (results). У анонимного опроса сервер скрывает список голосующих даже по явному запросу - voters_hidden:true, доступен только агрегат и свой выбор. Признак «это опрос» виден полем is_poll (в обычной выдаче сообщения - kind:poll). Если сообщение не опрос - статус not_a_poll. |
| vote_in_pollA | Голос в опросе в два шага (draft->confirm). Форма Vote{ChatId,Timestamp,Action:0,Choices} подтверждена живьём (2026-07-17, commit_status:1 FULLY_COMMITTED), включая смену выбора: повторная отправка ЗАМЕНЯЕТ голос, choices - ПОЛНЫЙ набор (несколько вариантов - все индексы в одном choices). Без confirm возвращает draft и НЕ голосует; с confirm:true и confirm_token голосует. Confirm сохранён, потому что сам факт голоса необратим (voted_count растёт, в не-анонимном опросе голосующий попадает в список голосовавших); отменить голос до нуля протоколом не подтверждено. Choices на шаге confirm сверяются с подтверждёнными. После голоса проверяйте myChoices через get_poll. |
| download_attachmentA | Скачивает вложение по file_id в папку загрузок (/root/.config/yandex-messenger-mcp/downloads) и возвращает локальный путь. |
| join_to_threadA | Подписка на тред по thread_id (§17.10). Это вступление в тред, не создание и не отправка. Легко откатывается leave_thread, поэтому confirm не требует. |
| leave_threadA | Выход из треда по thread_id (§17.10). Отписка; ничего не разрушает, confirm не требует. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/conarti/yandex-messenger-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server