Vulnicheck

io.github.andrasfe由 GitHub 账号 andrasfe 发布v0.1.0更新于 Oct 25, 2026

HTTP MCP Server for comprehensive Python vulnerability scanning and security analysis.

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

一个基于 Docker 的 HTTP MCP 服务器,让助手扫描 Python 项目与 GitHub 仓库中的漏洞依赖、泄露密钥及 Dockerfile 安全问题。

可以做什么
检查 Python 包、依赖文件和已安装包中的已知漏洞,并查询多个漏洞数据库中的 CVE 详情。扫描源码文件中的泄露密钥与凭据,分析 Dockerfile 和 compose 文件中的易受攻击依赖。扫描公开或私有 GitHub 仓库,并校验 MCP 服务器安全配置。生成 AI 驱动的风险评估与修复建议,包括交互式综合安全检查。
适用场景
适合审计 Python 项目、容器配置或 GitHub 仓库的安全问题,或让助手解释某个 CVE 并给出修复建议。也适合在部署前检查 MCP 服务器配置。
运行要求
需要 Docker 运行容器镜像并暴露本地端口(默认 3000),以及支持 HTTP 传输的 MCP 客户端。可选密钥用于增强功能:OPENAI_API_KEY 或 ANTHROPIC_API_KEY 用于 AI 风险评估,GITHUB_TOKEN 和 NVD_API_KEY 用于提高速率限制。需要访问漏洞数据库和 GitHub 的网络连接。
安装前请注意
可选密钥通过环境变量传入(OPENAI_API_KEY、ANTHROPIC_API_KEY、GITHUB_TOKEN、NVD_API_KEY);AI 功能会把扫描上下文发送给 OpenAI 或 Anthropic。默认不启用身份验证,README 说明 OAuth 目前无法与 HTTP 传输配合使用,因此公开暴露服务器会让任何持有 URL 的人访问。扫描会读取项目文件和仓库内容。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vulnicheck,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

VulniCheck - AI-Powered Security Scanner

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.

Quick Start

1. Pull and Run the Docker Container

bash
# Pull the latest image from Docker Hubdocker 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

2. Add to Claude Code

bash
claude mcp add --transport http vulnicheck http://localhost:3000/mcp

That's it! VulniCheck is now available in Claude Code.

Usage

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:

  • ✅ Scan dependencies for known vulnerabilities (requirements.txt, pyproject.toml, setup.py)
  • ✅ Detect exposed secrets and credentials
  • ✅ Analyze Dockerfiles for security issues
  • ✅ Validate MCP configurations
  • ✅ Generate AI-powered risk assessments
  • ✅ Provide actionable remediation recommendations

Key Features

  • Docker Deployment: Secure containerized deployment with HTTP streaming (no SSE/Server-Sent Events required)
  • Optional Authentication: Supports Google OAuth 2.0 for secure access control (disabled by default)
  • Production Ready: Scalable HTTP server architecture
  • Comprehensive Coverage: Queries 5+ vulnerability databases (OSV.dev, NVD, GitHub Advisory, CIRCL, Safety DB)
  • GitHub Integration: Scan any public/private GitHub repository directly (up to 1GB)
  • AI-Powered Analysis: Uses OpenAI/Anthropic APIs for intelligent security assessment
  • Secrets Detection: Finds exposed API keys, passwords, and credentials
  • Docker Security: Analyzes Dockerfiles for vulnerable dependencies
  • Smart Caching: Avoids redundant scans with commit-level caching
  • Space Management: Automatic cleanup prevents disk exhaustion (2GB total limit)
  • Zero Config: Works out of the box, enhanced with optional API keys

Available Tools

ToolDescription
check_package_vulnerabilitiesCheck a specific Python package for vulnerabilities
scan_dependenciesScan dependency files (requirements.txt, pyproject.toml, etc.)
scan_installed_packagesScan currently installed Python packages
get_cve_detailsGet detailed information about a specific CVE
scan_for_secretsDetect exposed secrets and credentials in code
scan_dockerfileAnalyze Dockerfiles for vulnerable Python dependencies
scan_github_repoComprehensive security scan of GitHub repositories
assess_operation_safetyAI-powered risk assessment for operations
validate_mcp_securityValidate MCP server security configurations
comprehensive_security_checkInteractive AI-powered security assessment

Optional API Keys

Enhance VulniCheck with API keys for better rate limits and AI features:

bash
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

Authentication (Optional)

VulniCheck supports optional Google OAuth 2.0 authentication for secure access control. By default, authentication is disabled.

Enabling Google OAuth

  1. Get Google OAuth Credentials:

    • Go to Google Cloud Console
    • Create a project and enable Google+ API
    • Create OAuth 2.0 credentials (Web application)
    • Add authorized redirect URI: http://localhost:3000/oauth/callback (or your domain)
  2. Configure Environment Variables:

    bash
    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"
  3. Run with Authentication:

    bash
    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
  4. 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.

⚠️ Known OAuth Limitations

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:

  • ✅ Local connections (when supported in future FastMCP versions)
  • ✅ OAuth discovery endpoint works (/.well-known/oauth-protected-resource)

When OAuth Does NOT Work:

  • ❌ HTTP transport with external clients (ChatGPT, Claude Desktop, etc.)
  • ❌ Authorization endpoints return 404
  • ❌ Token exchange fails

Workaround for External Clients (ChatGPT, etc.):

Run VulniCheck without authentication when accessing through ngrok or other public URLs:

bash
# Start without OAuth (recommended for external clients)docker run -d --name vulnicheck-mcp -p 3000:3000 \  --restart=unless-stopped \  andrasfe/vulnicheck:latest
# Then configure ngrokngrok http 3000

In your MCP client (ChatGPT, etc.):

  • URL: https://your-ngrok-url.ngrok-free.dev/mcp
  • Authentication: None

Security Considerations:

  • ✅ Traffic is encrypted via HTTPS (ngrok)
  • ⚠️ No authentication - anyone with URL can access
  • 💡 ngrok free URLs change on restart (security through obscurity)
  • 🔒 For production, use ngrok paid tier with password protection or IP whitelisting

Future Resolution: This limitation will be resolved when:

  1. FastMCP fixes OAuth + HTTP transport support, OR
  2. Alternative authentication mechanisms are implemented

Using with ngrok

Quick Start (No OAuth):

bash
# 1. Start VulniCheckdocker run -d --name vulnicheck-mcp -p 3000:3000 \  --restart=unless-stopped \  andrasfe/vulnicheck:latest
# 2. Start ngrokngrok 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:

bash
# Copy the example environment filecp .env.example .env
# Edit .env and add your credentialsGOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.comGOOGLE_CLIENT_SECRET=GOCSPX-your-secret-hereNGROK_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.

Building from Source

bash
# Clone the repositorygit clone https://github.com/andrasfe/vulnicheck.gitcd vulnicheck
# Build Docker imagedocker 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 OAuthdocker 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

Docker Hub

The official Docker image is available at:

Requirements

  • Docker
  • Claude Code or any MCP client with HTTP transport support (standard HTTP, no SSE required)
  • Optional: API keys for enhanced features

Supported File Types

  • Dependencies: requirements.txt, pyproject.toml, setup.py, lock files
  • Containers: Dockerfile, docker-compose.yml
  • Secrets: All text-based source files
  • GitHub: Any public or private repository URL

Support


DISCLAIMER: Vulnerability data provided "AS IS" without warranty. Users are responsible for verification and remediation.

来源:README.md,提交 48bed31

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分