vulnmatter-extension
v1.1.8
Published
VS Code extension for CVE vulnerability analysis using the VulnMatter API with X-API-Key. See CHANGELOG.md for release notes.
Maintainers
Readme
VulnMatter VS Code Extension
Visual Studio Code extension integrating CVE vulnerability analysis and automatic configuration of MCP (Model Context Protocol) servers for VulnMatter and Filesystem.
NOTE: CVE analysis, report generation and products UI sections are currently hidden (temporarily disabled) while focusing on configuration features. They can be re-enabled later without code loss.
🚀 Key Features
- Management and persistence of VulnMatter
X-API-Key - Batch CVE scoring (temporarily hidden)
- Aggregated report generation (temporarily hidden)
- Local history (products) (temporarily hidden)
- Automatic configuration of:
- VulnMatter MCP server (
supergatewayover SSE) - Filesystem MCP server (
@modelcontextprotocol/server-filesystem) - Synchronization for both VS Code MCP and Claude Desktop
- VulnMatter MCP server (
- Diagnostic button (🔧) to view current configuration status
1. Development Installation
npm install
npm run compileThen press F5 in VS Code to open the "Extension Development Host" window.
2. Requirements
| Resource | Minimum Version | Notes | |---------|----------------|-------| | Node.js | 18.x | Recommend 18 LTS or later | | VS Code | 1.85+ | Needed for modern webview | | (Optional) Claude Desktop | Latest | For external MCP integration |
3. VulnMatter API Configuration
- Open the extension side view.
- Go to the "API Configuration" section.
- Enter your
X-API-Keyand optionally a differentAPI URLif you use a custom environment. - Click "Save Configuration".
3.1 How to Obtain a VulnMatter API Key
If you do not yet have an API Key (official site: https://vulnmatter.com/):
- Navigate to the VulnMatter portal (internal/company URL or https://app.vulnmatter.com as applicable).
- Sign in (create an account if needed) with your corporate SSO or email/password (depending on deployment).
- Open your user/profile menu and locate the section named "API Keys" or "Developer / API Access".
- Click "Create New Key" (or "Generate Token").
- Provide an optional label (e.g. "VS Code Extension").
- Copy the generated key immediately – many portals only show it once.
- Paste it into the extension UI field
X-API-Keyand press "Save Configuration". - (Optional) If you are using a self‑hosted VulnMatter instance set the custom base URL before saving.
IMPORTANT: The value must be placed specifically in the form field labeled X-API-Key inside the extension panel (it is a password-style input). Do not place it in the API URL field.
Security / storage notes:
- The key is written in plain text to
~/.vulnmatter/config.json(no encryption). Protect filesystem access. - You can revoke the key at any time in the portal; then generate a new one and update the extension.
- Avoid committing the key to source control. The extension never auto-uploads it.
- If multiple keys are supported later you can rotate without downtime.
For assistance you can email: [email protected]
Troubleshooting key issues:
- 401 / unauthorized responses → key revoked, expired, or pasted with whitespace.
- Empty results or timeouts → verify base URL or network proxy settings.
- After changing the key, use the UI Save again to force regeneration of external MCP configs.
Generated configuration file:
~/.vulnmatter/config.jsonExample:
{
"apiKey": "TU_API_KEY",
"apiUrl": "https://api.vulnmatter.com",
"timestamp": "2025-09-20T12:34:56.123Z",
"paths": {
"vulnmatterConfig": "C:/Users/usuario/.vulnmatter/config.json",
"claudeDesktopConfig": "C:/Users/usuario/AppData/Roaming/Claude/claude_desktop_config.json",
"vsCodeMcpConfig": "C:/Users/usuario/AppData/Roaming/Code/User/mcp.json",
"effectiveRoot": "C:/ruta/proyecto",
"serverNodeName": "filesystem_miproyecto"
}
}4. CVE Analysis (Temporarily Hidden)
When re-enabled:
- Enter CVEs one per line, format:
CVE-YYYY-NNNN. - Click "Analyze CVEs".
- Scores appear (simulated values are generated if the API is unreachable).
Color legend:
- High (>=7.0): Red
- Medium (4.0–6.9): Orange
- Low (<4.0): Green
5. Report Generation (Temporarily Hidden)
When re-enabled:
- Make sure you have entered CVEs.
- (Optional) Add additional query parameters:
format=pdf&detailed=true. - Click "Generate Report".
- A record is stored in
~/.vulnmatter/products.json.
6. MCP Integration
The extension configures MCP nodes for both VS Code and Claude Desktop.
6.1 Configuration Paths
| OS | VS Code MCP | Claude Desktop |
|---------|-------------|----------------|
| Windows | %APPDATA%/Code/User/mcp.json | %APPDATA%/Claude/claude_desktop_config.json |
| macOS | ~/Library/Application Support/Code/User/mcp.json | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Linux | ~/.config/Code/User/mcp.json | ~/.config/Claude/claude_desktop_config.json |
6.2 VulnMatter MCP Server
Generated node:
{
"servers": {
"VulnMatter": {
"type": "stdio",
"command": "npx",
"args": ["-y", "supergateway", "--sse", "https://mcp.singularity-matter.com/sse"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0",
"X-API-Key": "TU_API_KEY"
}
}
}
}6.3 Filesystem MCP Server
Dynamic name: filesystem_<project_basename>
{
"servers": {
"filesystem_miproyecto": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"],
"env": { "ROOT": "C:/ruta/proyecto" }
}
}
}6.4 Activation from the UI
Available checkboxes:
- MCP VS Code → creates/updates
VulnMatternode inmcp.json. - MCP Claude → creates/updates node in
claude_desktop_config.json. - Filesystem MCP → creates local filesystem server.
The API Key is automatically injected into env.X-API-Key each time you reconfigure.
6.5 Diagnostic Button (🔧)
Shows a modal summary with:
Status of each server
Presence of API Key
Active file paths
7. Automatic Migrations
If a legacy Assents node existed, it is renamed to VulnMatter in all configs (internal + Claude + VS Code MCP). Existing customizations are preserved.
8. Security
| Aspect | Detail |
|---------|---------|
| API Key storage | Plain text in ~/.vulnmatter/config.json |
| UI exposure | Never shown fully after saving |
| In transit | Sent in X-API-Key header over HTTPS |
| Best practices | Protect home folder via OS encryption (BitLocker, FileVault, LUKS) |
To improve security you could:
- Integrate with a Secret Manager (Azure Key Vault, AWS Secrets Manager)
- Encrypt the local file (add AES layer + user passphrase)
9. Troubleshooting
| Issue | Possible Cause | Solution |
|----------|---------------|----------|
| Empty scores | Invalid API Key | Regenerate or verify the key |
| MCP node not visible | Corrupted mcp.json | Delete file and reconfigure from the extension |
| Claude doesn’t detect server | Path/root format mismatch | Restart Claude after configuring |
| Changed API Key not reflected | MCP not reconfigured | Check the corresponding checkbox again |
| Permission error | Protected directory | Run VS Code with proper permissions |
| Report very slow | Real API call latency | Check connectivity / rely on temporary fallback |
View current configuration
Click the 🔧 button (MCP status) or inspect:
~/.vulnmatter/config.json
%APPDATA%/Code/User/mcp.json
%APPDATA%/Claude/claude_desktop_config.jsonFull reset
# Close VS Code and Claude Desktop first
rm ~/.vulnmatter/config.json
rm %APPDATA%/Code/User/mcp.json
rm %APPDATA%/Claude/claude_desktop_config.json(Adjust paths per OS). Then reopen and reconfigure.
10. Development Scripts
npm run compile # Compile
npm run watch # Watch / incremental rebuild
npm run package # Webpack production buildPackage:
npm install -g @vscode/vsce
vsce package11. Extend
| Goal | How |
|----------|--------------|
| New VulnMatter endpoint | Clone pattern from getCVEScores() / getCVEReport() |
| Add another MCP server | Create method similar to createOrUpdateVulnMatterServer() |
| Additional UI | Add sections to vulnmatter.html and handle messages in onDidReceiveMessage |
| Support multiple API Keys | Change apiKey → array and add selection UI |
12. Changelog
| Version | Changes | |---------|---------| | 1.1.0 | VS Code + Claude MCP, diagnostic button, Assents→VulnMatter migration, automatic X-API-Key update | | 1.0.0 | CVE analysis, reports, API Key save |
13. License
(Define here: MIT / Apache-2.0 / Proprietary)
14. Support
Internal contact / Slack channel
Repository issues (if applicable)
Need screenshots or want the hidden features back? Open an issue or request it.
npm install --save-dev @vscode/vsce
npx vsce package
npx vsce publish