Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Deterministic, read-only TRIZ: matrix, principles, effects, routing, type-checked function models.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
TRIZ_DATA_DIR, TRIZ_GRAPH, TRIZ_REGISTRY你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"triz": {
"command": "npx",
"args": [
"-y",
"triz-mcp"
],
"env": {
"TRIZ_DATA_DIR": "your-value",
"TRIZ_GRAPH": "your-value",
"TRIZ_REGISTRY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add triz --env TRIZ_DATA_DIR=your-value --env TRIZ_GRAPH=your-value --env TRIZ_REGISTRY=your-value -- npx -y triz-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"triz": {
"command": "npx",
"args": [
"-y",
"triz-mcp"
],
"env": {
"TRIZ_DATA_DIR": "your-value",
"TRIZ_GRAPH": "your-value",
"TRIZ_REGISTRY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"triz": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"triz-mcp"
],
"env": {
"TRIZ_DATA_DIR": "your-value",
"TRIZ_GRAPH": "your-value",
"TRIZ_REGISTRY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
TRIZ_DATA_DIR envTRIZ_GRAPH envTRIZ_REGISTRY env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 sv 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.5.1)于8天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, EmbeddedCI BenchPod
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
An agent skill that applies TRIZ to real problems — products, services, processes, organizations, markets, and technical systems — plus a deterministic MCP server so the agent can only cite principles and matrix cells it has looked up, never ones it recalled.
Two parts, usable separately:
| Part | Path | What it is |
|---|---|---|
triz-innovation skill | skills/triz-innovation/ | SKILL.md, references, and the canonical JSON knowledge base |
triz MCP server | src/ | Read-only stdio MCP server over the same JSON |
An LLM asked for "the TRIZ principles for this contradiction" will produce plausible principle numbers from memory. The matrix is a lookup table, not a reasoning step, so recall is the wrong mechanism for it — and a wrong cell silently poisons everything downstream. This repo makes the lookup deterministic and fail-closed: a blank or diagonal cell returns covered: false with a pointer to the canonical reference, never a guess.
The skill itself is method, not vocabulary: frame → diagnose → model → synthesize → substantiate, with the matrix used only where both sides of a contradiction credibly map to engineering parameters.
Copy or symlink skills/triz-innovation/ into wherever your agent loads skills from — e.g. .claude/skills/, .agents/skills/, .codex/skills/, or a $SKILLS_DIR your harness reads:
git clone https://github.com/sv/triz-skill.git
ln -s "$PWD/triz-skill/skills/triz-innovation" ~/.claude/skills/triz-innovation
Once the repo is listed on skills.sh the shorthand becomes npx skills add sv/triz-skill.
The skill works standalone. The MCP server is what removes recall from the loop.
Published package (preferred once released):
npx -y triz-mcp # stdio server, no checkout needed
From a checkout:
pnpm install
pnpm start # stdio server pnpm test # deterministic lookup regressions pnpm typecheck
Register it (.mcp.json in this repo is a working example):
{
"mcpServers": { "triz": { "type": "stdio", "command": "npx", "args": ["tsx", "/path/to/triz-skill/src/server.ts"], "env": { "TRIZ_DATA_DIR": "/path/to/triz-skill/skills/triz-innovation/data" } } } }
TRIZ_DATA_DIR is only needed when the server runs outside this repo's layout; otherwise the data dir is resolved relative to the repo root and the server fails closed with a clear message if it is missing.
src/worker.ts serves the same tools, except the optional triz_graph and triz_purpose and triz_export format svg, as a Cloudflare Worker over stateless streamable HTTP (deploy with npx wrangler deploy; endpoints /mcp and /health). It has no authentication and allows any origin (Access-Control-Allow-Origin: *) on purpose: it is a stateless, read-only public utility with no storage bindings and no secrets, so any client or web page may drive it. An operator who wants it private can check a token in fetch before the MCP handler, list allowed origins instead of *, or put it behind Cloudflare Access or a rate limit. Calling a hosted endpoint sends your model to whoever runs it; keep private models on the local stdio server.
One line per workflow stage; the table below has one row per tool. What each model tool's verdict means, and how to chain the tools, is in categorical-model.md; the theory behind them, and exactly what is and is not claimed, is in docs/theory-map.md.
| Stage | Tools | What they do |
|---|---|---|
| Lookup | triz_parameter, triz_principle, triz_matrix, triz_matrix_multi, triz_resolve, triz_effects, triz_route, triz_tool_catalog, triz_evals | Read the canonical data: parameters, principles, matrix cells, effects, the method router, and the eval suites |
| Model | triz_build_model, triz_expand_hierarchy, triz_subsystem_contract, triz_function_model, triz_nine_windows, triz_abstraction, triz_export, triz_isomorphism, triz_behavior_refinement, triz_subsystem_summary | Write the system as a typed function model, view it per level and time, relate coarse and detailed models, draw it |
| Check | triz_function_model, triz_trim, triz_separate, triz_flow, triz_global_separation, triz_queue, triz_conservation | Type errors, harm loops, ideality; trim candidates; whether a contradiction separates; flow bottlenecks |
| Transform | triz_transform, triz_rule_apply, triz_trim_rewrite, triz_rewrite_pair, triz_rule_set | Apply one typed move or a rewrite rule; the result type-checks or the call fails closed |
| Decide | triz_behavior, triz_weakness, triz_dynamics, triz_feasibility, triz_adequacy, triz_implementations, triz_absorber_assignments, triz_synthesize | From declared rows: is behaviour preserved, which concept is weakest, does it escalate, does it fit the budget |
| Relax & rank | triz_feasibility relaxation, triz_pareto | When the budget says no, the minimal raises that say yes; candidate designs compared jointly, with trade-offs instead of a hidden scalarization |
| Local | triz_import_source, triz_review_import | Draft models from local sources, then record explicit analyst confirmation |
| Optional | triz_graph, triz_purpose | A project's own network of problems (stdio server only; see below) |
| Tool | Purpose |
|---|---|
triz_parameter | Get one of the 39 engineering parameters with alternate labels and interpretation guidance; omit id to list all |
triz_knowledge | List universal and domain knowledge packs, provenance, review status and explicit quantity parameters; all packs by default |
triz_principle | Get one of the 40 inventive principles; omit id to list all |
triz_matrix | Retrieve a canonical contradiction-matrix cell; blank cells fail closed |
triz_matrix_multi | Every (improving × worsening) cell for multi-parameter conflicts, aggregated by recommendation frequency |
triz_resolve | Retrieve a cell and expand its parameters and principles |
triz_tool_catalog | List the routed TRIZ tool catalog, optionally by stage; entries name the MCP tools (mcp_tools) that carry out their method |
triz_effects | Search all installed effects packs by function, category or typed quantity; optional domain/pack filters |
triz_effect_setup | Build a typed model from registered effect ids and explicit finite/resource declarations |
triz_route | Select candidate tools by stage and observed problem signals |
triz_evals | Return the neutral lookup and reasoning evaluation suites |
triz_build_model | Build a typed model from explicitly rated component interactions, with stable ids, lints, and a bounded completeness report |
triz_expand_hierarchy | Expand an inner model with explicit checked flow routes, media mappings, and opt-in budget, weight and contradiction policies |
triz_subsystem_contract | Distinguish a declared interface summary from one checked against complete inner behavior and a supported resource mode |
triz_import_source | Local only (stdio server and triz CLI): draft BOM, OpenAPI, Quint, Lean or Julia inputs with embedded source locations and pending review |
triz_review_import | Local only (stdio server and triz CLI): confirm every pending rating and assumption while retaining source provenance |
triz_function_model | Type-check a TRIZ function model (typed wiring diagram); harm loops, ideality per dimension, separation, baseline comparison with an isomorphism check; mpv_weights for a comparison over the main parameters of value |
triz_trim | Screen trimming by MATRIZ rules A/B/C; carrier-typed absorbers, trimming problems, and level problems for excessive or insufficient functions |
triz_separate | Decide whether a physical contradiction separates over space, time, condition, direction, or system level; optionally index it by one axis (Principle 15 along time); each separated pair gets suggested operations that could build the separation (hints, not verdicts) |
triz_transform | Apply one typed move — a construction for one of 13 principles, an applied trim, or a rewrite; fails closed |
triz_rule_apply | Double-pushout rewriting with rules as data: list a rule's matches, apply one; built-in evolution-line rules (mono → bi, self-adjusting feedback, changing the working field) and the uneven-development detector (the lagging subsystem) |
triz_nine_windows | System-operator views: subsystem restriction, system, supersystem collapse, per time; transitions between times as checked triz_transform sequences; with declared rows, behaviour, weakness, and feasibility verdict changes between times, and flow candidates when flows are declared; returns the models transitions derive |
triz_export | Export a model that type-checks as Graphviz DOT, a Mermaid flowchart, a self-contained SVG picture, or an open hypergraph |
triz_behavior | Compose declared box behaviour into the input→deliverable relation (steady states, relational trace); with compare_to (and box_map), decide whether a concept such as a transform result preserves it; trim is shorthand; joint_boxes computes a coupled multi-box residual with projection-safety checks; one-hole weakest_spec can price missing producible rows using explicit row_costs |
triz_weakness | Rank modelled concepts by the situations they admit, by inclusion, with incomparable pairs; counts second; acceptable values listed or derived from a threshold through the carrier's levels |
triz_pareto | Rank candidate designs jointly over declared metric vectors (feasibility resources, lifecycle figures, component counts, costs): the nondominated frontier, dominance witnesses, and trade-offs between incomparable candidates; weights order the listing only |
triz_dynamics | Bounded runs of boxes with declared state (nondeterministic Mealy machines): escalation into an unsafe set with a shortest trace, invariance of a safe set, separation in time along one run; loops classified as bistable, trapped (inside the unsafe set), recurrent (meets it but can recover), or oscillating |
triz_feasibility | Monotone co-design (Censi 2015): minimal resource vectors from declared box feasibility, by Kleene's ascent to the least fixpoint; an infeasible verdict also returns relaxation, the nondominated minimal budget raises (each with its row-selection witness) or the smallest per-port capability raises; with trim, decide whether the remaining boxes provide what the trim leaves them within budget, and the absorber's added resources; with carrier levels, the rows that disagree with declared behaviour |
triz_abstraction | Check that a coarse model is an abstraction of a detailed one under a map of boxes, ports, and carriers: total, typed, every coarse function and harm loop the image of a detailed one; forgotten and hidden harms listed |
triz_flow | Flow analysis over declared flow paths (boxes in series): per flow, bottleneck, accumulation, and leak candidates, and loops |
triz_graph | Optional: analyse a project's OTSM Network of Problems (see below) |
triz_adequacy | Require nonblocking and acceptable outputs at every required operating input |
triz_isomorphism | Verify or search an annotation-preserving value/state/wiring bijection |
triz_behavior_refinement | Check exact complete whole-model relation inclusion under an explicit interface/value map |
triz_subsystem_summary | Compose an exact stateless boundary summary and report hidden harms |
triz_implementations | Require one named implementation to meet behavior, resources and declared-harm constraints together |
| triz_absorber_assignments | Evaluate complete absorber assignments over every co
只显示了开头部分;其余内容请在仓库中阅读