Skip to main content
Glama
bulatko

vk-mcp-server

by bulatko

Reply as the community

vk_messages_send

Send a VK community message to a user, with optional reply and attachment, and get the new message_id. Only recipients who contacted the community or permitted messages can receive it.

Instructions

Send a message from your community to a person. VK only delivers to people who have written to the community or allowed it to message them. This reaches a real person: show the user the text before sending. Returns the new message_id.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYesMessage text
peer_idYesUser ID of the recipient
reply_toNoOptional ID of the message this answers, to quote it
attachmentNoOptional media, e.g. photo-1_2 or doc-1_2, comma-separated

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
message_idYesID of the sent message

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.8.2

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so safety is largely covered. The description earns credit beyond that by disclosing the delivery-restriction behavior, the fact that a real human receives the message, the required user confirmation step, and the return value (new message_id). It does not cover failure modes or rate limits, so it falls just short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences that are front-loaded with the core action, then the delivery constraint, then the human-impact warning and return value. No filler, and each sentence carries information the agent needs before invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with annotations plus an output schema, the description covers the essential gaps: recipient eligibility, the confirmation requirement, and the returned identifier. Error handling and throttling behavior are absent, but the omission is minor given the structured data available and the presence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so peer_id, message, reply_to and attachment are already documented, and the description adds no further syntax or semantic detail for any of them. The only indirect hint is 'the text' and the quoted-reply concept implied by 'answers', which is weaker than the schema's own wording. Baseline 3 is appropriate when the schema carries the full parameter burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the sender's identity ('Send a message from your community to a person'), which distinguishes it from the read-oriented siblings like vk_messages_get_history and vk_messages_get_conversations. An agent can identify this as the only outbound-send tool in the set without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete eligibility condition for when this tool will actually work ('VK only delivers to people who have written to the community or allowed it to message them') and a workflow precondition ('show the user the text before sending'). It stops short of naming an alternative tool or explaining what to do when the recipient is not eligible, but the context it provides is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.