模式警察MCP服务器🚓
一个模型上下文协议(MCP)服务器,用于验证TypeScript/JavaScript、Java和Vue.js代码中的设计模式。在Java中检测50多种GoF、Enterprise J2EE和Modern模式,并在所有支持的语言中验证SOLID原则、命名约定和代码气味。
🚀 快速开始
安装
通过npm全局安装:
npm install -g @cmiretf/pattern-police-mcp或者添加到您的项目中:
npm install @cmiretf/pattern-police-mcp用法
与MCP检查员一起
以交互方式测试服务器:
npm install -g @cmiretf/pattern-police-mcp
npx @modelcontextprotocol/inspector pattern-police或者,如果在本地安装:
npx @modelcontextprotocol/inspector node node_modules/pattern-police-mcp/dist/index.js使用Claude桌面版
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"pattern-police": {
"command": "npx",
"args": ["-y", "@cmiretf/pattern-police-mcp"]
}
}
}或者使用本地安装:
{
"mcpServers": {
"pattern-police": {
"command": "node",
"args": ["/path/to/node_modules/pattern-police-mcp/dist/index.js"]
}
}
}使用Visual Studio代码/光标
添加到您的 mcp.json:
{
"servers": {
"pattern-police": {
"command": "npx",
"args": ["-y", "@cmiretf/pattern-police-mcp"]
}
}
}或者使用本地安装:
{
"mcpServers": {
"pattern-police": {
"command": "node",
"args": ["/path/to/node_modules/pattern-police-mcp/dist/index.js"]
}
}
}🎯 特性
Types/JavaScript验证
- 命名规范:PascalCase表示类,camelCase表示函数,UPPER_CASE表示常量
- 坚实的原则:检测长函数、太多参数和上帝类
- 代码异味:标识重复代码、未使用的变量、缺少注释
Java模式检测(50+模式)
- GoF模式(23):Singleton、Factory、Observer、Strategy等
- 企业级J2EE(15+):DAO、DTO、服务定位器、MVC等
- 现代图案(6+):知识库、CQRS、活动采购等
Vue.js模式检测(30+模式)
- 视图3可组合:useCounter、useAuth、可组合模式
- 零部件阵列:提供/注入、远程传输、悬架
- 反模式:反应性不正确,生命周期使用不正确
- 最佳实践:组成API,正确的类型,性能模式
📖 可用的MCP工具
Types/JavaScript工具
validate_code
根据配置的模式验证TypeScript/JavaScript代码。
参数:
code(string):要验证的代码filename(字符串,可选):文件名以获得更好的上下文
例子:
{
"code": "class myClass { ... }",
"filename": "example.ts"
}validate_file
验证文件系统中的特定文件。
参数:
filepath(string):要验证的文件的路径
list_patterns
列出所有已配置的模式和规则。
get_violations
获取常见违规行为和建议的摘要。
参数:
severity(字符串,可选):按“警告”、“错误”或“信息”筛选
Java工具
validate_java_code
检测Java代码中的50多种设计模式。
参数:
code(string):要分析的Java代码filename(字符串,可选):文件名
例子:
{
"code": "public class DatabaseConnection { private static final DatabaseConnection INSTANCE = new DatabaseConnection(); ... }",
"filename": "DatabaseConnection.java"
}validate_java_file
从文件系统检测Java文件中的模式。
参数:
filepath(string):Java文件(.Java)的路径
list_java_patterns
列出所有50多种配置的Java模式(GoF、Enterprise、Modern)。
看 JAVA_PATTERNS.md 查看检测到的模式的完整列表。
Vue.js工具
validate_vue_code
检测30多种Vue.js模式和最佳实践。
参数:
code(string):要分析的Vue SFC代码filename(字符串,可选):文件名
validate_vue_file
从文件系统检测Vue文件中的模式。
参数:
filepath(string):Vue文件的路径(.Vue)
list_vue_patterns
列出所有30多个已配置的Vue.js模式。
看 VUE_PATTERNS.md 查看检测到的模式的完整列表。
⚙️ 配置
Pattern Police使用配置文件进行自定义:
pattern-police.config.json-Types/JavaScript规则java-patterns.config.json-Java模式定义vue-patterns.config.json-Vue.js模式定义
默认配置
Types/JavaScript:
- 命名:PascalCase(类)、camelCase(函数/变量)、UPPER_CASE(常量)
- SOLID:最多50行/函数,10个方法/类,5个参数/函数
- 代码异味:检测重复、长方法、上帝类、死代码
Java
- 检测所有23种GoF模式
- 检测15种以上的企业J2EE模式
- 检测6+种现代建筑模式
Vue.js:
- 检测组合API模式
- 验证组件最佳实践
- 识别反模式和代码气味
📋 验证示例
✅ 好的代码
class UserService {
getUserData(userId: string): User {
return this.repository.find(userId);
}
}
const MAX_RETRIES = 3;⚠️ 警告
// ⚠️ Naming: class should use PascalCase
class userService {}
// ⚠️ SOLID: too many parameters
function createUser(name, email, age, address, phone, country) {}
// ⚠️ Code Smell: unused variable
const unusedVar = 42;🛠️ 发展
先决条件
- Node.js 18+
- npm或纱线
设置
# Clone the repository
git clone
cd pattern-police-mcp
# Install dependencies
npm install
# Build the project
npm run build开发命令
# Development with auto-reload
npm run dev
# Build TypeScript
npm run build
# Run built version
npm start
# Test with MCP Inspector (built version)
npm run inspect
# Test with MCP Inspector (dev version)
npm run inspect:dev项目结构
├── src/
│ ├── index.ts # Main MCP server
│ ├── types.ts # TypeScript/JavaScript types
│ ├── types-java.ts # Java types
│ ├── types-vue.ts # Vue.js types
│ └── validators/
│ ├── PatternValidator.ts # TS/JS validator (AST)
│ ├── JavaPatternValidator.ts # Java validator (CST)
│ └── VuePatternValidator.ts # Vue.js validator (SFC)
├── examples/
│ ├── JavaPatterns/ # Java pattern examples
│ └── VuePatterns/ # Vue.js pattern examples
├── dist/ # Compiled output
└── *.config.json # Configuration files🧪 测试
使用MCP检查器交互式测试服务器:
npm run inspect这将打开检查器 http://localhost:6274 您可以在哪里:
- 使用不同参数测试所有MCP工具
- 查看实时服务器日志
- 验证来自的示例代码
examples/目录 - 尝试不同的严重程度和配置
🔗 集成示例
Git挂钩
添加到 .git/hooks/pre-commit:
#!/bin/bash
# Validate staged files before commit
npx pattern-police-mcp validate-files $(git diff --cached --name-only)CI/CD
# GitHub Actions example
- name: Validate Code Patterns
run: |
npm install -g @cmiretf/pattern-police-mcp
pattern-police validate-all📚 文档
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📝 许可证
该项目根据 MIT许可证 -允许您自由使用、修改和分发此软件的开源许可证。
这意味着:
- ✅ 免费使用:您可以在任何项目中使用此软件,无论是商业还是个人
- ✅ 开源:源代码是公开的,可以检查、修改和改进
- ✅ 自由修改:您可以调整代码以满足您的特定需求
- ✅ 分发:您可以共享原始版本或修改后的版本
- ✅ 私人使用:您可以在不披露源代码的情况下在专有项目中使用它
许可证文本
版权所有(c)2026 Carlos Miret Fiuza
特此免费向任何获得副本的人授予许可 本软件和相关文档文件(“软件”),以处理 在软件中不受限制,包括但不限于权利 使用、复制、修改、合并、发布、分发、再许可和/或销售 软件的副本,并允许软件的接收者 根据以下条件提供:
上述版权声明和本许可声明应包含在所有 软件的副本或实质性部分。
软件按“原样”提供,不提供任何形式的明示或明示担保 隐含的,包括但不限于适销性保证, 适用于特定目的且不造成伤害。在任何情况下 作者或版权持有人对任何索赔、损害赔偿或其他 因以下原因产生的责任,无论是在合同、侵权或其他诉讼中, 出于或与软件、使用或其他交易有关 软件。
🔍 严重程度级别
- 错误:应阻止提交的关键问题
- 警告:重要模式违规(命名、SOLID)
- 信息:改进建议(重复、评论)
💡 用例
- 提交前验证:在模式违规到达回购之前将其捕获
- 代码审查:PR中的自动模式检测
- 学习工具:通过检测了解设计模式
- 重构辅助:确定需要改进的领域
- 团队标准:在团队中强制实施一致的编码模式
🌟 支持的语言
- Types/JavaScript(ES6+)
- Java(8+)
- Vue.js(2.x和3.x)
______________________________________________________________________
👤 作者
该项目由以下人员开发和维护 卡洛斯 米雷特 菲乌扎.\ 欢迎在LinkedIn上联系,以获取合作、建议或任何与以下内容相关的问题 模式警察MCP服务器!
