返回市场
设计模式_mcp

设计模式_mcp

作者:apolosan5 星标更新:2025-10-19

项目介绍

设计模式 MCP 服务器 🎯

一个智能的 MCP(模型上下文协议)服务器,利用语义搜索和向量嵌入提供设计模式推荐。该项目通过自然语言接口提供了对627种设计模式的全面目录访问。

📋 概述

设计模式 MCP 服务器是一个专门的服务器,与AI助手(如Claude、Cursor)集成,以提供智能的设计模式推荐。它使用先进的语义搜索技术,根据自然语言问题描述找到最合适的模式。

✨ 主要特性

  • 🔍 智能语义搜索:使用自然问题描述查找模式
  • 📚 全面目录:627种模式组织在90多个类别中
  • 🎯 上下文推荐:基于编程语言和领域的建议
  • 向量搜索:使用带有向量扩展的SQLite进行高效搜索
  • 🌐 多语言支持:支持多种编程语言
  • 🔧 MCP 集成:兼容Claude Code、Cursor和其他MCP客户端
  • 🚀 高性能:对象池模式防止内存泄漏,优化查询
  • 💾 智能缓存:LRU缓存命中率超过85%,减少数据库负载
  • 📝 结构化日志:专业日志系统,基于服务组织
  • 🏗️ SOLID 架构:干净、可维护且可测试的代码库
  • 🛡️ 生产就绪:高测试通过率(219/219),零内存泄漏,优雅降级

🆕 项目状态 (v0.2.10)

最新更新 (2025年10月)

  • 100% 测试通过率:219个测试全部通过(100%)- 生产就绪!
  • 修复 TypeScript 错误:解决了所有构建错误,完全通过 TypeScript 编译
  • 关键错误修复:find_patterns 工具现在正确返回推荐(之前返回0)
  • 代码清理:移除未使用的文件并优化代码库以提高可维护性
  • 模式匹配修复:改进了 PatternMatcher 中的加权评分,实现分数归一化(0-1范围)
  • 关键稳定性修复:解决15个总问题(P0/P1/P2/P3)
  • 竞态条件保护:简单锁模式防止并发缓存损坏
  • 事务重试逻辑:针对SQLITE_BUSY/LOCKED错误的指数退避
  • 优雅降级:系统在迁移/播种失败时继续运行
  • 错误恢复:自愈语句池移除损坏的语句
  • 性能优化:FNV-1a哈希算法(缓存键生成速度提升30-40%)
  • 依赖注入容器迁移:完全移除已弃用的单例函数
  • 零内存泄漏:对象池模式结合有界资源管理(最大100)
  • 627种模式:涵盖90多个类别的全面目录,附带代码示例
  • 数据库模式修复:迁移系统稳定,正确创建表
  • 数据保存:迁移重命名表而不是删除(防止数据丢失)
  • 结构化日志:专业日志系统替换 console.log(10处替换)
  • 编译及类型检查:所有编译检查通过

架构重构 (v0.2.x)

  • 对象池模式:通过有界预处理语句消除内存泄漏(最大100)
  • 服务层:集中业务逻辑于 PatternService
  • 外观模式:简化处理器通过 PatternHandlerFacade
  • 依赖注入:完全集成DI容器以提高可测试性
  • 智能缓存:LRU缓存命中率超过85%,支持TTL
  • 代码质量:主服务器文件减少40%(从704行到422行)
  • 应用设计模式:重试模式、优雅降级、简单锁、错误恢复、数据库事务、快速失败、模式版本控制、数据保存

🗂️ 可用模式类别 (627种模式)

经典设计模式 (GoF)

  • 创建型 (8):工厂、建造者、单例、原型、抽象工厂
  • 结构型 (10):适配器、桥接、组合、装饰器、外观、享元、代理
  • 行为型 (16):观察者、策略、命令、状态、责任链、迭代器、中介者、备忘录、模板方法、访问者、解释器

架构与企业 (56种模式)

  • 架构 (15):MVC、MVP、MVVM、干净架构、六边形、分层、事件驱动
  • 企业 (24):仓库、工作单元、服务层、依赖注入
  • 领域驱动设计 (17):聚合、值对象、实体、领域事件、有界上下文

微服务与云 (39种模式)

  • 微服务 (22):断路器、事件溯源、CQRS、Saga、服务网格
  • 云原生 (14):自动伸缩、负载均衡、服务发现
  • 无服务器 (1):函数即服务模式
  • DevOps (1):CI/CD模式
  • 基础设施 (1):IaC模式

数据工程与管理 (54种模式)

  • 数据访问 (10):活动记录、数据映射器、查询对象
  • 数据工程 (4):ETL、数据管道、流处理
  • 数据存储 (3):分区、分片、复制
  • 数据质量 (3):验证、清洗、监控
  • 数据查询 (7):WHERE过滤、CASE表达式、CTE、窗口函数
  • 数据摄入 (8):批处理、流处理、CDC
  • 数据流 (3):数据血缘、数据目录
  • 数据安全 (3):加密、遮罩、访问控制
  • 数据可观测性 (3):监控、告警、日志
  • 数据价值 (5):货币化、治理、质量指标
  • 数据管理 (4):生命周期、归档、保留
  • 大数据分析 (5):分布式计算模式

AI/ML & MLOps (46种模式)

  • AI/ML (38):模型训练、RAG、少量样本学习、微调、推理优化
  • MLOps (1):模型部署、监控、A/B测试
  • 机器学习 (3):模型压缩、知识蒸馏、模型并行
  • AI治理 (5):伦理、偏见缓解、可解释性

React 模式 (27种模式)

  • React 基础 (5):组件、属性、状态
  • React Hooks (6):useState、useEffect、自定义Hooks
  • React 服务器组件 (2):RSC、流式传输
  • React 状态管理 (1):Context、Redux模式
  • React 性能 (1):记忆化、代码分割
  • React 表单 (2):受控、不受控
  • React 路由 (1):导航模式
  • React 样式 (2):CSS-in-JS、Tailwind
  • React 测试 (1):测试库、端到端测试
  • React 组件 (1):组合模式
  • React 错误处理 (1):错误边界
  • React UI (2):无障碍、响应式设计
  • React 最佳实践 (1):代码组织
  • React 现代 (1):React 19特性

区块链 & Web3 (115种模式)

  • DeFi 协议:AMM (6),借贷 (10),稳定币 (2),收益 (1),衍生品 (2),金库 (2),代币经济学 (3)
  • NFT 模式 (14):铸造、市场、元数据
  • NFT 版权 (2):EIP-2981、自定义版权
  • NFT 存储 (1):IPFS、Arweave集成
  • 智能合约:安全性 (6),可升级性 (1),访问控制 (3),工厂 (2),Gas优化 (5)
  • DAO 模式:治理 (11),国库 (2)
  • 跨链 (8):桥接、中继、原子交换
  • Layer 2:扩展 (7),数据可用性 (1)
  • 账户抽象 (5):ERC-4337、会话密钥
  • MEV (3):保护、提取、排序
  • 隐私 (2):零知识证明 (3)、隐身地址
  • 现实世界资产 (3):代币化、预言机集成
  • 代币经济学 (3):归属、分配
  • 再质押 (2):EigenLayer模式
  • 可持续区块链 (3):能源效率
  • 模块化区块链 (1):Celestia、Avail
  • 意图驱动架构 (3):用户意图、求解器
  • Web3 前端 (8):钱包连接、交易处理
  • AI & 区块链 (2):AI + Web3集成

性能与优化 (24种模式)

  • 性能 (20):缓存、懒加载、对象池、连接池
  • 缓存 (4):旁路缓存、写透缓存、读透缓存

并发与反应式 (45种模式)

  • 并发 (27):生产者-消费者、线程池、Actor模型、无锁
  • 反应式 (18):观察者、发布-订阅、反应式流、反压

集成与消息传递 (21种模式)

  • 集成 (18):消息队列、事件总线、API网关、ESB
  • 消息传递 (3):发布-订阅、点对点

测试与质量 (20种模式)

  • 测试 (20):测试替身、页面对象、用于测试的构建模式、契约测试

开发实践 (40种模式)

  • 函数式 (26):单子、函子、高阶函数、不可变性
  • 错误管理 (7):异常处理、重试、断路器
  • 幂等性 (7):幂等操作、请求去重

移动与物联网 (24种模式)

  • 移动 (10):模型-视图-意图、Redux模式、离线优先
  • 物联网 (13):设备双胞胎、遥测摄入、边缘处理
  • 边缘计算 (1):边缘分析

游戏开发 (16种模式)

  • 游戏开发 (16):状态机、组件系统、对象池、命令模式

嵌入式系统 (5种模式)

  • 嵌入式系统 (5):状态机、表驱动状态机、循环缓冲区、看门狗定时器、中断服务程序

安全 (21种模式)

  • 安全 (21):认证、授权、数据保护、OWASP十大漏洞

存储与基础设施 (5种模式)

  • 存储 (4):文件系统、对象存储、数据库模式
  • 基础设施 (1):IaC模式

其他

  • 反模式 (15):常见错误及其解决方案
  • 可靠性 (1):容错模式
  • 开发与部署 (2):CI/CD模式
  • 开发与测试 (3):TDD、BDD模式

🏗️ 项目架构

重构架构 (v0.2.x)

src/
├── adapters/           # 外部服务适配器 (LLM、嵌入)
├── builders/           # 复杂对象构建器
├── cli/                # 命令行界面
├── core/               # 核心领域逻辑和DI容器
│   └── container.ts    # 依赖注入容器和TOKENS
├── db/                 # 数据库配置和迁移
├── facades/            # 外观模式实现
│   └── pattern-handler-facade.ts  # 简化MCP处理器
├── factories/          # 对象创建工厂
├── lib/                # 辅助库和MCP工具
├── models/             # 数据模型和类型 (统一的Pattern接口)
├── repositories/       # 数据访问层 (仓库模式)
│   ├── interfaces.ts   # 仓库合同
│   └── pattern-repository.ts  # SQLite实现
├── services/           # 商业服务和编排
│   ├── cache.ts        # LRU缓存服务
│   ├── database-manager.ts  # 使用对象池的数据库操作
│   ├── pattern-service.ts   # 商业逻辑的服务层
│   ├── statement-pool.ts    # 预处理语句的对象池
│   └── semantic-search.ts   # 语义搜索操作
├── strategies/         # 策略模式实现
├── types/              # TypeScript类型定义
├── utils/              # 实用函数
└── mcp-server.ts       # MCP服务器

data/
├── patterns/           # 包含574+模式定义的JSON文件
└── design-patterns.db  # 嵌入式的SQLite数据库

🔧 主要组件

核心服务

  • DatabaseManager:使用对象池的SQLite操作(防止内存泄漏)
  • StatementPool:基于LRU的预处理语句池(最大100)
  • CacheService:具有TTL和度量的内存LRU缓存

商业逻辑

  • PatternService:编排模式操作的服务层
  • PatternRepository:数据访问抽象 (仓库模式)
  • SemanticSearchService:使用嵌入的语义搜索
  • PatternMatcher:模式匹配和排名逻辑

集成

  • PatternHandlerFacade:简化MCP处理器的外观
  • VectorOperationsService:使用sqlite-vec的向量搜索
  • LLMBridgeService:语言模型接口 (可选)
  • EmbeddingServiceAdapter:嵌入服务适配器

基础设施

  • SimpleContainer:依赖注入容器
  • MigrationManager:数据库迁移
  • PatternSeeder:初始数据播种

🚀 安装和设置

先决条件

  • Node.js >= 18.0.0
  • npm >= 8.0.0 或 Bun >= 1.0.0

安装

# 克隆仓库
git clone https://github.com/your-org/design-patterns-mcp.git
cd design-patterns-mcp

# 安装依赖
npm install

# 配置环境变量 (可选)
cp .env.example .env

# 构建项目
npm run build

# 设置数据库
npm run db:setup

MCP 配置

添加到您的MCP配置文件(.mcp.json或Claude Desktop配置):

{
  "mcpServers": {
    "design-patterns": {
      "command": "node",
      "args": ["dist/src/mcp-server.js"],
      "cwd": "/path/to/design-patterns-mcp",
      "env": {
        "LOG_LEVEL": "info",
        "DATABASE_PATH": "./data/design-patterns.db"
      }
    }
  }
}

📖 使用

使用自然语言查找模式

使用自然语言描述通过Claude Code查找适当的设计模式:

对于对象创建问题:

  • "我需要创建具有许多可选配置的复杂对象"
  • "如何创建相似对象的不同变体?"
  • "哪种模式有助于逐步构造对象?"

对于行为问题:

  • "当数据更改时,我需要通知多个组件"
  • "如何将命令执行与调用者解耦?"
  • "哪种模式有助于状态相关的行为?"

对于架构问题:

  • "如何构建微服务通信系统?"
  • "哪种模式有助于分布式系统的弹性?"
  • "如何实现各层之间的清晰分离?"

对于React开发:

  • "如何在React 18/19中管理状态?"
  • "哪些模式适用于React服务器组件?"
  • "如何优化React性能?"

MCP 工具函数

  • find_patterns:使用问题描述进行语义搜索模式
    • 返回带有置信度得分的排名推荐
    • 支持按类别筛选和编程语言偏好
  • search_patterns:关键词或语义搜索,带有筛选选项
    • 支持混合搜索(关键词+语义)
    • 按类别、标签、复杂度筛选
  • get_pattern_details:获取特定模式的详细信息
    • 包括多种语言的代码示例
    • 显示类似模式和关系
    • 展示实现和用例
  • count_patterns:按类别统计可用模式
    • 可选的详细分类统计

🛠️ 可用命令

# 开发
npm run build        # 为生产构建
npm run dev          # 在开发模式下运行
npm start            # 启动生产服务器

# 测试与质量
npm test             # 运行所有测试
npm run lint         # 检查代码质量
npm run lint:fix     # 修复linting问题
npm run type