Skip to main content
Glama
woyaxnini

mcp-max-messenger

by woyaxnini

mcp-max-messenger

npm version License: MIT + Commons Clause

The first MCP server for MAX Messenger โ€” Russia's national messenger by VK (75M+ users).

Connect AI clients (Claude Desktop, Cursor, n8n, and any MCP-compatible app) to MAX: send and read messages, manage chats and members, send media, handle button presses, format with HTML/Markdown โ€” all through the open Model Context Protocol standard.

21 tools with full coverage of MAX Bot API.


Why MAX?

  • ๐Ÿ‡ท๐Ÿ‡บ National messenger mandated for pre-installation on all smartphones in Russia (September 2025)

  • ๐Ÿ“ฑ 75M+ registered users

  • ๐Ÿข Recommended by the Ministry of Digital Development for government agencies and large enterprises

  • ๐Ÿค– Full Bot API with official SDKs: TypeScript, Python, Go, Java, PHP


Related MCP server: Straight Connect

Quick Start

Prerequisites

  • Node.js 18+

  • A MAX bot token (create a bot at max.ru)

Claude Desktop / Cursor (stdio mode)

Add to your Claude Desktop config:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "max-messenger": {
      "command": "npx",
      "args": ["-y", "@woyax/mcp-max-messenger"],
      "env": {
        "MAX_TOKEN": "YOUR_BOT_TOKEN"
      }
    }
  }
}

Restart Claude Desktop. The MAX tools will appear automatically.

Remote / Hosted mode (HTTP)

MAX_TOKEN=YOUR_BOT_TOKEN MCP_TRANSPORT=http MCP_PORT=3000 npx @woyax/mcp-max-messenger

Connect any MCP client to http://your-server:3000/mcp.


Available Tools (21)

Messages

Tool

Description

get_messages

Read messages from a chat (by chat_id or message_ids)

send_message

Send a message with text, HTML/Markdown, inline keyboard, media attachments

edit_message

Edit message text and attachments

delete_message

Delete a message

pin_message

Pin a message in a chat

unpin_message

Unpin the currently pinned message

Media

Tool

Description

send_media

Upload and send photo, video, audio, or file by URL

send_action

Show typing indicator, "sending photo/video/audio/file", mark as read

Chats

Tool

Description

get_bot_info

Bot info: name, ID, username, description

get_chats

List all group chats the bot participates in

get_chat

Full chat details: participants, pinned message, owner

edit_chat

Rename chat, change description or icon

Members

Tool

Description

get_chat_members

List chat members with roles

get_admins

List chat administrators with permissions

set_admin

Grant admin rights to a member

remove_admin

Revoke admin rights

add_members

Add users to a group chat

remove_member

Remove a user from a group chat

Events

Tool

Description

get_updates

Incoming events: messages, button presses, new dialogs (long polling)

answer_callback

Respond to inline button press: show notification or update message

Buttons (via send_message attachments)

5 button types supported: callback, link, message, request_contact, request_geo_location.


Usage Examples

Once connected to Claude Desktop, use natural language:

"Send a message to chat 123456789: 'The meeting starts in 10 minutes'"

"Send an approval request with Approve/Reject buttons to the team chat"

"Show me the last 10 messages from the announcements chat"

"Send this photo to the chat: https://example.com/image.jpg"

"Who are the members of the sales group? Make Alex an admin."

"Check for new incoming messages and button presses"


Configuration

Environment Variables

Variable

Required

Default

Description

MAX_TOKEN

โœ…

โ€”

Your MAX bot token

MCP_TRANSPORT

โŒ

stdio

Transport: stdio or http

MCP_PORT

โŒ

3000

Port for HTTP mode

Command-line Flags

# Local stdio mode (default)
npx @woyax/mcp-max-messenger

# Remote HTTP mode
npx @woyax/mcp-max-messenger --transport http --port 3000

Architecture

Two independent layers โ€” tools work identically in both modes:

src/
โ”œโ”€โ”€ core/               # Business logic โ€” shared between modes
โ”‚   โ”œโ”€โ”€ max-client.ts   # MAX API HTTP client
โ”‚   โ”œโ”€โ”€ types.ts        # TypeScript types for MAX API
โ”‚   โ””โ”€โ”€ tools/
โ”‚       โ”œโ”€โ”€ bot.ts      # get_bot_info
โ”‚       โ”œโ”€โ”€ chats.ts    # get_chats, get_chat, edit_chat, send_action
โ”‚       โ”œโ”€โ”€ messages.ts # send/get/edit/delete/pin/unpin, send_media
โ”‚       โ”œโ”€โ”€ members.ts  # get_chat_members, get_admins, set/remove_admin, add/remove_members
โ”‚       โ””โ”€โ”€ updates.ts  # get_updates, answer_callback
โ”œโ”€โ”€ transports/         # Transport layer โ€” selected at runtime
โ”‚   โ”œโ”€โ”€ stdio.ts        # Local mode (Claude Desktop, Cursor)
โ”‚   โ””โ”€โ”€ http.ts         # Remote mode (Streamable HTTP)
โ””โ”€โ”€ index.ts            # Entry point: transport selection

MAX API Notes

  • Authorization: Token passed as Authorization: <token> โ€” no Bearer prefix

  • Base URL: https://platform-api.max.ru

  • Rate limit: 30 requests/second

  • Group chats: GET /chats returns group chats only

  • Personal dialogs: Accessible via get_updates โ€” use the returned chat_id with all standard tools

  • Media upload: Two-step process (upload โ†’ send). Audio/video tokens come from the upload step, not the file transfer

  • HTTP transport: Uses Streamable HTTP (SSE deprecated since MCP SDK 1.10.0)

Known MAX API Issues

  • remove_admin may return success: true without actually revoking rights โ€” confirmed bug on MAX side

  • open_app button type returns "Field 'webApp' cannot be null" โ€” MAX API bug

  • add_members may fail with add.participant.privacy if the user has privacy mode enabled


Roadmap

  • HTTP mode testing on VPS with n8n integration

  • Hosted MCP service (connect by URL, no local install)

  • Webhook support for real-time event handling

  • answer_callback testing via n8n webhook workflow



Author & Support

Built by Oleg Alekseev โ€” ERP/AI integration architect.

Need help integrating AI agents with your ERP, CRM, or MAX? Custom MCP servers, n8n workflows, AI automation โ€” contact me.


License

MIT + Commons Clause ยฉ Oleg Alekseev

Free to use for personal and corporate purposes. Selling as a hosted service requires author's permission. See LICENSE for details.

Install Server
A
license - permissive license
A
quality
F
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/woyaxnini/mcp-max-messenger'

If you have feedback or need assistance with the MCP directory API, please join our Discord server