An intelligent MCP (Model Context Protocol) server that provides design pattern recommendations using hybrid search (semantic + keyword + graph augmentation). Access 685+ design patterns across 90+ categories through a natural language interface with advanced blended RAG architecture.
# Clone and setup
git clone https://github.com/apolosan/design_patterns_mcp.git
cd design_patterns_mcp
# Install dependencies
bun install
# Build and setup database
bun run db:setup
# Start the server
bun run devConfigure in your MCP client (Claude Desktop, Cursor, etc.) and start discovering patterns through natural language queries.
| Feature | Description |
|---|---|
| Hybrid Search Engine | Blended RAG combining semantic, keyword (TF-IDF), and graph-augmented retrieval |
| 685+ Patterns | Comprehensive catalog across 12 major categories |
| MCP Integration | Seamless integration with Claude, Cursor, and other MCP clients |
| Multi-Level Caching | L1 in-memory + L3 SQLite cache with 95%+ hit rate |
| Event Bus System | Decoupled service communication via pub/sub |
| Telemetry & Health | Real-time performance metrics and system monitoring |
| SOLID Architecture | Clean, maintainable codebase following best practices |
| Production Ready | 464 test cases with 100% pass rate |
| Category | Count | Examples |
|---|---|---|
| Classic GoF Patterns | 34 | Factory, Builder, Observer, Strategy, Command |
| Architectural Patterns | 56 | MVC, Clean Architecture, Hexagonal, DDD |
| Microservices & Cloud | 39 | Circuit Breaker, Saga, Service Mesh |
| Data Engineering | 54 | Repository, CQRS, Event Sourcing |
| AI/ML & MLOps | 46 | RAG, Fine-Tuning, Model Compression |
| React Patterns | 27 | Hooks, Server Components, Performance |
| Blockchain & Web3 | 115 | DeFi, NFTs, Smart Contracts, MEV |
| Concurrency & Reactive | 45 | Producer-Consumer, Actor Model |
| Security | 21 | OAuth, RBAC, Zero Trust |
| Functional Programming | 26 | Monads, Functors, Higher-Order Functions |
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/ # 750+ JSON pattern definitions
└── design-patterns.db # SQLite database with embeddings
Ask natural language questions through your MCP client:
"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 Trust
| Tool | Description |
|---|---|
find_patterns |
Hybrid search for patterns using problem descriptions |
search_patterns |
Keyword or semantic search with filtering |
get_pattern_details |
Comprehensive pattern information with code examples |
count_patterns |
Statistics about available patterns |
get_health_status |
System health and service status |
- Node.js >= 18.0.0
- Bun >= 1.0.0 (recommended) or npm >= 8.0.0
# Install dependencies
bun install
# Build project
bun run build
# Complete database setup (migrate + seed + embeddings + relationships)
bun run db:setup
# Or run steps individually
bun run migrate
bun run seed
bun run generate-embeddings
bun run setup-relationshipsAdd to your .mcp.json or Claude Desktop configuration:
{
"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",
"ENABLE_HYBRID_SEARCH": "true",
"ENABLE_GRAPH_AUGMENTATION": "true",
"EMBEDDING_COMPRESSION": "true",
"ENABLE_FUZZY_LOGIC": "true",
"ENABLE_TELEMETRY": "true",
"ENABLE_MULTI_LEVEL_CACHE": "true"
}
}
}
}| Variable | Default | Description |
|---|---|---|
LOG_LEVEL |
info |
Logging level (debug, info, warn, error) |
DATABASE_PATH |
./data/design-patterns.db |
SQLite database path |
ENABLE_HYBRID_SEARCH |
true |
Enable blended RAG search |
ENABLE_GRAPH_AUGMENTATION |
true |
Enable pattern relationship traversal |
EMBEDDING_COMPRESSION |
true |
Dimensionality reduction |
ENABLE_FUZZY_LOGIC |
true |
Fuzzy logic result refinement |
ENABLE_TELEMETRY |
true |
Performance metrics |
ENABLE_MULTI_LEVEL_CACHE |
true |
L1 + L3 caching |
MAX_CONCURRENT_REQUESTS |
10 |
Request concurrency limit |
CACHE_MAX_SIZE |
1000 |
Cache size limit |
CACHE_TTL |
3600000 |
Cache TTL in milliseconds |
TRANSPORT_MODE |
stdio |
Transport mode (stdio/http) |
HTTP_PORT |
3000 |
HTTP port (http mode) |
MCP_ENDPOINT |
/mcp |
MCP endpoint path |
HEALTH_CHECK_PATH |
/health |
Health check path |
SKIP_DB_SETUP |
false |
Skip database setup |
# 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 up --build -d| Variable | Default | Description |
|---|---|---|
TRANSPORT_MODE |
stdio |
Transport mode (stdio/http) |
HTTP_PORT |
3000 |
HTTP port (http mode) |
MCP_ENDPOINT |
/mcp |
MCP endpoint path |
HEALTH_CHECK_PATH |
/health |
Health check path |
DATABASE_PATH |
/app/data/design-patterns.db |
SQLite database path |
LOG_LEVEL |
info |
Logging level |
SKIP_DB_SETUP |
false |
Skip database setup |
GET /health- Health checkPOST /mcp- MCP JSON-RPC endpoint
# 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 checkingThe project includes 464 test cases across 41 test files with 100% pass rate:
- Contract Tests: MCP protocol compliance validation
- Integration Tests: Component interaction tests
- Performance Tests: Search and vectorization benchmarks
- Unit Tests: Individual component tests
# 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 30000This project implements the patterns it documents:
| Pattern | Implementation |
|---|---|
| Repository | repositories/pattern-repository.ts |
| Service Layer | services/pattern-service.ts |
| Object Pool | services/statement-pool.ts |
| Dependency Injection | core/container.ts |
| Strategy | strategies/search-strategy.ts |
| Event Bus | events/event-bus.ts |
| Multi-Level Cache | services/multi-level-cache.ts |
| Builder | core/config-builder.ts |
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
- Fork the repository
- Create a feature branch
- Make changes following SOLID principles
- Run tests and linting
- Submit a pull request
MIT License - see LICENSE for details.
Version: 0.4.4
Last Updated: February 2026
Patterns: 685+ (750+ JSON files)
Tests: 464 test cases | 100% pass rate