ScanRook MCP Server
# ScanRook MCP Server
An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that gives AI assistants vulnerability scanning capabilities via ScanRook.
## Tools
| Tool | Description |
|------|-------------|
| `scan_image` | Scan a Docker/OCI image for vulnerabilities |
| `scan_status` | Check scan progress and results |
| `get_findings` | Get detailed vulnerability findings |
| `search_cve` | Look up a specific CVE |
| `list_scans` | List recent scans |
| `analyze_licenses` | Check license compliance |
| `compare_scans` | Compare findings between two scans |
| `check_package` | Check a package for known vulnerabilities |
## Setup
### Install
```bash
npm install -g scanrook-mcp
```
### Configure
Set your ScanRook API key:
```bash
export SCANROOK_API_KEY="your-api-key"
export SCANROOK_API_URL="https://scanrook.io" # optional, defaults to scanrook.io
```
### Use with Claude Code
Add to your Claude Code MCP settings:
```json
{
"mcpServers": {
"scanrook": {
"command": "scanrook-mcp",
"env": {
"SCANROOK_API_KEY": "your-api-key"
}
}
}
}
```
### Use with Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"scanrook": {
"command": "npx",
"args": ["scanrook-mcp"],
"env": {
"SCANROOK_API_KEY": "your-api-key"
}
}
}
}
```
## Examples
Once connected, you can ask your AI assistant:
- "Scan nginx:1.27 for vulnerabilities"
- "What's the status of my last scan?"
- "Show me the critical findings"
- "Is CVE-2024-0727 in my image?"
- "Check if lodash 4.17.20 has any known vulnerabilities"
- "Compare my latest scan with last week's scan"
- "Analyze the licenses in my last scan"
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `SCANROOK_API_KEY` | (required) | Your ScanRook API key |
| `SCANROOK_API_URL` | `https://scanrook.io` | ScanRook API base URL |
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: scanning images, checking status, listing scans, retrieving findings, comparing scans, analyzing licenses, checking packages, and searching CVEs. No overlap exists.
Most tools use verb_noun pattern (analyze_licenses, check_package, compare_scans, get_findings, list_scans, scan_image, search_cve), but scan_status differs (noun_verb) and is inconsistent with the rest.
8 tools is appropriate for a vulnerability scanning server, covering the core lifecycle from scanning to results, comparisons, and CVE lookups. Each tool earns its place.
Covers scanning, results, comparison, license analysis, and CVE lookup. Minor gap: no tool to trigger a scan by non-OCI artifacts (e.g., filesystem) or manage scan configurations.