Skip to main content
Glama
README.md
<div align="center">
  <a href="https://github.com/sunkimk/pinterest-mcp">
    <img src="https://raw.githubusercontent.com/sunkimk/pinterest-mcp/main/assets/banner.png" alt="Pinterest MCP" width="820" />
  </a>

  <p>
    <a href="https://www.npmjs.com/package/@sunkimkk/pinterest-mcp"><img alt="npm version" src="https://img.shields.io/npm/v/@sunkimkk/pinterest-mcp?color=F0245E&label=npm" /></a>
    <a href="https://www.npmjs.com/package/@sunkimkk/pinterest-mcp"><img alt="npm downloads" src="https://img.shields.io/npm/dw/@sunkimkk/pinterest-mcp?color=A3127F" /></a>
    <a href="https://github.com/sunkimk/pinterest-mcp/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/sunkimk/pinterest-mcp?style=flat&color=FF6B57" /></a>
    <a href="./LICENSE"><img alt="MIT License" src="https://img.shields.io/github/license/sunkimk/pinterest-mcp?color=444" /></a>
    <img alt="Node.js" src="https://img.shields.io/badge/node-%E2%89%A520.18-444" />
    <a href="https://registry.modelcontextprotocol.io/v0/servers?search=io.github.sunkimk/pinterest-mcp"><img alt="MCP Registry" src="https://img.shields.io/badge/MCP_Registry-io.github.sunkimk%2Fpinterest--mcp-1D0B1F" /></a>
  </p>

  <p><b>English</b> · <a href="./README.zh-CN.md">简体中文</a></p>
</div>

**Pinterest MCP** is an open-source MCP Server that gives Claude Code, Codex, Cursor and any other MCP client direct access to Pinterest — search pins, *actually look at* the images, follow "more like this", read boards, and download originals. It's built for designers and front-end developers who start every task by collecting references.

No Pinterest login. No API key. No headless browser.

## ❌ Without Pinterest MCP

- You switch to the browser, search, scroll, save images by hand, and drag them back into the chat.
- The AI only gets the images you remembered to paste, without their source, colours or context.

## ✅ With Pinterest MCP

```text
> Find 20 dark dashboard UIs on Pinterest, look at the first 8,
  pick the 3 with the most restrained palette and download them.
```

The agent searches, looks at the thumbnails, explains its picks, saves full-resolution files to disk — and can go straight on to build the screen from them.

## Features

- ⚡ **Fast** — talks to the same JSON endpoints pinterest.com uses; ~2–3 s for 20 pins, no Chrome to launch.
- 👀 **The model can see** — optional thumbnails are returned as images, so the agent judges style, layout and colour, not just titles.
- 🧾 **Rich metadata** — title, description, full-size URL and dimensions (thumbnail-only pins flagged `low_res`), dominant colour, source site, board, creator, date. Ads are filtered out.
- 🔁 **Go deeper** — related pins, whole boards, pagination with bookmarks.
- 🛡️ **Robust** — keeps an anonymous session and retries Pinterest's occasional "fake end of feed".
- 🪶 **Token-friendly** — hashtag walls collapsed, unusable fields dropped.
- 🎬 **Videos too** — video pins come with an MP4 `video_url`; filter to videos only for motion references.
- 📥 **Downloads** — image originals with automatic 736px fallback and MP4 videos, only from `*.pinimg.com`.

## Quick start

Requires **Node.js ≥ 20.18**.

<details open>
<summary><b>Claude Code</b></summary>

```bash
claude mcp add pinterest --scope user -- npx -y @sunkimkk/pinterest-mcp
```
</details>

<details>
<summary><b>Codex</b> — <code>~/.codex/config.toml</code></summary>

```toml
[mcp_servers.pinterest]
command = "npx"
args = ["-y", "@sunkimkk/pinterest-mcp"]
```
</details>

<details>
<summary><b>Claude Desktop</b> — one-click install</summary>

Download [`pinterest-mcp.mcpb`](https://github.com/sunkimk/pinterest-mcp/releases/latest/download/pinterest-mcp.mcpb) from the latest release and double-click it. Claude Desktop shows an install dialog where you can pick a download folder and an optional proxy.
</details>

<details>
<summary><b>Cursor / Claude Desktop / Windsurf / others</b> — JSON config</summary>

```json
{
  "mcpServers": {
    "pinterest": {
      "command": "npx",
      "args": ["-y", "@sunkimkk/pinterest-mcp"]
    }
  }
}
```

Cursor: `~/.cursor/mcp.json` · Claude Desktop: `claude_desktop_config.json`
</details>

<details>
<summary><b>From source</b></summary>

```bash
git clone https://github.com/sunkimk/pinterest-mcp.git
cd pinterest-mcp && npm install
claude mcp add pinterest --scope user -- node "$PWD/src/server.js"
```
</details>

## Tools

| Tool | What it does |
|---|---|
| `pinterest_search` | Keyword search in any language, with pagination and optional thumbnails |
| `pinterest_get_pin` | Full details of one pin (pin URL, `pin.it` short link or numeric id) |
| `pinterest_related_pins` | "More like this" for a pin |
| `pinterest_board_pins` | Pins saved on a public board |
| `pinterest_preview_images` | Turn image URLs into thumbnails the model can see |
| `pinterest_download` | Save full-resolution images and MP4 videos to disk |

`search`, `related_pins` and `board_pins` accept `previews: N` to attach thumbnails of the first N results, and `media: "video"` to return only video pins (each with an MP4 `video_url`) — handy for motion and interaction references.

## Example prompts

- *"Search Pinterest for glassmorphism login screens and show me 8 thumbnails."*
- *"What do these have in common — layout, palette, typography?"*
- *"Find pins similar to https://www.pinterest.com/pin/1128714725389331478/"*
- *"List everything on https://www.pinterest.com/awsmd_com/app-design/"*
- *"Find 10 profile page animation videos and download them."*
- *"Download #2, #5 and #7 to ~/Desktop/refs/login."*

> Tip: English keywords return far more results. Add words like `ui`, `app`, `dribbble`, `poster` or `moodboard` to steer the style.

## Configuration

| Variable | Default | Description |
|---|---|---|
| `MCP_PINTEREST_DOWNLOAD_DIR` | `~/Downloads/pinterest-mcp` | Download root |
| `MCP_PINTEREST_PROXY` | system `HTTPS_PROXY` | HTTP proxy, e.g. `http://127.0.0.1:7890` (SOCKS not supported) |
| `MCP_PINTEREST_LOCALE` | `en-US` | Request language |
| `MCP_PINTEREST_TIMEOUT_MS` | `20000` | Per-request timeout |

Example with Claude Code:

```bash
claude mcp add pinterest --scope user -e MCP_PINTEREST_PROXY=http://127.0.0.1:7890 -- npx -y @sunkimkk/pinterest-mcp
```

## FAQ

**Why can't I get details for a search result?**
Logged-out search results carry anonymous ids that Pinterest won't resolve. Everything they have is already in the search result; `get_pin` and `related_pins` need a real pin link (`pinterest.com/pin/<number>/`).

**Network errors?**
If pinterest.com is blocked where you are, set `MCP_PINTEREST_PROXY`.

**Will it break?**
It uses Pinterest's web endpoints rather than the official API, so a Pinterest redesign may require an update. Watch the repo or check the [changelog](./CHANGELOG.md).

## Development

```bash
npm install
npm test        # spins up the server and calls every tool against live pinterest.com
```

See [CHANGELOG.md](./CHANGELOG.md) for release history. Issues and PRs are welcome.

## Disclaimer

Not affiliated with, endorsed by, or sponsored by Pinterest. Use it for personal inspiration at a reasonable request rate, follow Pinterest's Terms of Service, and respect creators' copyright — downloaded images are for reference only.

## Acknowledgements

Thanks to [terryso/mcp-pinterest](https://github.com/terryso/mcp-pinterest) for first exploring Pinterest over MCP.

## Star History

<a href="https://star-history.com/#sunkimk/pinterest-mcp&Date">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=sunkimk/pinterest-mcp&type=Date&theme=dark" />
    <img alt="Star History Chart" src="https://api.star-history.com/svg?repos=sunkimk/pinterest-mcp&type=Date" width="600" />
  </picture>
</a>

## License

[MIT](./LICENSE) © sunkimk

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation5/5

Each tool addresses a distinct retrieval mode: keyword search, single-pin lookup, similarity lookup, board listing, thumbnail preview, and file download. The descriptions explicitly state dependencies and constraints (e.g. anonymous e1_ ids cannot be used with get_pin, preview vs download), leaving little room for misselection. Search/related/board_pins all return pins but differ clearly by input source and intent.

Naming Consistency4/5

All tools share a consistent pinterest_ prefix and snake_case formatting. However, only get_pin and download use a verb-first pattern; search, related_pins, and board_pins read as noun phrases, so the verb_noun convention is not uniform.

Tool Count5/5

Six tools is tightly scoped for a read-only inspiration/research server, with each tool covering a distinct step in the discover → inspect → preview → save workflow. No redundant or filler tools.

Completeness4/5

The core lifecycle (search, detail, similar, board browsing, visual preview, download) is fully covered with pagination via next_bookmark. Minor gaps exist for board/user-level discovery (no search for boards or pinners, no profile pin listing), which agents must work around by finding board URLs in search results.

Maintenance

ActivityNo data
ResponsivenessOutdated data