Skip to main content
Glama

Tailwind App

generate_pins_from_url

Use this when the user wants Tailwind's AI to create Pin drafts in Tailwind from a web page (a blog post, product page, or article URL). Asynchronous and metered: each generation spends the user's plan credits by design tier (approximately 3 for basic, 7 for premium, 1 for no-template/photo-only — resolved server-side), takes 1-3 minutes, and returns a generation id to poll with get_generation_status. Takes an accountId from list_accounts. Once the status is success, the drafts appear in list_posts (status draft) carrying a matching generationId. Calling this again for the same URL while a generation is in flight returns the SAME generation with deduplicated: true and charges nothing — but repeating the call after it completes starts and charges a NEW generation, so poll before retrying. 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
urlYesThe web page to generate Pins from (http/https, max 2048 characters). Query parameters and fragments are ignored — variants of one page count as the same URL.
titleNoDisplay name for this generation source in the user's Tailwind dashboard (max 256 characters). Defaults to the URL.
keywordsNoUp to 10 keywords to guide the generated Pin copy
accountIdYesNumeric Tailwind account ID returned by list_accounts
designTierNoDesign tier for the generated Pins (default: basic). basic = template designs (~3 credits), premium = AI-designed images (~7 credits), no-template = the page's own photos only (~1 credit). Ignored when the URL already has a SmartPin on this account — its stored configuration is reused.
premiumStyleNoVisual style for premium designs. Required when designTier is "premium"; must be omitted otherwise.

Output Schema

NameRequiredDescriptionDefault
generationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say readOnly=false, idempotent=false, openWorld=true; the description goes far beyond by disclosing that the call is asynchronous, metered with per-tier credit costs (~3/~7/~1, resolved server-side), takes 1-3 minutes, and charges the user. It also explains the deduplication nuance — in-flight repeats return the SAME generation with deduplicated: true and cost nothing, while post-completion repeats start and bill a NEW generation — which clarifies rather than contradicts idempotentHint=false.

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-loaded with the 'use this when' trigger, then ordered by operational need: cost, latency, polling, dedup, account selection. Dense but almost every clause carries a distinct operational fact; the parenthetical credit breakdown is the only mildly redundant part.

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?

Covers the full async lifecycle an agent needs: prerequisites, cost, latency, polling target, where results surface (list_posts with matching generationId), and the retry hazard. An output schema exists, so return-value detail is correctly omitted.

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 the schema already documents url, title, keywords, accountId, designTier and premiumStyle. The description adds only the accountId provenance (list_accounts) and reiterates tier credit costs already present in the schema; keywords and title get no narrative treatment. Baseline 3.

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?

Opens with a specific verb+resource+scope: 'create Pin drafts in Tailwind from a web page (blog post, product page, or article URL).' This cleanly separates it from generate_pin_copy (copy only) and create_post (single post creation) without needing the 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 strong prerequisites (accountId from list_accounts, ask the user when multiple accounts exist, don't pick for them) and a retry protocol (poll get_generation_status before repeating). It stops short of an explicit 'use X instead when...' contrast against similarly named siblings like generate_pin_copy or regenerate_pin_design.

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