Skip to main content
Glama
ppiotis

Pinterest Pin Engine MCP

by ppiotis

Pinterest Pin Engine MCP

CI License: MIT

A Pinterest content engine for digital-product sellers. Your agent plans pins end to end: distinct pin angles with visual briefs, titles and descriptions that fit Pinterest's limits, keyword-named boards, a posting schedule exported as a ready-to-upload bulk CSV, and insights from your analytics export.

  • No Pinterest login, no API key, nothing is posted. You stay in control of publishing.

  • Deterministic. Rule-based templates and validators; same input, same output.

  • Validated. Every CSV row is checked (title ≤100, description ≤500, https media URL, video thumbnail, unique titles, 200 rows per file, 14-day window, local time → UTC with DST).

Tools

Tool

What it does

generate_pin_ideas

Up to 12 angles: problem/solution, what's inside, how-to, listicle, before/after, lifestyle mockup, checklist infographic, gift guide, seasonal, social proof, comparison, freebie teaser. Each has an overlay headline, format, visual brief, target keyword and suggested title

write_pin_copy

1–4 title (≤100) + description (≤500) variants with the keyword in the first 60 characters

suggest_boards

Keyword-named boards (≤50 chars) with descriptions, keyword sets and sections

plan_schedule

Spreads pins across days/times in your time zone, interleaves boards, validates rows, outputs CSV with header Title,Media URL,Pinterest board,Thumbnail,Description,Link,Publish date,Keywords

analyze_pin_analytics

Parses a pasted Pinterest Analytics CSV: totals, save rate, outbound CTR, top pins, hidden gems, high-reach/low-click pins, boards, recommendations

All tools are readOnlyHint: true, openWorldHint: false.

Related MCP server: pinterest-mcp

Install

Stateless with no stored data, so it's safe to host publicly.

  • Vercel: vercel deploy (uses vercel.json + api/mcp.js, endpoint /mcp)

  • Docker: docker build -t pinterest-pin-engine-mcp . && docker run -p 3000:3000 pinterest-pin-engine-mcp

{ "mcpServers": { "pinterest-pin-engine": { "url": "https://<your-host>/mcp" } } }

Optional MCP_AUTH_TOKEN → clients send Authorization: Bearer <token>.

Local (stdio)

Requires Node.js 20+.

{ "mcpServers": { "pinterest-pin-engine": { "command": "npx", "args": ["-y", "https://github.com/ppiotis/pinterest-pin-engine-mcp/archive/refs/tags/v1.0.0.tar.gz"] } } }

From source: git clone https://github.com/ppiotis/pinterest-pin-engine-mcp && cd pinterest-pin-engine-mcp && npm ci && npm run build && node dist/stdio.js

Skills included

  • pinterest-content-strategy: brief → boards → ideas → copy.

  • pinterest-bulk-scheduling: validated bulk-upload CSVs in the right time zone.

  • pinterest-analytics-review: from analytics export to 3 concrete actions.

Security & privacy

  • No network calls, no telemetry, no credentials. It never contacts Pinterest. Runtime deps: the MCP SDK, zod, papaparse.

  • No file system access. Analytics are passed as text and CSVs are returned as text, so the server cannot read or write your files.

  • Stateless. Nothing is stored; each HTTP request gets a fresh server.

  • Validated input with zod (caps on every field, 2 MB analytics limit, 1 MB HTTP body); warns on spreadsheet-formula-like cells.

  • Hosted hardening. Optional bearer token (constant-time compare), 127.0.0.1 bind by default, /health.

Reviewer test plan

  1. Ideas. Add the plugin and ask: "Give me 8 Pinterest pin ideas for my Minimalist Wedding Budget Planner (digital). Keywords: wedding budget planner, wedding planning checklist, wedding budget spreadsheet. Audience: brides." → Expect 8 distinct angles, each with overlay text, format (2:3 static, carousel, video), visual brief and target keyword.

  2. Copy within limits. Ask: "Write pin titles and descriptions for idea 1." → Expect titles ≤100 and descriptions ≤500 characters with lengths shown, keyword in the first 60 characters, and no hashtags.

  3. Bulk CSV. Ask: "Schedule these 6 pins, 2 a day from 2026-10-20 at 08:00 and 19:00 Johannesburg time" (give image URLs like https://cdn.example.com/pins/1.png) → Expect a CSV with the exact Pinterest header and Publish date in UTC (2026-10-20T06:00:00, 2026-10-20T17:00:00…), with boards alternating.

  4. Validation. Include a pin with an http:// image and a 120-character title → Expect valid: false, a per-row error table, and no CSV until fixed.

  5. Analytics. Paste examples/pinterest-analytics-sample.csv and ask "What's working?" → Expect 6 pins, 40,750 impressions, 450 outbound clicks (1.1% CTR); "Wedding Budget Planner: Stay on Budget" as the top traffic pin; "What's Inside the Budget Planner" as a hidden gem; "Gift Ideas for Brides" flagged high-reach/low-clicks; 3+ recommendations.

Development

npm ci
npm test               # build + unit tests + e2e over stdio and Streamable HTTP
npm audit --omit=dev

Disclaimer

Not affiliated with or endorsed by Pinterest, Inc. "Pinterest" is a trademark of Pinterest, Inc.

License

MIT © Paris Piotis

Available Tools

5 tools
analyze_pin_analyticsAnalyze Pinterest analytics CSVA
Read-onlyIdempotent

Read a Pinterest Analytics CSV export (pasted text) and return totals, save rate, outbound CTR, top pins, hidden gems (high CTR, low reach), high-reach/low-click pins, per-board stats and recommendations. Column names are auto-detected.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
csv_textYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds a genuinely useful behavioral trait: column names are auto-detected, telling the agent it need not normalize headers before calling. It does not disclose failure modes for malformed CSVs or the 2M-character ceiling, so it stops short of a 5.

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?

Front-loaded with the verb and resource, then a compact run-down of returned metrics. The long enumeration is justified because there is no output schema, though the single-sentence list form is dense enough to be slightly hard to scan.

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

Completeness3/5

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

Because no output schema exists, describing the return metrics is the right call and it does so thoroughly. However, the undocumented 'top' parameter, the absence of input-format expectations and error behavior, and no stated relationship to the sibling tools leave clear gaps for a moderately complex analytical tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the load, and it largely fails. The 'top' parameter is never mentioned (the phrase 'top pins' describes output, not the parameter that controls the count, its 1-25 range, or its default), and no size or format constraints on csv_text are given beyond the loose phrase 'pasted text'.

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?

States a specific verb+resource combo ('Read a Pinterest Analytics CSV export ... and return totals, save rate, outbound CTR...') and enumerates the analytical outputs. This is unmistakably distinct from the four sibling tools, all of which generate content (write_pin_copy, suggest_boards, plan_schedule, generate_pin_ideas) rather than analyze data.

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?

There is no explicit when-to-use statement, no prerequisites, and no mention of alternatives or when this tool would be the wrong choice. The input format hint ('pasted text') implies you should have a CSV export in hand, but that is inference rather than guidance.

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

generate_pin_ideasGenerate pin ideasC
Read-onlyIdempotent

Generate distinct pin angles (problem/solution, what's inside, how-to, listicle, before/after, mockup, checklist, gift guide, seasonal, social proof, comparison, freebie) with overlay headline, format, visual brief and target keyword.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoDefault 8
seasonNo
digitalNo
audienceNo
benefitsNo
keywordsYesSearch phrases, most important first
product_nameYes
product_typeYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered elsewhere. The description adds only that the generated angle bundle includes headline/format/visual brief/keyword, but says nothing about determinism, whether ideas are brand-safe, or how many candidates are produced. Against a low annotation bar this is adequate but thin.

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 front-loaded sentence with the verb and deliverable first, followed by the angle taxonomy and output fields. The twelve-item parenthetical is long but carries genuine informational value, so it is dense rather than wasteful.

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?

For an 8-parameter tool with 25% schema coverage and no output schema, the description leaves the required inputs and optional modifiers unexplained and gives only a terse sketch of the return shape. The angle list is helpful, but an agent still lacks the information needed to populate the inputs correctly.

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

Parameters2/5

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

Schema description coverage is only 25% across 8 parameters, with just count ('Default 8') and keywords ('most important first') documented. The description never explains the required product_name/product_type inputs or how season, audience, benefits, or digital shape the generated angles, so it fails to compensate for the coverage gap.

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

Purpose4/5

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

States a specific verb (Generate) and resource (pin ideas), and enumerates the twelve pin angles plus the four output fields (overlay headline, format, visual brief, target keyword). This makes the deliverable concrete and largely separates it from write_pin_copy, though the boundary with that sibling is never made explicit.

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 when-to-use guidance, no prerequisites, and no reference to alternatives such as write_pin_copy or suggest_boards. The agent must infer that this is an ideation step preceding copywriting, which is not stated.

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

plan_schedulePlan schedule → bulk-upload CSVA
Read-onlyIdempotent

Spread pins over days/time slots (local time zone → UTC), interleave boards, validate every row against Pinterest bulk-upload rules, and return ready-to-upload CSV text (header: Title, Media URL, Pinterest board, Thumbnail, Description, Link, Publish date, Keywords), split into files of ≤200 rows within a 14-day window each.

ParametersJSON Schema
NameRequiredDescriptionDefault
nowNoOverride 'now' (testing)
pinsYes
timesYesLocal posting times, e.g. ['08:00','20:30']
timezoneYesIANA zone, e.g. 'Africa/Johannesburg'
start_dateYes
pins_per_dayYes

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already establish the safe read-only, idempotent profile, and the description goes well beyond them: local-to-UTC conversion, board interleaving, per-row validation against Pinterest bulk-upload rules, the exact CSV header, and the ≤200-row / 14-day-per-file splitting constraint. These are real behavioral traits an agent could not infer from the annotations.

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?

It is a single dense sentence, but the primary action is front-loaded and every clause carries information (conversion, validation, output format, file-splitting limits). The run-on structure makes it slightly harder to scan than a short multi-sentence form would.

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

Completeness4/5

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

For a tool with no output schema and six parameters, the description covers the return shape (CSV header, row cap, 14-day window) and the core transformation logic well. It omits what happens when validation fails or how errors/partial results are surfaced, which is the main remaining gap.

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?

With only 50% schema description coverage, the description compensates by explaining what start_date, pins_per_day, times and timezone jointly produce (pins spread over days/time slots, local time converted to UTC) and by enumerating the CSV columns that map to pin fields such as Thumbnail and Publish date. It still does not clarify the optional 'now' override or failure semantics for individual pin fields.

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 names a specific verb (spread/plan) and resource (pins over days/time slots) and states the concrete output (ready-to-upload CSV text). It is clearly distinct from siblings like write_pin_copy or suggest_boards, which do not produce scheduling artifacts.

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?

Usage is implied rather than stated: 'return ready-to-upload CSV text' signals this is the pre-upload planning step, but the description never says when to prefer this tool over write_pin_copy or what prerequisites (e.g. a prior suggest_boards call) apply. No alternatives or exclusions are named.

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

suggest_boardsSuggest boardsB
Read-onlyIdempotent

Suggest keyword-named boards (≤50 chars) with descriptions, keyword sets and optional sections for a niche.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
nicheYes
keywordsYesSearch phrases, most important first
productsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, non-destructive, and closed-world, so the safety profile is covered. The description adds the output shape (boards with descriptions, keyword sets, sections) but says nothing about generation behavior, limits, or whether suggestions are deterministic — useful but modest added context.

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 dense sentence with no filler and the resource constraint (≤50 chars) front-loaded. It is efficient, though the compressed phrasing makes the optional-sections clause slightly ambiguous.

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

Completeness3/5

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

With no output schema, the description carries the burden of describing returns and does so partially via the mention of boards, descriptions, keyword sets, and sections. However, it leaves the count and products inputs unexplained and offers no usage context, so it is only minimally adequate for a 4-parameter tool.

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

Parameters2/5

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

Schema description coverage is only 25% (only 'keywords' is documented), so the description must compensate and largely does not. It implies 'niche' and 'keywords' inputs but never mentions the 'count' or 'products' parameters, leaving two of four parameters undocumented anywhere.

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

Purpose4/5

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

States a specific verb ('Suggest') and resource ('boards') and adds concrete output detail: keyword-named boards ≤50 chars with descriptions, keyword sets, and optional sections. It is distinguishable from pin-centric siblings by the board focus, though it never explicitly says how it differs from tools like generate_pin_ideas.

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?

The description says what it produces but gives no guidance on when to use it versus alternatives such as generate_pin_ideas or plan_schedule. There are no prerequisites, no exclusions, and no routing cues of any kind.

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

write_pin_copyWrite pin title & descriptionB
Read-onlyIdempotent

Write 1–4 pin title (≤100 chars) and description (≤500 chars) variants with the primary keyword in the first 60 characters.

ParametersJSON Schema
NameRequiredDescriptionDefault
ctaNo
topicYesWhat the pin is about / product name
benefitNo
digitalNo
audienceNo
keywordsYesSearch phrases, most important first
variantsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations declare this as a read-only, idempotent, non-destructive operation with no open-world interaction. The description adds useful constraints about output format (variant count, character limits, keyword placement) but doesn't disclose any behavioral traits beyond what the annotations already cover.

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?

Single concise sentence that front-loads the key output constraints. However, it crams multiple distinct pieces of information (variant count, title length, description length, keyword placement) without clear separation, making it slightly dense.

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

Completeness3/5

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

For a tool with 7 parameters, only 2 required, low schema coverage, and no output schema, the description is inadequate. It fails to explain what the tool does with the topic, keywords, and other inputs, and doesn't describe the expected output structure beyond basic formatting.

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 low at 29%. The description only mentions 'primary keyword' from the keywords parameter but doesn't explain other parameters like topic, cta, benefit, audience, digital, or variants. It provides some constraint awareness (character limits) but doesn't compensate for the missing parameter documentation.

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

Purpose4/5

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

States a specific verb+resource: 'Write pin title & description variants'. This clearly distinguishes it from siblings like generate_pin_ideas (ideation) and analyze_pin_analytics (measurement). However, it focuses heavily on the output format rather than the core purpose of SEO copywriting, leaving some ambiguity about what 'write' means in this context.

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 explicit guidance on when to use this tool versus alternatives like generate_pin_ideas or suggest_boards. The constraints on output format (1-4 variants, char limits) are present, but there's no indication of when this tool is appropriate or what prerequisites exist.

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.

  1. 5 tool updatesv1.0.0
    • First observedanalyze_pin_analytics
    • First observedgenerate_pin_ideas
    • First observedplan_schedule
    • First observedsuggest_boards
    • First observedwrite_pin_copy

TDQS

A3.6/5.0

Scored across 5 tools

Disambiguation4/5

write_pin_copy and generate_pin_ideas both produce textual content for pins, which could cause occasional confusion, but descriptions clearly distinguish copy variants from idea/angle generation; other tools are clearly distinct.

Naming Consistency5/5

All tools use snake_case with a leading imperative verb (write_, suggest_, plan_, analyze_, generate_), and the noun phrases are consistently formatted, making the pattern predictable.

Tool Count5/5

Five tools cover distinct stages of the Pinterest pin workflow (copy, boards, scheduling, analytics, ideas) without redundancy; the count is well-scoped for the domain.

Completeness4/5

The set covers ideation, copywriting, board planning, scheduling with CSV export, and analytics, forming a full content lifecycle. Minor gaps include no direct Pinterest posting or board creation, but the CSV export provides a workaround.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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.
    6
    MIT
  • 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.
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    11
    MIT