Skip to main content
Glama
aymandakirgh

pinterest-mcp

by aymandakirgh

Register a video upload

pinterest_register_media

Registers a video upload to receive one-time S3 form fields, then POST the video and use the media_id to create a Pinterest pin.

Instructions

Step 1 of video pin creation: register an upload and receive one-time S3 form fields. POST the video to upload_url with those upload_parameters as multipart form fields, poll pinterest_get_media until status is 'succeeded', then pass the media_id to pinterest_create_pin with source_type 'video_id'. Scope: pins:write.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
media_typeYesOnly 'video' is supported by the v5 media endpoint.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the write/non-repeatable/open-world profile is covered. The description adds genuinely new behavior: credentials are one-time, require a multipart POST to an external S3 endpoint, and progress must be confirmed by polling another tool. It stops short of describing credential expiry timing or failure/retry behavior, so not 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.

Conciseness4/5

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

One dense sentence front-loads the step number and outcome, then chains the follow-up actions with zero filler. It is slightly run-on and would read better split into two sentences, but every clause carries actionable 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?

With no output schema, the description compensates by naming what comes back (one-time S3 form fields / upload_url / upload_parameters) and how to use it. Combined with the scope note and the poll-then-create handoff, an agent has everything needed to complete the video upload workflow without guessing.

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?

Only one parameter (media_type, const 'video') and schema coverage is 100%, so the schema fully documents the input; the description adds nothing about it. Baseline 3 applies. The only extra semantics, source_type 'video_id' and the S3 fields, belong to downstream tools rather than this schema.

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+resource ('register an upload') and immediately positions it as 'Step 1 of video pin creation', distinguishing it from the read/list siblings and from pinterest_create_pin. An agent knows exactly what this call produces: one-time S3 form fields.

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?

Gives the full when-and-what-next chain: POST the video to upload_url with the returned upload_parameters, poll pinterest_get_media until status is 'succeeded', then hand media_id to pinterest_create_pin with source_type 'video_id'. It also names the required scope (pins:write), so an agent can pre-check authorization.

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