Color psychology MCP server for the Nudge plugin — 252 colors with behavioral design intelligence
Two tools with clear, domain-specific descriptions (194 - 250 chars, within baseline 34 - 392). Input schemas present with Zod validation and type definitions. However, critical gaps: (1) Tool names lack action verbs, 'nudge_color_psychology' and 'nudge_color_by_emotion' are noun-heavy, not verb_noun pattern (baseline: 90% of A+ tools start with action verb). Should be 'get_color_psychology' and 'search_colors_by_emotion'. (2) Output schemas undocumented, no explicit return type specification in code or comments; LLMs cannot plan downstream calls. (3) Second tool has 7 optional parameters but no guidance on mutual exclusivity or required combinations, LLMs will guess. (4) Error handling minimal, no recovery guidance or actionable error messages. (5) No pagination despite tool 2 returning lists (limit param present but no offset/cursor or total_count documented).
Find colors that evoke a specific emotion, mood, or feeling. Query by emotion (e.g. 'calm', 'trust', 'urgency'), brand personality (e.g. 'sophisticated', 'exciting'), or Wright tonal group (e.g. 'Summer', 'Winter').
Get the full psychological profile for any color — by name or hex code. Returns emotions, associations, cultural meanings, brand personality, Wright tonal group, best/avoid app categories, and contrast pairings.
Tool names lack action verbs. 'nudge_color_psychology' and 'nudge_color_by_emotion' are noun-heavy; should be 'get_color_psychology' and 'search_colors_by_emotion' to match verb_noun baseline (90% of A+ tools start with action verb).
Output schemas not documented. Code returns JSON.stringify(color) or JSON.stringify(matches) but no explicit schema definition visible. LLMs cannot infer return structure for downstream planning.
nudge_color_by_emotion has 7 optional parameters (emotion, brandPersonality, wrightGroup, warmth, saturation, value, hueFamily, limit) with no documented mutual exclusivity or required combinations. LLMs will pass arbitrary subsets, risking invalid queries.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling lacks recovery guidance. Errors return bare JSON messages ('No color found for...', 'Multiple matches...') without actionable next steps. Per pattern:recovery-guide, errors should tell LLM what to do next.
Pagination not documented for list results. nudge_color_by_emotion accepts 'limit' param but no offset/cursor or total_count in response. Large result sets will blow context window without pagination guidance.