mcpField
R
Raven

Raven

远程服务
ravenmcp.ai开发工具75 周前更新

关于 Raven

Raven 是面向编码 Agent 的开源 MCP 服务,提供设计知识、设计系统令牌和界面审计。它还可通过本地页面元素选择,将选择器、计算样式和令牌交给 Agent 辅助修改。

主要功能

  1. 01检索设计原则与界面模式
  2. 02获取设计系统令牌
  3. 03审计页面可访问性与布局
  4. 04检查文案与排版
  5. 05选择页面元素并传递样式上下文

适用场景

  1. 01为页面改版查找适用的设计模式
  2. 02检查对比度、点击目标和字体
  3. 03将本地页面元素反馈给编码 Agent

MCP 相关

Raven 是 MCP 服务,向编码 Agent 暴露设计知识检索、设计系统查询和界面审计等工具。完整工具集可通过本地 stdio 使用;托管端点提供较小的工具子集。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.ravenmcp.ai/api/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npmraven-mcp2.6.0

工具

45
参数类型必填说明
formatenum否输出格式:full(全部详情)、checklist(影响 + 违规项)、brief(仅摘要)。默认值:fullfull | checklist | brief
contextstring是你的设计内容(例如 'signup form'、'pricing page'、'mobile nav'、'dark dashboard')
categorystring否筛选类别:accessibility、brand、color-systems、color-theory、component-architecture、d4d、gestalt、laws-of-ux、mobile-ux、nielsen-heuristics、research、responsive-layout、service-design、spacing-systems、typography、ux-writing
platformenum否平台上下文。'ios' 返回 Apple HIG 原则(Dynamic Type、44pt 触控目标、SF Symbols、安全区域、深色模式、触觉反馈、App Review 隐私);'react-native' 返回 RN 原则(44/48pt+hitSlop、accessibilityLabel/Role、字体缩放、SafeAreaView、深色模式、iOS+Android 一致性、密钥)。两者都会替换面向 Web/CSS 的原则集。默认值:web。web | ios | react-native

详细介绍

Raven MCP

奥丁的渡鸦带回了世界的知识,Raven 带回了设计智慧。

Raven 是一款面向编码 Agent 的 MCP 服务。点击你在本地运行的应用中的任意元素,并说明需要如何更改,Raven 就会向 Agent 发送选择器、计算后的样式和设计令牌,然后审核结果的对比度、点击目标和排版。

Raven MCP 是 Andrew Cunliffe 的个人开源项目。它**不受 Intuit Inc. 或源数据中提及的任何其他公司认可、关联或支持。**有关上游来源及其许可证的完整归属信息,请参阅 NOTICE。

功能

Raven 为 Claude 提供全面的设计知识库:

  • 原则 — Nielsen 的 10 条启发式原则、全部 21 条 UX 定律、格式塔原则、WCAG 无障碍规范、排版规则、色彩理论、移动端 UX、D4D 框架、UX 文案、服务设计、品牌、色彩系统(调色板大小规范)和间距系统(基础单位网格 + 比例限制)
  • 模式 — 久经验证的 UI 模式,涵盖注册流程、定价页面、导航、下拉菜单/选择菜单、表单、落地页、仪表板、模态框、空状态/错误状态/加载状态、CTA、社交证明、移动端转化;还包括内容模式(错误消息、空状态文案、通知、表单验证)和服务模式(服务蓝图、人机交接、服务化注册、全渠道连续性、关键时刻)
  • 内容系统 — 语气指南:Conversational Product Voice、GOV.UK、Shopify Polaris 和 Atlassian
  • 研究 — 定性、定量和可用性研究方法,附有操作规范和检查清单。指标框架:HEART、AARRR/Pirate、北极星指标、转化漏斗、RICE、OKR。
  • 服务设计 — 服务蓝图(支持生成 HTML 蓝图,可展示当前状态与理想状态)、人机交接模式、服务化注册、全渠道连续性、关键时刻/服务补救,以及 GOV.UK Service Standard
  • 品牌与视觉 — 徽标使用(留白、安全尺寸、变体、位置、克制使用)、渐变使用(层级、调色板、对比度、趋势与标志性风格)、图像(统一性、表现形式、用途)、视觉层级、品牌即系统,以及当前(2026 年)视觉设计趋势
  • 商业 — 变现模式、留存策略、新手引导优化、增长机制和产品指标框架
  • 令牌 — Stripe、Linear 等产品的设计系统令牌
  • 创意工作室 — 本地优先的品牌档案、素材参考、角色参考档案、与提供商无关的图像/视频/3D/音频生成任务、营销活动计划和透明的创意评分。Raven 不提供媒体服务商凭据;设置 RAVEN_CREATIVE_RUNNER,将任务路由到你自己的渲染器。

安装

本地 stdio(使用 npx / 从源代码运行)是完整产品:111 个工具,包括 Grab、模式库和基于文件的 Taste Engine。托管端点是精简子集,请选择一种方式并坚持使用。

方式方法工具TasteGrab
本地 stdionpx -y raven-mcp(Claude Code、Cursor mcp.json、Codex、Desktop mcpb)111是是
公共远程https://mcp.ravenmcp.ai/api/mcp~45否否
认证远程https://mcp.ravenmcp.ai/api/mcp-user(OAuth)Taste + 审核(不含 Grab)是否
Claude Code — 一条命令
claude mcp add raven -- npx -y raven-mcp

建议只配置一个 Raven 入口。如果本地 raven 和 claude.ai / 远程 Raven 同时连接,Agent 会看到两套重叠的工具集;请停用或重命名其中一个(例如 raven-local 与 raven-cloud),以便清楚知道你在使用哪个产品。

手动配置(Claude Desktop 或团队 .mcp.json)
{
  "mcpServers": {
    "raven": {
      "command": "npx",
      "args": ["-y", "raven-mcp"]
    }
  }
}
Cursor

与上文相同的 mcp.json 片段(~/.cursor/mcp.json 或项目的 .cursor/mcp.json)可运行完整的本地服务(Grab + Taste)。托管选项:

  • 公共:"url": "https://mcp.ravenmcp.ai/api/mcp" — 约 45 个无状态工具;不包含 Grab 和 Taste。
  • 通过身份验证的 Taste:"url": "https://mcp.ravenmcp.ai/api/mcp-user" — OAuth;可使用 Taste,Grab 仍仅限本地使用。
Codex

在 config.toml 的 mcp_servers 下添加:

[mcp_servers.raven]
command = "npx"
args = ["-y", "raven-mcp"]

首次使用时,Codex 可能会提示你批准许多 Raven 工具——这是客户端的批准策略,不代表 Raven 的工具更少。

Claude Desktop — 一键扩展

不想编辑 JSON?下载 raven.mcpb 并双击。Claude Desktop 会自动安装 Raven——无需 Node,也无需终端。软件包版本与 npm 保持同步。

从源代码安装
git clone https://github.com/rhinocap/raven-mcp.git
cd raven-mcp && npm install && npm run build

工具

工具描述
get_principles获取与 UI 场景相关的设计原则
get_pattern获取适用于特定 UI 类型的成熟模式
get_business_strategy获取业务/变现策略
evaluate_design根据设计原则评估设计描述。传入 base64 PNG 截图(before_screenshot/after_screenshot),即可进行结构化的前后像素差异比较,并返回 fix_confirmed、changed_ratio 和变化区域。当完整负载过大时,可传入 compact: true,仅返回评分和违规项(省略完整的原则/模式内容)。
search_knowledge搜索所有原则、模式和策略
get_checklist获取适用于 UI 类型的发布前检查清单
get_d4d_framework获取 Design for Delight 框架模板
list_design_systems浏览可用的设计系统
get_design_system获取特定设计系统的设计令牌
compose_system混合不同系统的设计令牌
get_brand_system获取采用知名品牌风格的完整系统
audit_page根据 Raven 的质量标准审核 HTML/CSS——传入 html 可进行静态审核,或传入 url 以无头模式渲染,并可选用 scroll_settle(逐步触发展示门控内容,然后返回顶部)和 viewport 参数;containerMaxWidth 可让容器检查识别设计令牌。还会标记将颜色硬编码而非使用 currentColor/设计令牌的内联 SVG 图标。当完整负载过大时,可传入 compact: true,仅返回评分、违规项和 fix_priority(省略嵌入的 base64 截图)。
score_page返回页面各类别的设计评分(0–10)——涵盖排版、无障碍、间距、颜色、响应式布局、设计令牌和结构;评分依据与 audit_page 相同的检查,并包含总分/等级、最弱类别,以及 Raven 无法机械评估的类别(品牌、转化、动效)。URL 模式还会统计可确定的对比度失败项,同时不将无法确定的行计入数值评分。传入 html 和/或 url(URL 捕获仅限本地/stdio;远程模式不接受 url)
audit_layout评估视觉节奏、对齐和视觉平衡;检测孤立拉伸(网格/弹性布局中,最后一行单独的卡片比同组卡片宽很多)
audit_responsive_visibility在多个断点渲染 URL,并标记桌面端可见、移动端隐藏(display:none/opacity:0/零尺寸)的内容元素——将其分别归类为可能疏漏(内容在移动端消失)或有意隐藏(装饰元素)
audit_contrast计算渲染文本的 WCAG 对比度,提供三态 status(pass、fail、indeterminate)、有效背景、比率范围,以及仅在背景可确定时提供距通过标准的差值
suggest_contrast_fix对于未通过 WCAG 的颜色对,返回能够达到 AA/AAA 目标的最小前景色/背景色改动——提供具体的通过值以修复 audit_contrast 失败项
audit_url在每个视口×主题下渲染实时 URL,滚动并等待页面稳定、触发交互、捕获实际像素和 DOM,然后运行页面/对比度/响应式/空白媒体检查,并对捕获内容进行切片图像边缘对称性和悬停状态泛白检测——每项结果都会标记为已确认/可能为伪影/无法判定,并按严重程度排序。当完整负载过大时,可传入 compact: true,仅返回发现项和摘要(省略每次捕获的 base64 截图)。
audit_content根据 UX 文案原则和确定性启发规则,对标题、正文、CTA、标签、说明文字、指标和成果逐项判定(通过/警告/失败);指标必须包含数字和单位,CTA 需以动作引导且不超过 4 个词;正文检查被动语态/行话/模糊措辞;说明文字检查是否与标题重复。每项均附带修改前→修改后的改写建议。完全离线
audit_typography对渲染 DOM 文本节点(或提供的快照)生成排版比例报告——检测主要的模块化比例并标记不符合比例的字号,根据正文节奏检查行高一致性,并标记超过 4 种字重或非标准字重值。检查范围超出 audit_page 的排版通过/失败检查
audit_tap_targetsWCAG 2.5.5/Apple 44pt Web 点击目标审核——枚举每个可交互元素(渲染后的 URL 或快照),并为每个元素生成修复表:选择器、角色、文本、测量的宽/高、各轴像素差额,以及具体 CSS 修复方案;按问题最严重者优先排序
audit_device_frame标记设备样机边框中的内容裁切——frames(容器框 + 媒体固有尺寸 + object-fit,或 DevTools 代码片段)可在边框宽高比 ≠ 媒体宽高比时检测 object-fit:cover 的裁切损失;clips(首帧/末帧 PNG)可检测内嵌的平移/缩放(Ken Burns);edge_frames(PNG)可标记在帧边缘被截断的内容
audit_video_playback渲染页面并观察每个 <video> 是否实际播放——采样 currentTime、readyState、错误代码和自动播放阻止状态,然后根据证据将每段视频归类为 playing
audit_consistency语料库/多页面审核——比较 ≥2 个页面,标记内容容器宽度和主视觉标题层级的跨页面差异;如果未提供设计令牌,则从语料库推断规范值(众数),以发现单页审核无法发现的关联性缺陷
audit_swiftui根据 Apple HIG 审核 SwiftUI 源码——动态字体、语义颜色、44pt 点击目标、4/8pt 间距、AccentColor
audit_ios_screen根据无障碍/视图层级快照评估渲染后的 iOS 屏幕——44pt 点击目标 + 对比度 + 节奏,单位为 pt
audit_ios_privacy审核 Info.plist(或 Expo app.json)/PRIVACY.md/entitlements/源码——使用说明文本是否如实、ATS、Android 权限、捆绑的机密信息、未披露的默认数据外传
audit_rn审核 React Native/Expo 源码——可触控元素的无障碍标签、44/48pt+hitSlop 点击目标、字体缩放、SafeAreaView、深色模式;依据 iOS HIG + Android Material
generate_design_system根据品牌色生成自定义设计系统
list_content_systems浏览品牌语气与风格系统(Conversational Product Voice、GOV.UK、Shopify Polaris、Atlassian)
get_content_system获取品牌的语气属性、语气变化、词汇、语法和内容模式
get_content_principles获取 UX 文案原则——清晰、主动语态、错误信息结构、包容性语言
get_content_pattern获取错误消息、空状态文案、通知和表单验证的文案范例
get_research_method获取定性、定量或可用性研究方法,以及相应的流程和检查清单
get_metrics_framework获取产品指标框架——HEART、AARRR、North Star、转化漏斗、RICE、OKR
get_service_pattern获取服务设计模式——蓝图设计、人工交接、注册即服务、全渠道、关键时刻
get_service_standard获取 GOV.UK Service Standard——用于评估服务质量的 14 项标准
generate_service_blueprint将服务蓝图渲染为 HTML——当前状态,或当前状态与理想状态并排对比
get_brand_principles获取品牌/视觉原则——标志、渐变、图像、层级、品牌即系统
get_brand_trends获取当前(2026 年)品牌和视觉设计趋势及使用指南
list_creative_models浏览与服务提供方无关的创意模型插槽,涵盖图像、视频、3D、音频、角色一致性和分析
list_creative_presets浏览创意预设:产品摄影、市场卡片、UGC 广告、电视广告、社交媒体套件、分镜、信息图
create_brand_profile创建或更新本地品牌资料,用于识别品牌的创意任务
get_brand_profile读取本地创意品牌资料
list_brand_profiles列出本地创意品牌资料
register_creative_asset将本地路径或 URL 注册为创意资源引用——Raven 不会上传文件数据
create_character_profile根据已注册的资源创建本地角色/身份参考资料
create_generation_job创建与服务提供方无关的图像、视频、音频、3D、营销活动或分析任务负载;可选通过 RAVEN_CREATIVE_RUNNER 执行
get_generation_job读取创意生成任务及其服务提供方负载/输出状态
list_generation_jobs列出本地创意生成任务
plan_creative_campaign规划多资源营销活动,并可选创建生成任务草稿
score_creative根据吸引力、利益清晰度、产品信号、CTA、渠道适配度、受众适配度和品牌适配度,为提示词/脚本/概念评分
create_taste_profile创建命名的品味资料——一种可移植的设计判断规则集(rule_id、条款、类别、严重程度、负面提示词、负责人)+ 先例语料库;可由明确规则和/或 DESIGN.md 风格的 Markdown 文档生成;保存在本地 ~/.raven/taste/ 下(可通过 RAVEN_TASTE_HOME 覆盖)
get_taste_profile加载已存储品味资料的完整规则目录、先例语料库和界面绑定
list_taste_profiles列出本地存储的品味资料及规则/语料库数量
label_finding向资料的语料库追加人工接受/修改/拒绝的先例——形成持续完善的闭环;仅追加,且接受判定会在未来审核中抑制相应模式
get_taste_interview校准访谈,分两种模式。kickoff(默认,适用于新项目):根据资料中的语气规则和 11 个设计维度(排版、间距、颜色、布局、动效、图像、入场/主视觉动画、加载状态、导航模式、美学风格、专业库)生成确定性访谈;其中 Next.js 是网站默认推荐的构建目标。大多数问题提供通俗易懂的多选项;语气问题会用三种语域呈现同一条消息,供你凭感觉选择;参考资料问题会邀请你提供需要讨论的示例 URL/截图;开放式收尾问题会收集标志性细节,并在系统了解你在其他界面上的选择后给出相应建议。每个问题都可跳过(仅身份信息为必填)。refine(适用于已绑定但不满意的项目):根据已存储的绑定重新访谈——哪些方面未达预期、保留/收紧/替换每条已存储备注、语气、可选的拒绝先例。答案通过 bind_taste_surface 持久化
bind_taste_surface持久化项目的界面校准信息——界面字符串、URL 主机、各规则严重程度覆盖项(包括 off)、语气备注、参考资料;通过 project 或已绑定的 URL 主机由 audit_taste 自动应用。按项目执行更新插入;重新绑定时,省略的字段会沿用已存储绑定中的值(报告为 carried_forward),而明确设置为空的值则会清除原值
record_taste_decision学习闭环——在实际工作中做出品味/方向/设计决策时立即记录(选择了什么、拒绝了什么、原因是什么,以及是由用户指示、批准还是纠正)。已记录的决策会改进后续的 kickoff 访谈:反复出现的选择会在对应维度的问题中作为建议默认项再次出现;没有标准问题涵盖的决策类别则会成为新的访谈问题
list_taste_decisions决策记录,可按项目或维度筛选
audit_taste根据品味资料评估 HTML、文案或实时 URL——使用确定性检测器检查渐变、辉光/霓虹、第二种强调色和禁用词;传入 source_text 可通过确定性的词语差异对比,逐字核验内容移植后的可见文本;owner: raven 规则会调用 Raven 现有的页面/对比度/点击目标引擎;每项发现都会引用 rule_id 和具体证据(无法检测的条款会报告为 not_assessed,绝不猜测);带有范围标签的规则会按 surface 启用(其他情况下跳过;省略 surface 时仅发出警告);传入 project 可自动应用已保存的界面绑定;document_kind:'portrait' 会跳过关于某个界面的文档的备注保真度检查(规则仍会运行);data-taste-quote 区域不受检测器检查,避免页面仅因引用法律文本而被判定违规;判定结果:BLOCK/WARN/PASS
generate_taste_portrait将绑定的品味界面渲染为自包含的设计型 HTML 页面(包含其规则、备注、语气、决策和错误→正确语料库),并遵循页面所描述的界面规则——美术指导根据界面自身的颜色许可进行路由;内容稀疏的界面也能优雅呈现。省略 project 可渲染所有绑定并生成画廊。每个画像都会通过针对其自身界面的 audit_taste(document_kind:'portrait')审核
raven_reflect总结你的本地 Raven 使用日志,以发现模式和不足

决策图

本地决策图保留三种节点:决策、证据和来源。五种边将它们连接起来:supersedes、scoped_alongside、supports、contradicts 和 derived_from。决策状态包括候选、有效、已取代或有争议;节点不会被硬删除。

  • decision_add — 添加一项有效决策,并注明其范围、组件、理由和被否决的替代方案。
  • decision_evidence — 为一项决策附加定量或定性证据。
  • decision_get — 返回一个节点、与其连接的邻居节点以及附加的证据。
  • decision_list — 列出有效、已取代、有争议或候选决策。除非传入 include_candidates:true 或 status:"candidate",否则不会包含候选决策。
  • decision_draft — 在理由得到确认之前记录一项决策。
  • decision_commit — 确认理由,并显示相似的有效决策以供审查。
  • decision_supersede — 替换一项决策,同时保留两个节点及其沿袭关系。
  • decision_scope — 缩小两项有效决策的范围,使它们可以共存。
  • decision_history — 按从最早到最新的顺序返回取代关系沿袭。
  • ingest_transcript — 存储一个来源节点,并返回供调用模型使用的提取提示词。
  • decision_import — 读取本地 git 历史记录和匹配的决策文档,然后返回绑定到来源的提取提示词。
  • ingest_transcript_results — 将提取出的 JSON 转换为通过 derived_from 边关联的候选决策。
  • gap_scan — 对尚未覆盖的组件、缺失或不充分的理由、有争议的决策以及派生内容过时情况进行排序;无需采取行动时,digest_only:true 不会输出内容。

对于冷启动:调用 decision_import → 使用模型运行返回的提取提示词 → 将每个结果传给 ingest_transcript_results → 审查候选项 → 对要保留的每项决策调用 decision_commit。通过 decision_get 仍可查看候选项,但默认情况下,decision_list 和 gap_scan 会忽略它们,直到提交后其状态变为 active。

默认会处理 Figma 评论存档(figma-comments-archive/ 下的 Markdown 文件,首行格式为 # Figma comments archive: <label>,并包含 ## Thread <n> 标题)。其中已解决的讨论串会使用能识别讨论串的提取方式,并以 path#Thread <n> 记录来源;导入的候选项仍需调用 decision_commit,不会自动提交。

附加证据前,会根据其来源节点检查导入来源信息。Git 引用必须与此次导入包含的某个提交的完整哈希或唯一前缀匹配。文档引用必须与导入路径匹配,可选地附带行号(#L12)或标题片段。被拒绝的引用会在 rejected_source_refs 中返回;候选项仍可用,但不会关联证据节点。

对于转录内容:调用 ingest_transcript → 运行其提取提示词 → 将结果传给 ingest_transcript_results → 审查并提交候选项。使用 decision_supersede 或 decision_scope 解决有效决策之间的冲突,使用 decision_history 检查沿袭关系,并使用 gap_scan 进行健康检查。

证据节点以及 supports / contradicts 边用于记录与决策关联的定量和定性结果。

review_diff 严重级别策略

默认情况下,review_diff 仅提供建议(判定结果最高为 warn)。两个相互独立、可组合的启用选项会将匹配的违规升级为 error,从而产生失败的 CI 判定:

  • fail_on — 规则允许列表。有效规则:important、bare-hex-color、hardcoded-font-size、hardcoded-font-family、hardcoded-spacing。先从 important 开始;等 DESIGN.md 中的 token 成熟后,再添加 token 规则。important 检查结果可能包含有意为之的用法(电子邮件客户端兼容性、响应式覆盖),因此请准备好说明理由,或调整这些代码块的结构;只有 DESIGN.md 定义了 token,token 规则才会触发(checks_skipped 会告诉你规则何时未运行)。
  • fail_on_governed — 将有记录的决策所管辖的检查结果升级(基于词法作用域与类别的关联,并非经过验证的矛盾)。可将其作为团队严格模式的信号启用。

升级仅针对差异范围:只有新添加的行会导致失败——现有违规不会阻塞,除非差异涉及这些行。应用的策略会在 severity_policy 下回显。省略这两个选项会保持现有的建议行为不变。review_diff 仅支持本地 stdio(不支持托管的远程端点),因此请通过 npx raven-mcp 将策略接入 CI。

存档 Figma 评论

在失去访问权限前,将 Figma 评论历史存档为持久的 JSON/Markdown: FIGMA_TOKEN=<pat> node scripts/figma-comments-archive.mjs --md <fileKey> PAT 需要 file_comments:read 权限。添加 --resolve-nodes 可尽力获取节点名称;此操作还需要 file_content:read 权限,即使无法解析,存档仍会成功。

没有凭据时:在 Figma 中,先显示已解决的评论并清除所有评论筛选条件(隐藏的讨论串不会包含在你复制的内容中——取消后也无法恢复)。Figma 不支持批量“复制所有评论”,因此请在评论面板中选择并复制讨论串文本,然后运行(macOS): pbpaste | node scripts/figma-comments-archive.mjs --paste design-review (最后一个词是你的存档标签——可以使用任意不含空格的名称;添加 --out somedir 可选择文件夹。)也可以直接运行命令,然后粘贴到终端中,最后按 Ctrl-D。 不同讨论串之间用空行分隔;在一个讨论串内,作者行后接时间戳行(“2 days ago”、“Yesterday”、“Mar 4, 2026”)表示每条评论的开始。 粘贴模式会写入 <label>.txt(你的粘贴内容,逐字节保留——即持久记录),并始终生成易读的 <label>.md 存档。请对照粘贴内容检查 .md:本身看起来像时间戳的消息行,或单条评论中的空行,都可能导致 .md 中的分组发生偏移——.txt 始终精确无误。已有标签绝不会被覆盖;传入 --force 可替换它。

点击更改(抓取)+ DESIGN.md

抓取仅支持本地 stdio。 托管的 Cursor/Claude 远程端点不提供抓取功能——点击更改需要在你的机器上运行本地环回桥接。需要抓取功能时,请使用本地 npx / Cursor 本地 mcp.json。

Raven 抓取功能会将本地页面连接到你的 Agent,让你可以点击某个元素、描述要进行的更改,并将其选择器、计算样式、匹配的 DESIGN.md 令牌和令牌选项发送回会话。桥接在环回地址上运行,返回的脚本标签包含其路由所需的能力密钥。 计算样式可以直接编辑,所做的更改会作为 styleEdits 发送给 Agent。

设置不到一分钟即可完成:

  1. 启动本地开发服务器。
  2. 调用 start_grab_session,并将 proxy_target 设为本地服务器 URL。设置 proxy_target 时,path 可选,用于指定 DESIGN.md 的路径(Raven 会创建一个最简临时 DESIGN.md);如果只注入脚本,则必须设置 path。
  3. 打开返回的桥接 URL。通过该桥接提供的 HTML 页面已包含此覆盖层。
  4. 点击元素,并在抓取面板中输入你想要的更改。
  5. 调用 get_grabbed_elements,接收排队的选中项和说明(清空队列后,后续发送才有可用容量)。

对于你控制的页面,可以省略 proxy_target,改为将返回的 <script> 标签粘贴到页面中。

使用 read_design_md 检查 DESIGN.md 文件及其扁平化令牌索引;使用 init_design_md 根据已存储的 Raven 系统、空白模板或 getdesign.md 起始模板创建文件;使用 update_design_md 设置、重命名或移除单个令牌,而无需重写文件的其余部分。

模式库——保留抓取内容,再将其转换为设计令牌

proxy_target 也接受第三方 URL,因此你可以从任何获准查看的网站进行抓取, 不只限于自己的开发服务器。否则,标签页关闭后,抓取的内容就会消失,而且 内容中的值会原样保留为其他网站的值。以下四个工具可以补上这一步:

  • capture_reference — 将抓取的选区保存到 ~/.raven/references:包括选择器、计算样式、悬停/焦点状态、边界矩形、截断后的 HTML、你自己的备注和标签。每次抓取对应一条 JSON 记录,因此两次抓取同一元素会保留两条记录。它还会将抓取的元素渲染为 PNG,并保存在记录旁边,因为没人能仅凭样式映射看出设计模式。渲染过程为离线:所有外部请求都会被中止,因此已存储的引用不会再访问其来源网站;同时会禁用脚本,因此抓取元素中的脚本无法执行。记录中会注明这一点:fidelity: "offline"。
  • search_references — 之后可通过自由文本、主机、所有者或标签再次查找,并显示每条结果的分数,以及指出匹配字段的 why。每条结果都包含一个 display 对象,其中同时提供署名和图片路径,因此使用者获取图片时也会一并获得署名信息。查看不等于复制:结果会报告 html_available,但不会包含抓取的标记,因为浏览他人的作品集不应顺带返回其标记。只有确实要读取结构时,才传入 include_html: true——响应会注明其中包含谁的标记。浏览时所需的一切都包含在默认结果中:图片、选择器、边界矩形和计算样式。
  • map_reference_to_tokens — 将抓取到的字面值映射到你自己的 DESIGN.md 令牌,让 Agent 编写的代码使用你的字体比例和调色板,而不是粘贴原始值。每个绑定都会附带解析后的值和 CSS 变量,以及令牌名称——只有名称无法直接写入样式表;别名令牌会解析为其 $ref 链末端的字面值。纯函数且确定:不使用模型,也不访问网络。它直接读取已存储的样式,因此从展示到转换的整个流程都无需让标记离开 Raven。
  • forget_references — 通过 ref_id 删除单条引用,或删除某个主机的所有引用(包括子域名)。相关 PNG 也会一并删除。此操作具有破坏性且不可撤销,因此主机批量清理必须传入 confirm: true 才能执行,并会先告知你将删除多少条记录。

映射的判定方式如下,因为错误绑定比明确指出缺失更糟:

  • 颜色按 RGBA 距离匹配,而非 RGB——相同的十六进制颜色若透明度不同,只能算接近,不能算精确匹配。十六进制、逗号和空格形式的 rgb()/rgba()、hsl() 以及 CSS 命名颜色都可以解析;如果匹配器无法读取某种语法(oklch()、lab()),会直接指出其名称,而不是声称你的调色板为空。
  • 长度会按 16px 的根字号换算为 px。百分比和视口单位需要包含尺寸,因此会说明原因并作为缺失项返回,绝不会靠猜测进行转换。
  • 先看类别,再看接近程度。 属性会绑定到所属的令牌类别中:即使字体令牌的数值更接近,padding-top 仍会使用间距令牌;即使大小令牌同样精确,line-height 仍会优先使用行高令牌。如果正确类别中没有足够接近的令牌,结果会指出跨类别的近似匹配(“按数值计算,最接近的令牌是 space.4(16px),但它属于不同类别”),而不是把 font-size 绑定到你的间距比例。
  • 若距离相同,则依次按类别匹配度、最短令牌路径、字典序最靠前的令牌路径打破平局,因此相同输入始终会产生相同绑定,与令牌顺序无关。
  • 即使每个属性都找到了匹配项,你的 DESIGN.md 中损坏的 $ref 链和循环仍会出现在 diagnostics 中——你自己的令牌文件若有缺陷,会被报告出来,而不会被忽略。

请尊重内容来源。只从你获准访问的网站抓取;这些工具不会绕过付费墙或登录限制,并且每条抓取记录都会标记 owner: "third-party"。 署名与下架。 每条第三方记录都会保留其来源 URL、主机、应用名称和采集日期,search_references 会在读取时根据这些信息生成署名行,因此署名不会过时,并且会随图片一起保存,而不是单独放在一旁。Raven 不主张拥有你采集的任何内容。

你的语料库是本地的:它存放在你自己机器上的 ~/.raven/references 中,本项目不托管它的副本。因此,下架需要由你执行,而不是向我们提出请求——如果权利人要求你移除其材料,使用其主机名调用 forget_references,即可移除该主机及所有子域名下的每条记录以及对应图片:

forget_references({ host: "example.com", confirm: true })

它会分别报告已移除的内容、无法读取的内容,以及尝试移除但未能移除的内容——这是三种不同的情况,不会被合并为一种。如果移除操作中途失败,记录会保留,而图片不会,因此再次运行时会找到并完成剩余操作。确认提示会列出将要移除的确切记录,将这些记录的 ID 传回 expected_ref_ids,即可将移除范围限定为这些记录——期间采集的任何内容都会被报告,而不会一并移除。如果你认为本项目本身正在分发你的材料,请在 https://github.com/rhinocap/raven-mcp/issues 提交 issue。

有一点值得明确说明:桥接器代理第三方网站时,该页面是从桥接器自身的来源提供的,因此页面上的脚本与 Raven 覆盖层属于同源,可以读取你的 DESIGN.md 令牌名称和值。Raven 会在代理会话期间隐藏 DESIGN.md 文件路径和所有创作路由(图层移动、模板和组件写入、批量提交),但请只代理那些你愿意向其展示令牌列表的网站。

创意工作室

Raven 现在涵盖媒体生成相关的创意制作工作流,无需复制或依赖任何封闭供应商。这些工具是编排基础组件:

  • 使用 create_brand_profile 在本地存储品牌套件。
  • 使用 register_creative_asset 注册产品照片、徽标、参考资料或 URL。
  • 使用 create_character_profile 创建角色/身份参考集。
  • 使用 create_generation_job 生成适用于服务提供商的负载。
  • 使用 plan_creative_campaign 构建完整的广告活动镜头清单。
  • 使用 score_creative 为创意概念评分。

默认情况下,任务会作为本地草稿负载保存在 ~/.raven/creative 下(可通过 RAVEN_CREATIVE_HOME 覆盖)。如需运行实际媒体生成,请将 RAVEN_CREATIVE_RUNNER 设置为一个可执行文件;它会从 stdin 读取一个任务 JSON 对象,并在 stdout 上返回 JSON。该运行器可以调用你选择的任何服务提供商;Raven 绝不会在源代码中存储 API 密钥。

iOS / SwiftUI 审计

Raven 会依据 Apple Human Interface Guidelines 审计原生 iOS 应用,而不是 Web/CSS 惯例。所有仅适用于 Web 的规则(lang、title、flex-wrap、clamp、max-width、CSS 自定义属性、裸十六进制值)都不会应用于 iOS 输入;get_checklist/get_principles 接受 platform: "ios",返回 HIG 条目(动态字体、44pt 点击目标、SF Symbols、安全区域、深色模式一致性、App Review 隐私要求),而非 Web 条目。

  • audit_swiftui — 粘贴 SwiftUI 源代码(source:字符串或文件数组)。该工具会静态标记小于约 13pt 的硬编码 .font(.system(size:))、尺寸过小的语义字体(.caption/.caption2)、硬编码的 Color(red:green:blue:)/十六进制字面值(而非资源目录颜色或语义系统颜色)、小于 44×44pt 的交互区域,以及偏离 4/8pt 网格的自定义间距。语义动态字体、语义系统颜色、SF Symbols 和灵活布局框架会获得加分。传入可选的 accent_color_contents(原始的 AccentColor.colorset/Contents.json),工具会验证强调色是否实际定义了颜色分量,从而发现空的/未定义的 AccentColor,否则它会静默回退到系统蓝色。
  • audit_ios_screen — iOS 版的 audit_layout。不带参数调用可查看预期的快照格式及其捕获方法(Accessibility Inspector / XCUITest)。传入 { elements: [{ label, rect, role, fontPt, fgColor, bgColor }], viewport }(还可选传入 base64 screenshot),即可评估 44×44pt 点击目标、对比度(iOS 的 secondaryLabel/tertiaryLabel 视为平台标准,因此只发出警告,不会直接判定失败)以及视觉节奏(对齐、间距一致性、视觉平衡)。
  • audit_ios_privacy — “无可疑问题”门槛。读取 info_plist 或 Expo app_json(受管理的 RN 应用没有 Info.plist),以及可选的 privacy_md、entitlements 和 source。该工具会标记含糊或与代码相矛盾的 NS*UsageDescription 字符串(例如,NSHealthUpdateUsageDescription 声称可以写入数据,但 requestAuthorization(toShare: []) 并未授权该操作)、未使用的权限声明、Android 权限(Expo)、ATS 明文传输例外、随应用包或 app.json extra 一同发布的机密/密钥,以及未在用户选择时披露的默认数据外传路径(例如,预先选中的“推荐”选项会在用户不知情的情况下将个人数据发送到托管服务)。

这三种工具都返回与 audit_page 相同的结构:score、grade、summary、passes、errors、warnings、fix_priority(audit_ios_screen 还会添加一个 metrics 块)。

一条命令: node scripts/ios-audit.mjs <app-dir> [--snapshot snap.json] [--md report.md] 会自动发现所有输入,并运行全部三种工具,生成汇总报告。

React Native / Expo 审计

任何构建 React Native 或 Expo 应用的人都能获得同样的审计。RN 会将内容渲染为 原生 iOS + Android 控件,因此 audit_ios_screen 已经会对其渲染后的输出进行评分(无障碍快照属于平台级);audit_rn 则检查 JSX/StyleSheet 源码——相当于 RN 版的 audit_swiftui——依据 RN 必须在两个平台上满足的 iOS HIG + Android Material 规范进行评估。get_checklist/get_principles 接受 platform: "react-native"。

  • audit_rn — 粘贴 RN 源码(source:字符串或数组)。它会标记缺少 accessibilityLabel/accessibilityRole 的可触控元素(Pressable/Touchable*)、小于 44pt 且没有 hitSlop 的可触控元素、allowFontScaling={false}(会在不提示的情况下破坏动态字体)、小于约 13 的 fontSize、没有 SafeAreaView/useSafeAreaInsets 的屏幕,以及——对于多模式应用——没有使用 useColorScheme/Appearance 的硬编码颜色。传入 color_scheme: "dark"/"light"(你的 Expo userInterfaceStyle),针对刻意采用单一模式的应用,深色模式检查会被抑制。使用 SafeAreaView、hitSlop、适配 Platform 的代码和主题可获得加分。
  • audit_ios_privacy 也接受 Expo 的 app_json——它会审计 expo.ios.infoPlist、Android 权限、插件,并扫描 expo.extra/配置中的密钥和 Google API 密钥。

一条命令: node scripts/rn-audit.mjs <app-dir> [--snapshot snap.json] [--md report.md] 会发现屏幕和 app.json(读取 userInterfaceStyle,避免将仅支持深色模式的应用误标),并运行全部检查。

响应式可见性审计

audit_responsive_visibility 会在多个断点处渲染页面(默认:390px 手机、768px 平板、1440px 桌面、2160px 超宽屏),并标记桌面端可见、但移动端隐藏的内容元素——以捕捉“在移动端消失”这一类问题。每个被标记的元素会归类为 可能是疏忽(不应隐藏的内容)或 有意为之(装饰元素)。它会检测通过 CSS(hidden、display:none、opacity:0、visibility:hidden)和响应式 Tailwind 类(hidden md:block 等)隐藏的内容。

用法:

  • audit_responsive_visibility(url) — 在默认断点处渲染并标记不一致项。
  • audit_responsive_visibility(url, [390, 768, 1440]) — 自定义断点。
  • 可选的 viewportHeight(默认:900px),用于高内容页面。

返回被标记元素的选择器、隐藏类、各断点处的可见性和类别。

对比度审计

audit_contrast 会计算每个文本元素的 WCAG 对比度,并报告三态 status:pass、fail 或 indeterminate。结果确定的行包含 ratio、aa、aaa 和 delta_to_aa;结果不确定的行会保留 required_aa,但这四项指标均为 null。对于渐变和分层背景,如果存在可信的候选范围,会提供 effective_bg 以及 ratio_min / ratio_max;结果还会单独汇总 indeterminate_bg_rows / indeterminate_bg_count,与 AA 未通过项区分开来。

真实背景合成适用于 URL 模式。Raven 会遍历渲染后 DOM 的祖先链,按 CSS 绘制顺序合成可解析的颜色和渐变图层,采样渐变内部,并通过浏览器画布规范化现代计算颜色。这会有意止步于 DOM 祖先范围:透明度、display:contents、定位的透明元素链、照片、不受支持的图层,以及跨层叠上下文的兄弟元素背景,都会报告为结果不确定;Raven 不会跨层叠上下文进行像素采样。快照模式沿用既有的 bgColor 输入值 / 白色背景模型,并通过 mode_note 说明其适用范围。

用法:

  • audit_contrast(url) — 渲染实时页面并审计所有文本。
  • audit_contrast(dom_snapshot: [{ selector, color, bgColor, fontPx?, bold?, text? }]) — 审计预先捕获的快照(适用于动态页面或受 Cookie 保护的页面)。

返回所有文本行及其状态、确定性未通过项及其与通过标准的差值、有效背景证据 / 范围,以及单独的不确定结果汇总。suggest_contrast_fix 只接受结果确定且未通过的行;结果不确定或比率为 null 的证据会被跳过,不会被转换为虚假的颜色建议。

WCAG 计算: 对比度比率使用线性化亮度(WCAG 2.1 § 1.4.3)计算——黑底白字和白底黑字的比率都恰好为 21。大号文本(粗体 18.66pt+ 或 24pt+)只需达到 3:1 / 4.5:1 AAA;常规文本需要达到 4.5:1 / 7:1。

无头浏览器审计

audit_page 可以在无头 Chromium 中渲染实时 URL,在捕获前滚动页面以触发滚动显示元素,并播放 preload=none 的视频——避免因尚未触发的 whileInView 状态而错误报告“空白区域”。

用法:

  • 静态 HTML 模式 — 传入 html 字符串进行即时静态分析(现有行为,不变)。
  • 渲染 URL 模式 — 传入 url(完整的 HTTP/HTTPS URL)。Raven 会启动 Chromium、渲染页面、按需滚动,并审计实时 DOM。
    • scroll_settle: true — 按视口高度的步长从顶部滚动到底部,并在每一步短暂停留,让 IntersectionObserver / whileInView 阈值得以触发;随着延迟加载内容出现,重新计算页面高度,并要求在底部连续观察到高度稳定。随后,Raven 会等待遍历页面任意位置触发的有限时长动画结束,再返回顶部并重新稳定页面以便捕获。期间会暂时停用平滑滚动。整个滚动与稳定过程最长为 4s;如果页面很长、持续增长或动画仍在进行而无法完全稳定,Raven 会发出捕获警告,而不会默默信任结果,并且 animationsSettled 会保持为 false。Raven 会播放尚未加载的视频(preload="none"),以检测它们是否呈现为空白。
    • 入场动画稳定(始终启用) — 在提取内容或截取屏幕截图之前,Raven 会轮询 document.getAnimations(),直到视口内或附近不再有有限时长的动画运行(忽略无限旋转动画和循环动画);默认最长等待 3s。库调用方可以设置 animation_settle_timeout_ms(硬性上限为 10s)。通过 animation-delay + backwards fill 入场的页面 Hero 区域会在动画稳定后捕获,而不会呈现为空白或处于动画中途;捕获元数据中的 animationsSettled 会报告是否已达到静止状态。
    • 误判空白检测(始终启用) — 捕获时,Raven 会测量捕获页面中承载文本的叶节点及媒体/内容元素。如果超过 30% 的元素实际上因 opacity:0、visibility:hidden 或完全透明的文本颜色而不可见,capture_warnings 中会包含 reveal-gate-false-blank: …,以便使用捕获结果的审计调用方了解渲染审计可能不可靠。
    • viewport: { w, h } — 设置渲染视口(默认值:{ w: 1440, h: 900 })。

视频伪影检测: 如果任何 <video> 的 preload="none"(或缺少 preload 属性)且渲染时 readyState < 2(即在屏幕截图中会显示为黑框),Raven 会在结果中将其标记为 unloaded-video-artifact。这只是提示信息,不影响通过/失败,因为 preload=none 通常是有意设置的。在受 Cookie 保护的主机上,视频请求可能会失败,因为 iOS/Android 媒体守护进程不会发送 Cookie;Raven 会指出这一点,帮助你排查问题(例如,停用部署保护,或使用基于令牌的绕过方式)。

对抗性验证: 设置 adversarial_verify: true,使用不同方法针对实时 DOM 独立复查每项发现。发现项会标记为:

  • confirmed — 实时页面上确实存在该问题(例如,渲染后的 DOM 缺少 <title>)
  • likely-artifact — 该问题是静态审计方法造成的伪影(例如,<video preload="none"> 渲染为空白,这是预期行为,并非缺少资源)
  • inconclusive — 无法独立验证该问题(例如,颜色调色板大小等聚合规则)

结果包含 adversarial_verification: { debunked_count, confirmed_count, inconclusive_count },其中 debunked_count 是可能属于伪影的数量。这样可以显示误报,让你只修复实际问题。向后兼容:当 adversarial_verify 未设置或为 false 时,输出与先前版本相同。

设置: 仅首次使用时运行 npx playwright install chromium,下载浏览器二进制文件。如果调用 audit_page 并传入 url 时缺少该二进制文件,你会看到清晰的提示,告知运行安装命令。

前后设计差异

现在,evaluate_design 可以接受 base64 编码的 PNG 截图,以衡量修复是否确实改变了渲染结果。

用法:

  • 传入 before_screenshot 和 after_screenshot(均为 base64 PNG,可以带或不带 data:image/png;base64, 前缀)。
  • 如果图像中超过 0.1% 的像素存在差异(计入 JPEG/PNG 解码造成的偏差),Raven 会返回 fix_confirmed: true。
  • changed_ratio — 发生变化的像素占比(0–1)。
  • changed_region — 发生变化像素的边界框 { x, y, w, h }(未检测到变化时为 null)。
  • dimensions — 基于图像得出的测量值(画布尺寸、亮度、色彩变化),作为参考;请注意,这些是像素级代理指标,而不是 Raven 原则评分。

如果同时提供前后截图和 description,evaluate_design 会同时返回基于原则的评估和像素差异。如果提供截图但未提供描述,评估会跳过原则搜索,仅返回差异。向后兼容:不提供截图时,该工具的行为与先前版本完全相同。

针对真实 git 工作树完成 token 润色闭环:

npx raven-polish --apply --verify "npm test"

CLI 默认执行试运行(在本仓库中也可运行 node scripts/raven-polish.mjs);当建议进行润色,或任何发现的严重级别为 error 时,它会以状态码 1 退出;只有在无需润色且没有错误时,才会以状态码 0 退出。传入 --range main...HEAD 可检查已提交的更改。它会先检查拟议的补丁,再应用补丁,然后针对真实仓库状态再次运行 review_diff。用于 CI 时,请将示例工作流复制到 .github/workflows/。

发布更新

Raven 会定期发布新的原则、模式和品牌系统。订阅后,每次次要或主要版本发布时会收到一封邮件(补丁版本不会发送邮件):

  • 网页: ravenmcp.ai/#updates — 只需 10 秒,填写一个邮箱地址。
  • 产品内: 向 Claude 询问 “帮我订阅 Raven 更新,邮箱是 [email protected]” — Claude 会调用 raven_register,为你完成订阅。

没有营销邮件,可随时取消订阅。由 Resend 提供支持。

升级后

Claude Code 会在 MCP 服务连接时获取工具列表快照。升级后,请重启会话或使用 /mcp 重新连接,以查看新工具。

Claude Desktop 会在 MCP 服务连接时获取工具列表快照。升级后,请重启应用以查看新工具。

Codex CLI 还要求在 ~/.codex/config.toml 中为每个工具添加 approval_mode 条目;否则,对新工具的调用会被取消。运行 node scripts/sync-codex-approvals.mjs 查看缺少哪些条目,然后添加 --write 以追加这些条目。

追加的条目会自动批准这些工具,因此请检查打印出的列表;较新版本的 Codex 也可以在服务器级别设置 default_tools_approval_mode。

让每个项目从一开始就完成校准

品味因界面而异:同一位设计师希望在自己的作品集上严格遵循单色加单一强调色的规则,却不希望产品网站遵循任何此类规则,而且每个界面的表达风格也略有不同。Taste Engine 通过启动访谈来处理这一点(每个项目进行一次——每个问题都可跳过,大多数问题提供通俗易懂的多选项,涵盖从导航模式、审美风格到专业库等内容)。访谈答案会作为界面绑定保存下来,今后的每次审查都会自动应用这些答案。如果生成的作品不合心意,mode:'refine' 会针对已保存的绑定重新进行访谈,把不满意转化为改进机会,而不是让流程陷入僵局。

从零开始打造品牌——没有产品,没有配色方案,只有一个想法?同一场访谈也是完整品牌创生流程的第一步(通过对话构思品牌,使用自己的图像工具生成素材,确认情绪板,最终在 DESIGN.md 中形成设计系统):docs/brand-genesis-flow.md。

Raven 会在其 MCP 服务说明中提供此流程,因此遵循服务说明的 Agent(Claude Code、Claude Desktop)会在项目启动时自行进行访谈:get_taste_interview → 询问用户 → bind_taste_surface → 完成。如果你的客户端不会显示服务说明,或者你希望这个流程成为必选项,可以在项目的 CLAUDE.md / AGENTS.md 中添加一行:

Before the first design/UI/copy work in this repo, run Raven's get_taste_interview
(profile <name>, project <repo-name>); if existing_binding is null, ask me its
questions and persist with bind_taste_surface. Pass project:'<repo-name>' on every
audit_taste after that.

已完成校准的项目只需一次低成本调用(existing_binding 返回非 null 值,Agent 随即继续)。未校准的审查仍然有效——限定范围的规则只会降级为警告,结果中会附带 calibration_hint——因此校准绝不会成为阻碍,只会让结果更加精准。

学习循环

Raven 会在本地保留一份小型的仅限本地使用日志,让你(和 Claude)了解自己最常构建哪些模式,以及哪些缺口反复出现。

  • 位置: ~/.raven/usage.jsonl(可通过 RAVEN_USAGE_LOG=/path 覆盖)。
  • 记录内容: 工具名称、时间戳、耗时毫秒数,以及一个简短的洞察对象——审查评分/警告规则名称、模式 type、品牌公司名称、搜索层。绝不会记录你审查的 HTML、提示词文本或品牌文案。
  • 绝不记录: 原始页面正文、客户端内容、你的工作成果。
  • 完全停用: RAVEN_NO_USAGE_LOG=1。
  • 反思: 询问 Claude “我一直在用 Raven 做什么?”,它便会调用 raven_reflect,在本地读取日志并总结最近 N 天的情况——最常用的工具、反复出现的审查警告(可能反映知识缺口)、你最常请求的模式,以及你常用的设计系统。

不会向远程服务发送任何内容。如果某个反复出现的缺口值得转化为新的 Raven 原则或模式,你可以手动提交 issue——之后由 github.com/rhinocap/raven-mcp 上的自动化流程处理。

你在托管服务上的数据

Raven 还运行着一个托管远程 MCP 服务,提供两个端点。匿名端点是无状态的——不会附加任何存储,因此你发送的内容不会被写入任何位置。经过身份验证的端点(用于 Taste Engine 的跨会话档案、界面绑定和决策)会将所有内容关联到你的账户,并将其存储在 Upstash Redis 中,按经过验证的用户 ID 命名空间隔离;你的 bearer token 本身绝不会被持久化。

你可以随时使用 delete_taste_data 工具(confirm: "DELETE")擦除所有数据——它会删除你命名空间下的所有键,并确认没有任何数据残留。完整详情(包括准确的键布局,以及不属于你数据的速率限制计数器)请参阅 docs/remote-mcp-privacy.md。

开发

npm run dev    # Run with tsx (hot reload)
npm run build  # Compile TypeScript
npm start      # Run compiled output

许可与归属

Raven MCP 基于 Apache License, Version 2.0 发布,版权所有 (c) 2026 Andrew Cunliffe。

如果你分叉、嵌入或重新分发 Raven(全部或部分),请保留 Apache-2.0 许可声明、LICENSE 文件和 NOTICE 文件。如果你将 Raven 集成到其他产品中,请在致谢中注明“Raven MCP — https://ravenmcp.ai”。

Raven 的知识库参考了许多第三方来源的内容,包括 Nielsen Norman Group、关于 UX/心理学定律的主要学术文献(Fitts、Hick、Miller 等)、格式塔原则、WCAG(W3C)、plainlanguage.gov(公有领域)、GOV.UK(开放政府许可 v3.0)、Shopify Polaris、Atlassian Design 等。每个条目都包含一个 sources URL 字段。完整的上游来源及许可条款列表请参阅 NOTICE;部分来源还附带 Apache-2.0 之外的额外条件。

这是一个个人项目。Intuit Inc. 或源数据中提及的任何其他公司均未为其背书。

数据结构

所有知识都以静态 JSON 文件的形式存储在 src/data/ 中:

src/data/
  principles/      # Nielsen, Laws of UX, Gestalt, accessibility, typography, color, mobile, D4D
  patterns/        # signup, pricing, nav, forms, landing, dashboard, modals, empty/error/loading, CTA, social proof, mobile
  business/        # monetization, retention, onboarding, growth, metrics
  tokens/          # registry.json + systems/ (stripe, linear, vercel, …)
  content/         # voice & tone: Conversational Product Voice, GOV.UK, Shopify Polaris, Atlassian
    systems/       # registry.json + brand-voice JSONs (conversational-product-voice, gov-uk, polaris, atlassian)
    principles/    # UX-writing principles (clarity, active voice, error anatomy, …)
    patterns/      # copy recipes for errors, empty states, notifications, form validation
  research/        # study protocols + metrics frameworks
    principles/    # research fundamentals (method match, bias, sample size, ethics, triangulation, …)
    methods/       # qualitative, quantitative, usability
    frameworks/    # HEART, AARRR, North Star, conversion funnel, RICE, OKRs
  service-design/  # service-level principles + patterns + frameworks
    principles/    # Stickdorn, Shostack, peak-end, moments of truth, handoff
    patterns/      # service blueprinting, human handoff, signup-as-service, omnichannel, moments of truth
    frameworks/    # GOV.UK Service Standard (14 points)
  brand/           # brand & visual design
    principles/    # logo, gradient, imagery, hierarchy, brand-as-system
    trends/        # 2026-current.json

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。