Kodus OSV
Consulta de vulnerabilidades de código abierto mediante las herramientas osv_query/osv_query_batch.
GitHub
2
Prueba este MCPPatrocinadoDocumentación
OSV MCP Server (Bun)
Servidor HTTP de Model Context Protocol (MCP) remoto que envuelve la API OSV v1 para consultas bajo demanda de vulnerabilidades de código abierto (feed de ejemplo: https://osv.dev/list?q=%40NESTJS%2FCORE&ecosystem=npm). Exportado como herramientas MCP para que los agentes puedan consultar OSV directamente.
Características
- Endpoint MCP HTTP transmisible en
/mcp. - Herramientas:
osv_query(objetivo único) yosv_query_batch(múltiples). - URL base configurable (
OSV_API_URL, por defectohttps://api.osv.dev/v1). - Esquemas claros y validación para guiar a los LLM (commit XOR version, reglas de purl, paginación).
Inicio rápido
Requisitos: Bun.
bun install
PORT=3000 HOST=0.0.0.0 OSV_API_URL=https://api.osv.dev/v1 bun run index.ts
Endpoint MCP: http://<host>:<port>/mcp.
Variables de entorno:
PORT/HOST: enlace HTTP (por defecto3000/0.0.0.0).OSV_API_URL: anula la URL base de OSV.
Configuración del cliente MCP
- Claude Code CLI:
claude mcp add --transport http mcp-osv http://localhost:3000/mcp - VS Code:
code --add-mcp "{\"name\":\"mcp-osv\",\"type\":\"http\",\"url\":\"http://localhost:3000/mcp\"}" - MCP Inspector:
npx @modelcontextprotocol/inspector-> conectar ahttp://localhost:3000/mcpReemplazalocalhostcon tu host/puerto si es remoto.
Herramientas y parámetros
osv_query
{
"commit": "sha OR",
"version": "version string OR",
"package": {
"name": "required with ecosystem if not using purl",
"ecosystem": "required with name if not using purl",
"purl": "pkg:pypi/jinja2 // purl OR name+ecosystem; if version is present, omit @version here"
},
"pageToken": "optional pagination token from previous OSV response"
}
Reglas:
- Usa commit XOR version (uno u otro, nunca ambos).
- Si
versionestá presente,packagees obligatorio. packagedebe serpurlo (name+ecosystem).- Si
versionexiste y se usapackage.purl, omite@versionen el purl.
osv_query_batch
{
"queries": [
{
"commit": "sha OR",
"version": "version string OR",
"package": {
"name": "pkg name",
"ecosystem": "ecosystem",
"purl": "pkg:ecosys/name"
},
"pageToken": "optional"
}
]
}
Reglas: cada elemento sigue las mismas reglas que osv_query.
Ejemplos de llamadas
- Versión PyPI:
{"package":{"purl":"pkg:pypi/jinja2"},"version":"3.1.4"} - npm con nombre+ecosistema:
{"package":{"name":"@nestjs/core","ecosystem":"npm"},"version":"10.2.10"} - Búsqueda de commit:
{"commit":"<sha>","package":{"ecosystem":"Go","name":"github.com/foo/bar"}}
Depuración
- Registro del servidor:
OSV MCP server listening on http://<host>:<port>/mcp - Inicialización con curl:
curl -H "content-type: application/json" -H "accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"curl","version":"0.0.0"},"capabilities":{}}}' http://localhost:3000/mcp - Listar herramientas: mismo endpoint con
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
Licencia
Licencia MIT. Consulta LICENSE.