Design
ravenmcp.ai
Provides UI/UX design principles, patterns, business strategies, and design evaluation.
ENDPOINT 1
https://mcp.ravenmcp.ai/api/mcp
MCP server metadata
- Name
- raven-mcp
- Version
- 2.5.1
Raven is a design-intelligence server: audits (page/layout/screen/contrast/tap-targets/typography/consistency), design systems and tokens, brand/content/service-design knowledge, creative scoring, and a Taste Engine that makes a person's design judgment portable and growable. PROJECT KICKOFF — calibrate taste BEFORE the first design work. Taste is per-surface: the same person wants different rules on a monochrome portfolio than on a product site, and a different voice on each. At the START of a new project (or the first design/copy/UI work in any project), if a taste profile exists (list_taste_profiles), call get_taste_interview with the profile and a project name (mode defaults to 'kickoff', depth defaults to 'first_run'). If it returns existing_binding: null, ask the user just its 5 core `questions` conversationally — identity, genesis (kickoff is when a project comes into existence: what already exists — a brand, a design system, brand assets — and what should be generated), aesthetic (how it should read here — multiple-choice options given), voice (three register examples so the user can pick by ear), and matchers (which URL hosts identify the project) — then persist with bind_taste_surface and proceed; when genesis says the user has no design system, the generation route is generate_mood_board (an approval stop — pass their own images via image_paths), then generate_design_system with save:true, then init_design_md, and an existing system is consumed via configure_design_system_source or base_system instead; offer the returned `more_questions` (typography/spacing/color/layout/motion/imagery/entrance/loading/navigation/libraries, references, per-rule overrides, the open-ended special question) as OPTIONAL deeper calibration rather than asking them all upfront, or re-run with depth:'full' if the user wants the complete interview at once. Dimension answers go in design_notes and are echoed in every audit. A cold-start project with no profile at all can start from create_taste_profile({ name, template: 'portfolio'|'saas-marketing'|'app' }) for a small sensible starter ruleset before the first interview even runs. The interview is a blocking gate: collect the user's answers before committing any design direction, palette, type choice, or name — never answer its questions yourself or start design work while it is pending. Every question carries skippable + priority (core|extended); skipping is fine but leaves that item uncalibrated. A 'references' question takes example links/screenshots and interviews what specifically the person likes about each. The interview ends with an open-ended 'special' question (textures, signature details, motifs — stored as design_notes.special) that suggests the person's choices from their other bound surfaces once it has them. From then on pass project:'<name>' on every audit_taste — bindings also auto-match by URL hostname in url mode. When the surface is a website to be built, suggest building it as a Next.js app by default; if the user prefers another stack, record it in design_notes.libraries. Do NOT wait for an audit to return a calibration_hint; that is the reactive backstop, not the intended flow. When a user dislikes generated/designed output on an ALREADY-calibrated project, that dissatisfaction is a calibration signal, not a dead end — re-run get_taste_interview with mode:'refine' (it re-interviews against the stored binding: what fell short, then each stored design_notes value to keep/tighten/replace, then voice, then an optional reject precedent) and re-bind with bind_taste_surface. LEARNING LOOP — whenever the user makes, approves, or corrects a taste, direction, or design decision during work (not just at interview time), record it with record_taste_decision: the project, a short dimension name, what was chosen, what was rejected, why, and whether it was user-directed, user-approved, or user-corrected (a user overriding a generated choice is the highest-signal record). Recorded decisions evolve future kickoff interviews — recurring choices return as suggested defaults on their dimension's question, and decision categories no standard question covers become NEW interview questions. Record liberally; every committed decision is calibration data. Judging work: prefer audit_taste (with the profile + project) for matters of the owner's taste, and the mechanical audits (audit_page, audit_contrast, audit_tap_targets, audit_layout) for objective quality. design_notes are ACCEPTANCE CRITERIA for any build, not mood words: audit_taste verifies each note against the rendered page (note_assessments: present/partial/missing/unverifiable, each with trait-number evidence), compares the target against the binding's captured references, and flags sparse-and-empty pages whose restraint is deletion rather than craft — a build is not done until every note is visibly present or the user is told exactly which notes were dropped and why. When a note names an expensive technique (three.js/WebGL, GSAP scroll choreography, anime.js staggered motion, glassmorphism, a branded loader, lottie, kinetic display type…), bind_taste_surface and audit_taste return build_hints — a concrete recipe + canonical public example sources (threejs.org, gsap.com, animejs.com, Codrops…). The public corpus for these is vast, so an expensive note is NEVER license to drop it: consult the attached build_hints and their sources, and if a technique is genuinely infeasible, tell the user before shipping without it. Prefer url mode for verification: live traits (WebGL, animations, scroll effects) cannot be measured from static html. When a human accepts or rejects a finding, record it with label_finding — accept-verdicts suppress that exact pattern in future audits, which is how the profile learns. GRAB — click-to-change is ON BY DEFAULT for local servers. Any time you start, restart, or serve a local web page/dev server for the user (a demo, a preview, a dev build, a static file server), automatically start a grab session first (start_grab_session with the project's DESIGN.md if one exists) and make the overlay present WITHOUT the user asking or pasting anything: for a server you are starting anyway, pass proxy_target and give the user the BRIDGE url instead of the raw server url — the overlay is injected into every HTML response; for HTML files you are writing yourself, include the returned script_tag directly. Never hand the user a script tag or console snippet to paste. Mention in one line that the grab overlay is active (Alt+G or the on-page pill). The user clicks elements, swaps DESIGN.md tokens with live preview, edits computed styles inline, and sends instructions; drain them with get_grabbed_elements — while a grab session is active, drain whenever control returns to you (and before ending any turn). Sends arrive and are held. On a plain drain, acknowledge each change in one line and wait; do not implement or offer to implement until a batchCommit marker arrives. When batchCommit arrives, implement batch.pending from that same drain payload in one sweep. Apply approved token changes with update_design_md. Stop the session (stop_grab_session) when the server comes down. Skip only when the user explicitly asks for a clean page or the server is production.
Known tools 45
get_business_strategyGet business and monetization strategies for digital products.
Inferred read-onlysearch_knowledgeSearch across all design principles, UI patterns, and business strategies.
Inferred read-onlycompose_systemMix tokens from different design systems to create a custom composite.
Potential side effectsscore_pageScore an HTML/CSS page across 7 design categories (Structure, Typography, Color & palette, Spacing & rhythm, Accessibility, Responsive layout, Design tokens), each rated 0–10.
Inferred read-onlyaudit_parityCompare iOS vs Android element snapshots against a checklist of named spatial relationships (vertical centering, baseline/left alignment, equal gap/size, presence, truncation) and flag per-relation match/mismatch/uncertain — catches cross-platform layout drift like status text centered on one platform but top-aligned on the other.
Inferred read-onlyaudit_ios_a11yScore an accessibility-enriched iOS element snapshot — missing accessibilityLabel/value/traits, sub-44pt tap targets, per-text WCAG contrast, Dynamic Type clipping, and VoiceOver reading order.
Inferred read-onlyaudit_responsive_visibilityRender a URL at multiple breakpoints and flag content elements that are visible on desktop but hidden on mobile (display:none / opacity:0 / visibility:hidden / zero-size).
Inferred read-onlyaudit_contrastCompute WCAG contrast ratios for every text element on a rendered page (pass url) or from a supplied dom_snapshot.
Inferred read-onlysuggest_contrast_fixGiven failing WCAG color pairs, return the MINIMAL color change that clears the target ratio.
Inferred read-onlyaudit_urlLayer 0 render-and-capture audit: renders a LIVE URL at each viewport×theme, scroll-settles (fires whileInView/IntersectionObserver reveals; plays preload=none videos), optionally fires caller-supplied hover/focus/click interactions, and captures real pixels + the rendered DOM.
Inferred read-onlyaudit_contentEvaluate an array of content items (headings, prose, CTAs, labels, captions, metrics, outcomes) against UX-writing principles and deterministic heuristics.
Inferred read-onlyaudit_typographyAudit the typographic SCALE of a rendered page (pass url) or a pre-collected snapshot of text nodes.
Inferred read-onlyget_brand_systemGet a complete design system for building an app with branding like a specific company.
Inferred read-onlygenerate_design_systemGenerate a complete, custom design system with full token set.
Inferred read-onlyaudit_screenAudit a rendered mobile screen (iOS or Android) from a view-hierarchy/accessibility snapshot.
Inferred read-onlyaudit_ios_screenAudit a rendered iOS screen from a view-hierarchy/accessibility snapshot (and optional screenshot).
Inferred read-onlyaudit_ios_privacyAudit an iOS or React Native/Expo app's privacy posture for App Review and user trust.
Inferred read-onlyaudit_rnAudit React Native / Expo source (JSX/TSX + StyleSheet) against the iOS HIG + Android Material conventions RN must satisfy.
Inferred read-onlylist_content_systemsBrowse available content design systems — brand voice and tone guides (Conversational Product Voice, GOV.
Inferred read-onlyget_content_systemGet a brand's content design system — voice attributes, tone shifts by context, vocabulary (use/avoid/never), grammar rules, content patterns for errors/empty-states/buttons/etc.
Inferred read-onlyget_content_principlesGet UX-writing principles — clarity over cleverness, active voice, error-message anatomy, inclusive language, voice vs tone, and more.
Potential side effectsget_content_patternGet content design patterns — copy recipes for error messages, empty-state copy, notifications, and form validation.
Inferred read-onlyget_research_methodGet research method details — qualitative (interviews, contextual inquiry, diary, field, intercept), quantitative (surveys, analytics, A/B tests, benchmarking, clickstream), or usability (moderated, unmoderated, 5-second, card sort, tree test, heuristic eval).
Potential side effectsget_metrics_frameworkGet a product-metrics framework — HEART (Google), AARRR/Pirate (Dave McClure), North Star Metric, Conversion Funnel, RICE Scoring, or OKRs.
Inferred read-onlyget_service_patternGet a service design pattern — service blueprinting, human handoff, signup-as-service, omnichannel continuity, or moments of truth / recovery.
Inferred read-onlygenerate_service_blueprintRender a service blueprint as a self-contained HTML page.
Inferred read-onlyget_brand_principlesGet brand and visual-design principles — logo usage (clear space, min sizes, variants, placement, restraint), gradient usage (hierarchy, palette, contrast, trend vs signature), imagery (consistency, representation, purpose), visual hierarchy, and brand-as-system thinking.
Inferred read-onlyget_brand_trendsGet current brand and visual-design trends — what's working in 2026 and where each trend fits or fails.
Inferred read-onlylist_creative_presetsBrowse Raven creative presets for product photoshoots, marketplace cards, UGC ads, TV spots, cinematic reveals, social launch packs, storyboards, and infographics.
Inferred read-onlyscore_creativeScore a creative prompt, script, or ad concept for hook strength, benefit clarity, product signal, call-to-action, channel fit, audience fit, and brand fit.
Inferred read-onlyaudit_consistencyAudit multiple pages for cross-page consistency of content-container width and hero heading tier.
Inferred read-onlyaudit_video_playbackRender a page in headless Chromium and observe whether each <video> actually advances (samples currentTime before/after a play attempt), classifying every clip into playing|paused|stalled|empty|error with a reason.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.raven-mcp]
url = "https://mcp.ravenmcp.ai/api/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"raven-mcp": {
"type": "http",
"url": "https://mcp.ravenmcp.ai/api/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: raven-mcp
Remote MCP URL: https://mcp.ravenmcp.ai/api/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"raven-mcp": {
"url": "https://mcp.ravenmcp.ai/api/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"raven-mcp": {
"type": "http",
"url": "https://mcp.ravenmcp.ai/api/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "raven-mcp",
"transport": "streamable-http",
"url": "https://mcp.ravenmcp.ai/api/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.