designpattern
Apply design patterns to solve software architecture challenges, including modular architecture, API integration, state management, and security best practices.
Instructions
A tool for applying design patterns to software architecture and implementation. Supports various design patterns including:
Modular Architecture
API Integration Patterns
State Management
Asynchronous Processing
Scalability Considerations
Security Best Practices
Agentic Design Patterns
Each pattern provides a structured approach to solving common design challenges.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| patternName | Yes | ||
| context | Yes | ||
| implementation | No | ||
| benefits | No | ||
| tradeoffs | No | ||
| codeExample | No | ||
| languages | No |
Implementation Reference
- src/tools/designPatternServer.ts:64-94 (handler)The processPattern method handles the tool logic, including validation, output formatting, and result encapsulation.
public processPattern(input: unknown): { content: Array<{ type: string; text: string }>; isError?: boolean } { try { const validatedInput = this.validatePatternData(input); const formattedOutput = this.formatPatternOutput(validatedInput); console.error(formattedOutput); return { content: [{ type: "text", text: JSON.stringify({ patternName: validatedInput.patternName, status: 'success', hasImplementation: validatedInput.implementation.length > 0, hasCodeExample: !!validatedInput.codeExample }, null, 2) }] }; } catch (error) { return { content: [{ type: "text", text: JSON.stringify({ error: error instanceof Error ? error.message : String(error), status: 'failed' }, null, 2) }], isError: true }; } } } - src/models/interfaces.ts:26-36 (schema)The DesignPatternData interface defines the structure for the design pattern data.
export interface DesignPatternData { patternName: string; context: string; implementation: string[]; benefits: string[]; tradeoffs: string[]; codeExample?: string; languages?: string[]; } // Programming Paradigms - src/index.ts:1056-1059 (registration)The tool is registered and handled within the main server switch-case logic in index.ts.
} case "designpattern": { const result = designPatternServer.processPattern( request.params.arguments