MCP服务器设计模式
](https://github.com/apolosan/design_patterns_mcp)    
智能MCP(模型上下文协议)服务器,使用混合搜索(语义+关键字+图增强)提供设计模式建议。访问 705+设计图案 通过具有高级混合RAG架构的自然语言界面,跨90多个类别。
快速开始
# Clone and setup
git clone https://github.com/apolosan/design_patterns_mcp.git
cd design_patterns_mcp
# Install dependencies and build (using bun)
bun install
bun run db:setup
# Or using npm (if bun is not installed)
npm install --ignore-scripts
npx tsc
node dist/src/cli/migrate.js
node dist/src/cli/seed.js
node dist/src/cli/generate-embeddings.js
node dist/src/cli/setup-relationships.js在MCP客户端(Claude Desktop、Cursor等)中进行配置,并开始通过自然语言查询发现模式。
工具和建筑卫生
- 使用 包子 作为此存储库的规范包管理器(
bun install仅)。锁文件是bun.lock. - 从不复制
.git目录进入dist/data(或把它运进去dist/).该路径必须保持为纯数据目录,以避免数GB的图像和元数据泄漏。
特性
| 特性 | 描述 |
|---|---|
| 混合搜索引擎 | 结合语义、关键字(TF-IDF)和图增强检索的混合RAG |
| 705+图案 | 涵盖12个主要类别的全面目录(包括 功能开关 /功能切换,实现渐进式交付和实验) |
| MCP集成 | 与Claude、Cursor和其他MCP客户端无缝集成 |
| 多级缓存 | L1内存+L3 SQLite缓存,命中率超过95% |
| 事件总线系统 | 通过发布/订阅进行解耦服务通信 |
| 遥测与健康 | 实时性能指标和系统监控 |
| 固态架构 | 遵循最佳实践的干净、可维护的代码库 |
| 生产就绪 | 525个测试用例,通过率100% |
可用图案类别
| 类别 | 计数 | 示例 |
|---|---|---|
| 经典GoF图案 | 34 | 工厂、建设者、观察者、战略、指挥 |
| 结构模式 | 56 | MVC、简洁架构、六边形、DDD、, 功能开关 |
| 微服务和云 | 39 | 断路器,佐贺,维修网 |
| 数据工程 | 54 | 知识库、CQRS、活动采购 |
| AI/ML和MLOps | 46 | RAG、微调、模型压缩 |
| 反应模式 | 27 | 挂钩、服务器组件、性能 |
| 区块链oby;web。3 | 115 | DeFi、NFT、智能合约、MEV |
| 并发性和反应性 | 45 | 生产者消费者,演员模特 |
| 安全 | 21 | OAuth、RBAC、零信任 |
| 函数式编程 | 26 | 单子、函数子、高阶函数 |
建筑
src/
├── adapters/ # External service adapters (LLM, embeddings)
├── cli/ # CLI commands (migrate, seed, embeddings, setup-relationships)
├── core/ # DI Container, configuration builder
├── db/ # Database migrations
├── events/ # Event bus system
├── handlers/ # MCP request handlers (hybrid search, recommendations)
├── health/ # Health check services
├── repositories/ # Data access layer
├── search/ # Hybrid search engine
├── services/ # Business services (cache, telemetry, pattern service)
├── strategies/ # Strategy pattern implementations
├── types/ # TypeScript type definitions
└── mcp-server.ts # MCP server entry point
data/
├── patterns/ # 705+ JSON pattern definitions (see `feature-flag.json`)
└── design-patterns.db # SQLite database with embeddings用法
发现模式
通过您的MCP客户提出自然语言问题:
"I need to create complex objects with many optional configurations"
→ Builder, Abstract Factory, Factory Method
"How to handle service failures gracefully in distributed systems?"
→ Circuit Breaker, Bulkhead, Retry, Fallback
"What pattern helps with state-dependent behavior in React?"
→ State Machine, Observer, useReducer
"How to implement secure authentication and authorization?"
→ OAuth 2.0, RBAC, JWT, Zero TrustMCP工具
| 工具 | 说明 |
|---|---|
find_patterns | 使用问题描述混合搜索模式 |
search_patterns | 带过滤的关键字或语义搜索 |
get_pattern_details | 包含代码示例的全面模式信息 |
count_patterns | 关于可用模式的统计数据 |
get_health_status | 系统健康和服务状态 |
安装
先决条件
- Node.js>=18.0.0
- Bun>=1.0.0(推荐)或npm>=8.0.0
使用Bun进行设置
bun install
bun run build
bun run db:setup使用npm进行设置
这 prepare 脚本在 package.json 需要 bun如果你没有 bun 安装、使用 --ignore-scripts 跳过它并手动构建:
npm install --ignore-scripts
npx tsc
# Setup database
node dist/src/cli/migrate.js
node dist/src/cli/seed.js
node dist/src/cli/generate-embeddings.js
node dist/src/cli/setup-relationships.jsMCP配置
添加到您的MCP客户端配置(Claude Desktop、Cursor等):
{
"mcpServers": {
"design-patterns": {
"command": "node",
"args": ["/absolute/path/to/design-patterns-mcp/dist/src/mcp-server.js"],
"env": {
"LOG_LEVEL": "info",
"DATABASE_PATH": "/absolute/path/to/design-patterns-mcp/data/design-patterns.db",
"ENABLE_HYBRID_SEARCH": "true",
"ENABLE_GRAPH_AUGMENTATION": "true",
"EMBEDDING_COMPRESSION": "true",
"ENABLE_FUZZY_LOGIC": "true",
"ENABLE_TELEMETRY": "true",
"ENABLE_MULTI_LEVEL_CACHE": "true"
}
}
}
}重要提示: 对两者都使用绝对路径args和DATABASE_PATH.MCP客户端(如Cursor)不可靠地支持cwd字段,因此相对路径针对用户的主目录而不是项目目录进行解析。看 QUICKSTART.md 用于客户端特定的配置示例。
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
LOG_LEVEL | info | 日志记录级别(调试、信息、警告、错误) |
DATABASE_PATH | ./data/design-patterns.db | SQLite数据库路径 |
ENABLE_HYBRID_SEARCH | true | 启用混合RAG搜索 |
ENABLE_GRAPH_AUGMENTATION | true | 启用模式关系遍历 |
EMBEDDING_COMPRESSION | true | 尺寸减小 |
ENABLE_FUZZY_LOGIC | true | 模糊逻辑结果细化 |
ENABLE_TELEMETRY | true | 性能指标 |
ENABLE_MULTI_LEVEL_CACHE | true | L1+L3缓存 |
MAX_CONCURRENT_REQUESTS | 10 | 请求并发限制 |
CACHE_MAX_SIZE | 1000 | 缓存大小限制 |
CACHE_TTL | 3600000 | 缓存TTL(毫秒) |
TRANSPORT_MODE | stdio | 传输模式(stdio/http) |
HTTP_PORT | 3000 | HTTP端口(HTTP模式) |
MCP_ENDPOINT | /mcp | MCP端点路径 |
HEALTH_CHECK_PATH | /health | 健康检查路径 |
SKIP_DB_SETUP | false | 跳过数据库设置 |
Docker 部署
快速开始
# Build
docker build -t design-patterns-mcp .
# Run HTTP mode
docker run -p 3000:3000 -e TRANSPORT_MODE=http design-patterns-mcp
# Run stdio mode (default)
docker run design-patterns-mcpDocker Compose
docker compose up --build -d环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
TRANSPORT_MODE | stdio | 传输模式(stdio/http) |
HTTP_PORT | 3000 | HTTP端口(HTTP模式) |
MCP_ENDPOINT | /mcp | MCP端点路径 |
HEALTH_CHECK_PATH | /health | 健康检查路径 |
DATABASE_PATH | /app/data/design-patterns.db | SQLite数据库路径 |
LOG_LEVEL | info | 日志记录级别 |
SKIP_DB_SETUP | false | 跳过数据库设置 |
端点(HTTP模式)
GET /health-健康检查POST /mcp-MCP JSON-RPC端点
命令
# Development
bun run build # Compile TypeScript
bun run dev # Development with hot reload
bun run start # Build and start production server
# Database
bun run db:setup # Complete database setup
bun run migrate # Run migrations
bun run seed # Seed pattern data
bun run generate-embeddings # Generate semantic embeddings
bun run setup-relationships # Setup pattern relationships
# Quality
bun run test # Run all tests
bun run lint # Check code quality
bun run lint:fix # Auto-fix linting issues
bun run typecheck # TypeScript type checking测试
该项目包括 44个测试文件中的525个测试用例 通过率100%:
- 合同测试:MCP协议合规性验证
- 集成测试:组件交互测试
- 性能测试:搜索和矢量化基准
- 单元测试:单个组件测试
# Run all tests
bun run test
# Run specific test suites
bun run test:unit -- --grep "PatternService"
bun run test:integration -- --grep "database"
bun run test:performance -- --timeout 30000架构模式
此项目实现了它所记录的模式:
| 模式 | 实施 |
|---|---|
| 存储库 | repositories/pattern-repository.ts |
| 服务层 | services/pattern-service.ts |
| 对象池 | services/statement-pool.ts |
| 依赖注入 | core/container.ts |
| 战略 | strategies/search-strategy.ts |
| 活动巴士 | events/event-bus.ts |
| 多级缓存 | services/multi-level-cache.ts |
| 建设者 | core/config-builder.ts |
贡献
欢迎投稿!请在提交PR之前阅读我们的投稿指南。
- 分叉存储库
- 创建要素分支
- 根据SOLID原则进行更改
- 运行测试和梳理
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 了解详情。
资源
______________________________________________________________________
版本: 0.5.1\ 最后更新2026年5月\ 模式:705+JSON定义(突出显示: 功能开关 /功能切换)\ 测试:525个测试用例| 100%通过率
