Kodus OSV
Consulta de vulnerabilidades de código aberto via ferramentas osv_query/osv_query_batch.
GitHub
2
Experimente este MCPPatrocinadoDocumentação
Servidor MCP OSV (Bun)
Servidor HTTP remoto do Model Context Protocol (MCP) que encapsula a API v1 do OSV para consultas sob demanda de vulnerabilidades em software de código aberto (exemplo de feed: https://osv.dev/list?q=%40NESTJS%2FCORE&ecosystem=npm). Exportado como ferramentas MCP para que agentes possam consultar o OSV diretamente.
Recursos
- Endpoint MCP HTTP transmitível em
/mcp. - Ferramentas:
osv_query(alvo único) eosv_query_batch(múltiplos). - URL base configurável (
OSV_API_URL, padrão:https://api.osv.dev/v1). - Schemas e validação claros para orientar LLMs (commit XOR version, regras de purl, paginação).
Início rápido
Pré-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.
Variáveis de ambiente:
PORT/HOST: bind HTTP (padrão:3000/0.0.0.0).OSV_API_URL: substitui a URL base do OSV.
Configuração do 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/mcpSubstitualocalhostpelo seu host/porta se remoto.
Ferramentas e 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"
}
Regras:
- Use commit XOR version (um ou outro, nunca ambos).
- Se
versionestiver presente,packageé obrigatório. packagedeve serpurlou (name+ecosystem).- Se
versionexistir epackage.purlfor usado, omita@versionno purl.
osv_query_batch
{
"queries": [
{
"commit": "sha OR",
"version": "version string OR",
"package": {
"name": "pkg name",
"ecosystem": "ecosystem",
"purl": "pkg:ecosys/name"
},
"pageToken": "optional"
}
]
}
Regras: cada item segue as mesmas regras de osv_query.
Exemplos de chamadas
- Versão PyPI:
{"package":{"purl":"pkg:pypi/jinja2"},"version":"3.1.4"} - npm com name+ecosystem:
{"package":{"name":"@nestjs/core","ecosystem":"npm"},"version":"10.2.10"} - Consulta por commit:
{"commit":"<sha>","package":{"ecosystem":"Go","name":"github.com/foo/bar"}}
Depuração
- Log do servidor:
OSV MCP server listening on http://<host>:<port>/mcp - Curl init:
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 ferramentas: mesmo endpoint com
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
Licença
Licença MIT. Consulte LICENSE.