MCP server for Pinterest API integration
Moderate quality with consistent structure but significant gaps in descriptions and error handling. All 7 tools have defined schemas with proper types and constraints (enums where appropriate). Tool names follow verb_noun convention (get_, create_, list_) which is positive. However, descriptions are terse (average ~45 chars, well below the 194-char baseline for A+ tools), parameter descriptions exist but lack depth regarding constraints and dependencies, and output schemas are completely undocumented. No error handling guidance visible. The pinterest_pins_create tool has complex nested object schema which is well-structured but description doesn't explain interdependencies (e.g., url vs data mutual exclusivity based on source_type). No tool annotations (destructiveHint for write operations) present. This is a competent but under-polished implementation.
Create a new Pinterest board
Get details of a specific Pinterest board
List boards for the authenticated user
Create a new Pinterest pin
Get details of a specific Pinterest pin
List pins on a Pinterest board
Get information about the authenticated Pinterest user
Output schemas completely undocumented. LLMs cannot determine what fields to expect from tool responses, forcing manual field discovery and risking downstream tool call failures.
Descriptions too terse (avg 45 chars vs 194-char baseline). Missing context on WHEN to use tools, WHAT they return, and HOW to use them. Example: 'Get details of a specific Pinterest pin' doesn't explain what fields are returned or how to extract pin IDs for downstream tools.
No error handling guidance. Tool implementations (in mcp-server-final.js) return raw error messages without recovery hints. LLMs cannot determine if errors are retryable or require user intervention. Example: 'Not authenticated' should suggest 'Run auth-setup.js first'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 46 | - | v1 |
Missing tool annotations (destructiveHint). pinterest_boards_create and pinterest_pins_create perform irreversible write operations but lack destructiveHint annotation. This prevents LLMs from recognizing they need confirmation before executing.
pinterest_pins_create has interdependent parameters (url required if source_type='image_url', data required if source_type='image_base64') but this constraint is documented only in parameter descriptions, not validated. Schema should use conditional validation or description should be explicit: 'Exactly one of url or data required depending on source_type'.
No pagination limit enforcement mentioned in descriptions. pinterest_boards_list and pinterest_pins_list accept pageSize but lack guidance on maximum (pagination hints mention 'max 100' only in param description, not in tool description). No total_count or next_cursor guidance for chaining calls.