pinterest-business-mcp
MCP server for Pinterest Business workflows, providing tools for OAuth connection, connection status, and disconnection.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pinterest-business-mcp Check my Pinterest connection status"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pinterest Business MCP
Local Model Context Protocol server for Pinterest Business workflows. This repository includes a stdio MCP server, Pinterest OAuth connection tools, encrypted local token storage, and server status reporting.
Requirements
Node.js 22+
pnpm 11+
A Pinterest developer app with the redirect URI below
Related MCP server: pinterest-mcp
Pinterest developer dashboard setup
Sign in at Pinterest Developers.
Create or open your app.
Under Configure, add this exact redirect URI:
http://127.0.0.1:3333/oauth/callbackCopy your App ID and App secret key.
Request the scopes your workflow needs. At minimum, connection testing commonly uses read scopes such as
boards:read,pins:read, anduser_accounts:read.For sandbox testing, keep
PINTEREST_ENVIRONMENT=sandbox. Pinterest uses the same OAuth authorize page for both environments; token exchange uses the sandbox API host when sandbox is selected.
Local setup
pnpm install
cp .env.example .envEdit .env and set at minimum:
PINTEREST_ENVIRONMENT=sandbox
PINTEREST_APP_ID=your-app-id
PINTEREST_APP_SECRET=your-app-secret
PINTEREST_TOKEN_ENCRYPTION_KEY=your-base64-key
PINTEREST_OAUTH_SCOPES=boards:read,pins:read,user_accounts:readGenerate an encryption key:
openssl rand -base64 32Development
pnpm dev # watch mode (tsx)
pnpm build # compile to dist/
pnpm start # run compiled server
pnpm verify # typecheck, lint, test, buildMCP client configuration (Cursor)
Add a project-scoped MCP server entry in .cursor/mcp.json (recommended) or your user MCP settings. Do not commit real secrets.
{
"mcpServers": {
"pinterest-business": {
"command": "node",
"args": ["/absolute/path/to/pinterest-business-mcp/dist/index.js"],
"env": {
"PINTEREST_ENVIRONMENT": "sandbox",
"PINTEREST_APP_ID": "your-app-id",
"PINTEREST_APP_SECRET": "your-app-secret",
"PINTEREST_TOKEN_ENCRYPTION_KEY": "your-base64-key",
"PINTEREST_OAUTH_SCOPES": "boards:read,pins:read,user_accounts:read",
"PINTEREST_WRITES_ENABLED": "false",
"LOG_LEVEL": "info"
}
}
}
}Restart Cursor after changing MCP configuration.
Connecting your Pinterest Business account
Start the MCP server in Cursor.
Call
pinterest_get_authorization_url.Open the returned authorization URL in your browser.
Approve the Pinterest app when prompted.
Wait for the local callback page at
http://127.0.0.1:3333/oauth/callbackto report success.Call
pinterest_connection_statusto confirm the connection.
The MCP server never asks for your Pinterest password. Authentication happens only on Pinterest's official OAuth page.
Sandbox setup
Set
PINTEREST_ENVIRONMENT=sandbox.Use the same redirect URI:
http://127.0.0.1:3333/oauth/callback.OAuth authorization still starts at
https://www.pinterest.com/oauth/.Token exchange and refresh use
https://api-sandbox.pinterest.com/v5/oauth/token.
Tools
pinterest_server_status
Returns server metadata and configuration flags only — never credential values.
pinterest_get_authorization_url
Starts the local callback listener on 127.0.0.1:3333, creates a single-use OAuth state value, and returns the Pinterest authorization URL plus safe instructions. Tokens are never returned by this tool.
Optional input:
scopes: array of official Pinterest scopes. If omitted,PINTEREST_OAUTH_SCOPESis used.
pinterest_connection_status
Reports whether a Pinterest account is connected locally, including scope and expiry metadata. Tokens are never returned. Expired access tokens are refreshed automatically when a valid refresh token is available.
pinterest_disconnect
Securely removes locally stored OAuth authorization data. To revoke access on Pinterest itself, remove the app from Pinterest settings under Security and logins → Apps.
Environment variables
See .env.example for the full list.
Variable | Required | Description |
| Yes |
|
| OAuth | Pinterest app ID |
| OAuth | Pinterest app secret |
| OAuth | Base64 or passphrase used for AES-256-GCM token encryption |
| No | Encrypted token file path (default: |
| OAuth | Default scopes unless overridden by the authorization tool |
| No |
|
| No |
|
Troubleshooting
Problem | What to check |
Callback port already in use | Another OAuth attempt or process is using |
Redirect URI mismatch | The Pinterest app must contain the exact URI |
Missing scopes | Set |
Connection not stored | Confirm |
Sandbox token exchange failed | Keep |
Refresh failed | Reconnect with |
Token revocation and disconnect
Local disconnect: call
pinterest_disconnect.Pinterest-side revocation: open Pinterest settings → Security and logins → Apps and remove this app.
Pinterest's remote revocation endpoint is unreliable in some app states, so local disconnect plus manual app removal is the supported recovery path.
Security
See SECURITY.md for credential handling and threat boundaries.
License
MIT
Available Tools
4 toolspinterest_connection_statusA
Returns whether a Pinterest account is connected locally without exposing tokens.
Inputs: no named parameters.
pinterest_disconnectA
Securely removes locally stored Pinterest OAuth authorization data without returning tokens.
Inputs: no named parameters.
pinterest_get_authorization_urlA
Starts the local Pinterest OAuth callback listener and returns the authorization URL plus safe connection instructions.
Inputs: scopes.
pinterest_server_statusA
Returns Pinterest Business MCP server configuration status without exposing secrets.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool addresses a distinct aspect of OAuth lifecycle: server config status, authorization URL retrieval, connection status, and disconnection. There is no overlap in their purposes, making misselection unlikely.
All tools share the 'pinterest_' prefix and use lowercase with underscores, but verb usage is inconsistent. 'server_status' and 'connection_status' are noun phrases, while 'get_authorization_url' uses a verb and 'disconnect' is a bare verb. This mixed convention is readable but not fully predictable.
With 4 tools, the server is tightly scoped to OAuth connection management. Each tool is essential and there is no bloat, making the count ideal for the apparent purpose.
The tool set covers the main lifecycle: check server config, initiate authorization, verify connection, and disconnect. A minor gap is the absence of an explicit token refresh or explicit callback handling, but these are likely handled implicitly or are beyond the server's intended scope.
Maintenance
Related MCP Connectors
OAuth MCP for Google, Meta, X, LinkedIn, Reddit, TikTok, GSC, GA4, WordPress and GHL.
Publish and schedule social posts, upload media, and review analytics through OAuth.
Hosted MCP for Instagram, Facebook, X, LinkedIn, Pinterest, and Ghost. OAuth 2.1, 38 tools.
OAuth CRM tools for companies, deals, campaign insights and contact creation in FirstSales.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with eBay APIs for account verification, item search, and browsing via OAuth 2.0 authentication, with support for token refresh and sandbox/production environments.4MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage Pinterest boards and pins, create and update pins, and track analytics via the Pinterest API v5.8MIT
- AlicenseAqualityCmaintenanceEnables AI agents to manage Pinterest accounts through the Pinterest API v5, including creating and editing pins, organizing boards, searching public content, and retrieving pin and account analytics.11MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to read and manage an account's boards, pins, sections, and analytics, run full-text search over its own content, and complete OAuth token flows through the Pinterest API v5. It exposes 35 typed tools that run either as a local stdio subprocess or as a stateless remote HTTP endpoint with built-in OAuth 2.1 support.3528 npm2MIT