漏洞查询服务

一个基于Python的MCP服务器,用于查询ENISA EUVDB公共漏洞API,支持从MCP兼容的AI助手如Claude Desktop或VSCode调用。

  • by etxahun
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 etxahun/euvdb-mcp-server

使用说明

🛡️ EUVDB MCP服务器

MCP服务器在Python中与 ENISA EUVDB公共漏洞API,使用 模型上下文协议(MCP).

此服务器公开了可以从MCP兼容的AI助手(如Claude Desktop或Visual Studio Code(VSCode))调用的查询工具。

📁 项目结构

euvdb-mcp-server/
├── Dockerfile # Dockerfile to build the Docker image of the project
├── LICENSE # Project license
├── README.md # Project documentation
├── server.py # MCP server with tools to query the ENISA API
└── pyproject.toml # (optional, if using uv as package manager)

🚀 入门指南

1.克隆存储库

git clone https://github.com/etxahun/euvdb-mcp-server.git
cd euvdb-mcp-server

2.创建虚拟环境并安装依赖项

需求Python 3.10或更高版本,以及 紫外线 作为环境经理(可选但推荐)。

# Install uv if not already available
curl -LsSf https://astral.sh/uv/install.sh | sh

# Initialize virtual environment
uv venv
source .venv/bin/activate

# Install dependencies
uv add "mcp[cli]" httpx

3.运行MCP服务器

  • 选项A:在本地运行

    uv run server.py
    
  • 选项B:来自WSL(Linux的Windows子系统)

    wsl bash -c 'cd /path/to/euvdb-mcp-server && /home/<user>/.local/bin/uv run server.py'
    

🧪 使用Docker进行本地测试

从终端运行以下命令:

docker build -t mcp-euvdb .
docker run --rm mcp-euvdb

⚙️ 在VSCode中与Claude集成

  1. 打开VSCode并确保安装了Claude AI Assistant扩展。
  • 备注:如果您使用的是“Claude Desktop”,则不需要安装扩展。
  1. 打开settings.json(Ctrl+Shift+P→ “首选项:打开设置(JSON)”)。

  2. 添加以下内容:

"mcp": {
    "servers": {
        "euvdb": {
            "command": "wsl.exe",
            "args": [
                "bash",
                "-c",
                "cd /home/<user>/path/to/project/euvdb-mcp-server && /home/<user>/.local/bin/uv run server.py"
            ]
        }
     }
}

如果Docker镜像 mcp euvdb 已构建,您可以配置 VSCode 通过修改直接使用它 settings.json 文件如下:

"mcp": {
    "servers": {
        "euvdb": {
           "command": "wsl.exe",
           "args": [
               "docker",
               "run",
               "--rm",
               "-i",
               "mcp-euvdb"
           ]
        }
     }
}

🧪 可用工具

MCP服务器公开了以下工具:

工具 描述
get_last_vulnerabilities() 最新发布的漏洞(最多8个)\
get_exploited_vulnerabilities() 最近利用的漏洞(最多8个)
get_critical_vulnerabilities() 最新严重漏洞(最多8个)
get_vulnerability_by_id(id) 通过CVE ID查询漏洞(例如CVE-2024-0864)
get_enisaid(id) 按ENISA ID查询(例如,EUVD-2024-45012)
get_advisory(id) 按ID获取咨询(例如,cisco-sa-ata19x-…)
query_vulnerabilities(...) 带过滤器的高级查询(分数、EPSS、日期、产品等)

💬 提示示例

  • “使用euvdb查询最新的关键漏洞。”
  • “查找漏洞CVE-2024-0864。”
  • “筛选2024年1月以来得分>9的漏洞。”
  • “显示与思科有关的最新公告。”

📄 许可证

此项目在Apache-2.0下获得许可。

🤝 鸣谢

此服务器与 ENISA EUVDB公共漏洞API,它是开放的,不需要身份验证。