
Yeti, an MCP server that guides product design from requirements to Jira
An MCP server for product design with Claude. It takes a project from the problem to a verified scope: requirements, user stories, RICE priorities and flow diagrams. Then it sends the work to Jira.
以下正文同步自 Hacker News 最新,版权归原站所有,已转换为易读排版。
An MCP server for product design with Claude. It takes a project from the problem to a verified scope: requirements, user stories, RICE priorities and flow diagrams. Then it sends the work to Jira.
Add Yeti to Claude Desktop, in claude_desktop_config.json, then restart Claude Desktop:
{ "mcpServers": { "yeti": { "command": "npx", "args": ["-y", "yeti-mcp"], "env": { "PRODUCT_DESIGN_DB": "/Users/you/yeti/yeti.sqlite" } } } }
Set PRODUCT_DESIGN_DB to a file in a folder you keep. With npx the package lives in a cache that can be cleared, and a database stored there would go with it. Yeti needs Node.js 22.13 or later.
Create a project "Quotes for craftsmen" with Yeti. Problem: writing quotes takes hours. Users: plumbers and painters. Goal: a quote in five minutes.
A project goes through five phases, in order:
Projects have a mode, chosen at creation:
Requirements, stories, RICE scores and flows accept an optional projectId to link them to a project.
You need Node.js 22.13 or later (Yeti uses the built-in node:sqlite module).
git clone https://github.com/macorifice/yeti.git cd yeti npm install npm run build
Then add it to claude_desktop_config.json, using the absolute path to dist/index.js on your machine:
{ "mcpServers": { "yeti": { "command": "node", "args": ["/absolute/path/to/yeti/dist/index.js"] } } }
Restart Claude Desktop after editing the file.
Once connected, you work with Yeti by talking to Claude. A typical project looks like this.
Create a project "Quotes for craftsmen". Problem: writing quotes takes hours. Users: plumbers and painters. Goal: a quote in five minutes.
Yeti creates the project in the discovery phase.
In strict mode (the default), Yeti will not advance until the phase is complete, and it tells you what is missing. In free mode, it advances and lists what it skipped. You can switch with set_project_mode.
Export the project backlog as Markdown and save it to a file.
With save: true, the file is written to data/exports/ next to the database.
A small project from requirements to Jira, using the Mastro example: creating the project, requirements and user stories, RICE prioritisation, a flow diagram, the verification gate, sending to Jira, and keeping the status in sync.
Yeti has a read-only dashboard for the design side of your projects: the phase each project is in, what is missing to move on, which musts are covered by user stories, acceptance criteria, RICE scores and flow diagrams. It does not show a task board: execution belongs in Jira.
Claude calls open_dashboard and gives you an address such as http://127.0.0.1:4321. Or start it from a terminal:
npx yeti-mcp dashboard --port 4321
It listens on 127.0.0.1 only, so it is not reachable from other machines, and it refuses requests for other host names.
It reads the same database as the MCP server and refreshes every 10 seconds.
Jira keys become links when JIRA_SITE is set.
Diagrams are drawn with Mermaid, loaded from a CDN. Without a connection they are shown as text.
export_dashboard still writes a static snapshot to data/exports/dashboard.html, for sharing.
Yeti works without any account. Only one tool talks to an external service:
Set them in your shell profile, for example in ~/.zshrc:
export JIRA_SITE="https://your-team.atlassian.net" export JIRA_EMAIL="you@example.com" export JIRA_API_TOKEN="your-token-here"
Never put the token in the repository, in a config file you commit, or in a chat. If a token is exposed, revoke it in the same page and create a new one.
Without these variables, push_to_jira refuses to send and tells you which one is missing. Dry-run previews work without them as well.
Data is stored in SQLite. From a source checkout the default is data/yeti.sqlite inside the project folder; with npx, set PRODUCT_DESIGN_DB as shown in the quick start. Earlier versions used data/db.json: it is imported automatically the first time the new version runs, and then left untouched. To use another location, set the PRODUCT_DESIGN_DB environment variable:
"env": { "PRODUCT_DESIGN_DB": "/absolute/path/to/yeti.sqlite" }
Test
npm test
The test starts the server on a temporary database and checks every tool and the phase flow.
Stable since 1.0.0. The tools, their inputs and the data format are covered by semantic versioning: breaking changes will come with a new major version.
If Yeti is useful to you, you can support its development through GitHub Sponsors.
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。