View as Markdown

Pinterest Integration

Manage Pinterest boards, pins, search, ad accounts, and campaigns

The Pinterest integration provides access to manage Pinterest boards, pins, search, ad accounts, and campaigns through the Integrate MCP server.

Installation

The Pinterest integration is included with the SDK:

import { pinterestIntegration } from "integrate-sdk/server";

Setup

1. Create a Pinterest OAuth App

  1. Create an OAuth application for Pinterest
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Pinterest integration to your server configuration. The integration automatically reads PINTEREST_CLIENT_ID and PINTEREST_CLIENT_SECRET from your environment variables:

import { createMCPServer, pinterestIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    pinterestIntegration({
      scopes: ["boards:read", "boards:write", "pins:read", "pins:write", "user_accounts:read", "ads:read", "ads:write"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

pinterestIntegration({
  clientId: process.env.CUSTOM_PINTEREST_ID,
  clientSecret: process.env.CUSTOM_PINTEREST_SECRET,
      scopes: ["boards:read", "boards:write", "pins:read", "pins:write", "user_accounts:read", "ads:read", "ads:write"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("pinterest");
const result = await client.pinterest.getUser({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, pinterestIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [pinterestIntegration()],
});

Configuration Options

export interface PinterestIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • boards:read
  • boards:write
  • pins:read
  • pins:write
  • user_accounts:read
  • ads:read
  • ads:write

Tools

pinterest_get_user

Get user

No parameters.

pinterest_list_boards

List boards

export interface PinterestListBoardsParams { page_size?: number;

pinterest_get_board

Get board

export interface PinterestGetBoardParams { board_id: string }

pinterest_create_pin

Create pin

export interface PinterestCreatePinParams { pin_json: string }

pinterest_get_pin

Get pin

export interface PinterestGetPinParams { pin_id: string }

pinterest_search_pins

Search pins

export interface PinterestSearchPinsParams { query?: string;

pinterest_list_ad_accounts

List ad accounts

export interface PinterestListAdAccountsParams { page_size?: number;

pinterest_list_campaigns

List campaigns

export interface PinterestListCampaignsParams { ad_account_id: string;

Notes

  • Category: Social Media
  • Authentication mode: OAuth