by andrasfe
A Python-based MCP server that provides real-time security advice about Python modules by querying multiple authoritative vulnerability databases.
VulniCheck is a Python-based MCP server designed to provide real-time security advice for Python modules. It achieves this by querying a comprehensive set of authoritative vulnerability databases, including OSV.dev, NVD, GitHub Advisory Database, CIRCL Vulnerability-Lookup, and Safety DB. Beyond dependency vulnerability scanning, VulniCheck offers advanced features such as Docker analysis, secrets detection, MCP configuration validation, and LLM-powered risk assessment for interactive security audits. It provides detailed CVE information, CVSS scores, and actionable remediation guidance.
VulniCheck can be integrated with MCP-compatible clients like Claude Desktop or Claude Code. The recommended installation method is using uvx directly from GitHub.
Quick Start with uvx (Recommended):
# Basic setup
claude mcp add vulnicheck -- uvx --from git+https://github.com/andrasfe/vulnicheck.git vulnicheck
# With environment variables for enhanced features (API keys)
claude mcp add vulnicheck \
-e NVD_API_KEY=your-nvd-key \
-e GITHUB_TOKEN=your-github-token \
-e OPENAI_API_KEY=your-openai-key \
-- uvx --from git+https://github.com/andrasfe/vulnicheck.git vulnicheck
Note: Environment variables like NVD_API_KEY, GITHUB_TOKEN, OPENAI_API_KEY, and ANTHROPIC_API_KEY are optional but highly recommended for increased API rate limits and AI-powered features.Traditional Installation:
git clone https://github.com/andrasfe/vulnicheck.gitcd vulnicheck./run-local.sh (This script handles virtual environment creation, dependency installation, and Claude Desktop configuration).pip install -e .), and running the server (python -m vulnicheck.server).Once configured, you can interact with VulniCheck using natural language commands within your IDE, such as:
requirements.txt, pyproject.toml, lock files, and even Python import statements.detect-secrets.https://nvd.nist.gov/developers/request-an-api-key) and GitHub (https://github.com/settings/tokens) and configure them via environment variables (NVD_API_KEY, GITHUB_TOKEN) or in your .env file. LLM API keys (OPENAI_API_KEY, ANTHROPIC_API_KEY) enable AI-powered features.GITHUB_TOKEN with appropriate permissions as an environment variable or in your .env file when scanning private repositories..vulnicheck directory?
This directory stores conversation logs, local cache, and security audit trails. It's recommended to add .vulnicheck/ to your .gitignore file."Run a comprehensive security check on my project" or "Run a comprehensive security check on /path/to/project".validate_mcp_security tool used for?
This tool allows LLMs to perform a self-assessment of their security posture by analyzing their MCP configurations for potential vulnerabilities like prompt injection or tool poisoning.VulniCheck provides comprehensive security analysis for Python projects and GitHub repositories using AI-powered vulnerability detection. It runs as a Docker-based HTTP MCP server with standard HTTP streaming (no SSE required), providing secure containerized deployment with comprehensive vulnerability scanning capabilities.
# Pull the latest image from Docker Hub
docker pull andrasfe/vulnicheck:latest
# Run with OpenAI API key (for enhanced AI-powered risk assessment)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e OPENAI_API_KEY=your-openai-api-key \
andrasfe/vulnicheck:latest
# Or run without API key (basic vulnerability scanning)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
claude mcp add --transport http vulnicheck http://localhost:3000/mcp
That's it! VulniCheck is now available in Claude Code.
Once installed, simply ask Claude:
"Run a comprehensive security check on my project"
"Scan https://github.com/owner/repo for vulnerabilities"
"Check my dependencies for security issues"
"Scan my Dockerfile for vulnerable packages"
VulniCheck will:
| Tool | Description |
|---|---|
check_package_vulnerabilities |
Check a specific Python package for vulnerabilities |
scan_dependencies |
Scan dependency files (requirements.txt, pyproject.toml, etc.) |
scan_installed_packages |
Scan currently installed Python packages |
get_cve_details |
Get detailed information about a specific CVE |
scan_for_secrets |
Detect exposed secrets and credentials in code |
scan_dockerfile |
Analyze Dockerfiles for vulnerable Python dependencies |
scan_github_repo |
Comprehensive security scan of GitHub repositories |
assess_operation_safety |
AI-powered risk assessment for operations |
validate_mcp_security |
Validate MCP server security configurations |
comprehensive_security_check |
Interactive AI-powered security assessment |
Enhance VulniCheck with API keys for better rate limits and AI features:
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e OPENAI_API_KEY=your-key \ # AI-powered risk assessment
-e ANTHROPIC_API_KEY=your-key \ # Alternative AI provider
-e GITHUB_TOKEN=your-token \ # Higher GitHub API rate limits
-e NVD_API_KEY=your-key \ # Higher NVD rate limits
andrasfe/vulnicheck:latest
VulniCheck supports optional Google OAuth 2.0 authentication for secure access control. By default, authentication is disabled.
Get Google OAuth Credentials:
http://localhost:3000/oauth/callback (or your domain)Configure Environment Variables:
export FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET="GOCSPX-your-secret-here"
export FASTMCP_SERVER_BASE_URL="http://localhost:3000"
Run with Authentication:
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-secret \
-e FASTMCP_SERVER_BASE_URL=http://localhost:3000 \
-v vulnicheck_tokens:/home/vulnicheck/.vulnicheck/tokens \
andrasfe/vulnicheck:latest \
python -m vulnicheck.server --auth-mode google
Using docker-compose:
See docker-compose.auth-example.yml for a complete configuration example.
Note: OAuth tokens are persisted in /home/vulnicheck/.vulnicheck/tokens. Use a Docker volume to persist tokens across container restarts.
FastMCP OAuth + HTTP Transport Incompatibility
Due to a limitation in FastMCP 2.12.4, OAuth authentication does not work properly with HTTP transport (streamable-http). The authorization endpoints (/oauth/authorize, /oauth/callback) are not correctly mounted, resulting in 404 errors.
When OAuth Works:
/.well-known/oauth-protected-resource)When OAuth Does NOT Work:
Workaround for External Clients (ChatGPT, etc.):
Run VulniCheck without authentication when accessing through ngrok or other public URLs:
# Start without OAuth (recommended for external clients)
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
# Then configure ngrok
ngrok http 3000
In your MCP client (ChatGPT, etc.):
https://your-ngrok-url.ngrok-free.dev/mcpSecurity Considerations:
Future Resolution: This limitation will be resolved when:
Quick Start (No OAuth):
# 1. Start VulniCheck
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
andrasfe/vulnicheck:latest
# 2. Start ngrok
ngrok http 3000
# 3. Use the ngrok URL in your MCP client
# URL: https://your-generated-url.ngrok-free.dev/mcp
# Authentication: None
Optional OAuth Script (Experimental - OAuth Not Functional):
A convenience script restart-vulnicheck-ngrok.sh is provided for testing OAuth, but OAuth does not currently work due to FastMCP limitations:
# Copy the example environment file
cp .env.example .env
# Edit .env and add your credentials
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-your-secret-here
NGROK_URL=https://your-ngrok-url.ngrok-free.dev
# Run the script (OAuth will not work)
./restart-vulnicheck-ngrok.sh
Note: The script is provided for future use when FastMCP OAuth + HTTP transport is fixed. Currently, always run without OAuth for external clients.
# Clone the repository
git clone https://github.com/andrasfe/vulnicheck.git
cd vulnicheck
# Build Docker image
docker build -t vulnicheck .
# Run locally built image (no auth)
docker run -d --name vulnicheck-mcp -p 3000:3000 --restart=unless-stopped vulnicheck
# Run with Google OAuth
docker run -d --name vulnicheck-mcp -p 3000:3000 \
--restart=unless-stopped \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_ID=your-client-id \
-e FASTMCP_SERVER_AUTH_GOOGLE_CLIENT_SECRET=your-secret \
-e FASTMCP_SERVER_BASE_URL=http://localhost:3000 \
-v vulnicheck_tokens:/home/vulnicheck/.vulnicheck/tokens \
vulnicheck \
python -m vulnicheck.server --auth-mode google
The official Docker image is available at:
andrasfe/vulnicheck:latestrequirements.txt, pyproject.toml, setup.py, lock filesDockerfile, docker-compose.ymlDISCLAIMER: Vulnerability data provided "AS IS" without warranty. Users are responsible for verification and remediation.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by chaitin
A self‑hosted web application firewall and reverse proxy that protects web applications from attacks and exploits by filtering, monitoring, and blocking malicious HTTP/S traffic.
by safedep
Provides enterprise‑grade open source software supply chain security by scanning source code, dependencies, containers and SBOMs, detecting vulnerabilities and malicious packages, and enforcing policy as code.
by semgrep
Offers an MCP server that lets LLMs, agents, and IDEs run Semgrep scans to detect security vulnerabilities in source code.
by PortSwigger
Enables Burp Suite to communicate with AI clients via the Model Context Protocol, providing an MCP server and bundled stdio proxy.
by cycodehq
Boost security in the development lifecycle via SAST, SCA, secrets, and IaC scanning.
by mobb-dev
Provides automatic security vulnerability remediation for code via a command‑line interface and an MCP server, leveraging findings from popular SAST tools such as Checkmarx, CodeQL, Fortify, and Snyk.
by ChristophEnglisch
Provides AI‑powered administration of Keycloak users and realms through the Model Context Protocol, enabling automated creation, deletion, and listing of users and realms from MCP clients such as Claude Desktop.
by Spathodea-Network
Provides a Model Context Protocol server that enables querying and retrieving threat intelligence data from OpenCTI through a standardized interface.
by firstorderai
Provides seamless access to two‑factor authentication codes and passwords for AI agents, enabling automated login while maintaining security.
{
"mcpServers": {
"vulnicheck": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/andrasfe/vulnicheck.git",
"vulnicheck"
],
"env": {
"NVD_API_KEY": "your-nvd-api-key",
"GITHUB_TOKEN": "your-github-token"
}
}
}
}claude mcp add vulnicheck uvx --from git+https://github.com/andrasfe/vulnicheck.git vulnicheck