๐ Comprehensive API Reference
MCP ADR Analysis Server - Complete Resource & Tool API Documentation
Version: 2.0.22+
Last Updated: October 12, 2025
๐ Table of Contentsโ
- Overview
- Resource APIs (20)
- Tool APIs (27)
- Common Patterns
- Error Handling
- Query Parameters
- Best Practices
- Examples by Use Case
Overviewโ
The MCP ADR Analysis Server provides 47+ APIs across two main categories:
- 20 Resource APIs: Read-only data access with caching and ETags
- 27 Tool APIs: Action-oriented operations for analysis and generation
All APIs follow consistent patterns for parameters, error handling, and response formats.
Resource APIsโ
Resources provide read-only access to project data with automatic caching and ETag support.
URI Patternโ
adr://{resource-name}/{optional-id}?{query-parameters}
Common Response Formatโ
interface ResourceGenerationResult {
data: any; // Resource-specific data
contentType: string; // Usually "application/json"
lastModified: string; // ISO 8601 timestamp
cacheKey: string; // Unique cache identifier
ttl: number; // Cache duration in seconds
etag?: string; // Entity tag for validation
}
๐ Project Status & Metricsโ
1. Project Status Resourceโ
URI: adr://project-status
Purpose: Comprehensive project health overview aggregating tasks, research, and rules
Cache TTL: 120 seconds (2 minutes)
Key Data:
- Overall health score (excellent/good/fair/poor)
- Component status (tasks, research, rules)
- Completion rates and quality scores
- Resource coverage metrics
Example:
const status = await client.callTool('read_resource', {
uri: 'adr://project-status',
});
console.log(`Health: ${status.data.overallHealth}`);
console.log(`Completion: ${status.data.metrics.completionRate}%`);
console.log(`Quality: ${status.data.metrics.qualityScore}/100`);
Use Cases:
- Dashboard displays
- CI/CD status checks
- Progress reports
2. Project Metrics Resourceโ
URI: adr://project-metrics
Purpose: Detailed codebase metrics, quality analysis, and productivity tracking
Cache TTL: 300 seconds (5 minutes)
Performance Note: Executes multiple expensive operations (TypeScript check, test execution, git analysis). Results are cached for 5 minutes.
Key Data:
- Codebase: File counts, line counts, language breakdown, largest files
- Quality: Overall score, maintainability, complexity, documentation, testing
- Architecture: ADR count, implementation status, architectural debt
- Dependencies: Package health, outdated/vulnerable counts
- Git: Commit history, contributors, branch statistics
- Productivity: Velocity metrics, change frequency
Example:
const metrics = await client.callTool('read_resource', {
uri: 'adr://project-metrics',
});
console.log(`Quality: ${metrics.data.quality.overallScore}%`);
console.log(`Files: ${metrics.data.codebase.totalFiles}`);
console.log(`ADRs: ${metrics.data.architecture.adrCount}`);
console.log(`Vulnerabilities: ${metrics.data.dependencies.vulnerable}`);
Use Cases:
- Code quality dashboards
- Technical debt tracking
- Team productivity analysis
- Architectural compliance monitoring
3. Code Quality Resourceโ
URI: adr://code-quality?scope={scope}&threshold={threshold}
Purpose: TreeSitter AST-based code quality analysis with production code scoring
Cache TTL: 300 seconds (5 minutes)
Query Parameters:
scope: Analysis scope - "full", "changes", "critical" (default: "full")includeMetrics: Include detailed metrics - true/false (default: true)includeRecommendations: Include improvements - true/false (default: true)threshold: Minimum quality score 0-100 (default: 70)format: Output format - "summary", "detailed" (default: "detailed")
Key Data:
- Production code score with AST analysis
- Mock code indicators and test file classification
- Quality gates with pass/fail status
- Code complexity and maintainability metrics
- Actionable recommendations
Example:
// Comprehensive analysis
const quality = await client.callTool('read_resource', {
uri: 'adr://code-quality?scope=full&threshold=80&includeRecommendations=true',
});
console.log(`Production Score: ${quality.data.metrics.productionCodeScore}%`);
console.log(`Grade: ${quality.data.grade}`);
console.log(`Mock indicators: ${quality.data.metrics.mockCodeIndicators}`);
// Quick summary
const summary = await client.callTool('read_resource', {
uri: 'adr://code-quality?format=summary&includeMetrics=false',
});
Use Cases:
- Pre-deployment quality gates
- CI/CD quality checks
- Technical debt identification
- Refactoring prioritization
๐ Deployment & Environmentโ
4. Deployment Status Resourceโ
URI: adr://deployment-status?operation={op}&environment={env}
Purpose: Multi-dimensional deployment readiness with quality gates and git push logic
Cache TTL: 180 seconds (3 minutes)
Query Parameters:
operation: Operation type (default: "check_readiness")environment: Target environment - "production", "staging", "development" (default: NODE_ENV || "production")memory: Enable memory integration - true/false (default: true)strict: Enable zero-tolerance mode - true/false (default: true)comprehensive: Use full analysis - true/false (default: true)
Comprehensive Mode Includes:
- TreeSitter AST code quality analysis
- Zero-tolerance test validation
- Deployment history trend analysis
- ADR compliance validation
- Memory-based pattern analysis
- Critical blocker identification with auto-fix suggestions
- Git push allow/block decision logic
Key Data:
- Deployment readiness score with blockers/warnings
- Code quality analysis with production score
- Test validation results with failure details
- Git push status (allowed/blocked/conditional)
- Historical comparison and trends
- Emergency override status
Example:
// Production readiness check
const status = await client.callTool('read_resource', {
uri: 'adr://deployment-status?environment=production&strict=true',
});
if (status.data.gitPushStatus?.decision === 'blocked') {
console.error(`โ Deployment blocked: ${status.data.gitPushStatus.reason}`);
console.log('Blockers:', status.data.deploymentReadiness.blockers);
process.exit(1);
}
console.log(`โ
Readiness: ${status.data.deploymentReadiness.score}%`);
console.log(`Quality: ${status.data.codeQualityAnalysis.overallScore}%`);
console.log(
`Tests: ${status.data.testValidation.passedTests}/${status.data.testValidation.totalTests}`
);
Use Cases:
- Pre-deployment validation
- CI/CD gating
- Release management
- Quality enforcement
5. Deployment History Resourceโ
URI: adr://deployment-history?period={period}&environment={env}
Purpose: Historical deployment analysis with trend detection and failure patterns
Cache TTL: 300 seconds (5 minutes)
Query Parameters:
period: Time period - "7d", "30d", "90d", "365d", "all" (default: "30d")environment: Filter by environment - "production", "staging", "all" (default: "all")includeFailures: Include failure analysis - true/false (default: true)includeMetrics: Include detailed metrics - true/false (default: true)format: Output format - "summary", "detailed" (default: "detailed")
Key Data:
- Success/failure counts and rates
- Average deployment time
- Rollback frequency
- Failure patterns and common causes
- Trend analysis (improving/stable/degrading)
- Time-series data for visualization
- Improvement recommendations
Example:
// Last 30 days production deployments
const history = await client.callTool('read_resource', {
uri: 'adr://deployment-history?period=30d&environment=production',
});
console.log(`Total: ${history.data.totalDeployments}`);
console.log(`Success rate: ${history.data.successRate}%`);
console.log(`Trend: ${history.data.trends[0].trend}`);
// Failure analysis
if (history.data.failurePatterns) {
console.log('Top failure causes:');
history.data.failurePatterns.commonCauses.forEach(cause => {
console.log(` - ${cause.reason}: ${cause.occurrences}x`);
});
}
Use Cases:
- Deployment health monitoring
- Failure pattern analysis
- Process improvement
- Reliability tracking
6. Environment Analysis Resourceโ
URI: adr://environment-analysis?type={type}
Purpose: Infrastructure detection, cloud services discovery, and security posture analysis
Cache TTL: 300 seconds (5 minutes)
Query Parameters:
type: Analysis type - "specs", "infrastructure", "security" (default: "specs")memory: Enable memory integration - true/false (default: true)comprehensive: Use full analysis - true/false (default: true)
Comprehensive Mode Features:
- Advanced infrastructure detection (Kubernetes, Docker, databases)
- Cloud services discovery (AWS, Azure, GCP, Vercel, Netlify)
- Container security analysis with scoring
- HTTPS/authentication/secrets checks
- Compliance framework detection (SOC2, HIPAA, GDPR, PCI-DSS)
- Real-time health metrics (disk, load, uptime)
Key Data:
- System specifications (OS, Node.js, npm versions)
- Project structure (TypeScript, tests, frameworks)
- Infrastructure components
- Containerization and orchestration
- Cloud services configuration
- Security posture and compliance
Example:
// Comprehensive infrastructure analysis
const env = await client.callTool('read_resource', {
uri: 'adr://environment-analysis?type=infrastructure&comprehensive=true',
});
console.log(`Platform: ${env.data.system.platform}`);
console.log(`Node: ${env.data.system.nodeVersion}`);
if (env.data.containerization?.detected) {
console.log(`Containers: ${env.data.containerization.technologies}`);
console.log(`Security: ${env.data.containerization.security.score}/100`);
}
if (env.data.cloudServices) {
console.log(`Cloud providers: ${env.data.cloudServices.providers}`);
}
Use Cases:
- Infrastructure inventory
- Security audits
- Compliance validation
- Environment compatibility checks
๐ ADR Managementโ
7. ADR by ID Resourceโ
URI: adr://adr/{id}?projectPath={path}
Purpose: Individual ADR retrieval with validation, relationships, and metadata
Cache TTL: 600 seconds (10 minutes)
Path Parameters:
id: ADR identifier - numeric ("001"), slug ("database-architecture"), or filename
Query Parameters:
projectPath: Override project root path (default: process.cwd())
Key Data:
- Complete ADR content (title, status, date, context, decision, consequences)
- Structural validation scoring
- Related ADR discovery through content analysis
- Implementation status tracking
- Priority and complexity assessment
- File metadata (size, location, tags)
Example:
// Get ADR by numeric ID
const adr = await client.callTool('read_resource', {
uri: 'adr://adr/001',
});
console.log(`Title: ${adr.data.title}`);
console.log(`Status: ${adr.data.status}`);
console.log(`Validation: ${adr.data.validationResults.score}/100`);
console.log(`Related: ${adr.data.relatedAdrs.join(', ')}`);
// Custom project path
const customAdr = await client.callTool('read_resource', {
uri: 'adr://adr/database-architecture?projectPath=/path/to/project',
});
Use Cases:
- ADR detail views
- Relationship mapping
- Implementation tracking
- Quality validation
๐ Task & Research Managementโ
8. Todo List Resourceโ
URI: adr://todo-list
Purpose: Task management with progress tracking and priority-based organization
Cache TTL: 120 seconds (2 minutes)
File Source: {projectRoot}/todo.md
Supported Task Statuses:
pending: Not yet startedin_progress: Currently being worked oncompleted: Finished
Supported Priorities:
critical: Must be done immediatelyhigh: Important, should be done soonmedium: Normal prioritylow: Can be deferred
Key Data:
- Task array with status, priority, assignee, dependencies
- Summary statistics by status and priority
- Completion rate calculation
- Due date tracking
Example:
const todoList = await client.callTool('read_resource', {
uri: 'adr://todo-list',
});
const rate = ((todoList.data.summary.completed / todoList.data.summary.total) * 100).toFixed(1);
console.log(`Completion: ${rate}%`);
console.log(`In progress: ${todoList.data.summary.inProgress}`);
// Filter critical tasks
const critical = todoList.data.tasks.filter(
t => t.priority === 'critical' && t.status !== 'completed'
);
console.log(`Critical remaining: ${critical.length}`);
Use Cases:
- Project dashboards
- Sprint planning
- Progress tracking
- Priority management
9. Todo by ID Resourceโ
URI: adr://todo/{id}
Purpose: Individual task retrieval with full details
Cache TTL: 120 seconds (2 minutes)
Example:
const task = await client.callTool('read_resource', {
uri: 'adr://todo/task-001',
});
10. Research Index Resourceโ
URI: adr://research-index
Purpose: Research document catalog with metadata and categorization
Cache TTL: 300 seconds (5 minutes)
Scanned Directories:
docs/research/- Primary research documentationcustom/research/- Custom user research notes
Document Metadata:
- Title (from H1 heading or filename)
- Topic (from filename prefix)
- Word count
- File size
- Last modified timestamp
Key Data:
- Documents array with metadata
- Summary by topic
- Total word count statistics
- Average document length
Example:
const research = await client.callTool('read_resource', {
uri: 'adr://research-index',
});
console.log(`Total docs: ${research.data.summary.total}`);
console.log(`Topics: ${Object.keys(research.data.summary.byTopic).length}`);
// Find by topic
const securityDocs = research.data.documents.filter(doc => doc.topic === 'security');
// Sort by recency
const recent = research.data.documents
.sort((a, b) => new Date(b.lastModified) - new Date(a.lastModified))
.slice(0, 5);
Use Cases:
- Research documentation discovery
- Knowledge base browsing
- Topic exploration
- Recent updates tracking
11. Research by Topic Resourceโ
URI: adr://research/{topic}
Purpose: Topic-specific research document retrieval
Cache TTL: 300 seconds (5 minutes)
Example:
const securityResearch = await client.callTool('read_resource', {
uri: 'adr://research/security',
});
๐ฏ Rule & Pattern Managementโ
12. Rule Catalog Resourceโ
URI: adr://rule-catalog
Purpose: Comprehensive rule management with compliance tracking
Cache TTL: 300 seconds (5 minutes)
Rule Sources:
- ADR-based rules: Extracted from architectural decisions
- Inferred rules: Derived from codebase patterns
- Custom rules: User-defined via configuration
Rule Types:
architecture: Patterns and structuressecurity: Security policiesperformance: Optimization guidelinestesting: Coverage and quality requirementsdocumentation: Documentation standards
Severity Levels:
critical: Violations block deploymenthigh: Must fix before releasemedium: Should fix soonlow: Nice to fix
Example:
const rules = await client.callTool('read_resource', {
uri: 'adr://rule-catalog',
});
console.log(`Total rules: ${rules.data.summary.total}`);
console.log(`Enabled: ${rules.data.summary.enabled}`);
// Critical security rules
const criticalSecurity = rules.data.rules.filter(
r => r.type === 'security' && r.severity === 'critical' && r.enabled
);
console.log(`Critical security: ${criticalSecurity.length}`);
Use Cases:
- Governance enforcement
- Compliance monitoring
- Policy management
- Quality gates
13. Rule by ID Resourceโ
URI: adr://rule/{id}
Purpose: Individual rule retrieval with details
Cache TTL: 300 seconds (5 minutes)
14. Rule Generation Resourceโ
URI: adr://rule-generation
Purpose: AI-powered rule generation from codebase analysis
Cache TTL: 600 seconds (10 minutes)
๐ Technology & Pattern Discoveryโ
15. Technology by Name Resourceโ
URI: adr://technology/{name}
Purpose: Technology stack detection and usage analysis
Cache TTL: 600 seconds (10 minutes)
Example:
const react = await client.callTool('read_resource', {
uri: 'adr://technology/react',
});
16. Pattern by Name Resourceโ
URI: adr://pattern/{name}
Purpose: Architectural pattern detection and application tracking
Cache TTL: 600 seconds (10 minutes)
Example:
const singleton = await client.callTool('read_resource', {
uri: 'adr://pattern/singleton',
});
๐พ Memory & Learning Systemโ
17. Memory Snapshots Resourceโ
URI: adr://memory-snapshots?type={type}&projectId={id}
Purpose: Knowledge graph and learning system access with temporal queries
Cache TTL: 60 seconds (1 minute)
Query Parameters:
type: Snapshot type - "current", "historical", "all" (default: "current")projectId: Filter by project identifiersince: ISO timestamp for historical querieslimit: Maximum snapshots (default: 10, max: 100)
Memory System Features:
- Project analysis history with patterns/predictions
- Recommendation tracking with success metrics
- Deployment history with trend analysis
- Configuration changes and impacts
- Cross-project learning and insights
Key Data:
- Memory snapshots with metadata and timestamps
- Summary by memory type
- Recent analyses, recommendations, deployments
- Learned patterns and predictions
- Relationship graphs
Example:
// Current snapshot
const memory = await client.callTool('read_resource', {
uri: 'adr://memory-snapshots?type=current',
});
console.log(`Total memories: ${memory.data.summary.total}`);
console.log(`Patterns: ${memory.data.insights.patterns.length}`);
// Historical query
const historical = await client.callTool('read_resource', {
uri: 'adr://memory-snapshots?type=historical&since=2025-10-01T00:00:00Z',
});
// Project-specific
const projectMem = await client.callTool('read_resource', {
uri: 'adr://memory-snapshots?projectId=my-project',
});
Use Cases:
- Pattern analysis
- Predictive insights
- Learning system access
- Historical trend analysis
๐ง Internal Resourcesโ
18-20. Resource Cache, Router, and Indexโ
Purpose: Internal resource management infrastructure
Cache TTL: Varies
Tool APIsโ
Tools provide action-oriented operations for analysis, generation, and system management.