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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
TRIZ_DATA_DIR envTRIZ_GRAPH envTRIZ_REGISTRY env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 sv 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.5.1)은 7일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Recta
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
제작자의 저장소에서 쓰인 그대로 가져왔어요. 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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요