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 傳輸搭配運作,因此公開暴露伺服器會讓任何取得網址的人存取。掃描會讀取專案檔案與儲存庫內容。

安裝

在 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 分