Skip to main content
Glama

mcp-adr-analysis-server

by tosin2013
validated-patterns-catalog-resource.ts2.7 kB
/** * Validated Patterns Catalog Resource * URI Pattern: adr://validated_patterns * * Provides complete catalog of validated deployment patterns * for different platforms with metadata and summaries */ import { resourceCache, generateETag } from './resource-cache.js'; import { ResourceGenerationResult } from './index.js'; import { listAllPatterns, type ValidatedPattern, type PlatformType, } from '../utils/validated-pattern-definitions.js'; export interface ValidatedPatternsCatalog { patterns: Array<{ id: string; name: string; version: string; platformType: PlatformType; description: string; lastUpdated: string; source: string; tags: string[]; hasBaseCodeRepository: boolean; hasAuthoritativeSources: boolean; authoritativeSourceCount: number; deploymentPhaseCount: number; validationCheckCount: number; }>; metadata: { totalPatterns: number; platforms: PlatformType[]; lastGenerated: string; }; } /** * Generate validated patterns catalog resource */ export async function generateValidatedPatternsCatalogResource(): Promise<ResourceGenerationResult> { const cacheKey = 'validated-patterns-catalog'; // Check cache const cached = await resourceCache.get<ResourceGenerationResult>(cacheKey); if (cached) { return cached; } // Get all validated patterns const allPatterns = listAllPatterns(); const patternSummaries = allPatterns.map((pattern: ValidatedPattern) => ({ id: pattern.id, name: pattern.name, version: pattern.version, platformType: pattern.platformType, description: pattern.description, lastUpdated: pattern.metadata.lastUpdated, source: pattern.metadata.source, tags: pattern.metadata.tags, hasBaseCodeRepository: !!pattern.baseCodeRepository, hasAuthoritativeSources: pattern.authoritativeSources.length > 0, authoritativeSourceCount: pattern.authoritativeSources.length, deploymentPhaseCount: pattern.deploymentPhases.length, validationCheckCount: pattern.validationChecks.length, })); const catalog: ValidatedPatternsCatalog = { patterns: patternSummaries, metadata: { totalPatterns: allPatterns.length, platforms: allPatterns.map((p: ValidatedPattern) => p.platformType), lastGenerated: new Date().toISOString(), }, }; const result: ResourceGenerationResult = { data: catalog, contentType: 'application/json', lastModified: new Date().toISOString(), cacheKey, ttl: 3600, // 1 hour cache (patterns don't change frequently) etag: generateETag(catalog), }; // Cache result resourceCache.set(cacheKey, result, result.ttl); return result; }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tosin2013/mcp-adr-analysis-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server