io.github.qwertymuzaffar/software-design
SOLID/OOP/DRY, the 23 GoF patterns, pattern scaffolding, and heuristic code-smell detection.
Que pouvez-vous faire avec io.github.qwertymuzaffar/software-design ?
list_catalog{ kind? }— list concepts, optionally filteredexplain_concept{ name }— full guidance for one principle orscaffold_pattern{ pattern, names? }— pseudo-code skeleton for a GoFcheck_smells{ code, …thresholds? }— heuristic scan for long
Installation
Ajoutez ceci à la configuration MCP de votre client (Claude Desktop : claude_desktop_config.json ; Cursor : .cursor/mcp.json ; VS Code et les autres utilisent la même forme « mcpServers »).
mcp-software-designclaude mcp add software-design -- npx -y mcp-software-design@0.1.3
{
"mcpServers": {
"software-design": {
"command": "npx",
"args": [
"-y",
"mcp-software-design@0.1.3"
]
}
}
}
Documentation
Tirée du README du projet sur GitHub, actualisée chaque semaine. Les liens ouvrent GitHub.
Sommaire
mcp-software-design
An MCP server that teaches and helps apply software-design guidance — the SOLID principles, the OOP pillars, DRY / KISS / YAGNI / meaningful naming / clean code, and the 23 Gang-of-Four design patterns — plus pattern scaffolding and heuristic code-smell detection.
It's the companion to
mcp-udacity-commit: same stack (TypeScript, the MCP
SDK, stdio transport), same shape (pure logic modules + thin server wiring).
Install
Register it with Claude Code — one line, nothing to clone:
claude mcp add software-design -- npx -y mcp-software-design
Or in an MCP client config:
{
"mcpServers": {
"software-design": {
"command": "npx",
"args": ["-y", "mcp-software-design"]
}
}
}
Why this exists — and its one honest caveat
The commit server can lint: "subject ≤ 50 chars" is objectively checkable. Design principles and patterns are not like that — "does this violate SRP?" or "should this be a Factory?" are judgment calls, not lint rules.
So this server does not pretend to grade your architecture pass/fail. Instead it does the parts that are genuinely reliable, and hands the judgment to the model:
| Capability | Primitive | What it gives you |
|---|---|---|
| Reference | resources + explain_concept | Authoritative, consistent definitions so the model cites the same thing every time. |
| Scaffolding | scaffold_pattern | A language-agnostic skeleton of a pattern's participants. |
| Smell heuristics | check_smells | A few genuinely-checkable proxies (long method, deep nesting, …) — hints, never verdicts. |
| Explain / apply | review_design, apply_pattern prompts | Prime the model to review or refactor, grounded in the tools + resources above. |
Design analysis is a judgment call, so the "explain/apply helper" is exposed as MCP prompts (which drive the client's model) rather than server code pretending to understand your snippet.
Tools
list_catalog{ kind? }— list concepts, optionally filtered (principle|solid|oop|pattern|creational|structural|behavioral).solid/oopnarrow to the SOLID five / the four OOP pillars.explain_concept{ name }— full guidance for one principle or pattern (intent, when-to-use, trade-offs, participants). Accepts a slug, name, or alias ("SRP","open-closed","pubsub").scaffold_pattern{ pattern, names? }— pseudo-code skeleton for a GoF pattern;namesoptionally renames roles to your domain ({ "Product": "Notification" }).check_smells{ code, …thresholds? }— heuristic scan for long method, large class, long parameter list, deep nesting, duplication, and large file. Each finding names the principle it hints at plus a suggested refactor. All thresholds are overridable per call.
Resources
design://principles— SOLID, OOP pillars, DRY, KISS, YAGNI, meaningful naming, and more.design://patterns— the 23 GoF patterns, grouped creational / structural / behavioral.design://smells— whatcheck_smellsdetects, its thresholds, and its caveats.
Prompts
review_design{ code, focus? }— review a snippet against the principles/patterns, grounded incheck_smells+ the resources.apply_pattern{ pattern, code }— refactor a snippet to apply a named pattern (and first judge whether it even fits).
Build from source
For local development, or to run a local checkout instead of the published package:
npm install
npm run build # compiles src → build
npm start # runs the stdio server
npm test # builds, then runs the unit tests
npm run test:client # end-to-end check against the built server
Then register it the same way as Install above — both the
claude mcp add command and the MCP-client-config form work — but point at
your local build instead of npx:
claude mcp add software-design -- node /absolute/path/to/mcp-software-design/build/index.js
Layout
src/
catalog.ts # principles + 23 GoF patterns (data + lookup + markdown)
smells.ts # pure, testable code-smell heuristics
scaffold.ts # renders a pattern's participants into a skeleton
index.ts # MCP wiring: resources, tools, prompts
test/
catalog.test.mjs # catalog lookup + scaffolder
smells.test.mjs # smell detectors (incl. string/comment edge cases)
The src/*.ts logic modules are pure and side-effect-free, so they're unit
tested directly against the compiled output — the server (index.ts) is only
thin wiring on top.
License
MIT
Questions fréquentes
Qu'est-ce que io.github.qwertymuzaffar/software-design ?
SOLID/OOP/DRY, the 23 GoF patterns, pattern scaffolding, and heuristic code-smell detection.
Comment installer io.github.qwertymuzaffar/software-design ?
Il s'exécute sur votre machine. Dans Claude Code : claude mcp add software-design -- npx -y mcp-software-design@0.1.3. Pour les autres clients, collez la configuration JSON de cette page dans leurs réglages MCP.
Faut-il une clé API pour io.github.qwertymuzaffar/software-design ?
Son entrée au registre n'indique aucune clé ni secret obligatoire. Certaines fonctions peuvent tout de même demander un compte auprès du service auquel il se connecte.
io.github.qwertymuzaffar/software-design est-il open source ?
Oui. Son code est sur GitHub sous licence MIT.
Qui maintient io.github.qwertymuzaffar/software-design ?
Il est publié par qwertymuzaffar. AI.tn le référence sans le maintenir ni le recommander.
Issu du registre MCP officiel. Être listé n'est pas une recommandation : vérifiez le code et les permissions d'un serveur avant de lui donner accès à vos données.