Skip to main content
Glama
askads

VK Ads MCP

Загрузить изображение

upload_image

Uploads JPEG or PNG images to VK Ads media library and returns an id and variants for banner creation.

Instructions

Загружает изображение JPEG или PNG в медиатеку VK Рекламы (multipart POST v2/content/static.json) и возвращает его id и variants. Этот id передаётся в create_banner как content.<слот>={"id": }; какие слоты нужны, зависит от формата (package) группы. Размер картинки должен подходить слоту: например, image_600x600 принимает не шире 600 px, иначе create_banner получит bad_width. Байты передаются base64 без префикса data:, вместе с шириной и высотой картинки в пикселях. При сетевой ошибке или 5xx загрузка могла пройти — не повторять вслепую.

Input Schema

NameRequiredDescriptionDefault
widthYesШирина изображения в пикселях.
heightYesВысота изображения в пикселях.
imageBase64YesИзображение JPEG/PNG в base64, без префикса data:. Не больше 5 МБ после декодирования.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.1

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare non-readonly, open-world, non-idempotent, non-destructive. The description adds real behavioral context beyond that: the multipart POST transport, the returned id/variants, the failure mode bad_width produced by oversized images, and the critical warning that a network error or 5xx may still mean the upload succeeded, so blind retries are unsafe.

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?

Front-loads what the tool does and what it returns, then chains the downstream usage, then the sizing constraint, then the retry hazard. Five dense sentences with no filler; every clause carries operational information.

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

Completeness5/5

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

There is no output schema, and the description compensates by naming the return fields (id, variants). For a 3-parameter upload tool with annotations covering safety, the description supplies the remaining essentials: transport, output, downstream wiring, size constraint, and retry semantics.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description still adds value by tying width/height to slot constraints (e.g., the 600 px limit for image_600x600) and reinforcing that base64 must omit the data: prefix. It does not add much beyond the schema for individual fields, but the slot-dimension relationship is genuinely new meaning.

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 (uploads) and resource (JPEG/PNG image into VK Ads media library), names the underlying endpoint (multipart POST v2/content/static.json), and describes the return value (id and variants). It is clearly distinguishable from siblings like create_banner, which it explicitly feeds into.

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

Usage Guidelines5/5

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

Explains exactly how to consume the result: pass the id into create_banner as content.<slot>={'id': <id>}, and notes the required slots depend on the group's package format. It also gives concrete sizing guidance (image_600x600 rejects wider than 600 px → bad_width) and an explicit when-not-to-act rule: do not retry blindly after a network error or 5xx.

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