Create Pinterest pins from Claude or ChatGPT with an MCP server
Pinterest’s own MCP server is an ads-focused sign-up list. Schedule image and video pins from Claude, ChatGPT or Cursor via Mellow Hub: setup, rules, prompts.
By Mellow · UpdatedCan Claude or ChatGPT create Pinterest pins?
Yes, through Mellow Hub’s remote MCP server at https://www.mellow.world/mcp. After you connect your Pinterest account and approve the access, the assistant checks a pin with validate_post, publishes or schedules it with create_post and reads the result and link with get_post. A pin is one image or one video, with a title of up to 100 characters, a description and, if you like, a link and a board. A video pin needs a cover image.
Status: Hub has published four pins between September 5 and October 1, 2026, each with a public link. On September 29 a video pin sent through Hub’s production MCP endpoint failed without a cover and published when it was sent again with one; on October 1 a video pin created about 20 hours earlier went out at its set time. What was tested.
Is there an official Pinterest MCP server?
Pinterest announced one on June 17, 2026, in an alpha with agency partners, and its developer page is still a sign-up form aimed at ads and insights. The npm package called pinterest-mcp was published by a community developer, not by Pinterest. Community servers either scrape image search with a headless browser or call Pinterest’s API through a developer app you register, and an app on Pinterest’s trial access creates pins only its creator can see.
| Server | What it does | How it gets access |
|---|---|---|
| Pinterest MCP (sign-up) | Announced for ads and insights; in alpha with partners. | By invitation |
| collactivelabs/pinterest-mcp-server | Creates and manages boards and pins. | Your own Pinterest developer app |
| terryso/mcp-pinterest | Searches and downloads images. | A headless browser, no account |
| Mellow Hub | Image and video pins, with eight other networks in one request. | Pinterest login through Hub; OAuth consent or a Hub key |
Read on 1 October 2026 from each project’s own page. Descriptions of other servers are their own claims; Mellow has not tested them.
Pinterest’s access tiers are on its developer site, read on 1 October 2026.
What Pinterest account do I need?
A Pinterest business account with at least one board to pin to. You sign in to Pinterest yourself. Naming a board is optional: give options.pinterest.boardIds to choose one, and without it the pin goes to a board on the account.
- Open Accounts in Hub and choose Pinterest, or ask the assistant to call
connect_channelwithplatformset topinterest. That tool only returns a link and an instruction for a person. It needs thechannels:connectpermission. - Open the link and sign in to Pinterest yourself. Hub never sees your Pinterest password.
- Tell the assistant you are done. It calls
list_channelswithrefresh: trueand uses the returned channel ID, which begins withspc_. A username is not a substitute for that ID.
Connect Claude, ChatGPT, Cursor or another MCP client
Every client uses the same server URL, https://www.mellow.world/mcp, over Streamable HTTP. A client signs in with OAuth 2.1 (dynamic client registration and PKCE) or sends an owner-created Hub API key as a Bearer token. Menus change between client versions, so the official guides linked below describe the current screens. The last column says only what Mellow itself has tested, on any network.
| Client | How to add Hub | Tested by Mellow |
|---|---|---|
| Claude | On any plan, Free included: Customize → Connectors → + Add → Add custom connector. Name it Mellow Hub and paste the URL; if Claude asks how to identify itself, choose Register automatically. There is no client secret to copy. Step by step: the Claude guide. | In production on September 29 and 30, 2026: sign-in and consent, starting channel connections, moving a scheduled post’s time (the post then went out at that time on seven networks) and creating a post. |
| ChatGPT | On the web, on Business, Enterprise or Edu where developer mode is allowed: Settings → Apps → Create, with the URL and OAuth. Pro connects MCP apps for reading only. Step by step: the ChatGPT guide. | On October 2, 2026, as a developer-mode app with a test account: it published a post to Bluesky, scheduled another that went out on its own the next morning, and was refused a text over Bluesky’s limit before anything was sent. |
| Claude Code | claude mcp add --transport http mellow https://www.mellow.world/mcp, then sign in when Claude Code asks, or send a Hub key as a Bearer header. | On September 29, 2026, with an owner-created key, it sent one video to Instagram, Facebook, Threads, LinkedIn, X and TikTok in a single post through the production endpoint. All but TikTok went public with links. |
| Cursor | Add Mellow Hub as a remote HTTP MCP server with the URL, then complete sign-in. Cursor’s MCP documentation. | Not tested. |
| Your own client | Streamable HTTP. Start OAuth discovery from the first 401 response, or send a Hub key in the Authorization: Bearer header. | The official MCP Python SDK completed registration, consent and a publication to Instagram and Threads in production on September 20, 2026. |
- Add the server in your client and select Connect. Sign in to Mellow if asked. Hub’s consent screen names the app that is asking.
- Choose the permissions the task needs (below), select your Pinterest channel, choose review or autopilot, a daily ceiling and an expiry, then approve.
- Back in the client, run the read-only check from the prompts below. Confirm the profile, the mode and the Pinterest channel ID. Agents shows the grant’s permissions, channels and expiry.
- If a client cannot complete OAuth, create a key in Agents and set it as the client’s
Authorization: Bearerheader, from its secret settings or an environment variable. Never paste a key into a chat.
Which permissions to approve
| Permission | What it allows |
|---|---|
channels:read | Read the profile, the mode and the channels the grant covers: whoami, list_channels. |
posts:read | Check and preview a post and read results: validate_post, preview_post, get_post, list_posts. |
media:write | Register a public media URL or request a signed upload URL. |
posts:write and posts:publish | Create, schedule or publish a post; both are needed, even in review mode. posts:write also covers cancelling and rescheduling. |
channels:connect | Start a channel connection and return its link for a person. |
metrics:read | Read network-reported metrics for published posts. |
The consent screen arrives with every permission the assistant asked for already ticked, except spending AI credits. Untick anything it should not have.
What you delegate, and how to take it back
Hub treats an assistant’s access as a delegation you give once, with limits: the permissions, the channels (the ones you select, or explicitly all), review or autopilot, a daily ceiling of 1 to 1,000 posts (50 by default) and an expiry of 1, 7 or 30 days (30 by default). Autopilot is the default: the assistant publishes on its own within those limits. Choose review and each post waits for you to approve it in Hub. A key or a connected app cannot approve its own post.
Hub records the posts an assistant creates or has refused, approvals, reschedules, cancellations and connection attempts in a journal you read in Agents. Revoking a key or a connected app takes effect on its next request. Publishing always needs an idempotency key, so a retried request cannot publish twice.
Pinterest rules Hub checks before anything is sent
This table is generated from the registry that validate_post enforces, the same one behind the rules for every network. These are Hub’s input rules; Pinterest still judges the media itself when it fetches it.
| Rule | Pinterest in Hub |
|---|---|
| Text | Up to 500 characters. Becomes the pin description. |
| Title | Optional, up to 100 characters. |
| Media | Exactly 1 image or video. One image or one video per pin. A video needs a cover: give the media item a thumbnailUrl. |
| Placement | None. |
| Also supported | Scheduling with scheduledAt, metrics for published posts (get_metrics). |
Give a video pin a cover: set thumbnailUrl on the media item to a JPEG frame. Without one, Pinterest refused our video pin on September 29, and Hub now reports cover_required before sending. Add a destination with options.pinterest.link, an https address.
Pinterest’s own figures differ from Hub’s in one place: Pinterest allows a description of 800 characters, where Hub checks 500. Pinterest’s pin specs recommend 9:16 at 1080 × 1920 for a full-screen pin and also list 1:2, 2:3, 3:4, 4:5 and 1:1; videos run 4 seconds to 5 minutes (Pinterest Help, read on 1 October 2026).
When validate_post refuses the post
Read ok, issues and notes in the result. The check publishes nothing and reports every problem at once, each with its field and, for a network rule, its channel. Fix them together and validate again.
| Issue code | What it means | What to change |
|---|---|---|
cover_required | A video with no cover image. | Give the media item a thumbnailUrl. |
media_too_many | More than one image or video. | One per pin; make several pins. |
title_too_long | A title over 100 characters. | Shorten it; the description can say more. |
caption_too_long | A description over 500 characters. | Shorten it, or give Pinterest its own text in perChannel. |
Other refusals concern the request or the grant: schedule_in_past (use a future time with a UTC offset), insufficient_scope (approve a delegation with the missing permission), channel_out_of_scope (the channel is not in the grant), and at creation daily_limit_reached and idempotency_key_reused. A passing check is not proof of publication: Pinterest can still refuse the media or the account. The free post checker runs the same input rules on a draft before you connect anything.
Prompts you can paste
Replace the bracketed parts. Each prompt names the tools to call, so the assistant does not have to guess the order.
Check the connection, read-only
Use only Mellow Hub. Call whoami, then list_channels, then list_platforms.
Tell me my Pinterest channel ID, whether this connection is in review or
autopilot mode, how many posts it may still create today, and Pinterest's
rules. Do not create anything.An image pin with a title and a link
Use Mellow Hub. Create a pin on my Pinterest channel from the image at
[public https URL of a JPEG], title "[up to 100 characters]",
description "[description]", link [https address].
Call register_media, then validate_post, then create_post once with
idempotencyKey "pin-[short-name]-1", then get_post. Report the link.A video pin with its cover, scheduled
Use Mellow Hub. Schedule a video pin for [time] on [date] in [your timezone]
from the video at [public https URL of an MP4], with the cover image at
[public https URL of a JPEG] as the media item's thumbnailUrl,
title "[title]". Write scheduledAt with an explicit UTC offset. Validate,
then create_post once with idempotencyKey "pin-video-[date]", then get_post.Media has to be reachable at a public https URL when Pinterest fetches it. An agent that can make HTTP requests, such as Claude Code or a script of your own, can instead call request_upload_url, send a local file with PUT to the returned uploadUrl and use the returned mediaUrl. An assistant that only has Hub’s tools cannot send file bytes itself.
Publish once, then read the Pinterest result
create_post is the step that publishes or schedules. It needs an idempotencyKey of 8 to 120 letters, digits or the characters . _ : -, stable for this post. If the response is lost or times out, send the same request with the same key: Hub returns the original post instead of making a second one. Reusing a key for different content is refused.
Under a review-mode grant the post comes back as pending_review and waits until you approve it, signed in, in Hub. Under autopilot it goes out at scheduledAt, or immediately without it. Always write scheduledAt with Z or an explicit UTC offset.
Then call get_post and read the Pinterest entry in targets, not only the post’s status. publishing means Pinterest has not reported a result yet; published comes with the post’s link; failed comes with the network’s message. In a post to several networks each target settles on its own and the post can end partial: republish only the failed channel, with a new key. Once Pinterest has published a post, Hub cannot edit or delete it; cancel_post works only before it goes out.
Each destination counts once against your plan: one post to Pinterest and two other networks is three publications. Validating, drafting and connecting work without a plan; publishing needs an active one. See plans.
What Mellow has tested with Pinterest
Production records on 1 October 2026 show four pins published through Hub between September 5 and October 1, each with a public link, all on one account. The first, an image, named no board. On September 29 a video sent through Hub’s MCP endpoint by a Claude Code session failed on Pinterest with “Failed to post to Pinterest”; sent again with a cover frame as thumbnailUrl, it published. On September 30 a video pin with a cover, scheduled the evening before, went out at its set time, and on October 1 another video pin, created with an owner-created key about 20 hours ahead for 12:30 UTC, went out at 12:32 UTC with nothing changed in between.
Not tested yet: choosing a board with boardIds, pins with a link, and connecting through ChatGPT or Cursor.
Questions
Is there an official Pinterest MCP server?
Pinterest announced one on June 17, 2026, in an alpha with agency partners, aimed at ads and insights; its developer page is a sign-up form. The npm package named pinterest-mcp is a community project, not Pinterest’s.
Why did my video pin fail?
Most often because it had no cover. Pinterest refused our video pin without one and published it when a cover image was attached as the media item’s thumbnailUrl. Hub now reports cover_required before sending.
Do I need a board?
No. Name one with boardIds to choose it; without one, the pin goes to a board on the account.
Can one request pin to Pinterest and post to Instagram?
Yes. Name both channels in one post; give Pinterest its own title and description in perChannel if the Instagram caption is long. Each target settles and counts on its own.
Related
- Instagram MCP guide for the same pictures on Instagram.
- Character counter for titles and descriptions.
- Publish to social media with an MCP server: the workflow for every network.
- Before an AI agent posts: an MCP checklist.
- API and MCP reference and rules for every network.
- Plans: each destination counts once against the monthly publications.