Model Context Protocol server for the Pinterest API v5 — boards, pins, analytics, search and OAuth, over stdio or HTTP.
Pinterest MCP demonstrates solid tool design with consistent naming patterns (all verb_noun), comprehensive parameter schemas with enums and constraints, and clear descriptions. All 9 tools have documented input schemas with type definitions and descriptions. However, output schemas are not explicitly documented in the source, and error handling guidance is minimal. Tool descriptions average ~180 chars (within baseline 194), but lack actionable recovery hints. Parameters are well-constrained (enums for app_types, content_type, pin_format; min/max for numeric fields), but descriptions could better explain dependencies and use cases.
Analytics for up to 100 pins in one call — far cheaper than looping pinterest_get_pin_analytics. Scope: pins:read.
Daily analytics for a single pin over a date window of up to 90 days. Scope: pins:read.
Rank the account's pins by a metric over a date window — the tool to reach for when asked what is working. Scope: user_accounts:read and pins:read.
Rank the account's video pins by a video metric over a date window. Scope: user_accounts:read and pins:read.
Fetch the authenticated user's account: username, id, account type, profile image and follower counts. The fastest way to verify a token works. Scope: user_accounts:read.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Daily account-level analytics') but do not specify the response structure, field names, or types. LLMs cannot plan downstream tool calls or extract specific fields without knowing the response schema.
Error handling lacks recovery guidance. Tool descriptions mention scope requirements (e.g., 'If a call fails with 403, the token is missing that endpoint's scope') in server instructions, but individual tools do not document what errors they may return or how to recover. LLMs need per-tool error classification.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Daily account-level analytics over a date window of up to 90 days. Scope: user_accounts:read and pins:read.
List the websites claimed by the authenticated account, with their verification status. Scope: user_accounts:read.
List the accounts following the authenticated user. Scope: user_accounts:read.
List the users and boards the authenticated user follows. Scope: user_accounts:read.
Parameter descriptions lack dependency hints. Tools like pinterest_get_user_analytics accept optional metric_types, app_types, and split_field, but descriptions do not explain which combinations are valid, what happens if omitted, or when to use split_field vs. filtering by app_types.
Pagination guidance incomplete. Tools like pinterest_list_followers and pinterest_list_following accept bookmark and page_size but do not document how to detect end-of-results, whether bookmark is opaque, or what the total count is. LLMs cannot reliably paginate without this.
Date format constraints stated in descriptions but not enforced in schema. Tools accept start_date and end_date as strings with description 'Format: YYYY-MM-DD', but JSON Schema lacks a format or pattern constraint. LLMs may pass invalid dates; validation happens server-side only.