MCP Server
CVD Portal exposes a Model Context Protocol (MCP) server so AI agents can act on the platform directly, the same way a script would use the REST API. An agent connected to it can submit a vulnerability report, read a company's CRA compliance status, and generate a CSAF advisory, without any custom integration code.
The MCP server is an Enterprise feature. It authenticates with the same API keys as the REST API, so access, scopes, rate limits, and the IP allowlist all behave identically.
Endpoint
https://cvdportal.com/api/mcp
The transport is streamable HTTP. Authenticate with an API key as a Bearer token:
Authorization: Bearer <your-api-key>
Create and scope keys under Settings → API Keys in the dashboard. A key with no scopes has full access; a scoped key can only call tools whose scope it carries.
Connecting
Claude Code
claude mcp add --transport http cvd-portal https://cvdportal.com/api/mcp \
--header "Authorization: Bearer <your-api-key>"
Any MCP client
Point the client at https://cvdportal.com/api/mcp with the Authorization: Bearer <your-api-key> header. Clients that support the Model Context Protocol streamable HTTP transport will discover the tools automatically.
Tools
| Tool | Scope required | What it does |
|---|---|---|
submit_vulnerability | submissions:write | Files a disclosure report against your portal. Requires a description; optional productName, vulnerabilityType, stepsToReproduce, impact, contactEmail, pgpKey. |
get_compliance_status | read | Returns your CRA compliance summary and recommendations. |
generate_csaf_advisory | read | Returns the CSAF 2.0 VEX document for the advisory linked to a submission you own. Takes a submissionId; the advisory must already exist for that submission. Machine-readable CSAF export requires the Pro plan. |
Every tool operates only within the company that owns the API key. A tool call can never reach another tenant's data, and the company is always taken from the verified key, never from the tool's arguments.
Privacy
Tool-call analytics record which tool ran, its outcome, and timing. Argument and result content, which can include vulnerability details, is not recorded by default.