CVESentry MCP
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., "@CVESentry MCPaudit requirements.txt and give me safe upgrade versions for any vulnerable packages"
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.
CVESentry MCP (Lite)
Autonomous Local Vulnerability Scanner, Fast CVE Search Engine & Dependency Audit Plane for AI Coding Agents
CVESentry MCP gives AI coding agents (Claude Desktop, Cursor, Devin, Roo-Code) instant (<5ms) vulnerability intelligence without rate-limits or slow external API keys. It audits dependency manifests (requirements.txt, package.json), identifies vulnerable versions, and provides automated upgrade paths.
🚀 Features (Lite Edition)
Instant Local CVE Search (
search_cve): Query vulnerability records in sub-millisecond local SQLite memory with zero network dependencies.Dependency Manifest Auditor (
audit_manifest): Parsesrequirements.txtandpackage.json, checks versions against vulnerable ranges, and calculates severity breakdowns.CVE Detailed Metadata (
get_cve_details): Detailed CVSS score, vulnerability category, affected package version bounds, and security summaries.Safe Version Recommendation (
get_safe_recommendation): Calculates the minimal patch version that eliminates all matching CVEs.
Related MCP server: Security Intel MCP
📦 Installation & Setup
git clone https://github.com/johannschiffer/cvesentry-mcp.git
cd cvesentry-mcp
pip install -e .Configuration with Claude Desktop / Cursor
Add to your claude_desktop_config.json:
{
"mcpServers": {
"cvesentry": {
"command": "python3",
"args": ["-m", "cvesentry.server"]
}
}
}âš¡ Quick CLI Usage
# Search for a CVE or package
cvesentry search --query "aiohttp"
# Audit a requirements.txt file
cvesentry audit --file requirements.txt💼 Upgrade to CVESentry Pro
Need enterprise security compliance for automated code generation?
Multi-Ecosystem Engine (SQLite WAL): Full parsing for Python (
pyproject.toml,Pipfile), Node (package-lock.json), Rust (Cargo.lock), and Go (go.mod).EPSS & CISA KEV Exploit Prioritization: Real-world Exploit Prediction Scoring System (EPSS) and CISA Known Exploited Vulnerabilities catalog integration.
Automated Safe Version Upgrader: Automatically patches manifests while preserving semver constraints to minimize breaking changes.
Audit Certificate Exporter: Generates formatted markdown and JSON reports for GitHub PR reviews.
Docker & Compose Ready: Deploy as a microservice sidecar in your CI/CD cluster.
Available at Gumroad.
📄 License
MIT © Johann Schiffer
Available Tools
4 toolsaudit_manifestA
Audits raw contents of requirements.txt or package.json for known vulnerabilities and returns fix recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Raw string content of the manifest file | |
| manifest_type | Yes | Type of manifest |
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. 'Audits ... for known vulnerabilities' implies a read-only analysis with no mutation, but the description does not state whether it depends on an external vulnerability database, whether results are cached or rate-limited, or how exhaustive the recommendations are.
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?
A single front-loaded sentence with no filler: verb, accepted inputs, and result are all in the first clause. Nothing is repeated or wasted.
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 two-parameter, fully-schema-documented stateless audit tool with no output schema, the description covers both input formats and the output ('fix recommendations'). It would be complete with a brief note on the recommendation/finding format, but the core is present.
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% and both parameters are documented in the schema. The description only restates that content is the raw manifest and implies manifest_type is one of the two named formats, adding no syntax or format detail beyond the enum already in the 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?
States a specific verb (audits), resource (raw contents of requirements.txt or package.json) and outcome (returns fix recommendations), which makes the tool's function unambiguous. It does not explicitly differentiate itself from siblings, and 'returns fix recommendations' partially overlaps with get_safe_recommendation, so the boundary is left to inference.
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 when to use it (you have a raw manifest string in either of two formats), but gives no explicit when-to-use vs alternatives guidance and never mentions the sibling tools. No exclusions, prerequisites, or routing conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cve_detailsA
Retrieves complete vulnerability metadata, CVSS score, severity, and affected ranges for a specific CVE ID.
| Name | Required | Description | Default |
|---|---|---|---|
| cve_id | Yes | CVE identifier (e.g. CVE-2023-32681) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. 'Retrieves' clearly implies a read-only, non-destructive operation and the description lists returned fields, but it does not disclose authentication needs, rate limits, or error behavior for missing CVEs.
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?
A single front-loaded sentence with no wasted words. Every phrase either identifies the operation or enumerates the key returned data.
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 simple single-parameter read tool with no output schema, the description sufficiently covers what is returned (metadata, CVSS, severity, affected ranges). It lacks usage alternatives but is otherwise complete for the tool's complexity.
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 100% and the single parameter is fully documented with an example. The description adds only 'specific CVE ID', which the schema already conveys, so the baseline score of 3 is appropriate.
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?
States a specific verb ('Retrieves') and resource ('vulnerability metadata, CVSS score, severity, and affected ranges') scoped to 'a specific CVE ID'. It implicitly distinguishes itself from search_cve by requiring an exact ID, though it does not name the sibling explicitly.
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 phrase 'for a specific CVE ID' implies the tool should be used when the exact identifier is already known, which contrasts with a search tool. However, it provides no explicit when-not conditions 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_safe_recommendationB
Returns the minimum safe version required to patch vulnerabilities for a given package and version.
| Name | Required | Description | Default |
|---|---|---|---|
| package | Yes | Package name (e.g. requests, aiohttp, lodash) | |
| ecosystem | Yes | Package manager ecosystem | |
| current_version | Yes | Currently installed or requested version |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says the tool returns a version, but does not disclose safety profile, permissions, error behavior, or what happens when no safe version exists.
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, front-loaded sentence with no wasted words. It states the core action and return value immediately.
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?
The tool is simple and the schema is fully documented, but there is no output schema and the description does not cover return shape details, failure cases, or absence of a safe version. It is minimally complete but leaves meaningful gaps.
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%, and all three parameters are documented in the schema. The description mentions package and version but adds no meaningful parameter semantics beyond the schema, so baseline 3 is appropriate.
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 uses a specific verb and resource: returns the minimum safe version for a package/version. It is clearly distinct from sibling tools like search_cve and audit_manifest, though it does not explicitly name or differentiate against them.
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?
It implies the tool is used when patching vulnerabilities, but it gives no explicit when-to-use guidance, prerequisites, exclusions, or alternatives among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_cveA
Searches local CVE database by ID (e.g., CVE-2024-23334), package name, or keyword with zero latency.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g. aiohttp, CVE-2024, XSS) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description adds useful behavioral context: the database is local and searches have zero latency. It still omits important operational details such as result format, matching behavior, result limits, or whether it is strictly read-only, leaving some burden unmet.
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 front-loaded sentence with no wasted words. It efficiently combines purpose, accepted input forms, and a key performance trait.
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 simple one-parameter search tool, the description covers the core purpose and input modes. However, with no output schema and no annotations, it does not explain what results look like or when an agent should move from search to get_cve_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?
Schema description coverage is 100%, so the sole query parameter is already well documented. The description reinforces that the query can be a CVE ID, package name, or keyword, but adds little beyond what the schema examples already provide.
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 gives a specific verb and resource: searching a local CVE database. It also names the accepted lookup modes (CVE ID, package name, keyword), making the tool distinguishable from a detail-fetching sibling, but it does not explicitly differentiate itself from get_cve_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?
The description implies appropriate usage by listing lookup modes such as CVE ID, package name, and keyword. However, it does not explicitly state when to use this search tool versus get_cve_details, audit_manifest, or get_safe_recommendation, nor does it give exclusions.
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.
4 tool updates
v1.0.0- First observed
audit_manifest - First observed
get_cve_details - First observed
get_safe_recommendation - First observed
search_cve
TDQS
Scored across 4 tools
Each tool has a distinct primary purpose, but there is minor overlap: search_cve can search by CVE ID while get_cve_details retrieves full details for a CVE ID, and audit_manifest returns fix recommendations that overlap with get_safe_recommendation's single-package fix output. The descriptions still provide enough guidance to select correctly.
All four tool names follow a consistent snake_case verb_noun pattern (search_cve, audit_manifest, get_cve_details, get_safe_recommendation). There is no mixing of conventions or verb styles.
Four tools are well-scoped for a local CVE lookup and remediation server: search, audit, detailed lookup, and safe version recommendation. Each tool earns its place and the set is not bloated or thin.
The set covers the core lifecycle: lookup by ID/package/keyword, audit a manifest, retrieve full CVE metadata, and get a safe patch version. A minor gap is the lack of a direct 'is this version vulnerable?' query, though agents can infer this from search_cve or get_safe_recommendation.
Maintenance
Related MCP Connectors
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
CVE lookups (NVD) and dependency-manifest audits (OSV) for AI agents. No API keys.
Queries live Google OSV.dev vulnerability intelligence for any PyPI, npm, Go, or Rust crate and re
Real-time CVE, exploit, and vulnerability intelligence for AI assistants (350K+ CVEs, 115K+ PoCs)
Related MCP Servers
- AlicenseAqualityFmaintenanceDependency security & health auditing for AI agents with no account or API key required.22MIT
- AlicenseAqualityBmaintenanceVulnerability intelligence for AI agents that enables CVE lookup, package vulnerability checks, and dependency auditing without API keys.5MIT
- AlicenseNot gradedqualityCmaintenanceProvides security checks for AI agents, including secret scanning, CVE lookup, and dependency vulnerability scanning, all running locally except for CVE lookups.MIT

Fetter MCPofficial
FlicenseNot gradedqualityDmaintenanceProvides real-time Python package vulnerability data, enabling AI agents to check CVEs, CVSS scores, and safe versions for informed dependency decisions.1-