OpenVuln MCP服务器
用于思科安全咨询的模型上下文协议(MCP)服务器。此服务器提供从以下位置检索和列出安全建议的工具 Cisco OpenVulnneneneba API。
特性
- 通过ID获取思科安全公告。
- 从Cisco检索CVE详细信息。
- 列出最新的思科安全公告。
- 按严重程度(严重、高、中、低)过滤公告。
- 获取与特定产品名称相关的建议。
- 处理Cisco OpenVulnneneneba API身份验证和速率限制。
先决条件
- Python 3.x
- Cisco API客户端ID和客户端机密。您可以通过在 Cisco API控制台.
设置
- 克隆存储库:
git clone
cd openvuln-mcp-server- 创建虚拟环境(推荐):
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`- 安装依赖项:
pip install -r requirements.txt- 设置环境变量:
创建一个 .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获得许可。请参阅 许可证 文件以获取详细信息。
