Skip to main content
Glama
Kargatharaakash

Pinterest MCP Server

Pinterest MCP Server

npm version NPM Downloads

A Model Context Protocol (MCP) server for Pinterest image search and information retrieval.

Features

  • Search for images on Pinterest by keywords

  • Retrieve detailed information about Pinterest images

  • Seamless integration with Cursor IDE, Claude Desktop, and Remote MCP clients

  • Dual transport modes: Stdio (Local IDEs) and HTTP/SSE (Remote Hosting / Render)

  • API Key Bearer Authentication for cloud deployment

  • Support for headless browser mode

  • Configurable search result limits and filename templates

  • Search and download images directly to local storage

Related MCP server: pinterest-mcp

Prerequisites

Installation & Deployment

🚀 Deploying to Render (Remote MCP Server over HTTP/SSE)

You can host this Pinterest MCP server as a secure remote service on Render, Railway, or Fly.io with Bearer API Key authentication.

  1. Connect your repository to Render or use the included render.yaml blueprint.

  2. Set Environment Variables:

    • PORT: 3000 (or leave default set by Render)

    • API_KEY: your_super_secret_key_here (Secret key required for client requests)

    • MCP_PINTEREST_DOWNLOAD_DIR: /tmp/downloads

  3. Health check URL: GET /health (Returns 200 OK)

  4. SSE connection URL: GET /sse (Requires Authorization: Bearer <API_KEY> header or x-api-key header)

Client Request Example with Bearer Key

GET /sse HTTP/1.1
Host: pinterest-mcp.onrender.com
Authorization: Bearer your_super_secret_key_here

Unauthenticated requests receive 401 Unauthorized responses.


npx pinterest-mcp-server

Command-line options:

# Specify download directory
npx pinterest-mcp-server --downloadDir /path/to/downloads

# Specify filename template
npx pinterest-mcp-server --filenameTemplate "pinterest_{id}"

# Specify both options
npx pinterest-mcp-server --downloadDir ./images --filenameTemplate "pinterest_{id}"

Global Installation

npm install -g pinterest-mcp-server
pinterest-mcp-server --downloadDir /path/to/downloads

Manual Installation

  1. Clone repository:

    git clone https://github.com/terryso/mcp-pinterest.git pinterest-mcp-server
    cd pinterest-mcp-server
  2. Install dependencies:

    npm install
  3. Build server:

    npm run build
  4. Start server:

    npm start

Configuring as MCP Server in Cursor

  1. Open Cursor IDE

  2. Go to Settings (⚙️) > Extensions > MCP

  3. Click Add Server

  4. Enter configuration:

    • Name: Pinterest MCP

    • Type: Command

    • Command: node

    • Args: ["/path/to/mcp-pinterest/dist/pinterest-mcp-server.js"]

Or edit your Cursor MCP config file (~/.cursor/mcp.json):

{
  "pinterest": {
    "command": "node",
    "args": ["/path/to/mcp-pinterest/dist/pinterest-mcp-server.js"]
  }
}

Environment Variables Configuration Example

{
  "pinterest": {
    "command": "npx",
    "env": {
      "MCP_PINTEREST_DOWNLOAD_DIR": "/Users/user/Desktop/Images",
      "MCP_PINTEREST_FILENAME_TEMPLATE": "pin_{imageId}_{timestamp}.{fileExtension}",
      "MCP_PINTEREST_PROXY_SERVER": "http://127.0.0.1:7890"
    },
    "args": ["pinterest-mcp-server"]
  }
}

Available MCP Tools

  • pinterest_health_check: System metrics, memory usage, Chromium binary status, and write diagnostics

    • No required parameters.

  • pinterest_search: Search for images on Pinterest by keyword with persistent browser pool

    • keyword: Search term (required)

    • limit: Number of images to return (default: 10)

    • headless: Whether to use headless browser mode (default: true)

  • pinterest_get_similar_pins: Deep visual recommendation engine for a target Pin URL or Pin ID

    • pin_url_or_id: Pinterest Pin URL (e.g. https://www.pinterest.com/pin/11822017768403505/) or numeric Pin ID (required)

    • limit: Number of recommended pins to return (default: 10)

    • headless: Whether to use headless browser mode (default: true)

  • pinterest_get_image_info: Retrieve detailed information for a Pinterest image

    • image_url: Image URL (required)

  • pinterest_search_and_download: Search and download Pinterest images directly to disk

    • keyword: Search term (required)

    • limit: Number of images (default: 10)

    • headless: Whether to use headless browser mode (default: true)

Environment Variables Reference

Variable

Description

Default

PORT / HTTP_PORT

HTTP Port for SSE server mode

(Stdio mode if unassigned)

API_KEY / MCP_API_KEY

Secret API key for HTTP/SSE authentication

(No auth if empty)

MCP_PINTEREST_DOWNLOAD_DIR

Root directory for downloads

../downloads

MCP_PINTEREST_FILENAME_TEMPLATE

Template for downloaded file names

pinterest_{imageId}.{fileExtension}

MCP_PINTEREST_PROXY_SERVER

Optional proxy server (http://host:port)

None

PUPPETEER_EXECUTABLE_PATH

Path to custom Chrome/Chromium binary

System default

License

This project is licensed under the MIT License - see the LICENSE file for details.

Available Tools

5 tools
pinterest_get_image_infoC

Get Pinterest image information

ParametersJSON Schema
NameRequiredDescriptionDefault
image_urlYesImage URL

TDQS

C2.1/5.0
Behavior1/5

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

No annotations provided, and the description lacks any behavioral details such as rate limits, authentication, or error handling. It does not even mention that it fetches metadata or requires an image URL.

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

Conciseness2/5

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

The description is a single short sentence, but it is under-specified and lacks necessary detail. It is not a model of conciseness; it is minimal without being helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool that presumably returns image information, the description fails to mention what that information includes, the output format, or any prerequisites. It is completely inadequate given the lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter having a clear description. The tool description adds no extra meaning, but the baseline is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb 'Get' and resource 'Pinterest image information', which is clear but vague. It distinguishes from siblings (health, search, similar pins) but does not specify what 'image information' includes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The description provides no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pinterest_get_similar_pinsB

Open a target Pinterest Pin URL or ID and retrieve "More like this" related visual design recommendations

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of recommended pins to return (default: 10)
headlessNoWhether to use headless browser mode (default: true)
pin_url_or_idYesPinterest Pin URL (e.g. https://www.pinterest.com/pin/11822017768403505/) or numeric Pin ID

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It does not disclose behavioral traits such as whether the operation is read-only, authentication requirements, rate limits, or implications of the 'headless' parameter (e.g., browser automation). This leaves significant gaps for an agent.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no fluff. It conveys the core action efficiently, though it could benefit from a bit more context without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should provide more context about return format, error handling, and behavioral details. The current description is incomplete for a tool with 3 parameters and potential side effects like headless browsing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters described. The description aligns with pin_url_or_id and hints at limit's purpose, but does not add meaning beyond the schema for headless. Baseline 3 is appropriate since the schema already documents parameters adequately.

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 clearly states the tool's function: open a Pinterest Pin URL/ID and retrieve 'More like this' related recommendations. It uses specific verbs and resource, and distinguishes from siblings like pinterest_search and pinterest_get_image_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (when you have a pin and want similar ones) but does not explicitly state when to use this tool vs alternatives, nor does it provide exclusions or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pinterest_health_checkA

Check health, system metrics, Chromium browser status, write permissions, and server status

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must fully convey behavioral traits. It lists what the tool checks but does not disclose whether it modifies state, requires authentication, or has rate limits. It does not contradict any annotations (none provided).

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

Conciseness5/5

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

The description is a single sentence that efficiently lists all checked items without redundancy or irrelevant details. Every phrase earns its place.

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 there are no parameters and no output schema, the description provides a complete list of what the health check covers. It is sufficient for an agent to understand the tool's functionality.

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?

The input schema has no parameters, and schema coverage is 100%. The description adds no parameter information beyond what the schema provides, which is acceptable since there are no parameters. A baseline of 4 is appropriate.

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 uses the verb 'Check' and specifies distinct aspects: health, system metrics, Chromium browser status, write permissions, and server status. It clearly identifies the tool's purpose and differentiates it from sibling tools like pinterest_search and pinterest_get_image_info.

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?

The description implies the tool is for health checking, but it does not explicitly state when to use it versus alternatives or provide exclusion criteria. However, the sibling tools are clearly for different functions (search, image info), so the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pinterest_search_and_downloadB

Search for images on Pinterest by keyword and download them

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of images to return and download (default: 10)
keywordYesSearch keyword
headlessNoWhether to use headless browser mode (default: true)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It omits details like download location, file format, browser automation implications (headless parameter not mentioned), and potential side effects.

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

Conciseness4/5

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

A single sentence with no wasted words, but it lacks front-loading of critical context. Appropriate length for the content provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 3 parameters and no output schema, the description fails to explain return behavior (e.g., saved files, temporary storage) or how 'download' works. Incomplete for proper tool invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what is already in the schema for parameters.

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 clearly states the verb 'Search' and 'download', the resource 'images on Pinterest', and the method 'by keyword'. It distinguishes from sibling 'pinterest_search' by adding download functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'pinterest_search' or 'pinterest_get_image_info'. The agent is left to infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 5 tool updatesv1.2.0
    • First observedpinterest_get_image_info
    • First observedpinterest_get_similar_pins
    • First observedpinterest_health_check
    • First observedpinterest_search
    • First observedpinterest_search_and_download

TDQS

B3.1/5.0
Disambiguation4/5

The health check tool is clearly distinct. Among search tools, pinterest_search and pinterest_search_and_download may cause confusion, but descriptions clarify the download action. pinterest_get_image_info and pinterest_get_similar_pins focus on specific operations, reducing overlap.

Naming Consistency4/5

All tools use the 'pinterest_' prefix and snake_case. However, verb patterns vary: some are bare verbs (pinterest_search), some are verb_noun (pinterest_get_image_info), and one is verb_verb (pinterest_search_and_download). This minor inconsistency prevents a perfect score.

Tool Count5/5

With 5 tools, the server is well-scoped for its apparent purpose of Pinterest image search and discovery. Each tool serves a clear function without excessive duplication or missing core features.

Completeness3/5

The tool set covers search, image info, download, and similar pins, which are central to image discovery. However, it lacks board management, pin creation, or user profile operations, leaving notable gaps for a comprehensive Pinterest integration.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to manage Pinterest boards and pins, create and update pins, and track analytics via the Pinterest API v5.
    4
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Extracts images, gifs, videos, and search results from Pinterest without authentication. Supports search, pin details, board pins, related pins, autocomplete, and media downloads.
    6
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search public Pinterest pins, retrieve pin metadata and media URLs, and download matching images, GIFs, or videos into a local folder, with read-only tools and explicit confirmation for downloads.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Kargatharaakash/mcp-pinterest'

If you have feedback or need assistance with the MCP directory API, please join our Discord server