MCP Vulnerability Checker Server
Provides security vulnerability information for Apache products, including detailed reports on vulnerabilities like Log4Shell (CVE-2021-44228).
Integrates with FIRST's Exploit Prediction Scoring System (EPSS) API to provide probability scores for vulnerability exploitation.
Integrates with GitHub security advisories to provide information about available exploits and proof-of-concept code for vulnerabilities.
Enables one-click deployment of the MCP server to Heroku for hosting your own vulnerability intelligence service.
Checks for available exploits in the Metasploit framework as part of the exploit availability assessment tool.
Retrieves package metadata and vulnerability information for Python packages from the Python Package Index, enabling security auditing of dependencies.
Provides comprehensive vulnerability checking for Python packages, including version-specific vulnerability detection and security reporting.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Vulnerability Checker Servercheck if the 'requests' Python package has any known vulnerabilities"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Vulnerability Checker Server
A modular Model Context Protocol (MCP) server providing comprehensive security vulnerability intelligence tools including CVE lookup, EPSS scoring, CVSS calculation, exploit detection, and Python package vulnerability checking.
Demo
Related MCP server: Socket MCP Server
๐ Using the Hosted Server
The vulnerability intelligence MCP server is already hosted and ready to use! Simply configure your MCP client to connect to it.
Claude Desktop Configuration
Add this configuration to your Claude Desktop settings file (~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"vulnerability-intelligence": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"],
"env": {
"FETCH_URL": "https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sse"
}
}
}
}Cursor IDE Configuration
Add this configuration to your Cursor MCP settings file (~/.cursor/mcp.json):
{
"mcpServers": {
"vulnerability-intelligence": {
"url": "https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sse"
}
}
}Alternatively, in Cursor IDE:
Open Cursor Settings โ Features โ MCP Servers
Click "Add New Server"
Select "Server-Sent Events (SSE)" as the type
Enter URL:
https://vulnerability-intelligence-mcp-server-edb8b15494e8.herokuapp.com/sseGive it a name:
vulnerability-intelligence
Test the Connection
Once configured, try these example queries in Claude or Cursor:
CVE Lookup: "Look up CVE-2021-44228" (Log4Shell vulnerability)
EPSS Score: "Get EPSS score for CVE-2021-44228"
Package Check: "Check the 'requests' Python package for vulnerabilities"
Exploit Check: "Check for exploits for CVE-2021-44228"
CVSS Calculator: "Calculate CVSS score for vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
๐ก๏ธ Available Security Tools
๐ CVE Vulnerability Lookup (cve_lookup)
Purpose: Fetches detailed vulnerability information from the National Vulnerability Database (NVD)
Data Source: NIST National Vulnerability Database API 2.0
Usage:
cve_lookup cve_id="CVE-2021-44228"Features:
CVSS scores (v2.0, v3.0, v3.1) with severity ratings
Comprehensive vulnerability descriptions
References, advisories, and remediation links
CWE (Common Weakness Enumeration) mappings
Publication and modification timeline
Affected product configurations
๐ EPSS Score Lookup (get_epss_score)
Purpose: Get Exploit Prediction Scoring System (EPSS) scores for CVEs
Data Source: FIRST EPSS API
Usage:
get_epss_score cve_id="CVE-2021-44228"Features:
Probability of exploitation within 30 days
AI-powered risk prioritization
Real-time threat intelligence integration
Percentile rankings for relative risk assessment
๐งฎ CVSS Score Calculator (calculate_cvss_score)
Purpose: Calculate CVSS base scores from vector strings
Data Source: CVSS v3.0/v3.1 specification
Usage:
calculate_cvss_score vector="CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"Features:
Support for CVSS v3.0 and v3.1
Detailed metric breakdown
Severity level mapping (Critical, High, Medium, Low)
Vector string validation and parsing
๐ Vulnerability Search (search_vulnerabilities)
Purpose: Search vulnerability databases with advanced filtering
Data Source: Multiple vulnerability databases (NVD, CVE)
Usage:
search_vulnerabilities keywords="apache" severity="HIGH" date_range="1y"Features:
Keyword-based search across vulnerability descriptions
Severity filtering (CRITICAL, HIGH, MEDIUM, LOW)
Date range filtering (30d, 90d, 1y, 2y, or custom)
Advanced query capabilities for threat research
๐ฏ Exploit Availability Check (get_exploit_availability)
Purpose: Check for public exploits and proof-of-concepts (PoCs)
Data Source: ExploitDB, Metasploit, GitHub, security advisories
Usage:
get_exploit_availability cve_id="CVE-2021-44228"Features:
Multi-source exploit detection
Active exploitation indicators
PoC code availability assessment
Threat intelligence aggregation
โฐ Vulnerability Timeline (get_vulnerability_timeline)
Purpose: Get comprehensive timeline and patch status information
Data Source: NVD, vendor advisories, security bulletins
Usage:
get_vulnerability_timeline cve_id="CVE-2021-44228"Features:
Publication and disclosure timeline
Patch availability status
Vendor advisory tracking
Remediation guidance timeline
๐ฏ VEX Status Check (get_vex_status)
Purpose: Check Vulnerability Exploitability eXchange (VEX) status for specific products
Data Source: Vendor VEX statements and product security advisories
Usage:
get_vex_status cve_id="CVE-2021-44228" product="Apache HTTP Server"Features:
Product-specific impact assessment
Vendor-provided exploitability statements
False positive filtering
Supply chain impact analysis
๐ฆ Python Package Vulnerability Check (package_vulnerability_check)
Purpose: Checks Python packages for known security vulnerabilities
Data Source: OSV (Open Source Vulnerabilities) Database + PyPI
Usage:
package_vulnerability_check package_name="requests" version="2.25.1"Features:
Comprehensive vulnerability scanning for PyPI packages
Version-specific or all-versions checking
Detailed vulnerability reports with severity scores
Affected version ranges and fix information
Integration with CVE, GHSA, and PYSEC databases
Package metadata from PyPI
๐๏ธ Modular Architecture
The server is built with a clean, modular architecture:
mcp_simple_tool/
โโโ server.py # Main MCP server orchestration
โโโ tools/ # Individual tool modules
โโโ cve_lookup.py # CVE vulnerability lookup
โโโ epss_lookup.py # EPSS score lookup
โโโ cvss_calculator.py # CVSS score calculator
โโโ vulnerability_search.py # Advanced vulnerability search
โโโ exploit_availability.py # Exploit and PoC detection
โโโ vulnerability_timeline.py # Timeline and patch status
โโโ vex_status.py # VEX status checking
โโโ package_vulnerability.py # Python package security check
tests/ # Comprehensive test suite
โโโ run_tests.py # Automated test runner
โโโ test_*.py # Individual tool tests๐ง Alternative Setup Methods
Docker Setup (Recommended for Local Development)
Initial setup:
# Clone the repository
git clone https://github.com/firetix/vulnerability-intelligence-mcp-server
cd vulnerability-intelligence-mcp-server
# Create environment file
cp .env.example .envBuild and run using Docker Compose:
# Build and start the server
docker compose up --build -d
# View logs
docker compose logs -f
# Check server status
docker compose ps
# Stop the server
docker compose downThe server will be available at: http://localhost:8000/sse
Connect to Cursor IDE:
Open Cursor Settings โ Features
Add new MCP server
Type: Select "sse"
URL: Enter
http://localhost:8000/sse
Local Development Setup
Install the uv package manager:
# Install uv on macOS
brew install uv
# Or install via pip (any OS)
pip install uvInstall dependencies and run:
# Install the package with development dependencies
uv pip install -e ".[dev]"
# Using stdio transport (default)
uv run mcp-simple-tool
# Using SSE transport on custom port
uv run mcp-simple-tool --transport sse --port 8000
# Run the comprehensive test suite
python tests/run_tests.pyFor Cursor IDE integration (stdio mode):
Copy the absolute path to
cursor-run-mcp-server.shOpen Cursor Settings โ Features โ MCP Servers
Add new server with "stdio" type and the script path
๐งช Testing the Tools
Run the comprehensive test suite:
# Run all tests
python tests/run_tests.py
# Run individual tool tests
python tests/test_cve_lookup.py
python tests/test_package_vulnerability.py
python tests/test_modular_server.pyExample Test Outputs
CVE Lookup Test:
๐ **CVE Vulnerability Report: CVE-2021-44228**
๐
**Timeline:**
โข Published: 2021-12-10T10:15:09.143
โข Last Modified: 2023-11-07T04:10:58.217
โ ๏ธ **CVSS Scores:**
โข CVSS 3.1: 10.0 (CRITICAL)Package Vulnerability Test:
๐จ **Python Package Security Report: requests**
โ ๏ธ **Found 11 known vulnerabilities**
๐ฆ **Package Information:**
โข Latest Version: 2.32.3
โข Summary: Python HTTP for Humans.๐ Environment Variables
Available environment variables (can be set in .env):
MCP_SERVER_PORT(default: 8000) - Port to run the server onMCP_SERVER_HOST(default: 0.0.0.0) - Host to bind the server toDEBUG(default: false) - Enable debug modeMCP_USER_AGENT- Custom User-Agent for HTTP requests
๐ Deploy Your Own Instance
If you want to deploy your own instance of the vulnerability intelligence server, you can use Heroku for quick deployment:
Quick Deploy to Heroku
Click "Deploy to Heroku" button
After deployment, your instance will be available at:
https://<your-app-name>.herokuapp.com/sse
Configure your MCP client to use your deployed instance:
For Claude Desktop: Update the
FETCH_URLin your configurationFor Cursor IDE: Update the URL in your MCP settings
Test your deployment with the same example queries:
CVE Lookup: "Look up CVE-2021-44228"
EPSS Score: "Get EPSS score for CVE-2021-44228"
Package Check: "Check the 'requests' Python package for vulnerabilities"
Exploit Check: "Check for exploits for CVE-2021-44228"
๐ Data Sources & APIs
CVE Data: NIST National Vulnerability Database (NVD API 2.0)
EPSS Scores: FIRST EPSS API (Exploit Prediction Scoring System)
CVSS Calculations: CVSS v3.0/v3.1 specification compliance
Vulnerability Search: Multiple CVE and vulnerability databases
Exploit Intelligence: ExploitDB, Metasploit, GitHub security advisories
Package Vulnerabilities: OSV (Open Source Vulnerabilities)
Package Metadata: PyPI (Python Package Index)
VEX Data: Vendor VEX statements and product security advisories
๐ค Security Use Cases
This MCP server is designed for security engineers, developers, and teams who need:
Vulnerability Research & Intelligence
Quick CVE lookups with comprehensive details
CVSS and EPSS scoring for accurate risk assessment
Advanced vulnerability search across multiple databases
Exploit availability and threat intelligence gathering
Timeline analysis for understanding vulnerability lifecycle
Risk Assessment & Prioritization
EPSS-based exploitation probability scoring
CVSS vector calculation and validation
VEX status checking for product-specific impact
Multi-factor risk analysis combining multiple data sources
Dependency Management
Python package security auditing
Version-specific vulnerability checking
Supply chain security assessment
Open source component risk evaluation
Security Operations & Incident Response
Rapid vulnerability triage and classification
Exploit availability assessment for threat modeling
Security advisory research and correlation
Timeline-based patch management planning
๐ Extending the Server
The modular architecture makes it easy to add new security tools:
Create a new module in
mcp_simple_tool/tools/Export the function in
tools/__init__.pyRegister the tool in
server.pyAdd tests in
tests/
See README_MODULAR.md for detailed extension guide.
๐ License
MIT License - see LICENSE file for details.
Available Tools
8 toolscalculate_cvss_scoreB
Calculate CVSS base score from vector string
| Name | Required | Description | Default |
|---|---|---|---|
| vector | Yes | Calculate CVSS (Common Vulnerability Scoring System) base scores from vector strings to assess vulnerability severity. Provide a CVSS vector string in the format CVSS:x.x/AV:X/AC:X/PR:X/UI:X/S:X/C:X/I:X/A:X (e.g., CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H). Supports CVSS v3.0 and v3.1 with detailed metric breakdown and severity level mapping. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic function without disclosing behavioral traits. It doesn't mention error handling for invalid vectors, rate limits, authentication needs, or what happens with unsupported CVSS versions. For a calculation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves beyond the core calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized for a simple calculation tool and front-loaded with the core functionality, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter calculation) with rich schema coverage but no output schema or annotations, the description is minimally adequate. It states what the tool does but doesn't explain return values, error cases, or integration context with sibling tools, leaving room for improvement in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'vector' fully documented in the schema including format examples and version support. The description adds no additional parameter semantics beyond what the schema already provides, so it meets the baseline of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'calculate' and the resource 'CVSS base score from vector string', making the purpose immediately understandable. It distinguishes from siblings like 'get_epss_score' or 'cve_lookup' by focusing on score calculation rather than data retrieval. However, it doesn't specify the exact output format or differentiate from potential similar tools not in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_epss_score' for exploit prediction or 'search_vulnerabilities' for broader vulnerability data. It mentions CVSS versions (v3.0 and v3.1) in the schema but not in the description itself, leaving usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_lookupC
Lookup CVE vulnerability information from the National Vulnerability Database
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | Lookup detailed information about a CVE (Common Vulnerabilities and Exposures) from the National Vulnerability Database. Provide a CVE ID in the format CVE-YYYY-NNNN (e.g., CVE-2021-44228 for Log4Shell). Returns comprehensive vulnerability details including CVSS scores, descriptions, references, and associated weaknesses to help engineers understand security implications. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the data source (National Vulnerability Database) but doesn't cover critical aspects like rate limits, authentication requirements, error handling, or response format. This leaves significant gaps for an AI agent to understand operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's front-loaded with the core purpose, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., CVSS scores, descriptions) or behavioral traits like rate limits. For a lookup tool with no structured safety or output information, this leaves the AI agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'cve_id' fully documented in the input schema. The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline for adequate but unremarkable coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lookup') and resource ('CVE vulnerability information from the National Vulnerability Database'), making the tool's purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_vulnerabilities' or 'package_vulnerability_check', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_vulnerabilities' or 'get_vulnerability_timeline'. It lacks context about prerequisites, such as needing a specific CVE ID format, or exclusions, like not being suitable for batch queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_epss_scoreA
Get EPSS exploitability prediction score for a CVE
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | Get Exploit Prediction Scoring System (EPSS) scores for a CVE to assess the probability of exploitation in the wild within 30 days. Provide a CVE ID in the format CVE-YYYY-NNNN (e.g., CVE-2021-44228). Returns AI-powered risk prioritization scores with percentile rankings to help security teams focus on vulnerabilities most likely to be exploited by attackers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool returns 'AI-powered risk prioritization scores with percentile rankings', which adds some behavioral context, but it does not disclose other traits like rate limits, authentication needs, or error handling. The description is minimal and lacks comprehensive behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and every part of the sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage and no output schema, the description is adequate but minimal. It explains what the tool does but lacks details on output format, error cases, or integration with sibling tools. For a simple lookup tool, it meets basic needs but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'cve_id' parameter thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides, such as format details or examples. Baseline score of 3 is appropriate as the schema handles parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get EPSS exploitability prediction score') and the resource ('for a CVE'), distinguishing it from sibling tools like 'calculate_cvss_score' or 'get_exploit_availability' by focusing on EPSS scores rather than CVSS or exploit availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for assessing exploitation probability, but it does not explicitly state when to use this tool versus alternatives like 'calculate_cvss_score' or 'get_exploit_availability'. It provides some context (e.g., 'to assess the probability of exploitation') but lacks clear exclusions or named alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_exploit_availabilityA
Check for public exploits and PoCs for a CVE
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | Check for public exploits and proof-of-concepts (PoCs) for a CVE across multiple sources including ExploitDB, Metasploit, GitHub, and NVD references. Provide a CVE ID in the format CVE-YYYY-NNNN (e.g., CVE-2021-44228). Returns threat intelligence about exploit availability, active exploitation indicators, and weaponization status to assess immediate risk. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds context by listing sources (ExploitDB, Metasploit, GitHub, NVD) and return types (threat intelligence, exploitation indicators, weaponization status), but doesn't cover aspects like rate limits, authentication needs, or potential errors. It doesn't contradict annotations, as none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Check for public exploits and PoCs for a CVE') with no wasted words. Every part of the sentence contributes essential information, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (threat intelligence query), no annotations, and no output schema, the description is moderately complete. It covers purpose, sources, and return types, but lacks details on output format, error handling, or integration with sibling tools, leaving some gaps for an agent to infer behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already fully documents the 'cve_id' parameter with format details and purpose. The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline score of 3 for high coverage without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('check for public exploits and PoCs') and resources ('for a CVE'), distinguishing it from siblings like 'cve_lookup' (general info) or 'get_epss_score' (exploit prediction). It precisely defines what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'check for public exploits and PoCs for a CVE,' suggesting it's for threat intelligence and risk assessment. However, it lacks explicit guidance on when to use this tool versus alternatives like 'search_vulnerabilities' or 'get_vex_status,' which could help differentiate further.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vex_statusC
Check VEX vulnerability status for specific products
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | Check Vulnerability Exploitability eXchange (VEX) status for specific products to determine actual impact and exploitability. Provide a CVE ID in format CVE-YYYY-NNNN and optionally a product name (e.g., 'Windows 11', 'RHEL 8', 'Apache HTTP Server'). Returns vendor-provided exploitability statements, false positive filtering, and product-specific impact assessment. | |
| product | No | Product name or identifier to check VEX status for (optional). Examples: 'Windows 11', 'RHEL 8', 'Ubuntu 22.04', 'Apache HTTP Server' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers minimal information. It states what the tool does but doesn't describe response format, error conditions, rate limits, authentication requirements, or whether this is a read-only operation. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 8 words, front-loading the core purpose without unnecessary elaboration. Every word earns its place - 'Check' (verb), 'VEX vulnerability status' (what), 'for specific products' (scope). There's zero waste or redundancy in this single-sentence description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and 2 parameters, the description is insufficiently complete. It doesn't explain what VEX status entails, what format the response takes, whether this queries external databases, or what distinguishes VEX from other vulnerability assessments. Given the technical nature of vulnerability management and the lack of structured metadata, the description should provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter semantics beyond what's in the schema - it mentions CVE ID and product name but provides no additional context about format requirements, validation rules, or usage patterns. Baseline 3 is appropriate when schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and resource ('VEX vulnerability status for specific products'). It distinguishes from siblings like 'cve_lookup' or 'search_vulnerabilities' by focusing on VEX status rather than general vulnerability information. However, it doesn't explicitly differentiate from all siblings in the description text itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'cve_lookup' or 'get_exploit_availability'. It mentions checking VEX status but doesn't explain when this is preferable to other vulnerability assessment tools. There's no mention of prerequisites, limitations, or specific contexts where this tool is most appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_vulnerability_timelineC
Get vulnerability timeline and patch status information
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | Get comprehensive timeline and patch status information for a vulnerability including publication dates, disclosure timeline, patch availability, vendor advisories, and remediation guidance. Provide a CVE ID in the format CVE-YYYY-NNNN (e.g., CVE-2021-44228). Essential for understanding vulnerability lifecycle and planning patch management strategies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions what information is retrieved but doesn't cover critical aspects like whether this is a read-only operation, potential rate limits, authentication requirements, or the format of the returned data. This leaves significant gaps for an agent to understand how to interact with the tool effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and easy to parse, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a tool that retrieves detailed vulnerability information. It doesn't explain what the output looks like (e.g., timeline format, patch status details), nor does it address behavioral traits like data freshness or error handling, leaving the agent with incomplete context for proper usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the 'cve_id' parameter well-documented in the schema itself. The description doesn't add any meaningful information beyond what's already in the schema (e.g., it doesn't clarify parameter usage or constraints), so it meets the baseline score for high schema coverage without compensating value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('vulnerability timeline and patch status information'), making it immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings like 'cve_lookup' or 'search_vulnerabilities', which might also provide vulnerability information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'cve_lookup' and 'search_vulnerabilities' available, there's no indication of what makes this tool unique or when it should be preferred over others, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
package_vulnerability_checkA
Check for known vulnerabilities in Python packages using OSV database
| Name | Required | Description | Default |
|---|---|---|---|
| package_name | Yes | Name of the Python package to check for vulnerabilities (e.g., 'requests', 'django', 'flask') | |
| version | No | Specific version to check (optional). If not provided, checks all known versions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool checks for vulnerabilities using the OSV database, which implies a read-only, non-destructive operation, but does not detail rate limits, authentication needs, error handling, or response format. It adds some context but leaves significant behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, with every part contributing essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, output format, or integration with sibling tools, leaving gaps that could hinder effective use by an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters ('package_name' and 'version'). The description does not add any additional meaning beyond what the schema provides, such as examples or edge cases, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Check for known vulnerabilities') and target resource ('Python packages using OSV database'), distinguishing it from siblings like 'cve_lookup' or 'search_vulnerabilities' by focusing on package-level vulnerability assessment rather than CVE-specific queries or broader searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Python packages but does not explicitly state when to use this tool versus alternatives like 'cve_lookup' for CVE details or 'search_vulnerabilities' for broader queries. It provides basic context but lacks explicit guidance on exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_vulnerabilitiesC
Search vulnerability databases with advanced filtering
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | No | Search vulnerability databases with advanced filtering capabilities to find relevant security threats. Filter by keywords (e.g., 'apache', 'sql injection'), severity levels (CRITICAL, HIGH, MEDIUM, LOW), and date ranges (30d, 90d, 1y, 2y). Enables comprehensive threat research and vulnerability landscape analysis across multiple CVE and vulnerability databases. | |
| severity | No | Filter by severity level: CRITICAL, HIGH, MEDIUM, LOW, NONE | |
| date_range | No | Date range filter. Use predefined ranges (30d, 90d, 1y, 2y) or custom format YYYY-MM-DD,YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'advanced filtering' and 'comprehensive threat research,' but lacks critical details such as whether this is a read-only operation, if it requires authentication, rate limits, pagination behavior, or what databases it searches. This leaves significant gaps for safe and effective tool invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action ('Search vulnerability databases') and qualifies it succinctly ('with advanced filtering'), making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of vulnerability searching, no annotations, and no output schema, the description is incomplete. It doesn't address key aspects like the scope of databases searched, result format, error handling, or performance considerations, which are essential for an agent to use this tool effectively in security contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between filters or default behaviors. This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Search vulnerability databases with advanced filtering,' which is a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from its siblings like 'cve_lookup' or 'package_vulnerability_check,' which likely perform similar vulnerability-related searches with different scopes or methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus its siblings. It mentions 'advanced filtering' but doesn't specify scenarios where this is preferred over alternatives like 'cve_lookup' for direct CVE lookups or 'package_vulnerability_check' for package-specific checks, leaving the agent to guess based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
- First observed
calculate_cvss_score - First observed
cve_lookup - First observed
get_epss_score - First observed
get_exploit_availability - First observed
get_vex_status - First observed
get_vulnerability_timeline - First observed
package_vulnerability_check - First observed
search_vulnerabilities
TDQS
Each tool has a clearly distinct purpose within the vulnerability domain: CVSS scoring, CVE lookup, EPSS scoring, exploit availability, VEX status, timeline tracking, package checking, and vulnerability search. No tools appear to overlap or cause confusion, as each targets a specific aspect of vulnerability assessment.
All tools follow a consistent verb_noun pattern (e.g., calculate_cvss_score, get_epss_score, search_vulnerabilities). The naming is uniform across the set, using descriptive verbs like 'calculate', 'get', 'check', and 'search' paired with clear nouns, making it easy to understand each tool's function.
With 8 tools, the server is well-scoped for vulnerability checking, covering key areas like scoring, lookup, exploit assessment, and package analysis. Each tool earns its place by addressing a distinct need in the domain, avoiding both bloat and gaps in functionality.
The tool set provides comprehensive coverage for vulnerability assessment, including scoring (CVSS, EPSS), information retrieval (CVE lookup, timeline), exploit analysis, package checks, and search capabilities. There are no obvious gaps; it supports a full workflow from detection to prioritization.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
ZEN SecDB MCP server for CVE intelligence, CVSS/EPSS scoring, advisories, SSVC, and package audits.
CVE intelligence: exploitation (KEV/EPSS), detection coverage, fixed versions. All tools keyless.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that retrieves CVE information from the National Vulnerability Database, allowing AI models to access up-to-date vulnerability data.17Apache 2.0
- AlicenseAqualityAmaintenanceA Model Context Protocol (MCP) server for Socket integration, allowing AI assistants to efficiently check dependency vulnerability scores and security information.11,665132MIT
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for querying the NIST National Vulnerability Database (NVD) API, enabling search and retrieval of CVE details, temporal context, and KEV catalog entries.15MIT
- AlicenseAqualityDmaintenanceEnables AI agents to search, retrieve, and analyze vulnerability data from the NIST National Vulnerability Database through a comprehensive Model Context Protocol server.88MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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