Skip to main content
Glama

Tailwind App

save_pins_to_board

Use this when the user wants existing Pinterest Pins added to one of their boards — "add these to my board", "fill this board with X", "build me a board about X". Saves Pins that already exist on Pinterest onto the board (a repin); it does not create new Pins from the user's own images, which is create_post.

Billing: saving onto a board create_board made in the last hour is free for up to 50 Pins in total, across calls. Any other save is billed like scheduling a Pin: one credit per saved Pin on credit plans, or one post from the plan's post allowance. A save the plan cannot cover is refused with nothing saved; call get_account_usage first when saving many Pins to an existing board.

This is the last step of build-a-board-about-X: create_board → get_recommended_pins for that new boardId → save_pins_to_board with the ids the user picked. Show the user the recommended Pins and let them choose before calling this, unless they have already said to add everything.

Returns savedCount and failedCount. A Pin that could not be saved — usually deleted, or a boardId that does not exist — is counted in failedCount rather than failing the call, so a result of savedCount 0 is a complete failure even though the call succeeded. Which Pins failed is not reported, so re-read the board if the user needs to know.

Do NOT retry this call after a timeout or an unclear result. Pinterest treats a repeat save as a second Pin, so a retry duplicates whatever already landed; re-read the board instead. For the same reason, do not pass the same Pin id twice in one call. Re-running get_recommended_pins is safe — it excludes Pins already saved to the board — so use it, not a blind retry, to find what is still missing. Keep batches to a few dozen ids — a large batch of slow saves can still time out with a 504, and saves already in flight are not cancelled, so re-read the board rather than retrying blind. If the user did not say which Pinterest account to use and list_accounts returns more than one, ask the user which account to use before calling this — do not choose for them.

Input Schema

NameRequiredDescriptionDefault
pinIdsYesNumeric Pinterest Pin IDs to save, e.g. the ids from get_recommended_pins — never a Pin URL. Must not contain duplicates.
boardIdYesNumeric Pinterest board ID from list_boards — never a board name or URL
accountIdYesNumeric Tailwind account ID returned by list_accounts

Output Schema

NameRequiredDescriptionDefault
savedCountYesPins saved onto the board
failedCountYesPins that could not be saved. Which ones is not reported.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the billing rule (free within an hour of create_board up to 50 Pins, otherwise one credit/post per Pin, with all-or-nothing refusal), the partial-failure semantics of savedCount/failedCount, and that ids of failed Pins are not reported. It also warns that the call is effectively non-idempotent on retry (Pinterest treats a repeat save as a second Pin) and that a 504 timeout does not cancel in-flight saves.

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?

Front-loads the trigger and the disambiguation, then sequences billing, workflow, return semantics and retry hazards. Each paragraph carries actionable content, but the billing and retry sections are long prose that could be compressed into tighter bullets without losing meaning.

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?

An output schema exists, yet the description still explains the one non-obvious thing it can't convey statically: savedCount 0 with a successful call is a total failure. Combined with account-ambiguity handling, batch sizing and the retry prohibition, an agent has everything needed to call this safely.

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 adds real meaning on top: pinIds should come from get_recommended_pins, must not contain duplicates, and should be kept to a few dozen per call despite the 50-id maximum. boardId's origin in create_board is also reinforced by the workflow paragraph.

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 (saving existing Pinterest Pins onto a board, a repin) and explicitly distinguishes it from create_post, which makes new Pins from the user's own images. Sibling differentiation is unambiguous.

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 literal user phrasings that should trigger it, names the alternative (create_post) and when not to use it, lays out the create_board → get_recommended_pins → save_pins_to_board sequence, and tells the agent to confirm selection with the user before calling. It also says to call get_account_usage first for large saves to an existing board, and to ask which account when list_accounts returns several.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources