Skip to main content
Glama

Schedule pin

create_schedule

Schedule a pin to publish at a future time.

    Use when the pin should go out later or when spreading many pins out
    after rate_limited; for an immediate publish use create_pin. Provide
    either image_url or asset_id, not both. The board is preflighted now,
    not at run time. A repeat call creates a second schedule, so check
    list_schedules before resending after a timeout.

    Returns the schedule with id and status "scheduled" (track it with
    get_schedule), or with dry_run the validation result. Fails with
    validation_error for a past or timezone-less run_at, board_* codes
    for an unpublishable board, and quota_exceeded when quota is spent.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYesPin title, at most 100 characters.
run_atYesPublish time as ISO 8601 with timezone, in the future, e.g. "2026-04-01T10:00:00Z".
dry_runNotrue runs every API check (account, board, media, quota, rate headroom) and returns the resolved payload without publishing anything.
asset_idNoUUID of an uploaded PinBridge asset, from upload_asset.
board_idYesPinterest board ID (numeric string), from list_boards.
link_urlNoDestination URL opened when the pin is clicked.
image_urlNoPublic URL of the image or video; Pinterest must be able to fetch it.
account_idYesUUID of a connected Pinterest account, from list_pinterest_accounts.
descriptionNoPin description, at most 800 characters.
cover_image_urlNoPublic cover image URL; video pins only.
cover_image_asset_idNoUploaded image asset UUID used as the video cover.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed13 schema fields changed
    • addedInput schema / properties / account_id / description
      Added value: +"UUID of a connected Pinterest account, from list_pinterest_accounts."
    • addedInput schema / properties / asset_id / description
      Added value: +"UUID of an uploaded PinBridge asset, from upload_asset."
    • addedInput schema / properties / board_id / description
      Added value: +"Pinterest board ID (numeric string), from list_boards."
    • addedInput schema / properties / cover_image_asset_id / description
      Added value: +"Uploaded image asset UUID used as the video cover."
    • addedInput schema / properties / cover_image_url / description
      Added value: +"Public cover image URL; video pins only."
    • changedInput schema / properties / description / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "maxLength": 800,
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / description / description
      Added value: +"Pin description, at most 800 characters."
    • addedInput schema / properties / dry_run / description
      Added value: +"true runs every API check (account, board, media, quota, rate headroom) and returns the resolved payload without publishing anything."
    • addedInput schema / properties / image_url / description
      Added value: +"Public URL of the image or video; Pinterest must be able to fetch it."
    • addedInput schema / properties / link_url / description
      Added value: +"Destination URL opened when the pin is clicked."
    • addedInput schema / properties / run_at / description
      Added value: +"Publish time as ISO 8601 with timezone, in the future, e.g. \"2026-04-01T10:00:00Z\"."
    • addedInput schema / properties / title / description
      Added value: +"Pin title, at most 100 characters."
    • addedInput schema / properties / title / maxLength
      Added value: +100
  2. Changed2 schema fields changed
    • addedInput schema / properties / dry_run
      Added value: +{
      +  "default": false,
      +  "title": "Dry Run",
      +  "type": "boolean"
      +}
    • removedInput schema / properties / idempotency_key
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "string"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "title": "Idempotency Key"
      -}
  3. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Goes well beyond annotations by disclosing non-idempotency ('A repeat call creates a second schedule'), preflight timing ('The board is preflighted now, not at run time'), dry_run behavior, and a categorized list of error codes (validation_error, board_*, quota_exceeded). This gives the agent a clear mental model of side effects and failure modes.

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?

Each sentence carries distinct information—purpose, usage, parameter constraint, behavior, idempotency, return value, and error modes. There is no fluff or repetition; the description is dense but well-organized and front-loaded with the core purpose.

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?

For a complex 11-parameter tool with no output schema, the description covers the return format (schedule with id and status, or dry_run validation result), all relevant error categories, the preflight nuance, and the image/asset exclusivity. The agent can confidently invoke this tool without additional context.

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 a critical constraint not present in the schema: 'Provide either image_url or asset_id, not both.' It also reinforces that run_at must be in the future and timezone-aware, which is already in the schema but repeated concisely. The added exclusivity rule earns a 4.

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?

The description states a specific verb and resource ('Schedule a pin to publish at a future time') and explicitly differentiates from the sibling create_pin ('for an immediate publish use create_pin'). The agent knows exactly what this tool does and when it applies.

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?

Provides explicit when-to-use guidance ('Use when the pin should go out later or when spreading many pins out after rate_limited') and names the alternative (create_pin). It also advises checking list_schedules before retrying after a timeout, addressing a common failure pattern.

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