mcpField
Y
Yeti

Yeti

本地服务
github.com生产力35 天前更新

关于 Yeti

Yeti 是供使用 Claude 的产品团队采用的 MCP 服务,可将项目从问题探索推进到范围验证。它按阶段组织工作,跟踪需求和用户故事,以 RICE 评分排序,并可将工作发送到 Jira。

主要功能

  1. 01按五个设计阶段推进项目
  2. 02管理 MoSCoW 需求和用户故事
  3. 03计算并排序 RICE 分数
  4. 04生成 Mermaid 用户流程图
  5. 05导出待办并与 Jira 同步

适用场景

  1. 01将产品问题整理为需求和用户故事
  2. 02关闭项目前检查必需需求是否得到覆盖
  3. 03根据输入的 RICE 分数为想法排序
  4. 04将待办发送到 Jira 并同步完成状态

MCP 相关

Yeti 是面向 Claude 的 MCP 服务,提供管理项目、需求、用户故事、优先级、流程图、导出、仪表板及 Jira 操作的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"macorifice-yeti": {
"command": "npx",
"args": [
"-y",
"yeti-mcp"
],
"env": {
"PRODUCT_DESIGN_DB": "<PRODUCT_DESIGN_DB>",
"JIRA_SITE": "<JIRA_SITE>",
"JIRA_EMAIL": "<JIRA_EMAIL>",
"JIRA_API_TOKEN": "<JIRA_API_TOKEN>"
}
}
}
}
启动命令npx -y yeti-mcp
需要配置的环境变量
PRODUCT_DESIGN_DBAbsolute path of the SQLite database file. Set it to a folder you keep when running with npx.
JIRA_SITEJira site, e.g. https://your-team.atlassian.net. Only needed for the Jira tools.
JIRA_EMAILEmail of the Atlassian account. Only needed for the Jira tools.
JIRA_API_TOKEN密钥Atlassian API token. Only needed for the Jira tools.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmyeti-mcp1.0.3

工具

31

收录的工具列表 · 更新于 5 天前

参数类型必填说明
goalstring是用户或企业应实现的目标
modeenum否strict | free
namestring是
usersstring是面向的对象
problemstring是要解决的问题

详细介绍

Yeti

npm CI License: MIT

一个使用 Claude 进行产品设计的 MCP 服务。它将项目从问题推进到经过验证的范围:需求、用户故事、RICE 优先级和流程图。然后,它会将工作发送到 Jira。

Yeti 仪表板:各个阶段、推进到下一阶段还缺少的内容,以及包含对应用户故事的必需项

快速开始

在 claude_desktop_config.json 中将 Yeti 添加到 Claude Desktop,然后重启 Claude Desktop:

{
  "mcpServers": {
    "yeti": {
      "command": "npx",
      "args": ["-y", "yeti-mcp"],
      "env": { "PRODUCT_DESIGN_DB": "/Users/you/yeti/yeti.sqlite" }
    }
  }
}

将 PRODUCT_DESIGN_DB 设置为你保留的文件夹中的文件。使用 npx 时,软件包存放在可清除的缓存中,存储在其中的数据库也会随之删除。Yeti 需要 Node.js 22.13 或更高版本。

然后向 Claude 提出请求:

使用 Yeti 创建一个名为「工匠报价」的项目。问题:编写报价需要数小时。用户:水管工和油漆工。目标:五分钟内生成一份报价。

打开 Yeti 仪表板。

工作原理

项目依次经过五个阶段:

  1. discovery:问题、用户和目标
  2. definition:需求(MoSCoW)和用户故事
  3. prioritization:对想法进行 RICE 评分
  4. flows:Mermaid 流程图
  5. verification:完成每项 must 需求,并确保其有对应的用户故事,然后关闭项目

创建项目时需要选择项目模式:

  • strict(默认):只有满足阶段要求后才能进入下一阶段。advance_phase 会告知你还缺少哪些内容。
  • free:无论是否满足要求都可以进入下一阶段,响应中会列出跳过的内容。

工具

项目

工具功能说明
create_project在发现阶段启动项目,可选择 strict 或 free 模式
list_projects列出项目的 ID、名称、阶段和模式;除非设置了 includeArchived,否则不显示已归档项目
get_project显示阶段、缺少的内容和关联项
project_summary进度概览:按优先级和状态排列的需求、用户故事覆盖的必需项、已完成的验收标准、RICE 排名第一项、Jira 链接,以及完成项目还缺少的内容
update_project更改项目名称、问题、用户或目标
advance_phase进入下一阶段,或列出缺少的内容
set_project_mode在 strict 和 free 之间切换项目模式
duplicate_project将项目的需求和用户故事复制到新项目中,作为未完成项(模板)
archive_project在 list_projects 中隐藏项目,但不删除它
delete_project永久删除项目及其条目。需要设置 confirm: true;不会影响 Jira 问题

需求和用户故事

工具功能说明
add_requirement添加需求并设置 MoSCoW 优先级
list_requirements按优先级、状态或项目筛选并列出需求
update_requirement更改需求的标题、描述或优先级
set_requirement_status将需求标记为 open 或 done
delete_requirement删除需求并取消其与用户故事的关联
add_user_story创建带验收标准的用户故事;可选择关联需求(requirementIds)
list_stories列出用户故事及其 ID、关联项、验收标准状态和 Jira 键
update_user_story更改用户故事的角色、目标、收益、关联需求或验收标准。更改验收标准会将其完成状态重置
set_criterion_status将用户故事的一项验收标准标记为已完成或未完成
delete_user_story删除用户故事
search_items按文本搜索需求和用户故事,可选择限定在某个项目中

优先级排序和流程

工具功能说明
prioritize_rice计算并排序 RICE 分数
map_user_flow生成 Mermaid 流程图,包含 Yes/No 分支、next 和 ends
list_flows列出项目中保存的流程图及其索引
delete_flow根据 list_flows 显示的索引删除一个已保存的流程图

导入、导出和仪表板

工具功能说明
export_backlog将项目待办事项导出为 Markdown 或 CSV;设置 save 后,还会将其写入 data/exports/
import_requirements从符合 export_backlog 格式的 CSV 导入需求和用户故事。不会恢复用户故事与需求之间的关联
open_dashboard启动实时只读仪表板并返回其本地地址
export_dashboard将仪表板的静态 HTML 快照写入 data/exports/dashboard.html

Jira

工具功能说明
push_to_jira为项目创建 Jira 问题(每项需求对应一个 Task,每个用户故事对应一个 Story)。默认仅试运行;limit 可指定要发送的子集;update 可刷新已关联的问题;已发送的条目会跳过
sync_from_jira当 Jira 问题完成时,将需求和用户故事标记为已完成;问题恢复未完成状态时,也会重新打开对应条目。在 Yeti 中手动关闭的条目不会重新打开。此工具对 Jira 仅执行读取操作

需求、用户故事、RICE 分数和流程均可选用 projectId 关联到项目。

从源代码安装

你需要 Node.js 22.13 或更高版本(Yeti 使用内置的 node:sqlite 模块)。

git clone https://github.com/macorifice/yeti.git
cd yeti
npm install
npm run build

然后将其添加到 claude_desktop_config.json,并使用你计算机上 dist/index.js 的绝对路径:

{
  "mcpServers": {
    "yeti": {
      "command": "node",
      "args": ["/absolute/path/to/yeti/dist/index.js"]
    }
  }
}

编辑文件后,重启 Claude Desktop。

使用方法

连接后,你可以通过与 Claude 对话来使用 Yeti。典型项目如下所示。

1. 创建项目

创建一个项目“工匠报价”。问题:编写报价需要数小时。用户:水管工和油漆工。目标:五分钟内生成一份报价。

Yeti 会在 discovery 阶段创建项目。

2. 推进各个阶段

  • definition:至少添加一项需求和一条与之关联的用户故事。
  • prioritization:使用 RICE 为想法评分。
  • flows:绘制至少一张流程图。
  • verification:每项 must 需求都已完成,并且有用户故事覆盖。

在 strict 模式(默认模式)下,Yeti 不会在阶段完成前推进,并会告知你缺少哪些内容。在 free 模式下,它会继续推进并列出跳过的内容。你可以通过 set_project_mode 切换模式。

3. 处理待办事项

  • 编辑或删除需求和用户故事。
  • 将验收标准标记为已完成。
  • 搜索项目中的内容。
  • 复制项目以将其用作模板。
  • 从 CSV 文件导入需求。

4. 导出

将项目待办事项导出为 Markdown 并保存到文件。

设置 save: true 后,文件会写入数据库所在目录下的 data/exports/。

须知

  • 数据存储在本地的 data/yeti.sqlite 中。内容仍会经过聊天,因此请勿在其中放入敏感数据。
  • RICE 分数就是你输入的数字。Yeti 会对其排序,但不会估算分数。

案例研究

以 Mastro 为例,展示从需求到 Jira 的小型项目:创建项目、需求和用户故事,进行 RICE 优先级排序,绘制流程图,通过验证关卡,发送到 Jira,并保持状态同步。

案例研究:从需求到 Jira

仪表板

Yeti 提供只读仪表板,用于查看项目设计相关信息:每个项目所处的阶段、继续推进还缺少哪些内容、哪些 must 已由用户故事覆盖、验收标准、RICE 分数和流程图。它不显示任务看板:执行工作应在 Jira 中进行。

Yeti 仪表板中带有验收标准、RICE 分数和流程图的用户故事

从 Claude 中打开:

打开 Yeti 仪表板。

Claude 会调用 open_dashboard 并提供一个地址,例如 http://127.0.0.1:4321。你也可以从终端启动:

npx yeti-mcp dashboard --port 4321
  • 它仅侦听 127.0.0.1,因此其他计算机无法访问,并且会拒绝发往其他主机名的请求。
  • 它读取与 MCP 服务相同的数据库,并每隔 10 秒刷新一次。
  • 设置 JIRA_SITE 后,Jira 键会变为链接。
  • 图表使用从 CDN 加载的 Mermaid 绘制。没有网络连接时,图表会以文本形式显示。

export_dashboard 仍会将静态快照写入 data/exports/dashboard.html,供分享使用。

凭据

Yeti 无需任何账户即可使用。只有一个工具会与外部服务通信:

  • 其他所有功能(项目、需求、用户故事、RICE、流程、验证、导出、搜索)都在本地运行,无需凭据。
  • push_to_jira 会在 Jira 中创建问题。它需要三个环境变量:
变量值
JIRA_SITE你的 Jira 站点,例如 https://your-team.atlassian.net
JIRA_EMAIL你的 Atlassian 账户邮箱
JIRA_API_TOKEN在 id.atlassian.com → Security → API tokens 中创建的 API 令牌

将它们设置在你的 shell 配置文件中,例如 ~/.zshrc:

export JIRA_SITE="https://your-team.atlassian.net"
export JIRA_EMAIL="[email protected]"
export JIRA_API_TOKEN="your-token-here"

切勿将令牌放入代码库、提交的配置文件或聊天中。如果令牌泄露,请在同一页面撤销它并创建新令牌。

未设置这些变量时,push_to_jira 会拒绝发送,并告知你缺少哪个变量。试运行预览也无需这些变量。

数据

数据存储在 SQLite 中。从源码检出版本启动时,默认使用项目文件夹中的 data/yeti.sqlite;使用 npx 时,请按快速入门中的说明设置 PRODUCT_DESIGN_DB。早期版本使用 data/db.json:新版本首次运行时会自动导入该文件,之后不会再对其进行修改。若要使用其他位置,请设置 PRODUCT_DESIGN_DB 环境变量:

"env": { "PRODUCT_DESIGN_DB": "/absolute/path/to/yeti.sqlite" }

测试

npm test

测试会在临时数据库上启动服务,并检查每个工具及阶段流转。

状态

自 1.0.0 起已稳定。工具、工具的输入以及数据格式均遵循语义化版本规范:有破坏性的更改将随新主版本发布。

赞助

如果 Yeti 对你有帮助,可以通过 GitHub Sponsors 支持其开发。

许可证

MIT。参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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