# Pinterest MCP Server Guide (2026): Schedule Video Pins from Claude, Cursor and Claude Code | Reeling Blog

> Set up a Pinterest MCP server in Claude, Cursor or Claude Code: find board IDs, schedule Video Pins with UTM links, check delivery and fix access errors.

Canonical: https://reeling.app/blog/pinterest-mcp-server-schedule-video-pins
Last updated: 2026-11-11

## Summary

A Pinterest MCP server lets Claude, Cursor or Claude Code call Pinterest actions as tools. Pinterest's official server, announced in June 2026, targets ads, analytics and keyword insights. To schedule organic Video Pins, connect a Pinterest business account to Reeling, get the board ID with reeling_get_channel_options, then queue the Pin with reeling_publish_post.

- **Author**: Reeling Team
- **Published**: 2026-11-11
- **Last reviewed**: 2026-11-11
- **Category**: Developer & Agents

## What is a Pinterest MCP server?

A Pinterest MCP server is a Model Context Protocol server that exposes Pinterest actions, such as listing boards, creating Pins or reading analytics, as tools that an AI client like Claude, Cursor or Claude Code can call. What you can do depends on the server: some are built for ads and insights, others for organic publishing.

When we checked on November 11, 2026, there were three kinds. Pinterest's own server, announced on June 17, 2026, is aimed at advertisers and agencies and is being developed with alpha partners. Community and vendor servers wrap the public Pinterest API v5, either with your own Pinterest app and token or through the vendor's hosted connection. Scheduler-backed servers, such as Reeling's open-source adapter (github:yomariano/reeling-mcp), publish through the scheduler's existing Pinterest connection, so your agent never handles Pinterest tokens and Pins can be queued for a later time.

| Option | Built for | How it reaches Pinterest | Organic Pins | Scheduling | Watch out for |
| --- | --- | --- | --- | --- | --- |
| Pinterest MCP (official) | Advertisers, agencies and partner copilots | Pinterest API with OAuth 2.0; the developer page shows an HTTP config for https://api.pinterest.com/mcp with a Bearer token | Pinterest describes searching Pins, managing boards, trends and audience insights; its June announcement centres on campaign, analytics and keyword insights | No scheduler described | Alpha with agency partners; the developer page still invites sign-ups for launch updates (checked 2026-11-11) |
| Your own or a community API v5 wrapper | Developers who want full Pinterest API coverage | A Pinterest app (yours or the vendor's) and an OAuth token with boards:read, boards:write, pins:read and pins:write | Image and video Pins through POST /v5/pins | You build it (cron job or queue) | Apps on Trial access create Pins visible only to you; Standard access needs a reviewed demo video |
| Reeling MCP (github:yomariano/reeling-mcp) | Creators and teams scheduling video to Pinterest and other networks | Your Reeling API key; Reeling's Pinterest connection handles OAuth | Video Pins to a board you choose | Yes: scheduled_at takes an ISO 8601 time | Video Pins only; Pinterest comments and metrics are not fetched; needs the Creator or Agency plan |

- [Pinterest Developers: About the Pinterest MCP server](https://developers.pinterest.com/about-pinterest-mcp/)
- [Reeling MCP adapter source and releases on GitHub](https://github.com/yomariano/reeling-mcp)

## Pinterest Ads MCP vs organic Pin publishing

If you are looking for a Pinterest Ads MCP server, Pinterest's official server is the one to follow. Pinterest says it gives partner copilots secure access to campaign, analytics and keyword insights, and it is being shaped with alpha partners PMG, Pacvue, Dentsu, Havas, Innovid by Mediaocean and Omnicom's Jump450. Reeling does not create or manage Pinterest ads.

Split the work by job. Ad reporting, campaign planning and keyword research belong to Pinterest's server or the ads endpoints of Pinterest API v5. Publishing organic Video Pins on a schedule, often alongside the same video on YouTube, Instagram or Threads, is what a scheduler-backed server is for. Running both is reasonable: one server for insights, one for publishing, each with its own scoped credential.

| Task | Use |
| --- | --- |
| Campaign reporting and ad performance | Pinterest MCP (official) or the ads endpoints of Pinterest API v5 |
| Keyword and trend research for new creative | Pinterest MCP (official) |
| Creating or editing ad campaigns | Pinterest Ads Manager or the ads endpoints of Pinterest API v5 |
| Scheduling organic Video Pins to a board | Reeling MCP, or your own API v5 wrapper |
| Sending one video to Pinterest and other networks in one call | Reeling MCP: reeling_publish_post with several platform keys |
| Image Pins, board sections or alt text | Your own API v5 wrapper; Reeling publishes Video Pins |

- [Pinterest Newsroom: Business Assistant and Pinterest MCP announcement (June 17, 2026)](https://newsroom.pinterest.com/news/cannes-2026/)

## What you need before you connect Pinterest

You need four things: a Pinterest business account connected in Reeling's Connect Channels, a Reeling plan with API and MCP access (Creator at $5.99 a month or Agency at $19.99 a month), an API key from Reeling's Settings, and a video within the Pin limits below. Node.js 22 or later is needed only for the local adapter.

Pinterest also controls what the connection may do. Reeling's platform notes say production publishing needs appropriate Pinterest app access and that Trial access can reject Pin creation. Pinterest's documentation adds that Pins and boards created with Trial access are visible only to their creator, as sandbox entities. Check the channel in Connect Channels before you hand the job to an agent.

| Requirement | Detail | Where to check |
| --- | --- | --- |
| Pinterest account | Business account with at least one public board | Pinterest settings, then Reeling Connect Channels |
| Reeling plan | Creator ($5.99/mo) or Agency ($19.99/mo); Starter does not include MCP or API access | Reeling pricing page |
| API key | Created in Reeling Settings; keys start with rl_ | Reeling Settings |
| Video file | MP4 or MOV up to 100 MiB, at a URL Reeling can download | Video file size calculator |
| Shape | Pinterest accepts videos between 1:2 and 1.91:1 and recommends 1:1, 2:3, 4:5 or 9:16 | Video aspect ratio calculator |
| Text | Title up to 100 characters; description up to 500 characters in Reeling (Pinterest itself allows 800) | Field table later in this guide |
| Local adapter only | Node.js 22 or later, as the package's engines field requires | node --version |

- [Reeling Pinterest integration: limits and account requirements](https://reeling.app/integrations/pinterest)
- [Reeling plans that include MCP and API access](https://reeling.app/pricing)
- [Pinterest Developers: Trial and Standard access tiers](https://developers.pinterest.com/docs/key-concepts/access-tiers/)

## Install the Reeling MCP server in Claude Desktop, Cursor or Claude Code

Add one server entry named reeling. In Claude Desktop or Cursor, run the local adapter: command npx, arguments -y and github:yomariano/reeling-mcp#v1.1.0, and your key in the REELING_API_KEY environment variable. In Claude Code, add the hosted endpoint https://mcp.reeling.app/mcp with an X-API-Key header, or register the same local command.

Claude Desktop reads claude_desktop_config.json, which lives in ~/Library/Application Support/Claude/ on macOS and %APPDATA%\Claude\ on Windows. Cursor reads .cursor/mcp.json in your project. Keep the key out of anything you commit, and restart the client after saving. To confirm the connection, ask the client to list its tools, or run claude mcp get reeling in Claude Code. The free MCP config generator writes the same JSON with placeholder credentials.

```
# Claude Desktop (claude_desktop_config.json) or Cursor (.cursor/mcp.json)
{
  "mcpServers": {
    "reeling": {
      "command": "npx",
      "args": ["-y", "github:yomariano/reeling-mcp#v1.1.0"],
      "env": {
        "REELING_API_KEY": "rl_your_api_key"
      }
    }
  }
}

# Claude Code: hosted Streamable HTTP endpoint
claude mcp add --transport http reeling https://mcp.reeling.app/mcp \
  --header "X-API-Key: rl_your_api_key"

# Claude Code: local stdio adapter instead
claude mcp add --env REELING_API_KEY=rl_your_api_key --transport stdio reeling \
  -- npx -y github:yomariano/reeling-mcp#v1.1.0

# Check that Claude Code saved and connected the server
claude mcp get reeling
```

- [Reeling MCP server setup guide](https://reeling.app/developers/mcp)
- [Free MCP config generator for Claude, Cursor and OpenClaw](https://reeling.app/tools/mcp-config-generator)
- [Claude Code documentation: connect MCP servers](https://code.claude.com/docs/en/mcp)

## Find the Pinterest board ID your agent should pin to

Call three read-only tools in order. reeling_list_projects returns your project IDs. reeling_list_channels, given that project_id, returns the connected Pinterest channel and its channel ID. reeling_get_channel_options, given that channel_id, returns the account's boards with ID, name and privacy. Copy the board's numeric ID, not the name in its URL.

The Create Pin schema in Pinterest API v5 only accepts digits for board_id, so a value like weeknight-recipes is a URL slug, not an ID. Pass the ID explicitly every time. If pinterest_board_id is left out, the tool's own description says Reeling uses a default board or creates one called Reeling Videos, which is rarely where a scheduled Pin should land. Choose a public board too, because a secret board is visible only to you and its collaborators.

```
// 1. Read-only: find the project
reeling_list_projects({})

// 2. Read-only: find the Pinterest channel in that project
reeling_list_channels({"project_id": "YOUR_PROJECT_ID"})

// 3. Read-only: list boards (ID, name, privacy) for that channel
reeling_get_channel_options({"channel_id": "YOUR_PINTEREST_CHANNEL_ID"})

// A prompt you can give Claude or Cursor:
// "List my Reeling projects, find the Pinterest channel in the Recipes
//  project and show its boards with ID, name and privacy.
//  Do not publish anything yet."
```

- [Pinterest API reference: list boards](https://developers.pinterest.com/docs/api/v5/boards-list/)

## Schedule a Video Pin with reeling_publish_post

Call reeling_publish_post with platforms set to pinterest, a public video_url, a title of up to 100 characters, the Pin description in content (up to 500 characters in Reeling), pinterest_board_id, a pinterest_link destination and scheduled_at as an ISO 8601 time with Z or an offset. Leave scheduled_at out to publish immediately.

Keep client-side approval on for this tool. It is a consequential write, and Reeling's MCP guide recommends reviewing the destination, content, schedule and visibility before it runs. Replace the example timestamp, and tag the destination link with UTM parameters so Pinterest visits show up as Organic Social in GA4. The same call can list other platform keys, such as youtube or instagram, to send one video to several networks, each under its own limits and approvals.

The REST API accepts the same job at POST https://api.reeling.app/api/v1/publish, with the Pinterest fields in a pinterest object (title, description, link and board_id) and the time in scheduled_for. Use REST when you need a setting the MCP tool schema does not expose.

```
// MCP: arguments the agent should show you before it runs the tool
reeling_publish_post({
  "project_id": "YOUR_PROJECT_ID",
  "platforms": ["pinterest"],
  "video_url": "https://cdn.example.com/pins/one-pan-pasta-9x16.mp4",
  "title": "One-pan pasta in 15 minutes",
  "content": "Weeknight one-pan pasta with cherry tomatoes, garlic and basil. Full recipe and shopping list on the blog.",
  "pinterest_board_id": "YOUR_NUMERIC_BOARD_ID",
  "pinterest_link": "https://example.com/one-pan-pasta?utm_source=pinterest&utm_medium=social&utm_campaign=weeknight-recipes&utm_content=video-pin",
  "scheduled_at": "2026-11-14T19:00:00Z"
})

# REST: the same Video Pin
curl -X POST https://api.reeling.app/api/v1/publish \
  -H "X-API-Key: $REELING_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "project_id": "YOUR_PROJECT_ID",
    "video_url": "https://cdn.example.com/pins/one-pan-pasta-9x16.mp4",
    "platforms": ["pinterest"],
    "pinterest": {
      "title": "One-pan pasta in 15 minutes",
      "description": "Weeknight one-pan pasta with cherry tomatoes, garlic and basil.",
      "link": "https://example.com/one-pan-pasta?utm_source=pinterest&utm_medium=social&utm_campaign=weeknight-recipes&utm_content=video-pin",
      "board_id": "YOUR_NUMERIC_BOARD_ID"
    },
    "scheduled_for": "2026-11-14T19:00:00Z"
  }'
```

| Pin field | MCP argument | REST field | Reeling limit | Pinterest limit |
| --- | --- | --- | --- | --- |
| Video | video_url | video_url (or a multipart video upload) | MP4 or MOV, up to 100 MiB | MP4, MOV or M4V; H.264 or H.265; up to 2 GB; 4 seconds to 15 minutes |
| Title | title | pinterest.title | 100 characters | 100 characters; about the first 40 show in feeds, depending on the device |
| Description | content | pinterest.description | 500 characters | 800 characters |
| Destination link | pinterest_link | pinterest.link | A full URL | 2,048 characters |
| Board | pinterest_board_id | pinterest.board_id | ID from reeling_get_channel_options | Digits only |
| Publish time | scheduled_at | scheduled_for | ISO 8601 with a timezone; omit to publish now | Not applicable: Reeling holds the queue |

- [Free UTM builder for Pinterest destination links](https://reeling.app/tools/utm-builder)
- [UTM naming conventions for social media links](https://reeling.app/blog/utm-links-for-social-campaigns)
- [Reeling developer portal: POST /publish fields](https://reeling.app/developers)

## Check delivery and fix common Pinterest publishing errors

A successful tool response means Reeling accepted or scheduled the Pin, not that it is live. Save the returned post ID and call reeling_get_post_status (REST: GET /api/v1/posts/{id}) to read each destination's published flag and upload status. Pinterest also processes video after creation, and notes that a new Video Pin can report the creative type REGULAR until processing finishes.

If a publish call times out, do not resend it straight away. Check the status of the post ID you already have, so you do not create a duplicate Pin. The table maps the failure modes documented by Pinterest and in Reeling's platform notes to a fix.

| Symptom | Likely cause | Fix |
| --- | --- | --- |
| Pin exists but nobody else can see it | The Pinterest app has Trial access, so its Pins are sandbox entities visible only to their creator | Public Pins need Standard access; check the channel's status in Connect Channels |
| Pin creation rejected | Trial access or missing permissions on the connection; Reeling's Pinterest notes say Trial access can reject Pin creation | Reconnect the business account and confirm the channel's capabilities before retrying |
| HTTP 403 PINNER_DATA_ACCESS_DENIED when calling Pinterest directly | An app registered on or after September 14, 2026 requested a non-business user's board or Pin without Pinterest's authorization | Use a business account, or request the access Pinterest asks for |
| Pin landed on the wrong board | pinterest_board_id was left out, so the default or Reeling Videos board was used | Pass the numeric ID from reeling_get_channel_options |
| Video refused before publishing | File over 100 MiB, or not MP4 or MOV | Re-encode at a lower bitrate; size it with the video file size calculator |
| Video letterboxed or cropped in the feed | Aspect ratio outside 1:2 to 1.91:1, or a 16:9 master in a vertical feed | Export 2:3 or 9:16 for vertical placements |
| Description cut off or rejected | Longer than Reeling's 500-character Pinterest limit | Trim to 500 characters and put the keyword early |
| 400 Bad Request on a direct POST /v5/pins video call | No valid cover image in media_source | Send cover_image_url, or cover_image_key_frame_time, with the media_id |

- [Size a Video Pin under 100 MiB with the video file size calculator](https://reeling.app/tools/video-file-size-calculator)
- [Check 2:3 and 9:16 frames with the video aspect ratio calculator](https://reeling.app/tools/video-aspect-ratio-calculator)
- [Crop or fit one video for 9:16, 1:1 and 16:9](https://reeling.app/blog/crop-or-fit-social-video)

## What a Pinterest MCP wrapper does under the hood

Creating a Video Pin with Pinterest API v5 takes four calls. Register the upload with POST /v5/media, send the file to the returned upload_url with every upload_parameter, poll GET /v5/media/{media_id} until the status is succeeded, then call POST /v5/pins with board_id and a media_source of type video_id. The token needs boards:read, boards:write, pins:read and pins:write.

The upload step goes straight to Pinterest's media bucket without a Bearer token and returns 204 No Content, and the media status moves from registered to processing to succeeded or failed. Build this yourself if you need image Pins, board sections or alt text: the Create Pin schema in API v5.28.0 also accepts board_section_id, alt_text (up to 500 characters) and a link of up to 2,048 characters. With a scheduler-backed server, your agent makes one tool call and the scheduler deals with Pinterest's upload steps.

```
# 1. Register the upload (returns media_id, upload_url and upload_parameters)
curl -X POST https://api.pinterest.com/v5/media \
  -H "Authorization: Bearer $PINTEREST_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"media_type": "video"}'

# 2. Upload the file to upload_url, one -F per upload_parameter
#    (no Bearer header; success is 204 No Content)
curl -X POST "$UPLOAD_URL" \
  -F "key=..." -F "policy=..." -F "x-amz-signature=..." \
  -F "file=@one-pan-pasta-9x16.mp4"

# 3. Poll until status is succeeded (registered > processing > succeeded or failed)
curl https://api.pinterest.com/v5/media/$MEDIA_ID \
  -H "Authorization: Bearer $PINTEREST_TOKEN"

# 4. Create the Video Pin
curl -X POST https://api.pinterest.com/v5/pins \
  -H "Authorization: Bearer $PINTEREST_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "board_id": "YOUR_NUMERIC_BOARD_ID",
    "title": "One-pan pasta in 15 minutes",
    "description": "Weeknight one-pan pasta with cherry tomatoes, garlic and basil.",
    "link": "https://example.com/one-pan-pasta?utm_source=pinterest&utm_medium=social",
    "media_source": {
      "source_type": "video_id",
      "media_id": "MEDIA_ID_FROM_STEP_1",
      "cover_image_url": "https://cdn.example.com/pins/one-pan-pasta-cover.jpg"
    }
  }'
```

- [Pinterest Developers: create boards and Pins, including video Pins](https://developers.pinterest.com/docs/work-with-organic-content-and-users/create-boards-and-pins/)
- [Pinterest API reference: create Pin](https://developers.pinterest.com/docs/api/v5/pins-create/)
- [Pinterest API OpenAPI description on GitHub](https://github.com/pinterest/api-description)

## Checklist: a weekly Pinterest batch your agent can run safely

Run the batch as a short loop: read the channel and boards, draft every Pin for review, schedule only after you approve the arguments, and check status the next day. Give each Pin a UTM-tagged link and its own time slot rather than sending the batch at once, so a failed Pin is easy to spot.

Paste the checklist into your project notes or the agent's instructions. Each line maps to a tool call or a limit covered above, so the agent can report a pass or fail for every item before asking you to approve the publish calls.

```
[ ] reeling_list_channels: Pinterest channel connected and active in the right project
[ ] reeling_get_channel_options: numeric board IDs copied; boards are public
[ ] Each video: MP4 or MOV, under 100 MiB, 2:3 or 9:16, at least 4 seconds
[ ] Title: 100 characters or fewer, keyword in the first 40
[ ] Description: 500 characters or fewer
[ ] Link: utm_source=pinterest&utm_medium=social&utm_campaign=...&utm_content=video-pin
[ ] scheduled_at: ISO 8601 with Z or an offset, one slot per Pin
[ ] Client approval prompt shown for every reeling_publish_post call
[ ] Next day: reeling_get_post_status for every post ID; published flag checked
```

## Frequently Asked Questions

### Does Pinterest have an official MCP server?

Yes. Pinterest announced Pinterest MCP on June 17, 2026. It is built for advertisers and partner copilots, with access to campaign, analytics and keyword insights, and is being developed with alpha partners such as PMG, Dentsu and Havas. When we checked on November 11, 2026, Pinterest's developer page still offered sign-ups for launch updates.

### Can Claude post to Pinterest?

Yes, through an MCP server that can create Pins. With Reeling's MCP server connected to Claude Desktop, Claude Code or Cursor, Claude can list your boards with reeling_get_channel_options and schedule a Video Pin with reeling_publish_post. Keep tool approval on so you confirm each Pin before it is queued.

### Can Reeling create image Pins or Pinterest ads?

No. Reeling's Pinterest integration publishes Video Pins to a board you choose, with a title, description and destination link. It does not create image Pins or manage ads, and it does not fetch Pinterest comments or metrics. Use Pinterest's own tools or your own API v5 app for those.

### Why can only I see Pins created through the Pinterest API?

The app that created them has Trial access. Pinterest treats every Pin and board created with Trial access as a sandbox entity visible only to its creator. Upgrading to Standard access requires a demo video of the OAuth flow, which Pinterest reviews; after approval, new Pins are no longer sandboxed.

### How do I find my Pinterest board ID?

In Reeling, call reeling_get_channel_options with your Pinterest channel ID; it returns each board's ID, name and privacy. With the Pinterest API directly, call GET /v5/boards. Board IDs contain only digits, so the name in a board's URL is not its ID.

## Primary Sources & Documentation

- [Pinterest Developers: About the Pinterest MCP server (checked 2026-11-11)](https://developers.pinterest.com/about-pinterest-mcp/)
- [Pinterest Newsroom: Cannes Lions 2026 announcements, including Pinterest MCP (published 2026-06-17)](https://newsroom.pinterest.com/news/cannes-2026/)
- [Pinterest Developers: Understanding our access tiers (checked 2026-11-11)](https://developers.pinterest.com/docs/key-concepts/access-tiers/)
- [Pinterest Developers: Create boards and Pins (checked 2026-11-11)](https://developers.pinterest.com/docs/work-with-organic-content-and-users/create-boards-and-pins/)
- [Pinterest API v5 reference: Create Pin (checked 2026-11-11)](https://developers.pinterest.com/docs/api/v5/pins-create/)
- [Pinterest api-description: OpenAPI spec v5.28.0 (checked 2026-11-11)](https://github.com/pinterest/api-description)
- [Pinterest Business Help: Review ad specs, including video Pin specs (checked 2026-11-11)](https://help.pinterest.com/en/business/article/pinterest-product-specs)
- [Reeling MCP adapter v1.1.0 source and tool schemas (checked 2026-11-11)](https://github.com/yomariano/reeling-mcp)
- [Claude Code documentation: Connect Claude Code to tools via MCP (checked 2026-11-11)](https://code.claude.com/docs/en/mcp)
- [Model Context Protocol: Architecture overview](https://modelcontextprotocol.io/docs/learn/architecture)
- [Reeling Pinterest integration](https://reeling.app/integrations/pinterest)

## Related

- [All Publishing Guides](https://reeling.app/blog)
- [Connect Claude and Cursor to Reeling MCP](https://reeling.app/blog/claude-cursor-mcp-social-media-automation)
- [UTM naming conventions for social media: rules, platform values and examples](https://reeling.app/blog/utm-links-for-social-campaigns)
- [Crop or fit? Prepare one video for three shapes](https://reeling.app/blog/crop-or-fit-social-video)
- [Free Creator Tools](https://reeling.app/tools)
- [Plans & Pricing](https://reeling.app/pricing)

---
Need the interactive version? Visit https://reeling.app/blog/pinterest-mcp-server-schedule-video-pins
Full site index for AI agents: https://reeling.app/llms.txt
