Glowe Pinterest MCP

Glowe Pinterest MCP

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.

Category
Visit Server

README

Glowe Pinterest MCP

Un downloader Pinterest public, utilisable de deux façons : une CLI pour les humains et un serveur MCP stdio pour les agents IA. Le cœur est unique : la CLI et le MCP obtiennent donc les mêmes résultats, appliquent les mêmes validations d’URL et téléchargent uniquement dans un dossier local configuré.

Utiliser seulement les contenus pour lesquels vous détenez les droits nécessaires. Ce projet lit les données publiques rendues par Pinterest : ce n’est ni une API Pinterest officielle, ni une manière de contourner une connexion, un paywall ou une restriction de contenu.

Ce que le projet fait

  • Résout les liens de Pins Pinterest et les liens courts pin.it.
  • Recherche des Pins publics par mots-clés.
  • Extrait le titre, la description, l’URL du Pin et les médias image/GIF/vidéo exposés publiquement.
  • Essaie l’image originals, puis les variantes 1200x, 736x, etc. si Pinterest ne sert pas la meilleure version.
  • Télécharge de manière atomique : fichier .part, renommage final, sans écraser un fichier existant.
  • Refuse les redirections et URLs médias hors de pinterest.*, pin.it et des CDN *.pinimg.com autorisés.

La recherche utilise la ressource publique structurée rendue par Pinterest, avec un fallback HTML transparent si elle devient indisponible. Pinterest peut ne rendre qu’une première tranche de résultats sans connexion : ce n’est pas une pagination garantie et il ne faut pas l’utiliser pour aspirer des tableaux complets.

Installation locale

Node 20 ou plus récent est requis.

cd tools/pinterest-mcp
npm install

Choisissez explicitement le dossier de sortie :

export PINTEREST_MCP_DOWNLOAD_DIR="$PWD/downloads"

Les médias sont limités à 35 MiB par défaut. Ajuster seulement si nécessaire :

export PINTEREST_MCP_MAX_MEDIA_BYTES=52428800

CLI — pour les humains

Toutes les commandes acceptent --json pour une sortie exploitable par script.

# Rechercher des références, sans écrire de fichier
npm run cli -- search "coiffure bob femme" --limit 8

# Charger la page suivante avec le nextCursor renvoyé par la recherche précédente
npm run cli -- search "coiffure bob femme" --limit 8 --cursor "CURSEUR_RENVOYÉ"

# Inspecter exactement ce qu’un Pin expose avant de télécharger
npm run cli -- inspect "https://pin.it/EXEMPLE" --json

# Télécharger un ou plusieurs Pins dans un dossier local contrôlé
npm run cli -- download "https://www.pinterest.com/pin/99360735500167749/" --output ./downloads

# Éviter les vidéos lorsque seules les images intéressent le workflow
npm run cli -- download "https://www.pinterest.com/pin/99360735500167749/" --no-video

# Recherche suivie d’un téléchargement : à employer seulement après validation du volume
npm run cli -- search-download "hairstyle editorial" --limit 5 --output ./downloads

Les commandes download et search-download ne prennent jamais un chemin de sortie depuis une URL ou une réponse distante. Les noms de fichiers sont normalisés et les collisions produisent un suffixe plutôt qu’un écrasement.

MCP — pour les agents IA

Lancer le serveur directement :

PINTEREST_MCP_DOWNLOAD_DIR="$PWD/downloads" npm run mcp

Il utilise stdio : aucun port, aucune clé Pinterest et aucun journal applicatif sur stdout. Les erreurs et diagnostics de démarrage restent sur stderr, afin de ne pas corrompre le protocole MCP.

Exemple de configuration locale Codex (~/.codex/config.toml) :

[mcp_servers.glowe_pinterest]
command = "node"
args = ["/CHEMIN_ABSOLU/glowe/tools/pinterest-mcp/bin/mcp-server.mjs"]

[mcp_servers.glowe_pinterest.env]
PINTEREST_MCP_DOWNLOAD_DIR = "/CHEMIN_ABSOLU/pinterest-downloads"
PINTEREST_MCP_MAX_MEDIA_BYTES = "36700160"

Après modification de la configuration, redémarrer le client MCP/Codex afin qu’il relance le processus. Pour tout autre client MCP, utilisez la même commande node, le même argument absolu et les mêmes variables d’environnement.

Contrat des outils MCP

Outil Écrit sur disque Usage agent recommandé
pinterest_search Non Chercher et présenter des références avant toute action ; réutiliser nextCursor pour la page suivante lorsqu’il est présent.
pinterest_get_pin Non Vérifier un lien pinterest.com ou pin.it, ses médias et ses métadonnées.
pinterest_download Oui Demander confirmation, puis télécharger 1 à 20 Pins fournis.
pinterest_search_and_download Oui Utiliser uniquement après confirmation explicite du nombre de résultats.
pinterest_status Non Vérifier le dossier local et les limites en vigueur.

Les outils de lecture portent l’annotation MCP readOnlyHint. Les outils qui écrivent sur disque expliquent dans leur description qu’une confirmation de l’utilisateur est requise. Un agent doit toujours privilégier cette séquence : pinterest_search → montrer la sélection → pinterest_get_pin → confirmation → pinterest_download.

Exemple de réponse MCP

pinterest_get_pin renvoie un JSON structuré contenant notamment :

{
  "id": "99360735500167749",
  "pinUrl": "https://www.pinterest.com/pin/99360735500167749/",
  "title": "…",
  "media": [
    {
      "type": "image",
      "url": "https://i.pinimg.com/originals/...jpg",
      "alternatives": ["https://i.pinimg.com/1200x/...jpg"]
    }
  ]
}

L’agent ne doit pas inventer la disponibilité d’un média : il s’appuie sur media, puis rapporte séparément chaque téléchargement réussi ou échoué.

Tests et contrôle qualité

# Tests déterministes : URLs, parsing SSR, repli qualité, écriture atomique, handshake MCP
npm test

# Vérification réseau explicite : recherche réelle, extraction d’un Pin, téléchargement CDN réel
npm run test:live

Le test réseau est volontairement séparé : Pinterest peut modifier son HTML public ou rendre un Pin indisponible. Il ne doit jamais être masqué par les tests unitaires.

Inspirations et choix techniques

Le design s’inspire des projets MIT pinterest-downloader (priorité originals et cascade de qualité) et PinterestDownloader (contrats structurés Pin/recherche). L’interface MCP s’inspire de mcp-pinterest, mais l’implémentation ici est autonome, sans navigateur headless, avec une surface de téléchargement volontairement plus restrictive.

Pour les Pins et boards appartenant au compte Pinterest connecté, préférer l’API Pinterest officielle et OAuth. Les conditions Pinterest et les droits d’auteur restent applicables à tout contenu téléchargé.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured