MCP server for Max messenger (formerly VK Teams) — send/read messages, manage chats via Model Context Protocol
Server has 14 tools with complete input schemas and descriptions. Naming follows verb_noun convention (send_message, read_messages, list_chats, etc.). Descriptions are present and adequate (avg ~100 chars), but lack LLM-optimized guidance on WHEN to use each tool vs. similar ones. Parameters are typed and mostly described, but lack constraints (enums, ranges, patterns). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Missing tool annotations (readOnlyHint, destructiveHint) despite having tools with clear risk profiles (delete_message, leave_chat are DESTRUCTIVE/IRREVERSIBLE but unmarked).
Delete a message from a Max chat.
Edit an existing message in a Max chat.
Get information about the bot itself.
Get detailed information about a Max chat.
List members of a Max chat.
Get the currently pinned message in a Max chat.
Get recent events/updates via long polling. Returns new messages, edits, callbacks, etc.
No output schemas documented. LLMs cannot predict response structure (fields, types, nesting). Forces agents to guess what data is available after each call.
Missing tool annotations. delete_message, leave_chat, edit_message, pin_message are marked DESTRUCTIVE/IRREVERSIBLE/WRITE in metadata but lack destructiveHint/idempotentHint in tool definition. Agents cannot distinguish safe-to-retry from irreversible operations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Leave a Max group chat.
List group chats the bot is a member of.
Pin a message in a Max chat.
Read messages from a Max chat. Returns up to 100 messages.
Send a text message to a Max chat or user. Supports markdown/html formatting and replies.
Send a typing indicator to a Max chat. The indicator disappears after ~10 seconds or when a message is sent.
Unpin the pinned message in a Max chat.
Descriptions lack WHEN-to-use guidance. 'Read messages from a Max chat' does not explain when to call read_messages vs get_updates, or what data structure is returned. LLMs cannot disambiguate similar tools.
No input validation or constraint documentation. 'count' parameter accepts 1-100 but description does not state range. 'format' enum is declared but no default behavior documented. LLMs may pass invalid values.
Error handling is minimal. _api() raises RuntimeError with message but no recovery guidance. LLMs receive 'Max API 400 [invalid_chat_id]: Chat not found' with no hint to call list_chats() first or try a different ID.