Skip to main content

Introduction

This folder contains the source code for running VDB as a Model Context Protocol (MCP) server. Below you can find the configuration for running the VDB MCP server with Claude Desktop. Please feel free to share the configuration for other clients via pull requests.

What is available

The MCP server provides:

  • Structured JSON tool results with summaries and machine-readable evidence.
  • Bulk search tools for package lists and CycloneDX BOMs.
  • Filter-aware search for severity thresholds, sources (osv, nvd, github, aqua), date ranges, malware-only / exclude-malware, package scope (app_only, os_only), package ecosystem, and pagination.
  • Metadata and full-text search over aliases, references, package names, descriptions, and affected functions/modules.
  • Resource templates such as cve://{id} and purl://{purl}.
  • Concrete resources such as vdb://metadata, vdb://health, vdb://sources, and vdb://malware/latest.
  • Richer prompts for package-risk assessment, CVE triage, SBOM summaries, fix prioritization, version-match explanations, and overlay review.

Pre-requisites

  • Python >= 3.10 installed
  • docker or Rancher Desktop (or)
  • uv installed

Use our container image ghcr.io/appthreat/mcp-server-vdb:master.

Claude Desktop configuration

Edit the file using VS code or any editor of your choice. ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows, the config file is $env:AppData\Claude\claude_desktop_config.json. Use the below configuration:

{
  "mcpServers": {
    "vdb": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "VDB_HOME=/db",
        "-v",
        "$HOME/vdb:/db:rw",
        "ghcr.io/appthreat/mcp-server-vdb:master"
      ]
    }
  }
}

nerdctl example.

{
  "mcpServers": {
    "vdb": {
      "command": "nerdctl",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "VDB_HOME=/db",
        "-v",
        "$HOME/vdb:/db:rw",
        "ghcr.io/appthreat/mcp-server-vdb:master"
      ]
    }
  }
}

Restart the Claude Desktop application.

If you get ENOENT error, specify the full path to docker. On a mac, /Applications/Docker.app/Contents/Resources/bin/docker.

Local uv-based execution (Developers only)

git clone https://github.com/AppThreat/vulnerability-db.git
cd vulnerability-db
python -m pip install .

export VDB_HOME=$HOME/vdb
mkdir -p $VDB_HOME
vdb --download-image
uv --directory packages/mcp-server-vdb run mcp-server-vdb

Claude Desktop configuration

Edit the file using VS code or any editor of your choice. ~/Library/Application Support/Claude/claude_desktop_config.json. On Windows, the config file is $env:AppData\Claude\claude_desktop_config.json.

Use the below configuration and adjust the following paths:

  • absolute path to the mcp-server-vdb package inside the packages directory.
  • VDB_HOME - Full path to the directory containing the vulnerability database. Must have run vdb --download-image
{
  "mcpServers": {
    "vdb": {
      "command": "uv",
      "args": [
        "--directory",
        "/Volumes/Work/AppThreat/vulnerability-db/packages/mcp-server-vdb",
        "run",
        "mcp-server-vdb"
      ],
      "env": {
        "VDB_HOME": "/Users/guest/vdb"
      }
    }
  }
}

Restart the Claude Desktop application.

Environment variables

The MCP server uses the same vdb configuration as the CLI. See the root README environment variables for the full reference. The most common MCP settings are:

Variable Default Description
VDB_HOME Platform user data directory for vdb Directory containing data.vdb6, data.index.vdb6, and vdb.meta. Set this explicitly for Docker volume mounts and local Claude Desktop configurations.
VDB_AGE_DAYS 2 Number of days before the server treats the local database as stale. When stale or missing and ORAS support is installed, the server downloads the app-only database on startup. Use an integer string.
VDB_APP_ONLY_DATABASE_URL ghcr.io/appthreat/vdbxz-app:v6.7.x OCI image URL used by MCP automatic downloads. Override this for internally published app-only artifacts.
VDB_SQLITE_IMMUTABLE unset Open existing .vdb6 files with SQLite's immutable URI option in read-only deployments.

If the MCP server needs extended metadata searches such as full-text, alias, reference, package-name, or symbol lookup, point VDB_APP_ONLY_DATABASE_URL at an app-only extended artifact such as ghcr.io/appthreat/vdbxz-app-extended:v6.7.x, use your own mirrored extended image, or pre-populate VDB_HOME with a database built using vdb --cache --include-metadata.

Screenshots

Claude context screen

Claude context

Claude permissions on first run

Claude permissions

Claude results

Vulnerability description

Latest malware

Latest Malware

Configuration for MCP Inspector

  • Transport Type: STDIO
  • Command: uv
  • Arguments: --directory /absolute/path/to/vulnerability-db/packages/mcp-server-vdb run mcp-server-vdb

Click "Connect"

MCP Inspector

Testing

  1. Click "List Tools". You should see structured tools such as search_by_purl_like, search_full_text, search_packages, search_bom_summary, and search_bom_detailed.
  2. Select search_by_purl_like and enter a purl string such as pkg:swift/vapor/vapor@4.89.0.
  3. Confirm that the tool returns structured JSON content with summary and results.
  4. Try resources such as vdb://metadata, vdb://health, or cve://CVE-2024-25169.

Example common search options

Many tools accept the following optional fields in addition to their main locator:

{
  "severity_threshold": "HIGH",
  "source": ["osv", "github"],
  "exclude_malware": true,
  "package_ecosystem": "pypi",
  "with_data": true,
  "summary_only": false,
  "include_references": true,
  "include_affected_symbols": true,
  "include_remediation": true,
  "include_evidence": true,
  "page": 1,
  "page_size": 25
}

Metadata

Release files for mcp-server-vdb 6.7.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-server-vdb 6.7.5
File Size Uploaded Provenance
mcp_server_vdb-6.7.5.tar.gz 18.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-server-vdb 6.7.5
File Interpreter ABI Platform
mcp_server_vdb-6.7.5-py3-none-any.whl Python 3 none any Details

Total release size: 30.4 kB

Release files / mcp_server_vdb-6.7.5.tar.gz

Download URL mcp_server_vdb-6.7.5.tar.gz
Size 18.5 kB
Tags Source
SHA-256 checksum
How to use checksums
c870413e9704eb1f20b3a66e1c9cdfdaec5fc6d50a46cdd6caaf06e9eee08609
BLAKE2b-256 checksum
How to use checksums
ed8b4a65968bc32f96fcb0ede145595402bf8297f54a08db416517565f98ec28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mcp_server_vdb-6.7.5-py3-none-any.whl

Download URL mcp_server_vdb-6.7.5-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
81123f80fa8fc7dfe3541ba6871d76590d99e161d9bb86bbe3125e6c06576d72
BLAKE2b-256 checksum
How to use checksums
2e59ba5db888827091cb0f15cf3d9bbf3815fcca88ee2728abf531d5bfe75bca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.5 {"installer":{"name":"uv","version":"0.13.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for mcp-server-vdb 6.7.5

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page