UNPKG

framework-mcp

Version:

Dual-architecture server (MCP + HTTP API) for determining vendor tool capability roles against CIS Controls Framework. Supports Microsoft Copilot custom connectors and DigitalOcean App Services deployment.

318 lines (244 loc) 11.3 kB
# Framework MCP Integration Guide ## Claude Code MCP Integration This guide shows how to integrate Framework MCP with Claude Code for CIS Controls capability assessment. ## Prerequisites - **Claude Code CLI** installed and configured - **Node.js 18+** for running the MCP server - **Framework MCP** installed locally or from npm ## Installation Options ### Option 1: Install from npm (Recommended) ```bash npm install -g framework-mcp ``` ### Option 2: Build from Source ```bash git clone https://github.com/therealcybermattlee/FrameworkMCP.git cd FrameworkMCP npm install npm run build ``` ## MCP Configuration ### Configure Claude Code MCP Settings Add Framework MCP to your MCP configuration file: **Location**: `~/.config/claude-code/mcp.json` ```json { "mcpServers": { "framework-analyzer": { "command": "node", "args": ["/path/to/FrameworkMCP/dist/index.js"], "env": {} } } } ``` ### For npm Global Installation ```json { "mcpServers": { "framework-analyzer": { "command": "framework-mcp", "args": [], "env": {} } } } ``` ## Verify Installation Test your MCP integration: ```bash claude-code "List all available CIS Control safeguards" ``` Expected response: List of 153 safeguards across 18 CIS Controls ## 🔧 MCP Tool Usage ### 1. validate_vendor_mapping (PRIMARY) **Most Important Tool**: Evidence-based validation with domain validation ```bash # Validate FULL capability claim (should pass) claude-code "Use validate_vendor_mapping with vendor_name 'ServiceNow CMDB', safeguard_id '1.1', claimed_capability 'full', and supporting_text 'Our CMDB provides comprehensive asset lifecycle management with automated discovery, detailed hardware and software inventory tracking, enterprise asset ownership records, departmental assignments, and documented bi-annual review processes.'" # Validate FULL capability claim (should auto-downgrade) claude-code "Use validate_vendor_mapping with vendor_name 'Splunk SIEM', safeguard_id '1.1', claimed_capability 'full', and supporting_text 'Our SIEM platform provides comprehensive network visibility through log analysis and maintains detailed asset information through security event correlation.'" # Validate FACILITATES capability claim claude-code "Use validate_vendor_mapping with vendor_name 'Nessus Scanner', safeguard_id '1.1', claimed_capability 'facilitates', and supporting_text 'Our vulnerability scanner enhances existing asset management by providing additional device discovery and detailed software inventory during security assessments.'" ``` ### 2. analyze_vendor_response **Purpose**: Determine appropriate capability role when unknown ```bash # Analyze identity management vendor claude-code "Use analyze_vendor_response with vendor_name 'Okta', safeguard_id '5.1', and response_text 'We provide comprehensive identity lifecycle management with automated account provisioning, detailed user directories, quarterly access reviews, and full compliance reporting with audit trails.'" # Analyze cross-domain vendor claude-code "Use analyze_vendor_response with vendor_name 'CrowdStrike Falcon', safeguard_id '1.1', and response_text 'Our endpoint protection platform provides real-time asset visibility with comprehensive device inventory, software tracking, and continuous asset monitoring across all enterprise endpoints.'" ``` ### 3. get_safeguard_details **Purpose**: Research safeguard requirements before assessment ```bash # Basic safeguard details claude-code "Use get_safeguard_details with safeguard_id '1.1'" # Detailed safeguard with examples claude-code "Use get_safeguard_details with safeguard_id '5.1' and include_examples true" # Research multiple safeguards claude-code "Use get_safeguard_details for safeguard 6.3 then explain what makes this safeguard different from 5.1" ``` ### 4. list_available_safeguards **Purpose**: Discover available safeguards for planning ```bash # Complete safeguard list claude-code "Use list_available_safeguards" # Targeted safeguard discovery claude-code "Use list_available_safeguards then identify which safeguards are most relevant for identity management vendor assessment" ``` ## 📋 Common MCP Workflows ### Workflow 1: New Vendor Assessment ```bash # Step 1: Research the safeguard claude-code "Use get_safeguard_details for safeguard 1.1 to understand all requirements" # Step 2: Analyze vendor response (capability unknown) claude-code "Use analyze_vendor_response for vendor 'Device42' with safeguard '1.1' and response 'Our IT asset management platform provides comprehensive device discovery, detailed inventory tracking, and complete asset lifecycle management.'" # Step 3: Validate specific claim (if vendor claims specific capability) claude-code "Use validate_vendor_mapping to validate Device42's claim of 'full' capability for safeguard 1.1" ``` ### Workflow 2: Claims Validation Audit ```bash # Validate high-confidence claim claude-code "Use validate_vendor_mapping for vendor 'Microsoft Entra ID', safeguard '5.1', claimed capability 'full', with supporting text 'Complete identity management with automated provisioning, detailed account inventories, quarterly reviews, and comprehensive compliance reporting.'" # Validate questionable claim claude-code "Use validate_vendor_mapping for vendor 'Network Scanner Pro', safeguard '1.1', claimed capability 'full', with supporting text 'We scan networks and find devices.'" ``` ### Workflow 3: Multi-Safeguard Vendor Analysis ```bash # Analyze vendor across multiple safeguards claude-code "Use analyze_vendor_response for Microsoft Defender for Endpoint across these scenarios: 1. Safeguard 1.1: 'Comprehensive endpoint asset discovery and inventory' 2. Safeguard 7.1: 'Continuous vulnerability assessment and patch management' 3. Safeguard 1.2: 'Unauthorized device detection and blocking'" ``` ## 🎯 Domain Validation Examples ### Asset Management Domain (Safeguards 1.1, 1.2) ```bash # Appropriate tool type (should pass) claude-code "Use validate_vendor_mapping for 'Lansweeper', safeguard '1.1', claimed 'full', with 'Complete IT asset management with automated discovery, comprehensive inventory, and detailed asset tracking.'" # Inappropriate tool type (should auto-downgrade) claude-code "Use validate_vendor_mapping for 'Qualys VMDR', safeguard '1.1', claimed 'full', with 'Vulnerability scanning with network discovery and asset databases.'" ``` ### Identity Management Domain (Safeguards 5.1, 6.3) ```bash # Appropriate tool type (should pass) claude-code "Use validate_vendor_mapping for 'SailPoint', safeguard '5.1', claimed 'full', with 'Identity governance with comprehensive account management, lifecycle automation, and quarterly certifications.'" # Inappropriate tool type (should auto-downgrade) claude-code "Use validate_vendor_mapping for 'Splunk', safeguard '5.1', claimed 'full', with 'Account activity monitoring and user behavior analytics through log analysis.'" ``` ## 🚀 Advanced MCP Usage ### Custom Analysis Prompts ```bash # Comparative assessment claude-code "Use validate_vendor_mapping to compare these FULL capability claims for safeguard 1.1: ServiceNow CMDB vs Device42 vs Lansweeper. Analyze domain validation, evidence quality, and confidence scores." # Gap analysis claude-code "Use get_safeguard_details for safeguard 5.1, then use analyze_vendor_response for Vendor 'BasicIAM' with response 'We provide user directories and password management.' Identify capability gaps." # Compliance planning claude-code "Use list_available_safeguards to identify all safeguards in Controls 1-3, then recommend which vendor types would be needed for comprehensive coverage." ``` ### Error Handling Examples ```bash # Invalid safeguard ID claude-code "Use get_safeguard_details with safeguard_id '99.99'" # Expected: Error with available safeguards suggestion # Invalid capability role claude-code "Use validate_vendor_mapping with claimed_capability 'super-full'" # Expected: Error listing valid capability roles # Insufficient supporting text claude-code "Use validate_vendor_mapping with supporting_text 'Good tool'" # Expected: Error requiring minimum 10 characters ``` ## 📊 Understanding MCP Responses ### Successful Validation Response ```json { "vendor_name": "ServiceNow CMDB", "safeguard_id": "1.1", "claimed_capability": "full", "validated_capability": "full", "validation_status": "SUPPORTED", "confidence_score": 88, "domain_validation": { "tool_type": "cmdb", "domain_appropriate": true, "auto_downgrade_applied": false }, "evidence_analysis": { "core_requirements_score": 95, "governance_elements_score": 80, "sub_elements_score": 85, "language_consistency_score": 92 }, "reasoning": "Strong evidence for FULL capability with appropriate tool type", "recommendations": [] } ``` ### Auto-Downgrade Response ```json { "vendor_name": "Nessus Scanner", "safeguard_id": "1.1", "claimed_capability": "full", "validated_capability": "facilitates", "validation_status": "QUESTIONABLE", "confidence_score": 60, "domain_validation": { "tool_type": "vulnerability_management", "domain_appropriate": false, "auto_downgrade_applied": true }, "reasoning": "Auto-downgraded from FULL to FACILITATES due to domain mismatch", "recommendations": [ "Consider repositioning as FACILITATES capability to align with tool type" ] } ``` ## 🔍 Troubleshooting ### Common MCP Issues **MCP Server Not Found:** ```bash # Check Claude Code MCP configuration cat ~/.config/claude-code/mcp.json # Verify file paths are absolute which node ls -la /path/to/FrameworkMCP/dist/index.js ``` **Permission Denied:** ```bash chmod +x /path/to/FrameworkMCP/dist/index.js ``` **Module Not Found:** ```bash cd /path/to/FrameworkMCP npm install npm run build ``` **Tool Not Available:** ```bash # Restart Claude Code after MCP configuration changes # Verify MCP server is running in Claude Code logs ``` ### Verification Commands ```bash # Test MCP connection claude-code "Use list_available_safeguards to verify Framework MCP is working" # Test all 4 tools claude-code "Test Framework MCP by using each tool: list_available_safeguards, get_safeguard_details for 1.1, analyze_vendor_response for a test vendor, and validate_vendor_mapping for a test claim" # Performance test claude-code "Use validate_vendor_mapping 5 times with different vendors to test caching performance" ``` ## 🎉 Success Criteria Your MCP integration is successful when: - ✅ `list_available_safeguards` returns 153 safeguards - ✅ `get_safeguard_details` returns detailed safeguard breakdowns - ✅ `analyze_vendor_response` determines appropriate capability roles - ✅ `validate_vendor_mapping` performs evidence-based validation with domain validation - ✅ Auto-downgrade protection works for domain mismatches - ✅ All responses include confidence scores and detailed reasoning --- **🔗 Related Documentation** - [Main README](README.md) - Project overview and installation - [Deployment Guide](DEPLOYMENT_GUIDE.md) - Cloud deployment options - [Copilot Integration](COPILOT_INTEGRATION.md) - Microsoft Copilot setup - [Example Usage](examples/example-usage.md) - Detailed tool examples