项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的应用后端服务器,专门用于集成 OSV (Open Source Vulnerabilities) 数据库。它允许支持MCP协议的大型语言模型 (LLM) 客户端以标准化的方式查询开源软件的已知漏洞信息。
主要功能点
该服务器通过提供一系列工具,使LLM能够方便地访问OSV数据库:
- 查询单个漏洞: 根据软件包名称、生态系统、版本或提交哈希值,查询该组件是否受到已知漏洞影响。
- 批量查询漏洞: 一次性查询多个软件包或提交的漏洞信息,提高效率。
- 获取漏洞详情: 根据已知的OSV漏洞ID,获取该漏洞的详细信息(如描述、受影响版本、参考链接等)。
安装步骤
您需要安装 Go 1.21 或更高版本来构建此服务器。
- 克隆仓库:
git clone https://github.com/StacklokLabs/osv-mcp.git cd osv-mcp - 构建服务器:
构建成功后,您将在 'bin/' 目录下找到可执行文件 'osv-mcp'。# 如果已安装 task 工具 (推荐) task build # 或者手动构建 go build -o bin/osv-mcp ./cmd/server/main.go
服务器配置(供MCP客户端使用)
为了让您的LLM客户端能够连接并使用此OSV MCP服务器,您需要在客户端的MCP配置中添加该服务器信息。典型的MCP客户端配置(通常是JSON格式)需要包含服务器的名称、启动命令和参数。
根据本项目实现,您需要配置以下信息:
- 'name': 服务器的唯一标识名称,例如 '"osv-mcp"' (项目的定义名称)。
- 'command': 启动服务器的可执行文件路径。这是您在安装步骤中构建生成的 'osv-mcp' 可执行文件的完整路径,例如 '["/path/to/your/osv-mcp/bin/osv-mcp"]'。
- 'args': 传递给服务器的命令行参数。本项目服务器默认监听 ':8080' 地址,您可以通过 '-addr' 参数指定其他地址。例如 '["-addr", ":8080"]'。
最终在客户端中的配置条目概念上类似于:
// 这是一个配置示例的描述,请根据您的MCP客户端实际配置格式调整 { "name": "osv-mcp", // 服务器名称 "command": ["/path/to/your/osv-mcp/bin/osv-mcp"], // 服务器启动路径 "args": ["-addr", ":8080"] // 服务器启动参数 // 您的客户端可能还需要其他参数,例如 protocol (本项目支持 SSE) 等 }
基本使用方法
服务器启动并配置到LLM客户端后,LLM即可通过MCP协议调用服务器提供的工具。例如,LLM可以通过调用 'query_vulnerability' 工具,并提供包信息(如 '{"package_name": "lodash", "ecosystem": "npm", "version": "4.17.15"}')作为参数,来获取 'lodash' 1.0.0 版本的漏洞信息。服务器将返回JSON格式的查询结果。
具体的工具调用方式和参数结构,取决于您的LLM客户端如何与MCP服务器集成,但底层交互会遵循MCP的JSON-RPC规范。
信息
分类
开发者工具