Skip to main content
Glama

Tailwind App

list_posts

Read-onlyIdempotent

Use this when the user wants to see their Pinterest Pins — drafts, scheduled (queued), published (sent), failed, or missed: lists an account's Pins filtered by status (default queued) and returns each Pin's postId for use with get_post, schedule_post and delete_post. Takes an accountId from list_accounts. status draft omits drafts not yet assigned to any Pinterest account (such as some Made For You drafts), which the Pin Scheduler counts in its "drafts that aren't assigned to a Pinterest account yet" banner. The draft count can be lower than the dashboard's by that number: that gap is expected, not missing drafts, but a larger one is worth reporting. Assigning them to this account from that banner makes them list. Results are cursor-paginated; listing sent, uploading or missed Pins requires startDate and endDate. Queued Pins come back in schedule order, soonest first, and without a startDate start from now, so overdue ones are listed only as missed; every other status comes back newest first. A missed Pin is a queued Pin whose scheduled time passed without it publishing; it is listed with status missed, while get_post reports it as queued. Failed, missed and uploading Pins match the date window by their scheduled time, except a failed Pin that had already published, which matches by when it published. A Pin that Tailwind's AI generated, from generate_pins_from_url or a connected feed, is saved as a draft and never publishes on its own: it waits until someone reviews it and either schedules or discards it, and many users never come back to do that. list_posts with status draft is where those drafts wait; the ones carrying a generationId are the generated ones. A review reads each draft's title, description, url and mediaUrl (get_post_image shows the picture), judges it by whatever criteria the user has given, and then approves it with schedule_post, fixes its copy first with update_post, changes its picture through get_pin_design, or discards it with delete_post. Tailwind stores no review criteria: they live with the user and the agent. 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
limitNoNumber of posts to return (1-100, default: 50)
cursorNoPagination cursor from a previous list_posts response
statusNoFilter by post status (default: queued). draft = drafts assigned to this account, including AI-generated drafts waiting for review (they carry generationId); failed = publishing failed; missed = still queued after its scheduled time passed
endDateNoFilter posts before this date (ISO 8601). Required for sent, uploading and missed status; for queued and failed, pass both startDate and endDate or neither. For missed, a date after now counts as now.
accountIdYesNumeric Tailwind account ID returned by list_accounts
startDateNoFilter posts after this date (ISO 8601). Required for sent, uploading and missed status; for queued and failed, pass both startDate and endDate or neither.

Output Schema

NameRequiredDescriptionDefault
postsYesPosts matching the filters
cursorNoPagination cursor for the next page; absent when there are no more posts

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / posts / items / properties / boardName
      Added value: +{
      +  "description": "Name of the Board in boardId, as Tailwind last saw it when listing the account's Boards. Returned by get_post and list_posts only; absent when the Pin has no Board or the Board has not been listed yet, such as one just made with create_board",
      +  "type": "string"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / endDate / description
      Previous value: -"Filter posts before this date (ISO 8601). Required for sent, uploading and missed status; for failed, pass both startDate and endDate or neither. For missed, a date after now counts as now."New value: +"Filter posts before this date (ISO 8601). Required for sent, uploading and missed status; for queued and failed, pass both startDate and endDate or neither. For missed, a date after now counts as now."
    • changedInput schema / properties / startDate / description
      Previous value: -"Filter posts after this date (ISO 8601). Required for sent, uploading and missed status; for failed, pass both startDate and endDate or neither."New value: +"Filter posts after this date (ISO 8601). Required for sent, uploading and missed status; for queued and failed, pass both startDate and endDate or neither."
  3. Changed1 schema field changed
    • changedOutput schema / properties / posts / items / properties / generationId / description
      Previous value: -"ID of the AI generation that produced this post, from generate_pins_from_url or a connected feed; absent for posts created any other way. A draft with one is a generated draft waiting for review"New value: +"ID of the AI generation that produced this post, from generate_pins_from_url or a connected feed; absent for posts created any other way. A draft with one is a generated draft waiting for review. Required by get_pin_design and the tools that edit a Pin's design; without it they fail with design_not_found"
  4. Changed2 schema fields changed
    • changedInput schema / properties / status / description
      Previous value: -"Filter by post status (default: queued). draft = drafts assigned to this account; failed = publishing failed; missed = still queued after its scheduled time passed"New value: +"Filter by post status (default: queued). draft = drafts assigned to this account, including AI-generated drafts waiting for review (they carry generationId); failed = publishing failed; missed = still queued after its scheduled time passed"
    • changedOutput schema / properties / posts / items / properties / generationId / description
      Previous value: -"ID of the AI generation (generate_pins_from_url) that produced this post; absent for posts created any other way"New value: +"ID of the AI generation that produced this post, from generate_pins_from_url or a connected feed; absent for posts created any other way. A draft with one is a generated draft waiting for review"
  5. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly/non-destructive annotations, the description discloses default status behavior, cursor pagination, date-range requirements, ordering rules, how missed Pins differ from get_post reporting, and the special handling of AI-generated drafts. It also states the account-selection prerequisite clearly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

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

The core purpose and usage are front-loaded, but the description is very long and includes extended review-workflow guidance and draft-banner context that could be trimmed for a listing tool. Some draft-related details are repeated across sentences.

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?

Given the tool's complexity and the presence of a full schema, annotations, and an output schema, the description is highly complete. It covers status semantics, date constraints, pagination, ordering, account disambiguation, and draft-review edge cases that an agent would otherwise miss.

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 schema already documents all six parameters. The description still adds meaning beyond the schema: it explains the default queued status, the draft-assignment omission, the date-window matching rules for failed/missed/uploading Pins, and the ordering implications of status and dates.

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 (lists an account's Pins) and enumerates the statuses it can return. It distinguishes the tool from get_post, schedule_post, and delete_post by explaining that each Pin's postId is returned for those follow-up actions.

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?

It gives explicit usage context ('Use this when the user wants to see their Pinterest Pins') and references alternatives for single-Pin retrieval, scheduling, updating, and deleting. It also gives a strong prerequisite for account selection, though it does not explicitly contrast list_posts with sibling list tools like list_pins or list_board_pins.

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