KeyboardCrumbs MCP Server
Provides tools for performing malware hash lookups using VirusTotal's database of over 68 antivirus engines to identify and analyze malicious files.
Click on "Deploy 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., "@KeyboardCrumbs MCP ServerCheck if IP 45.141.26.73 is malicious and show its risk score"
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.
KeyboardCrumbs MCP Server
mcp-name: com.keyboardcrumbs/mcp
Live threat intelligence tools for Claude Desktop. Free, no API key required.
Tools
Tool | Description |
| Threat intel for any IP — risk score, geo, ASN, C2 associations, staging clusters |
| CVE lookup — CVSS, EPSS, KEV status, exploit availability, patch urgency |
| Domain intel — DNS records, WHOIS, malware associations, subdomains |
| Malware hash lookup via VirusTotal (68+ engines) + CIRCL (6.3B files) |
| Live snapshot — KEV count, active C2s, ransomware victims, data freshness |
| KEV Oracle — top CVEs predicted to be added to CISA KEV before it happens |
| GhostWatch — detect pre-attack infrastructure staging for an IP or domain |
| Ransomware group lookup and victim tracking |
Install
Option 1 — uvx (no install needed)
Add to claude_desktop_config.json:
{
"mcpServers": {
"keyboardcrumbs": {
"command": "uvx",
"args": ["--from", "git+https://github.com/keyboardcrumbs/mcp", "keyboardcrumbs-mcp"]
}
}
}Option 2 — Clone and run locally
git clone https://github.com/keyboardcrumbs/mcp
cd mcp
uv venv && source .venv/bin/activate
uv add "mcp[cli]" httpxAdd to claude_desktop_config.json:
{
"mcpServers": {
"keyboardcrumbs": {
"command": "uv",
"args": ["--directory", "/path/to/mcp", "run", "server.py"]
}
}
}Restart Claude Desktop.
Example Usage
Once installed, just ask Claude:
"Is 45.141.26.73 malicious?"
"Should I patch CVE-2024-3400 immediately?"
"What CVEs are about to be added to CISA KEV?"
"Is this domain staging for an attack?"
"What's the current threat landscape?"
Claude will call the live KeyboardCrumbs API and return real-time threat intelligence.
Data Sources
URLhaus · Feodo Tracker · AlienVault OTX · CISA KEV · NVD · EPSS · ExploitDB · VirusTotal · CIRCL · SANS ISC DShield · Shodan · RIPE · crt.sh · Ransomware.live
Data updates every 15 minutes. No API key. No signup. No rate limits for normal use.
Links
Dashboard: https://threats.keyboardcrumbs.com
GhostWatch: https://ghost.keyboardcrumbs.com
KEV Oracle: https://oracle.keyboardcrumbs.com
API docs: https://api.keyboardcrumbs.com
Available Tools
8 toolsactive_threatsA
Get a snapshot of current live threat intelligence.
Returns database freshness, top statistics: KEV count, active C2s, ransomware victims, exploits, and when data was last updated. Use this for a quick situational awareness check.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Adds valuable behavioral context by noting the data is 'live' and includes 'database freshness' metrics, implying real-time characteristics. However, lacks disclosure on safety profile (though implied by 'Get'), rate limits, or caching behavior.
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?
Well-structured with front-loaded purpose, followed by return value specifics, and ending with usage guidance. No wasted words; every sentence serves a distinct 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?
Adequate for a zero-parameter tool with existing output schema. Description successfully conveys scope and purpose without needing to detail return structures (covered by schema). Could be strengthened by explicitly contrasting with the specific 'check_' sibling tools.
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?
Zero parameters present, triggering baseline score of 4 per rubric. No parameter documentation required or provided.
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?
Excellent specific verb ('Get a snapshot') and resource ('current live threat intelligence'). Clearly distinguishes from sibling tools by positioning itself as a broad 'situational awareness' dashboard versus the specific entity lookups (check_cve, check_domain, etc.) and predictions.
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?
Provides clear usage context ('Use this for a quick situational awareness check') that helps agents understand when to invoke this overview tool versus specific lookup tools. Lacks explicit 'when not to use' exclusions or named alternatives, but the intent is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_cveA
Look up a CVE — exploitation status, KEV listing, EPSS score, and available exploits.
Returns CVSS score, severity, EPSS probability, whether it's in the CISA Known Exploited Vulnerabilities catalog, exploit availability, and KEV Oracle prediction data. Use this to assess patch urgency for a specific vulnerability.
Args: cve_id: CVE identifier (e.g. CVE-2024-3400 or CVE-2021-44228)
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and succeeds in detailing the return payload (CVSS, EPSS probability, CISA KEV catalog membership, KEV Oracle predictions). It implies read-only behavior via 'Look up,' though it could explicitly state there are no side effects or mention data freshness/latency expectations.
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?
Excellent structure with zero waste: purpose statement, return value details, usage context, and parameter specification in a compact format. Every sentence earns its place; the 'Args:' section efficiently documents the single required parameter without redundancy.
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?
Appropriately complete for a single-parameter lookup tool with an output schema. The description summarizes key return fields even though the output schema exists (helpful for LLM reasoning), covers parameter formatting, and provides usage context. A brief note distinguishing it from predict_kev would achieve completeness, but it stands alone adequately.
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 0% description coverage (only title 'Cve Id'), but the description fully compensates by defining the parameter as a 'CVE identifier' and providing concrete format examples ('CVE-2024-3400 or CVE-2021-44228'), enabling correct invocation despite the underspecified schema.
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 opens with a specific verb ('Look up') and resource ('CVE'), then enumerates specific data points returned (exploitation status, KEV listing, EPSS score, exploits). It clearly distinguishes from sibling tools like check_domain/check_ip by focusing on vulnerability identifiers and distinct from predict_kev by emphasizing lookup of existing CVE data versus prediction.
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?
Provides clear usage context ('Use this to assess patch urgency for a specific vulnerability'), establishing when to invoke the tool. However, it does not explicitly differentiate from sibling predict_kev despite both returning KEV-related data, nor does it mention when to prefer active_threats for broader intelligence versus this specific CVE lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_domainA
Look up threat intelligence for a domain.
Returns DNS records, WHOIS age, certificate transparency data, malware associations, and threat feed cross-references. Use this when investigating a suspicious domain.
Args: domain: Domain name to look up (e.g. example.com)
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
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 discloses what data is returned (DNS, WHOIS, malware associations) but omits operational characteristics like read-only status, rate limits, authentication requirements, or caching behavior. 'Look up' implies read-only, but safety/reversibility is not explicit.
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?
Well-structured and front-loaded: purpose first, then return values, then usage guidance, then parameters. The Args section follows Python docstring conventions which is slightly verbose for MCP but necessary given the 0% schema coverage. No redundant or wasted sentences.
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?
Appropriate for a single-parameter lookup tool. Good coverage of inputs and purpose. Since an output schema exists, the detailed list of return values in the description is sufficient (though helpful). Could be improved by mentioning error handling (e.g., invalid domain format) or data freshness.
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 0% (only 'title': 'Domain' with no description field). The Args section compensates effectively by providing semantic context ('Domain name to look up') and a concrete example ('example.com'), which clarifies the expected input format.
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 states a specific verb ('Look up') and resource ('threat intelligence for a domain'). It clearly distinguishes from siblings like check_ip, check_hash, and check_cve by specifying 'domain' as the target and listing domain-specific data types (DNS records, WHOIS age, certificate transparency).
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?
Provides explicit positive guidance ('Use this when investigating a suspicious domain'), which is helpful for selection. However, it lacks negative constraints or explicit comparison with siblings (e.g., it doesn't clarify when to use check_ip versus this tool for URLs).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_hashA
Look up a file hash to check if it's known malware.
Checks against VirusTotal (68+ AV engines) and CIRCL hashlookup (6.3 billion known files). Returns malware family, detection count, and file metadata. Use this when investigating a suspicious file.
Args: file_hash: MD5, SHA1, or SHA256 hash of the file
| Name | Required | Description | Default |
|---|---|---|---|
| file_hash | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It successfully discloses external dependencies (VirusTotal with 68+ engines, CIRCL hashlookup with 6.3B files) and return value structure (malware family, detection count, metadata). Could improve by mentioning behavior when hash is unknown or rate limiting.
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?
Efficiently structured with zero waste: one line for purpose, two for data sources, one for return values, one for usage context, and two for parameter documentation. Every sentence delivers distinct value.
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 single-parameter complexity, 0% schema coverage compensated by description, and existence of output schema (removing need to detail return values), the description provides complete guidance for an LLM to invoke this tool correctly.
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 coverage is 0% (file_hash property lacks description), but description fully compensates by specifying accepted hash algorithms (MD5, SHA1, SHA256), providing critical semantic context not present in the structured schema.
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?
Description uses specific verb 'Look up' with clear resource 'file hash' and outcome 'check if it's known malware'. The scope (file hash analysis) clearly distinguishes from siblings like check_domain, check_ip, and check_cve which handle different IoC types.
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?
Explicitly states 'Use this when investigating a suspicious file' providing clear contextual trigger. Lacks explicit 'when not to use' or named alternatives, but the scope is sufficiently distinct from sibling threat intelligence tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ipA
Look up threat intelligence for an IP address.
Returns risk score, geolocation, ASN, malware C2 associations, active GhostWatch staging clusters, Tor exit status, and data sources. Use this when investigating a suspicious IP from a log, alert, or report.
Args: ip: IPv4 or IPv6 address to look up (e.g. 45.141.26.73)
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and compensates well by detailing specific return values including 'GhostWatch staging clusters', 'Tor exit status', and 'malware C2 associations'. It effectively discloses what intelligence data the agent will receive, though it omits rate limits or caching behavior.
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?
Well-structured with purpose front-loaded, followed by return values, usage context, and parameter specification. The 'Args:' section slightly repeats schema structure but is justified given the lack of schema descriptions. No wasted sentences.
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?
Appropriate for a single-parameter lookup tool. Even though an output schema exists (reducing the burden to document returns), the description generously lists expected fields. Combined with usage guidance and parameter details, it provides comprehensive coverage.
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?
Despite 0% schema description coverage (schema only provides 'title': 'Ip'), the description fully compensates by specifying the parameter accepts 'IPv4 or IPv6 address' and provides a concrete example value '45.141.26.73', giving the agent complete semantic context beyond the raw schema.
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?
Description uses specific verb 'look up' with resource 'threat intelligence' for 'IP address'. Clearly distinguishes from sibling tools like check_domain, check_hash, and check_cve by explicitly stating 'IP address' in the description and parameter details.
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?
Provides explicit contextual guidance: 'Use this when investigating a suspicious IP from a log, alert, or report.' While it doesn't explicitly name sibling alternatives, the context clearly signals when to select this over other intelligence lookup tools based on the data source type.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_ransomwareA
Look up ransomware group activity or check if a company has been a victim.
Search by ransomware group name (e.g. 'LockBit', 'BlackCat') or company/domain name to check victim feeds. Returns group stats, recent victims, and target industries.
Args: query: Ransomware group name OR company name / domain to check
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must carry the behavioral burden. It partially succeeds by disclosing return values ('Returns group stats, recent victims, and target industries'), but fails to mention critical security tool context like authentication requirements, rate limits, or data freshness.
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?
Well-structured with the primary purpose front-loaded in the first sentence, followed by usage pattern examples, return value disclosure, and a clear Args section. Information density is appropriate with minimal redundancy.
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 single-parameter simplicity and existence of an output schema, the description covers the essential contract: input expectations (with examples) and output summary (stats, victims, industries). Adequate for agent selection and invocation despite missing operational details.
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?
With 0% schema description coverage, the description effectively compensates by documenting the query parameter semantics in the Args section: 'Ransomware group name OR company name / domain to check'. The examples in the main text ('LockBit', 'BlackCat') further clarify expected input formats.
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 dual purpose: 'Look up ransomware group activity' and 'check if a company has been a victim' with specific examples ('LockBit', 'BlackCat'). However, it does not explicitly differentiate from sibling tools like check_domain or active_threats, which could cause confusion on when to select this specific tool.
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?
Provides implied usage guidance through examples of valid inputs (ransomware group names vs company domains) and explains the OR logic for the query parameter. However, it lacks explicit 'when to use/when not to use' guidance comparing it to siblings like check_domain or predict_kev.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_stagingA
Check if an IP or domain is associated with a GhostWatch pre-attack staging cluster.
GhostWatch detects infrastructure being staged for attacks before it's weaponized — the quiet window when attackers spin up C2s, register domains, and issue certs. Returns cluster details, confidence score, signal count, and AI threat assessment.
Args: indicator: IP address or domain to check for staging activity
| Name | Required | Description | Default |
|---|---|---|---|
| indicator | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses the data source (GhostWatch), the operation type (association check), and the return structure (cluster details, confidence score, signal count, AI assessment). It implies this is a read-only lookup but omits operational details like rate limits or latency.
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?
Well front-loaded with the core action in the first sentence. The GhostWatch explanation justifies its existence by defining the specialized threat domain. The Args section is necessary given 0% schema coverage. Every sentence earns its place by adding domain context or parameter documentation.
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?
Appropriately complete for a single-parameter lookup tool. The description adequately covers the threat intelligence domain (GhostWatch pre-attack), input semantics, and output summary, even though an output schema exists to handle detailed return structures.
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 0%, requiring the description to compensate. The 'Args' section successfully documents the 'indicator' parameter as accepting 'IP address or domain' and explains its purpose ('to check for staging activity'), fully compensating for the undocumented schema.
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 opens with a specific action verb ('Check') and clearly defines the resource being queried (GhostWatch pre-attack staging cluster). It explicitly differentiates from generic siblings like check_ip and check_domain by specifying the GhostWatch threat intelligence context and the 'pre-attack staging' domain.
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?
Provides clear context about when this tool is valuable—during the 'quiet window' when attackers stage infrastructure before weaponization. This helps agents distinguish it from generic reputation checks. Lacks explicit 'when not to use' or named alternatives, but the threat context is clearly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predict_kevA
Get KEV Oracle predictions — CVEs most likely to be added to CISA KEV soon.
Scores unpatched CVEs by EPSS, exploit availability, ransomware association, and in-the-wild exploitation. Returns the top predicted CVEs ranked by likelihood of CISA KEV addition. Use this for proactive patch prioritization.
Args: limit: Number of predictions to return (default 10, max 25)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full disclosure burden. Compensates well by detailing prediction methodology (EPSS, exploit availability, ransomware association, in-the-wild exploitation) and return semantics. Missing rate limits, caching behavior, or data freshness details that would elevate to a 5.
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?
Well-structured with clear information hierarchy: purpose → methodology → return value → usage guidance → parameter details. No redundant sentences; 'Args' section efficiently handles the single parameter without bloating the text.
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?
Appropriate for a single-parameter tool with output schema. Covers prediction logic, return characteristics, and parameter constraints. Does not need to elaborate return values since output schema exists, and complexity is low enough that description feels 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 coverage is 0% (no descriptions), but the Args section fully compensates by documenting the limit parameter's purpose ('Number of predictions to return'), default value, and maximum constraint ('max 25') not present in schema.
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?
Description opens with specific verb+resource ('Get KEV Oracle predictions'), immediately clarifies scope ('CVEs most likely to be added to CISA KEV soon'), and distinguishes from reactive siblings like check_cve by emphasizing predictive nature and proactive patch prioritization.
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?
Provides clear usage context ('Use this for proactive patch prioritization') positioning it against reactive lookup tools. Lacks explicit 'when not to use' guidance or named alternatives, though the proactive vs reactive distinction is clear from sibling tool names.
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.
8 tool updates
v1.0.1- First observed
active_threats - First observed
check_cve - First observed
check_domain - First observed
check_hash - First observed
check_ip - First observed
check_ransomware - First observed
check_staging - First observed
predict_kev
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose targeting different threat intelligence aspects: active threats overview, CVE lookup, domain/IP/hash investigation, ransomware tracking, staging detection, and KEV prediction. The descriptions specify unique use cases (e.g., 'quick situational awareness' vs. 'assess patch urgency'), preventing confusion between tools.
All tools follow a consistent 'check_' or descriptive verb_noun pattern (active_threats, check_cve, check_domain, check_hash, check_ip, check_ransomware, check_staging, predict_kev). The naming is uniform with snake_case throughout, making it predictable and easy to understand.
With 8 tools, the server is well-scoped for its threat intelligence domain. Each tool addresses a specific need (e.g., different indicator types, ransomware, staging clusters), and none feel redundant or missing, providing comprehensive coverage without being overwhelming.
The tool set offers complete coverage for threat intelligence workflows: it includes real-time overviews (active_threats), detailed lookups for various indicators (CVE, domain, hash, IP), specialized checks (ransomware, staging), and predictive analytics (predict_kev). There are no obvious gaps, enabling agents to handle diverse security investigation tasks.
Related MCP Connectors
AI-powered threat intelligence, smart contract auditing, and cybersecurity OSINT.
STIX indicators (single/batch), batch CVE lookups w/ EPSS/CISA KEV, ATT&CK dossiers.
Threat intel + your scans/findings/Shield posture. CVE, EPSS, KEV, package vuln lookup, DAST.
Real-time threat intel for AI agents: 890K+ IOCs incl. prompt-injection & AI-skill threats