Skip to main content
Glama
aymandakirgh

pinterest-mcp

by aymandakirgh

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP transport only.3000
MCP_AUTH_SECRETNoSeals the OAuth tokens this server issues. Required for a hosted deployment — without it, issued tokens die on restart.random per boot
PUBLIC_BASE_URLNoAbsolute origin of the deployment. Used for OAuth metadata and callback URLs; set it behind a proxy.derived from the request
PINTEREST_APP_IDNoApp id, for the OAuth tools.
PINTEREST_SANDBOXNoSet to `1` to target the Pinterest sandbox.0
PINTEREST_APP_SECRETNoApp secret, for the OAuth tools.
PINTEREST_MAX_RETRIESNoAttempts for retryable failures (429 / 5xx).3
PINTEREST_ACCESS_TOKENNoToken the server acts with. Optional: without it only the OAuth tools work.
PINTEREST_API_BASE_URLNoOverride the API root outright.
PINTEREST_REDIRECT_URINoMust match a URI registered on the app exactly.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
pinterest_get_user_accountA

Fetch the authenticated user's account: username, id, account type, profile image and follower counts. The fastest way to verify a token works. Scope: user_accounts:read.

pinterest_get_user_analyticsA

Daily account-level analytics over a date window of up to 90 days. Scope: user_accounts:read and pins:read.

pinterest_get_top_pinsB

Rank the account's pins by a metric over a date window — the tool to reach for when asked what is working. Scope: user_accounts:read and pins:read.

pinterest_get_top_video_pinsB

Rank the account's video pins by a video metric over a date window. Scope: user_accounts:read and pins:read.

pinterest_get_pin_analyticsB

Daily analytics for a single pin over a date window of up to 90 days. Scope: pins:read.

pinterest_get_multi_pin_analyticsA

Analytics for up to 100 pins in one call — far cheaper than looping pinterest_get_pin_analytics. Scope: pins:read.

pinterest_list_followersB

List the accounts following the authenticated user. Scope: user_accounts:read.

pinterest_list_followingA

List the users and boards the authenticated user follows. Scope: user_accounts:read.

pinterest_list_claimed_websitesA

List the websites claimed by the authenticated account, with their verification status. Scope: user_accounts:read.

pinterest_list_boardsA

List the authenticated user's boards, newest first. Scope: boards:read (plus boards:read_secret to include secret boards). Returns a bookmark cursor when more pages exist.

pinterest_get_boardA

Fetch a single board by id, including its pin and follower counts. Scope: boards:read.

pinterest_create_boardA

Create a new board on the authenticated account. Scope: boards:write (boards:write_secret for SECRET boards).

pinterest_update_boardA

Update a board's name, description or privacy. Only the fields you pass are changed. Scope: boards:write.

pinterest_delete_boardA

Permanently delete a board AND every pin saved to it. This cannot be undone. Scope: boards:write.

pinterest_list_board_pinsB

List the pins saved to a board. Scope: pins:read and boards:read.

pinterest_list_board_sectionsA

List the sections within a board. Scope: boards:read.

pinterest_create_board_sectionB

Add a section to a board. Scope: boards:write.

pinterest_update_board_sectionB

Rename an existing board section. Scope: boards:write.

pinterest_delete_board_sectionA

Delete a board section. Pins in the section move back to the board root rather than being deleted. Scope: boards:write.

pinterest_list_board_section_pinsA

List the pins saved inside one section of a board. Scope: pins:read and boards:read.

pinterest_list_pinsB

List the authenticated user's pins, newest first. Scope: pins:read (plus pins:read_secret for pins on secret boards).

pinterest_get_pinA

Fetch a single pin by id, including its media, link and board. Scope: pins:read.

pinterest_create_pinA

Create a pin on one of the authenticated user's boards. Requires a board_id and a media_source. Scope: pins:write (pins:write_secret for secret boards).

pinterest_update_pinA

Update a pin's text fields, link or board placement. Media cannot be changed after creation. Scope: pins:write.

pinterest_delete_pinA

Permanently delete a pin. This cannot be undone. Scope: pins:write.

pinterest_save_pinA

Save an existing pin to one of the authenticated user's boards — the API equivalent of a repin. Scope: pins:write.

pinterest_register_mediaA

Step 1 of video pin creation: register an upload and receive one-time S3 form fields. POST the video to upload_url with those upload_parameters as multipart form fields, poll pinterest_get_media until status is 'succeeded', then pass the media_id to pinterest_create_pin with source_type 'video_id'. Scope: pins:write.

pinterest_get_mediaA

Check a registered upload. Status moves registered -> processing -> succeeded (or failed). Scope: pins:read.

pinterest_list_mediaA

List the account's registered media uploads and their statuses. Scope: pins:read.

pinterest_search_my_pinsA

Full-text search across the authenticated user's own pins. This does NOT search Pinterest globally — the v5 API exposes no public discovery search. Scope: pins:read.

pinterest_search_my_boardsA

Full-text search across the authenticated user's own boards. Scope: boards:read.

pinterest_api_requestA

Escape hatch: issue an arbitrary request against the Pinterest API v5 using the configured token. Use this only for endpoints no dedicated tool covers — ad accounts, catalogs, audiences, conversion events. Prefer the specific tools when one exists: they validate input and explain failures. Path is relative to https://api.pinterest.com/v5.

pinterest_build_oauth_urlA

Build the Pinterest consent URL to open in a browser. The user approves, Pinterest redirects to your redirect_uri with a code query parameter, and you exchange that code with pinterest_exchange_oauth_code. Makes no network call.

pinterest_exchange_oauth_codeA

Exchange the code from the OAuth redirect for an access token and refresh token. Access tokens last about 30 days; refresh tokens about a year. Store both securely.

pinterest_refresh_access_tokenA

Trade a refresh token for a fresh access token. Use this when calls start failing with 401.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.8/5.0

Scored across 35 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with clear boundaries between boards, sections, pins, media, analytics, and OAuth flows. The few similar-sounding tools (e.g., list_board_pins vs. list_board_section_pins, get_top_pins vs. get_top_video_pins) are differentiated by precise descriptions.

Naming Consistency5/5

All tools follow a consistent snake_case verb_noun pattern with a uniform `pinterest_` prefix. Names like `get_user_account`, `update_board`, `list_board_pins`, and `delete_pin` are predictable and readable.

Tool Count2/5

With 35 tools, the surface is heavy for a single MCP server, exceeding the 25-tool threshold for being too many. While Pinterest's API is broad, many granular tools (e.g., separate board section operations) could be consolidated or left to the escape hatch `pinterest_api_request`.

Completeness5/5

The set covers full CRUD for boards, sections, and pins, plus media upload lifecycle, analytics, user account, followers, search, and OAuth. The `pinterest_api_request` escape hatch fills any remaining gaps for ad accounts or catalogs.

Maintenance

ActivityMaintained
ResponsivenessNo issues