Update to Tailwind
Snapshot Oct 24, 2026 · 12:50 UTC · version 0.3.0
Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Payment or plan references changed
Skill instructions — Now says: Board sections and several Boards at once To publish into a section of a Board, pass `boardSectionId` alongside `boardId`. Section IDs come from...
Observed in published text. Live prices and checkout terms have not been verified by this change.
Up to 10 plugins free · no card required.
All fields and original values.
Skill instructions
Sep 30, 2026 · 22:47 UTC
Get the copy right before you create anything There is no tool to edit a Pin once it exists. `schedule_post` changes only the time and the Board; `create_post` always makes a *new* Pin. So a draft with the wrong title, description, media...
Oct 24, 2026 · 12:50 UTC
Board sections and several Boards at once To publish into a section of a Board, pass `boardSectionId` alongside `boardId`. Section IDs come from `list_board_sections`. A section only belongs to its own Board, so moving a Pin with `boardI...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -39,36 +39,55 @@ verbatim will not return the user's Boards. `list_boards` needs no such care, which is why it is the better route. -## Get the copy right before you create anything +## Board sections and several Boards at once -There is no tool to edit a Pin once it exists. `schedule_post` changes only the -time and the Board; `create_post` always makes a *new* Pin. So a draft with the -wrong title, description, media, or destination URL cannot be corrected through -these tools — the only route is `delete_post` and start again. - -Confirm the copy and the media with the user **before** calling `create_post`. -Do not save a rough draft intending to refine it later. - -The Board is the exception, and the one thing you can safely defer: `boardId` -can be supplied later when you call `schedule_post`. - -`create_post` without `sendAt` saves a draft, which is right when the timing is -undecided but the content is settled. Adding `sendAt` schedules it, and makes -`title`, `description`, `url`, and `boardId` all mandatory. `schedule_post` -moves an existing draft or queued Pin to a time and expects `title`, -`description`, and `url` to already be set. +To publish into a section of a Board, pass `boardSectionId` alongside +`boardId`. Section IDs come from `list_board_sections`. A section only belongs +to its own Board, so moving a Pin with `boardId` alone clears whatever section +it was in. + +To put one Pin on several Boards, pass `intervalBoards` (in publishing order) +plus `intervalType` in place of `boardId`, on a single scheduled `create_post` +call. Tailwind spaces the Boards out over time. Calling `create_post` once per +Board instead publishes them all at once. Each Board becomes its own scheduled +Pin and is charged like any other scheduled Pin (see credits below). + +## Drafts, scheduling, and editing + +A `create_post` call that omits both `sendAt` and `useNextOpenSlot` saves a +draft, which is right when the timing is undecided. To schedule in the same +call, pass **exactly one** of them, plus `title`, `description`, `url`, and +`boardId` (or `intervalBoards`). `schedule_post` puts an existing draft or +queued Pin on the schedule with the same one-of choice, and expects `title`, +`description`, and `url` to already be set. A draft saved without a Board also +needs `boardId` on that `schedule_post` call. + +Prefer `useNextOpenSlot: true` unless the user named a specific time. It takes +the account's next open smart schedule slot and applies the account's Pin +Spacing rules for the destination URL, which a timestamp you invent cannot. +Never compute a `sendAt` from `list_timeslots`. Reserve `sendAt` for a time the +user actually asked for. It must be a future UTC instant ending in `Z`, such as +`2026-01-15T15:00:00Z`: a local-offset time like `2026-01-15T09:00:00-06:00` is +rejected as an invalid datetime, so convert the user's local time to UTC first. After scheduling, confirm it landed with `list_posts` using `status: "queued"` rather than assuming success from the tool's response text. -`sendAt` is ISO 8601 and must be in the future. Ask the user for their intended -time and time zone instead of inventing one. +To fix a draft or queued Pin's title, description, link, Board, section, alt +text, or product tags, use `update_post`. It is free and never changes when the +Pin publishes. Do not delete and recreate a Pin to fix a typo. The image is the +exception: `update_post` cannot change it, so a new image means `delete_post` +plus a fresh `create_post`. Pins that Tailwind's AI designed have their own +design tools, starting with `get_pin_design`. Published Pins can't be edited +through Tailwind at all. ## Scheduling spends the user's credits -Moving a Pin to scheduled consumes a Pin-scheduling credit from the user's plan. -Saving a draft does not, and rescheduling an already-queued Pin is not charged -again. +On modular-billing accounts, moving a Pin to scheduled consumes a Pin credit +(or free-trial allowance). Winback plans schedule free, and legacy and Shopify +accounts spend no credits; each Pin counts against their plan's post limit +instead. Saving a draft is always free, and rescheduling an already-queued Pin +is not charged again. Two consequences worth respecting: don't schedule speculatively to "see if it works" — create a draft instead. And if a call comes back as a payment-required @@ -81,7 +100,10 @@ - **Rejected board ID** — you almost certainly passed a name or URL. Call `list_boards` and use an ID from the response. - **Missing required field on a scheduled Pin** — `title`, `description`, `url`, - and `boardId` are only required once `sendAt` is present. Either supply them or - save a draft instead. + and a Board are required once `sendAt` or `useNextOpenSlot` is present. Either + supply them, or drop both timing fields to save a draft instead. +- **`intervalBoards` rejected** — it also needs `intervalType` and one of + `sendAt` or `useNextOpenSlot`, and it can't be combined with `boardId`. A draft + can't use it: to save a draft, pass a single `boardId` or no Board at all. - **`delete_post` fails** — it only works on Pins that have not published yet. Published Pins have to be removed from Pinterest directly.
Full technical diff · 1 changed fields
changed /skill_md_contents
"---\nname: tailwind-pinterest-scheduling\ndescription: Create, schedule, and review Pinterest Pins through Tailwind. Use when the user wants to schedule Pins, pick a Pinterest Board, manage drafts, or check what is queued to publish.\n---\n\n# Scheduling Pinterest Pins with Tailwind\n\nThe Tailwind MCP server creates and schedules Pinterest Pins on the user's\nbehalf. Each tool's own description covers its parameters. This file covers the\nthings the tools cannot tell you — the places where a correct-looking call still\nfails.\n\n## Start by resolving the account\n\nEvery tool takes an `accountId`, and it is Tailwind's numeric account ID, not a\nPinterest username or profile URL. Call `list_accounts` first and use an ID from\nthe response. If the user has more than one account and hasn't said which,\nask — publishing to the wrong Pinterest profile is not something you can undo\nfrom here.\n\n## Board IDs are where this usually goes wrong\n\nScheduling requires `boardId`, and it must be the **numeric board ID as a\nstring** — for example `\"1106196864631757445\"`. A Board name, a Pinterest URL,\nor a slug will be rejected.\n\nBoard IDs come from `list_boards`, which takes the account ID and returns each\nBoard's numeric ID and name. Call it rather than asking the user to find an ID\nby hand.\n\nThe same data is also published as a resource:\n\n```\ntailwind://accounts/<accountId>/boards\n```\n\nIf you read it that way, substitute the real account ID — the server advertises\nthe URI with a literal `{accountId}` placeholder, and reading that string\nverbatim will not return the user's Boards. `list_boards` needs no such care,\nwhich is why it is the better route.\n\n## Get the copy right before you create anything\n\nThere is no tool to edit a Pin once it exists. `schedule_post` changes only the\ntime and the Board; `create_post` always makes a *new* Pin. So a draft with the\nwrong title, description, media, or destination URL cannot be corrected through\nthese tools — the only route is `delete_post` and start again.\n\nConfirm the copy and the media with the user **before** calling `create_post`.\nDo not save a rough draft intending to refine it later.\n\nThe Board is the exception, and the one thing you can safely defer: `boardId`\ncan be supplied later when you call `schedule_post`.\n\n`create_post` without `sendAt` saves a draft, which is right when the timing is\nundecided but the content is settled. Adding `sendAt` schedules it, and makes\n`title`, `description`, `url`, and `boardId` all mandatory. `schedule_post`\nmoves an existing draft or queued Pin to a time and expects `title`,\n`description`, and `url` to already be set.\n\nAfter scheduling, confirm it landed with `list_posts` using `status: \"queued\"`\nrather than assuming success from the tool's response text.\n\n`sendAt` is ISO 8601 and must be in the future. Ask the user for their intended\ntime and time zone instead of inventing one.\n\n## Scheduling spends the user's credits\n\nMoving a Pin to scheduled consumes a Pin-scheduling credit from the user's plan.\nSaving a draft does not, and rescheduling an already-queued Pin is not charged\nagain.\n\nTwo consequences worth respecting: don't schedule speculatively to \"see if it\nworks\" — create a draft instead. And if a call comes back as a payment-required\nerror, that is a real billing outcome (out of credits, trial exhausted, or no\nplan access), not a transient failure to retry. Tell the user what happened\nrather than trying again.\n\n## When something fails\n\n- **Rejected board ID** — you almost certainly passed a name or URL. Call\n `list_boards` and use an ID from the response.\n- **Missing required field on a scheduled Pin** — `title`, `description`, `url`,\n and `boardId` are only required once `sendAt` is present. Either supply them or\n save a draft instead.\n- **`delete_post` fails** — it only works on Pins that have not published yet.\n Published Pins have to be removed from Pinterest directly.\n""---\nname: tailwind-pinterest-scheduling\ndescription: Create, schedule, and review Pinterest Pins through Tailwind. Use when the user wants to schedule Pins, pick a Pinterest Board, manage drafts, or check what is queued to publish.\n---\n\n# Scheduling Pinterest Pins with Tailwind\n\nThe Tailwind MCP server creates and schedules Pinterest Pins on the user's\nbehalf. Each tool's own description covers its parameters. This file covers the\nthings the tools cannot tell you — the places where a correct-looking call still\nfails.\n\n## Start by resolving the account\n\nEvery tool takes an `accountId`, and it is Tailwind's numeric account ID, not a\nPinterest username or profile URL. Call `list_accounts` first and use an ID from\nthe response. If the user has more than one account and hasn't said which,\nask — publishing to the wrong Pinterest profile is not something you can undo\nfrom here.\n\n## Board IDs are where this usually goes wrong\n\nScheduling requires `boardId`, and it must be the **numeric board ID as a\nstring** — for example `\"1106196864631757445\"`. A Board name, a Pinterest URL,\nor a slug will be rejected.\n\nBoard IDs come from `list_boards`, which takes the account ID and returns each\nBoard's numeric ID and name. Call it rather than asking the user to find an ID\nby hand.\n\nThe same data is also published as a resource:\n\n```\ntailwind://accounts/<accountId>/boards\n```\n\nIf you read it that way, substitute the real account ID — the server advertises\nthe URI with a literal `{accountId}` placeholder, and reading that string\nverbatim will not return the user's Boards. `list_boards` needs no such care,\nwhich is why it is the better route.\n\n## Board sections and several Boards at once\n\nTo publish into a section of a Board, pass `boardSectionId` alongside\n`boardId`. Section IDs come from `list_board_sections`. A section only belongs\nto its own Board, so moving a Pin with `boardId` alone clears whatever section\nit was in.\n\nTo put one Pin on several Boards, pass `intervalBoards` (in publishing order)\nplus `intervalType` in place of `boardId`, on a single scheduled `create_post`\ncall. Tailwind spaces the Boards out over time. Calling `create_post` once per\nBoard instead publishes them all at once. Each Board becomes its own scheduled\nPin and is charged like any other scheduled Pin (see credits below).\n\n## Drafts, scheduling, and editing\n\nA `create_post` call that omits both `sendAt` and `useNextOpenSlot` saves a\ndraft, which is right when the timing is undecided. To schedule in the same\ncall, pass **exactly one** of them, plus `title`, `description`, `url`, and\n`boardId` (or `intervalBoards`). `schedule_post` puts an existing draft or\nqueued Pin on the schedule with the same one-of choice, and expects `title`,\n`description`, and `url` to already be set. A draft saved without a Board also\nneeds `boardId` on that `schedule_post` call.\n\nPrefer `useNextOpenSlot: true` unless the user named a specific time. It takes\nthe account's next open smart schedule slot and applies the account's Pin\nSpacing rules for the destination URL, which a timestamp you invent cannot.\nNever compute a `sendAt` from `list_timeslots`. Reserve `sendAt` for a time the\nuser actually asked for. It must be a future UTC instant ending in `Z`, such as\n`2026-01-15T15:00:00Z`: a local-offset time like `2026-01-15T09:00:00-06:00` is\nrejected as an invalid datetime, so convert the user's local time to UTC first.\n\nAfter scheduling, confirm it landed with `list_posts` using `status: \"queued\"`\nrather than assuming success from the tool's response text.\n\nTo fix a draft or queued Pin's title, description, link, Board, section, alt\ntext, or product tags, use `update_post`. It is free and never changes when the\nPin publishes. Do not delete and recreate a Pin to fix a typo. The image is the\nexception: `update_post` cannot change it, so a new image means `delete_post`\nplus a fresh `create_post`. Pins that Tailwind's AI designed have their own\ndesign tools, starting with `get_pin_design`. Published Pins can't be edited\nthrough Tailwind at all.\n\n## Scheduling spends the user's credits\n\nOn modular-billing accounts, moving a Pin to scheduled consumes a Pin credit\n(or free-trial allowance). Winback plans schedule free, and legacy and Shopify\naccounts spend no credits; each Pin counts against their plan's post limit\ninstead. Saving a draft is always free, and rescheduling an already-queued Pin\nis not charged again.\n\nTwo consequences worth respecting: don't schedule speculatively to \"see if it\nworks\" — create a draft instead. And if a call comes back as a payment-required\nerror, that is a real billing outcome (out of credits, trial exhausted, or no\nplan access), not a transient failure to retry. Tell the user what happened\nrather than trying again.\n\n## When something fails\n\n- **Rejected board ID** — you almost certainly passed a name or URL. Call\n `list_boards` and use an ID from the response.\n- **Missing required field on a scheduled Pin** — `title`, `description`, `url`,\n and a Board are required once `sendAt` or `useNextOpenSlot` is present. Either\n supply them, or drop both timing fields to save a draft instead.\n- **`intervalBoards` rejected** — it also needs `intervalType` and one of\n `sendAt` or `useNextOpenSlot`, and it can't be combined with `boardId`. A draft\n can't use it: to save a draft, pass a single `boardId` or no Board at all.\n- **`delete_post` fails** — it only works on Pins that have not published yet.\n Published Pins have to be removed from Pinterest directly.\n"Full snapshot data
{
"description": "Create, schedule, and review Pinterest Pins through Tailwind. Use when the user wants to schedule Pins, pick a Pinterest Board, manage drafts, or check what is queued to publish.",
"included_files": [],
"name": "tailwind-pinterest-scheduling",
"skill_md_contents": "---\nname: tailwind-pinterest-scheduling\ndescription: Create, schedule, and review Pinterest Pins through Tailwind. Use when the user wants to schedule Pins, pick a Pinterest Board, manage drafts, or check what is queued to publish.\n---\n\n# Scheduling Pinterest Pins with Tailwind\n\nThe Tailwind MCP server creates and schedules Pinterest Pins on the user's\nbehalf. Each tool's own description covers its parameters. This file covers the\nthings the tools cannot tell you — the places where a correct-looking call still\nfails.\n\n## Start by resolving the account\n\nEvery tool takes an `accountId`, and it is Tailwind's numeric account ID, not a\nPinterest username or profile URL. Call `list_accounts` first and use an ID from\nthe response. If the user has more than one account and hasn't said which,\nask — publishing to the wrong Pinterest profile is not something you can undo\nfrom here.\n\n## Board IDs are where this usually goes wrong\n\nScheduling requires `boardId`, and it must be the **numeric board ID as a\nstring** — for example `\"1106196864631757445\"`. A Board name, a Pinterest URL,\nor a slug will be rejected.\n\nBoard IDs come from `list_boards`, which takes the account ID and returns each\nBoard's numeric ID and name. Call it rather than asking the user to find an ID\nby hand.\n\nThe same data is also published as a resource:\n\n```\ntailwind://accounts/<accountId>/boards\n```\n\nIf you read it that way, substitute the real account ID — the server advertises\nthe URI with a literal `{accountId}` placeholder, and reading that string\nverbatim will not return the user's Boards. `list_boards` needs no such care,\nwhich is why it is the better route.\n\n## Board sections and several Boards at once\n\nTo publish into a section of a Board, pass `boardSectionId` alongside\n`boardId`. Section IDs come from `list_board_sections`. A section only belongs\nto its own Board, so moving a Pin with `boardId` alone clears whatever section\nit was in.\n\nTo put one Pin on several Boards, pass `intervalBoards` (in publishing order)\nplus `intervalType` in place of `boardId`, on a single scheduled `create_post`\ncall. Tailwind spaces the Boards out over time. Calling `create_post` once per\nBoard instead publishes them all at once. Each Board becomes its own scheduled\nPin and is charged like any other scheduled Pin (see credits below).\n\n## Drafts, scheduling, and editing\n\nA `create_post` call that omits both `sendAt` and `useNextOpenSlot` saves a\ndraft, which is right when the timing is undecided. To schedule in the same\ncall, pass **exactly one** of them, plus `title`, `description`, `url`, and\n`boardId` (or `intervalBoards`). `schedule_post` puts an existing draft or\nqueued Pin on the schedule with the same one-of choice, and expects `title`,\n`description`, and `url` to already be set. A draft saved without a Board also\nneeds `boardId` on that `schedule_post` call.\n\nPrefer `useNextOpenSlot: true` unless the user named a specific time. It takes\nthe account's next open smart schedule slot and applies the account's Pin\nSpacing rules for the destination URL, which a timestamp you invent cannot.\nNever compute a `sendAt` from `list_timeslots`. Reserve `sendAt` for a time the\nuser actually asked for. It must be a future UTC instant ending in `Z`, such as\n`2026-01-15T15:00:00Z`: a local-offset time like `2026-01-15T09:00:00-06:00` is\nrejected as an invalid datetime, so convert the user's local time to UTC first.\n\nAfter scheduling, confirm it landed with `list_posts` using `status: \"queued\"`\nrather than assuming success from the tool's response text.\n\nTo fix a draft or queued Pin's title, description, link, Board, section, alt\ntext, or product tags, use `update_post`. It is free and never changes when the\nPin publishes. Do not delete and recreate a Pin to fix a typo. The image is the\nexception: `update_post` cannot change it, so a new image means `delete_post`\nplus a fresh `create_post`. Pins that Tailwind's AI designed have their own\ndesign tools, starting with `get_pin_design`. Published Pins can't be edited\nthrough Tailwind at all.\n\n## Scheduling spends the user's credits\n\nOn modular-billing accounts, moving a Pin to scheduled consumes a Pin credit\n(or free-trial allowance). Winback plans schedule free, and legacy and Shopify\naccounts spend no credits; each Pin counts against their plan's post limit\ninstead. Saving a draft is always free, and rescheduling an already-queued Pin\nis not charged again.\n\nTwo consequences worth respecting: don't schedule speculatively to \"see if it\nworks\" — create a draft instead. And if a call comes back as a payment-required\nerror, that is a real billing outcome (out of credits, trial exhausted, or no\nplan access), not a transient failure to retry. Tell the user what happened\nrather than trying again.\n\n## When something fails\n\n- **Rejected board ID** — you almost certainly passed a name or URL. Call\n `list_boards` and use an ID from the response.\n- **Missing required field on a scheduled Pin** — `title`, `description`, `url`,\n and a Board are required once `sendAt` or `useNextOpenSlot` is present. Either\n supply them, or drop both timing fields to save a draft instead.\n- **`intervalBoards` rejected** — it also needs `intervalType` and one of\n `sendAt` or `useNextOpenSlot`, and it can't be combined with `boardId`. A draft\n can't use it: to save a draft, pass a single `boardId` or no Board at all.\n- **`delete_post` fails** — it only works on Pins that have not published yet.\n Published Pins have to be removed from Pinterest directly.\n"
}SHA-256 of public snapshot: 6a7735f0fa3ecaee4a3cd1248f987672b8461116bcf35618577c6cb44cca6cb5