Yeti

السجل الرسمي أدوات المطورين

Product design with Claude: phases, requirements, user stories, RICE, flows, dashboard, Jira.

التثبيت

أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: ‏.cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).

NPM package yeti-mcp
Claude Code
claude mcp add yeti -e 'PRODUCT_DESIGN_DB=<PRODUCT_DESIGN_DB>' -e 'JIRA_SITE=<JIRA_SITE>' -e 'JIRA_EMAIL=<JIRA_EMAIL>' -e 'JIRA_API_TOKEN=<your jira_api_token>' -- npx -y yeti-mcp@1.0.3
إعداد JSON (Claude Desktop وCursor وVS Code)
{
    "mcpServers": {
        "yeti": {
            "command": "npx",
            "args": [
                "-y",
                "yeti-mcp@1.0.3"
            ],
            "env": {
                "PRODUCT_DESIGN_DB": "<PRODUCT_DESIGN_DB>",
                "JIRA_SITE": "<JIRA_SITE>",
                "JIRA_EMAIL": "<JIRA_EMAIL>",
                "JIRA_API_TOKEN": "<your jira_api_token>"
            }
        }
    }
}

متغيرات البيئة

  • PRODUCT_DESIGN_DB Absolute path of the SQLite database file. Set it to a folder you keep when running with npx.
  • JIRA_SITE Jira site, e.g. https://your-team.atlassian.net. Only needed for the Jira tools.
  • JIRA_EMAIL Email of the Atlassian account. Only needed for the Jira tools.
  • JIRA_API_TOKEN سري Atlassian API token. Only needed for the Jira tools.

التوثيق

مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.

المحتويات
  1. Yeti
  2. Quick start
  3. How it works
  4. Tools
  5. Install from source
  6. Usage
  7. Dashboard
  8. Credentials
  9. Data
  10. Test
  11. Status
  12. Sponsor
  13. License

Yeti

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.

Quick start

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.

Then ask Claude:

Create a project "Quotes for craftsmen" with Yeti. Problem: writing quotes takes hours. Users: plumbers and painters. Goal: a quote in five minutes.

Open the Yeti dashboard.

How it works

A project goes through five phases, in order:

  1. discovery: problem, users and goal
  2. definition: requirements (MoSCoW) and user stories
  3. prioritization: RICE scoring of ideas
  4. flows: Mermaid flow diagrams
  5. verification: every must requirement completed and covered by a user story, then the project closes

Projects have a mode, chosen at creation:

  • strict (default): a phase advances only when its requirements are met. advance_phase tells you what is missing.
  • free: phases advance regardless, and the response lists what was skipped.

Tools

Projects

ToolWhat it does
create_projectStart a project in the discovery phase, in strict or free mode
list_projectsList projects with id, name, phase and mode; archived ones are hidden unless includeArchived is set
get_projectShow phase, what is missing, and linked items
project_summaryProgress overview: requirements by priority and status, musts covered by stories, criteria done, RICE leader, Jira links, and what is missing to close
update_projectChange a project's name, problem, users or goal
advance_phaseMove to the next phase, or list what is missing
set_project_modeSwitch a project between strict and free
duplicate_projectCopy a project's requirements and stories into a new project, as open items (a template)
archive_projectHide a project from list_projects without deleting it
delete_projectPermanently delete a project and its items. Requires confirm: true; Jira issues are not touched

Requirements and user stories

ToolWhat it does
add_requirementAdd a requirement with a MoSCoW priority
list_requirementsList requirements, filtered by priority, status or project
update_requirementChange a requirement's title, description or priority
set_requirement_statusMark a requirement open or done
delete_requirementDelete a requirement and unlink it from stories
add_user_storyCreate a user story with acceptance criteria, optionally linked to requirements (requirementIds)
list_storiesList user stories with their ids, links, criteria state and Jira key
update_user_storyChange a story's persona, goal, benefit, linked requirements or criteria. Changing criteria resets their done state
set_criterion_statusMark one acceptance criterion of a user story as done or not done
delete_user_storyDelete a user story
search_itemsSearch requirements and stories by text, optionally within one project

Prioritization and flows

ToolWhat it does
prioritize_riceCompute and sort RICE scores
map_user_flowGenerate a Mermaid flow diagram, with Yes/No branches, next and ends
list_flowsList the flow diagrams saved in a project, with their index
delete_flowDelete one saved flow diagram, by the index shown by list_flows

Import, export and dashboard

ToolWhat it does
export_backlogExport a project backlog as Markdown or CSV; with save, also writes it to data/exports/
import_requirementsImport requirements and user stories from CSV in the export_backlog format. Story-to-requirement links are not restored
open_dashboardStart the live, read-only dashboard and return its local address
export_dashboardWrite a static HTML snapshot of the dashboard to data/exports/dashboard.html

Jira

ToolWhat it does
push_to_jiraCreate Jira issues for a project (Task per requirement, Story per user story). Dry-run by default; limit sends a subset; update refreshes issues already linked; items already sent are skipped
sync_from_jiraMark requirements and stories done when their Jira issue is done, and reopen them when it goes back. Items closed by hand in Yeti are not reopened. Read-only on Jira

Requirements, stories, RICE scores and flows accept an optional projectId to link them to a project.

Install from source

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.

Usage

Once connected, you work with Yeti by talking to Claude. A typical project looks like this.

1. Create a project

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.

2. Move through the phases

  • definition: add at least one requirement and one user story linked to it.
  • prioritization: score the ideas with RICE.
  • flows: draw at least one flow diagram.
  • verification: every must requirement is done and covered by a user story.

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.

3. Work on the backlog

  • Edit or delete requirements and stories.
  • Mark acceptance criteria as done.
  • Search across a project.
  • Duplicate a project to reuse it as a template.
  • Import requirements from a CSV file.

4. Export

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.

Good to know

  • Data is stored locally, in data/yeti.sqlite. The content still passes through the chat, so do not put sensitive data in it.
  • RICE scores are the numbers you enter. Yeti sorts them; it does not estimate them.

Dashboard

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.

Open it from Claude:

Open the Yeti dashboard.

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.

Credentials

Yeti works without any account. Only one tool talks to an external service:

  • Everything else (projects, requirements, stories, RICE, flows, verification, export, search) runs locally and needs no credentials.
  • push_to_jira creates issues in Jira. It needs three environment variables:
VariableValue
JIRA_SITEYour Jira site, e.g. https://your-team.atlassian.net
JIRA_EMAILThe email of your Atlassian account
JIRA_API_TOKENAn API token created at id.atlassian.com → Security → API tokens

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

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.

Status

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.

Sponsor

If Yeti is useful to you, you can support its development through GitHub Sponsors.

License

MIT. See LICENSE.

الأسئلة الشائعة

ما هو Yeti؟

Product design with Claude: phases, requirements, user stories, RICE, flows, dashboard, Jira.

كيف أثبّت Yeti؟

يعمل على جهازك. في Claude Code: claude mcp add yeti -e 'PRODUCT_DESIGN_DB=<PRODUCT_DESIGN_DB>' -e 'JIRA_SITE=<JIRA_SITE>' -e 'JIRA_EMAIL=<JIRA_EMAIL>' -e 'JIRA_API_TOKEN=<your jira_api_token>' -- npx -y yeti-mcp@1.0.3. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.

هل يحتاج Yeti إلى مفتاح API؟

نعم. يتطلب JIRA_API_TOKEN، وتضبطها في إعداداته.

هل Yeti مفتوح المصدر؟

نعم. شيفرته متاحة على GitHub بترخيص MIT.

من يصون Yeti؟

ينشره macorifice. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.

من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.