mcpField
S
software-design

software-design

本地服务
github.com/qwertymuzaffar开发工具07 周前更新

关于 software-design

software-design 是面向编码 Agent 和开发者的 MCP 服务,提供软件设计原则与 GoF 模式参考、模式脚手架及代码异味启发式检测。它将架构判断交给模型,而不把启发式结果当作定论。

主要功能

  1. 01查询设计原则与模式目录
  2. 02解释原则和模式概念
  3. 03生成模式伪代码骨架
  4. 04启发式检测代码异味
  5. 05提供设计审查与模式应用提示词

适用场景

  1. 01查阅 SOLID 原则或 GoF 模式
  2. 02为代码构建模式骨架
  3. 03发现长方法或深层嵌套
  4. 04基于设计原则审查代码

MCP 相关

向 MCP 客户端提供工具、资源和提示词:工具用于查询概念、生成模式骨架和检测代码异味,资源提供参考内容,提示词辅助设计审查与重构。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"qwertymuzaffar-software-design": {
"command": "npx",
"args": [
"-y",
"mcp-software-design"
]
}
}
}
启动命令npx -y mcp-software-design

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-software-design0.1.3

工具

4

收录的工具列表 · 更新于 3 周前

参数类型必填说明
kindenum否按 kind 筛选。"principle" = 所有原则;"solid"/"oop" = 分别限定为 SOLID 五项原则 / OOP 四大支柱;"pattern" = 所有 GoF 模式。默认值为 "all"。all | principle | solid | oop | pattern | creational | structural | behavioral

详细介绍

mcp-software-design

npm version npm downloads License: MIT MCP

一个 MCP 服务,用于讲解并帮助应用软件设计指导原则——SOLID 原则、OOP 支柱、DRY / KISS / YAGNI / 有意义的命名 / 整洁代码,以及四人帮的 23 种设计模式—— 还提供模式框架生成和基于启发式的代码异味检测。

它是 mcp-udacity-commit 的配套项目:使用相同的技术栈(TypeScript、MCP SDK、stdio 传输),采用相同的结构(纯逻辑模块 + 精简的服务接线代码)。

安装

只需一行即可在 Claude Code 中注册,无需克隆:

claude mcp add software-design -- npx -y mcp-software-design

或者在 MCP 客户端配置中:

{
  "mcpServers": {
    "software-design": {
      "command": "npx",
      "args": ["-y", "mcp-software-design"]
    }
  }
}

为什么要做这个项目——以及坦诚说明的一个局限

提交服务可以进行检查:“主题 ≤ 50 个字符”是可以客观验证的。 设计原则和模式并非如此——“这是否违反了 SRP?”或“这里是否应该用工厂模式?”都需要判断,而不是检查规则。

因此,这个服务不会假装能给你的架构评定通过或不通过。 它只负责真正可靠的部分,并将判断交给模型:

能力原语能提供什么
参考资料资源 + explain_concept权威且一致的定义,确保模型每次引用的内容都相同。
框架生成scaffold_pattern与语言无关的模式参与者框架。
代码异味启发式检测check_smells一些确实可检查的代理指标(长方法、深层嵌套,……)——仅作提示,绝不下结论。
讲解 / 应用review_design、apply_pattern 提示词引导模型进行审查或重构,并以以上工具和资源为依据。

设计分析需要判断,因此“讲解 / 应用辅助功能”以 MCP 提示词的形式提供(由客户端的模型处理),而不是让服务端代码假装能理解你的代码片段。

工具

  • list_catalog { kind? } — 列出概念,可选择按类别筛选 (principle | solid | oop | pattern | creational | structural | behavioral)。solid / oop 分别限定为五项 SOLID 原则 / 四项 OOP 支柱。
  • explain_concept { name } — 提供单个原则或模式的完整指导 (意图、适用时机、权衡、参与者)。接受 slug、名称或别名("SRP"、"open-closed"、"pubsub")。
  • scaffold_pattern { pattern, names? } — 为 GoF 模式生成伪代码框架;names 可用于按你的领域重命名角色 ({ "Product": "Notification" })。
  • check_smells { code, …thresholds? } — 启发式扫描长方法、大类、长参数列表、深层嵌套、重复代码和大文件。每项发现都会指出相关原则,并提供建议的重构方式。每次调用均可覆盖所有阈值。

资源

  • design://principles — SOLID、OOP 支柱、DRY、KISS、YAGNI、有意义的命名等。
  • design://patterns — 23 种 GoF 模式,按创建型 / 结构型 / 行为型分组。
  • design://smells — check_smells 检测的内容、阈值及注意事项。

提示词

  • review_design { code, focus? } — 根据原则 / 模式审查代码片段,并以 check_smells 和资源为依据。
  • apply_pattern { pattern, code } — 将指定模式应用到代码片段并进行重构(首先判断该模式是否适用)。

从源代码构建

用于本地开发,或运行本地检出版本而非已发布的 软件包:

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

然后按照上方 安装 中的相同方式注册——claude mcp add 命令和 MCP 客户端配置形式均可——但指向 你的本地构建,而不是 npx:

claude mcp add software-design -- node /absolute/path/to/mcp-software-design/build/index.js

目录结构

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)

src/*.ts 逻辑模块是纯函数且无副作用,因此会直接针对编译后的输出进行单元 测试——服务端(index.ts)只负责在其上进行简单的连接。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。