安全公告查询服务

一个用于检索和列出Cisco安全公告的MCP服务器,提供按ID、CVE、严重性、产品名称等多种方式查询公告的功能。

  • by santosomar
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 santosomar/openvuln-mcp-server

使用说明

OpenVuln MCP服务器

用于思科安全咨询的模型上下文协议(MCP)服务器。此服务器提供从以下位置检索和列出安全建议的工具 Cisco OpenVulnneneneba API。

特性

  • 通过ID获取思科安全公告。
  • 从Cisco检索CVE详细信息。
  • 列出最新的思科安全公告。
  • 按严重程度(严重、高、中、低)过滤公告。
  • 获取与特定产品名称相关的建议。
  • 处理Cisco OpenVulnneneneba API身份验证和速率限制。

先决条件

  • Python 3.x
  • Cisco API客户端ID和客户端机密。您可以通过在 Cisco API控制台.

设置

  1. 克隆存储库:

    git clone <repository_url>
    cd openvuln-mcp-server
    
  2. 创建虚拟环境(推荐):

    python3 -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 设置环境变量: 创建一个 .env 文件,并添加您的Cisco API凭据:

    CISCO_OPENVULN_CLIENT_ID="YOUR_CLIENT_ID"
    CISCO_OPENVULN_CLIENT_SECRET="YOUR_CLIENT_SECRET"
    

    服务器使用 python-dotenv 加载这些变量。或者,您可以直接在shell环境中设置它们。

    安全注意事项: 当使用a .env 对于本地开发、生产或共享环境,考虑使用更安全的方法来管理机密,例如使用专用的机密管理工具(例如Conjur、HashiCorp Vault、AWS secrets Manager、Azure Key Vault)或平台提供的环境变量注入。避免承诺 .env 如果文件包含敏感凭据,则将其转换为版本控制。

运行服务器

要启动MCP服务器,请确保您的虚拟环境已激活,并且您的 .env 文件已设置。然后,从项目根目录运行以下命令:

fastmcp run src/openvuln_mcp_server.py:mcp_server

或者,如果 fastmcp 已安装在您的虚拟环境中(.venv 默认情况下):

.venv/bin/fastmcp run src/openvuln_mcp_server.py:mcp_server

服务器将开始使用Uvicorn(通过 fastmcp)并且通常可以在 http://localhost:8000。您将看到指示服务器正在运行的输出。

可用的MCP工具

服务器通过模型上下文协议公开以下工具:

  • get_cisco_advisory_by_id
    • 说明: 通过ID检索特定思科安全公告的详细信息。
    • 参数: advisory_id (字符串)-例如,“cisco-sa-iosxe-trustsec-bypass-LqL32QG”
  • get_cisco_cve_details
    • 说明: 从Cisco检索特定通用漏洞和暴露(CVE)标识符的详细信息。
    • 参数: cve_id (字符串)-例如,“CVE-2025-2188”
  • get_latest_cisco_advisories
    • 说明: 检索最近发布的思科安全公告。
    • 参数: number (整数,可选,默认值:5)
  • list_cisco_advisories_by_severity
    • 说明: 列出按严重性级别筛选的思科安全建议。
    • 参数: severity (string)-有效值:“严重”、“高”、“中等”、“低”。
  • get_cisco_advisories_by_product
    • 说明: 检索与特定产品名称相关的Cisco安全建议。
    • 参数: product_name (字符串)-例如,“Cisco IOS XE”

原理

这 CiscoOpenVulnClient 类句柄:

  • 使用Cisco API的OAuth 2.0身份验证。
  • 客户端速率限制以符合API配额(每秒、每分钟和每天)。
  • 向各种OpenVulnneneneba API端点发出请求。

这 src/openvuln_mcp_server.py 脚本初始化此客户端。然后它使用 FastMCP (从 mcp.server.fastmcp)定义一个MCP服务器实例(名为 mcp_server).使用以下方式向此服务器实例注册工具函数 @mcp_server.tool() 装饰师。然后,MCP客户端可以调用这些工具。

贡献

欢迎投稿!请随时提交拉取请求或打开问题。

许可证

此项目根据Apache许可证2.0获得许可。请参阅 许可证 文件以获取详细信息。