Skip to main content
Glama
firetix

MCP Vulnerability Checker Server

by firetix
test_all_tools.py4.74 kB
#!/usr/bin/env python3 """ Comprehensive test suite for all vulnerability intelligence tools Tests the complete MCP server toolkit with real data """ import asyncio import sys from pathlib import Path import pytest # Add parent directory to path so we can import mcp_simple_tool sys.path.append(str(Path(__file__).parent.parent)) from mcp_simple_tool.tools.cve_lookup import lookup_cve from mcp_simple_tool.tools.cvss_calculator import calculate_cvss_score from mcp_simple_tool.tools.epss_lookup import get_epss_score from mcp_simple_tool.tools.exploit_availability import get_exploit_availability from mcp_simple_tool.tools.vex_status import get_vex_status from mcp_simple_tool.tools.vulnerability_search import search_vulnerabilities from mcp_simple_tool.tools.vulnerability_timeline import ( get_vulnerability_timeline, ) @pytest.mark.asyncio async def test_all_tools(): """ Comprehensive test of all vulnerability intelligence tools. Tests with CVE-2021-44228 (Log4Shell) - a well-documented critical vulnerability. """ cve_id = "CVE-2021-44228" # Log4Shell - well-known vulnerability print(f"🔍 **Comprehensive Vulnerability Intelligence Report for {cve_id}**\n") # Tool 1: CVE Details Lookup print("1️⃣ **CVE Details Lookup**") print("-" * 50) try: result = await lookup_cve(cve_id) print("✅ CVE Details: SUCCESS") print(f" Preview: {result[0].text[:100]}...") except Exception as e: print(f"❌ CVE Details: FAILED - {e}") print() # Tool 2: EPSS Score print("2️⃣ **EPSS Score Lookup**") print("-" * 50) try: result = await get_epss_score(cve_id) print("✅ EPSS Score: SUCCESS") # Extract score from result text = result[0].text score_line = [line for line in text.split("\n") if "EPSS Score:" in line] if score_line: print(f" {score_line[0].strip()}") except Exception as e: print(f"❌ EPSS Score: FAILED - {e}") print() # Tool 3: CVSS Calculator print("3️⃣ **CVSS Score Calculator**") print("-" * 50) try: # Log4Shell CVSS vector vector = "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H" result = await calculate_cvss_score(vector) print("✅ CVSS Calculator: SUCCESS") text = result[0].text score_line = [line for line in text.split("\n") if "Base Score:" in line] if score_line: print(f" {score_line[0].strip()}") except Exception as e: print(f"❌ CVSS Calculator: FAILED - {e}") print() # Tool 4: Vulnerability Search print("4️⃣ **Vulnerability Search**") print("-" * 50) try: result = await search_vulnerabilities( keywords="log4j", severity="CRITICAL", date_range="1y" ) print("✅ Vulnerability Search: SUCCESS") text = result[0].text total_line = [line for line in text.split("\n") if "Total Results:" in line] if total_line: print(f" {total_line[0].strip()}") except Exception as e: print(f"❌ Vulnerability Search: FAILED - {e}") print() # Tool 5: Exploit Availability print("5️⃣ **Exploit Availability Checker**") print("-" * 50) try: result = await get_exploit_availability(cve_id) print("✅ Exploit Availability: SUCCESS") text = result[0].text risk_line = [line for line in text.split("\n") if "Risk Assessment:" in line] if risk_line: print(f" {risk_line[0].strip()}") except Exception as e: print(f"❌ Exploit Availability: FAILED - {e}") print() # Tool 6: Vulnerability Timeline print("6️⃣ **Vulnerability Timeline**") print("-" * 50) try: result = await get_vulnerability_timeline(cve_id) print("✅ Vulnerability Timeline: SUCCESS") text = result[0].text age_line = [line for line in text.split("\n") if "Age:" in line] if age_line: print(f" {age_line[0].strip()}") except Exception as e: print(f"❌ Vulnerability Timeline: FAILED - {e}") print() # Tool 7: VEX Status print("7️⃣ **VEX Status Checker**") print("-" * 50) try: result = await get_vex_status(cve_id, "Apache Log4j") print("✅ VEX Status: SUCCESS") print(" VEX status analysis completed") except Exception as e: print(f"❌ VEX Status: FAILED - {e}") print() print("🎉 **All Vulnerability Intelligence Tools Tested!**") print("✅ Complete vulnerability analysis toolkit ready for production use") if __name__ == "__main__": asyncio.run(test_all_tools())

Latest Blog Posts

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/firetix/vulnerability-intelligence-mcp-server'

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