Yeti
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PRODUCT_DESIGN_DB | No | Absolute path to the database file where data is stored. By default, data is stored in `data/db.json` inside the project folder. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_projectA | Create a design project. It starts in the 'discovery' phase: problem, users and goal are required. Mode 'strict' (default) blocks advancing until each phase is complete; 'free' allows advancing and reports what was skipped. |
| list_projectsA | List projects with their id, name, phase and status. Use it to find a projectId. |
| update_requirementB | Change a requirement's title, description or priority. Only the fields you pass are changed. |
| delete_requirementB | Delete a requirement. It is also removed from the requirementIds of any user story that covered it. |
| delete_user_storyD | Delete a user story. |
| set_criterion_statusC | Mark one acceptance criterion of a user story as done or not done. The index is 0-based, in the order of the criteria. |
| archive_projectA | Archive or unarchive a project. Archived projects are hidden from list_projects by default. Nothing is deleted. |
| set_project_modeA | Change a project's mode: 'strict' or 'free'. Applies from the next phase change. |
| update_projectB | Change a project's name, problem, users or goal. Only the fields you pass are changed. |
| search_itemsA | Search requirements and user stories by text (case-insensitive). Optionally limit to one project. |
| duplicate_projectA | Create a new project from an existing one, copying its requirements and user stories as open items. Useful as a template for a new client or product. Statuses and RICE scores are not copied. |
| import_requirementsA | Import requirements and user stories from CSV text, in the format produced by export_backlog. Requirement rows need type and title; story rows need persona, goal, benefit and criteria (separated by ' | '). Story-to-requirement links are not restored. |
| set_project_trackerA | Bind a project to its work tracker: jira (with a Jira project key, e.g. PROJ) or github (with owner/repo). Set it once, before sending anything. A project with items already sent cannot change tracker. |
| push_to_trackerA | Create the project's work items in its tracker: one Task per requirement and one Story per user story. Items already sent are skipped. With update: true, refreshes the items already linked. dryRun (default true) only lists what would be sent. Set the tracker first with set_project_tracker. |
| sync_trackerB | Read the status of the project's linked items in its tracker and mark them done or open in Yeti. Read-only on the tracker. |
| project_summaryB | Summarise a project's progress: requirements by priority and status, story coverage of musts, acceptance criteria done, RICE leader, Jira links and what is missing to close. |
| list_storiesA | List user stories, optionally for one project, with their ids, criteria state and Jira key. Use it to find a storyId. |
| delete_projectA | Permanently delete a project with its requirements and user stories. Requires confirm: true. This cannot be undone; issues already created in Jira are not touched. |
| update_user_storyA | Change a user story's persona, goal, benefit, linked requirements or acceptance criteria. Only the fields you pass change. Changing the criteria resets their done state. |
| list_flowsA | List the flow diagrams saved in a project, with their index. Use the index to refer to a diagram. |
| delete_flowA | Delete one saved flow diagram from a project, by the index shown by list_flows. |
| export_dashboardB | Write a read-only HTML dashboard to data/exports/dashboard.html: phases, what is missing, musts covered by stories, RICE scores and flow diagrams. Open the file in a browser. |
| open_dashboardA | Start the local, read-only Yeti dashboard and return its address (http://127.0.0.1:...). It shows phases, what is missing, musts and their stories, RICE and flows, and refreshes by itself. It runs on this computer only, while Yeti runs. |
| add_decisionA | Record a design decision for a project: what was chosen, why, and which alternatives were rejected. Decisions are kept with the project, so the reasons outlive the chat. |
| list_decisionsB | List the design decisions recorded for a project, oldest first. |
| list_templatesA | List the starter project templates: a marketplace MVP and a customer self-service portal. Use one with create_project_from_template. |
| create_project_from_templateB | Create a project from a starter template. It starts in discovery with its requirements and user stories open, linked to each other. Adapt them afterwards with the usual tools. |
| get_projectB | Show a project's status: current phase, what is missing to advance, and linked items. |
| advance_phaseB | Move to the next phase. In 'strict' mode, it lists what is missing and does not advance. In 'free' mode, it advances and reports what was skipped. After 'verification' it closes the project. |
| add_requirementC | Record a product requirement with a MoSCoW priority (must, should, could, wont). |
| list_requirementsA | List requirements, optionally filtered by priority, status and project. Most important first. |
| set_requirement_statusC | Mark a requirement as open or done. |
| add_user_storyB | Create a user story in the format 'As a I want so that ', with acceptance criteria. |
| prioritize_riceA | Compute RICE scores (Reach × Impact × Confidence ÷ Effort) for a list of ideas and sort them. With projectId, saves the result to the project. |
| map_user_flowB | Generate a Mermaid flowchart from a list of steps. Steps are linked in order; a decision (diamond) gets a 'Yes' edge to the next step, or to 'yes' if set, and a 'No' edge to 'no' if set. With projectId, saves the diagram to the project. |
| export_backlogC | Export a project backlog as Markdown or CSV: requirements (most important first) and user stories. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 36 tools
Most tools map cleanly to one resource plus one action (requirements, stories, decisions, flows, tracker, exports), so an agent can pick correctly without much thought. The main soft spots are three overlapping project-creation paths (create_project, create_project_from_template, duplicate_project) and three overlapping reporting tools (get_project, project_summary, export_dashboard/open_dashboard), which require reading descriptions to separate.
The set is overwhelmingly consistent verb_noun snake_case (add_requirement, delete_user_story, set_criterion_status, push_to_tracker, map_user_flow). The one clear deviation is project_summary, a noun-phrase with no verb, which breaks the otherwise predictable pattern; the rest hold together well.
At 36 tools this is a heavy surface, well past the comfortable 3-15 range, spread across six sub-domains (lifecycle phases, backlog items, decisions, flows, tracker sync, reporting/export). Each tool does appear to earn its place with no obvious filler, but grouping is invisible in a flat list of this size and increases selection cost.
Coverage is strong for the core lifecycle: full CRUD on projects, requirements and user stories, criterion-level status, phase advancement, templating, import/export, tracker push/sync, and decisions. Remaining gaps are minor — decisions and flows have no update/delete-decision or edit-flow operations, and there are no single-item get_requirement/get_story lookups, all of which can be worked around via list plus update.