
Company News
AWS Security Hub Adds Socket for Supply Chain Security
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.
@woyax/mcp-max-messenger
Advanced tools
MCP server for MAX Messenger — Russian national messenger by VK with 75M+ users. 21 tools: send and read messages, HTML/Markdown formatting, 5 button types (callback, link, contact, geo, message), send media (photo/video/audio/file), manage chats and memb
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.
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.
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.
| 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 |
| 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 |
| 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 |
| 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 |
| 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 |
5 button types supported: callback, link, message, request_contact, request_geo_location.
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"
| Variable | Required | Default | Description |
|---|---|---|---|
MAX_TOKEN | ✅ | — | Your MAX bot token |
MCP_TRANSPORT | ❌ | stdio | Transport: stdio or http |
MCP_PORT | ❌ | 3000 | Port for HTTP mode |
# Local stdio mode (default)
npx @woyax/mcp-max-messenger
# Remote HTTP mode
npx @woyax/mcp-max-messenger --transport http --port 3000
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
Authorization: <token> — no Bearer prefixhttps://platform-api.max.ruGET /chats returns group chats onlyget_updates — use the returned chat_id with all standard toolsremove_admin may return success: true without actually revoking rights — confirmed bug on MAX sideopen_app button type returns "Field 'webApp' cannot be null" — MAX API bugadd_members may fail with add.participant.privacy if the user has privacy mode enabledanswer_callback testing via n8n webhook workflowBuilt 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.
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.
FAQs
MCP server for MAX Messenger — Russian national messenger by VK with 75M+ users. 21 tools: send and read messages, HTML/Markdown formatting, 5 button types (callback, link, contact, geo, message), send media (photo/video/audio/file), manage chats and memb
We found that @woyax/mcp-max-messenger demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket is now in the AWS Security Hub Extended plan. Adopt it through AWS, apply committed spend, and block malicious open source packages.

Research
/Security News
Popular npm packages keyv and cacheable compromised.

Security News
A misconfiguration gave three Anthropic models internet access, and one, believing it was in a simulation, shipped a credential-stealing package to PyPI.