mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
95 lines • 3.29 kB
TypeScript
/**
* Architectural Context Resource - Current architectural state and decisions
* URI Pattern: adr://architecture/context
*/
import { URLSearchParams } from 'url';
import { ResourceGenerationResult } from './index.js';
import type { KnowledgeGraphManager } from '../utils/knowledge-graph-manager.js';
export interface ArchitecturalContextData {
summary: {
totalAdrs: number;
activeDecisions: number;
deprecatedDecisions: number;
proposedDecisions: number;
technologiesUsed: string[];
architecturalPatterns: string[];
};
decisions: Array<{
id: string;
title: string;
status: string;
category: string;
impact: 'high' | 'medium' | 'low';
dependencies: string[];
}>;
technologyStack: {
frontend: string[];
backend: string[];
database: string[];
infrastructure: string[];
devops: string[];
};
patterns: Array<{
name: string;
description: string;
usedIn: string[];
relatedAdrs: string[];
}>;
recommendations: string[];
timestamp: string;
projectPath: string;
}
/**
* Generate architectural context resource showing current state and decisions.
*
* Returns a comprehensive view of the project's architectural state:
* - Summary of all ADRs by status
* - Technology stack analysis
* - Architectural patterns in use
* - Recommendations for improvements
*
* **URI Pattern:** `adr://architecture/context`
*
* **Query Parameters:**
* - `projectPath`: Override project root path (default: process.cwd())
* - `includeDeprecated`: Include deprecated decisions (default: true)
* - `includeProposed`: Include proposed decisions (default: true)
* - `maxDecisions`: Maximum decisions to return (default: 50)
*
* @param params - URL path parameters (none for this resource)
* @param searchParams - URL query parameters for customization
* @param kgManager - Optional knowledge graph manager instance
*
* @returns Promise resolving to resource generation result containing:
* - data: Complete architectural context data
* - contentType: "application/json"
* - lastModified: ISO timestamp of generation
* - cacheKey: Unique identifier "architectural-context"
* - ttl: Cache duration (300 seconds / 5 minutes)
* - etag: Entity tag for cache validation
*
* @throws {McpAdrError} When context generation fails
*
* @example
* ```typescript
* // Get full architectural context
* const context = await generateArchitecturalContextResource(
* {},
* new URLSearchParams()
* );
*
* console.log(`Total ADRs: ${context.data.summary.totalAdrs}`);
* console.log(`Technologies: ${context.data.summary.technologiesUsed.join(', ')}`);
*
* // Exclude deprecated decisions
* const active = await generateArchitecturalContextResource(
* {},
* new URLSearchParams('includeDeprecated=false')
* );
* ```
*
* @since v2.2.0
* @see {@link KnowledgeGraphManager} for knowledge graph queries
*/
export declare function generateArchitecturalContextResource(_params: Record<string, string>, searchParams: URLSearchParams, kgManager?: KnowledgeGraphManager): Promise<ResourceGenerationResult>;
//# sourceMappingURL=architectural-context-resource.d.ts.map