FSV
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FSV_DB | No | SQLite database path. | ~/.fsv/scans.db |
| FSV_HOST | No | Dashboard bind address (host). | 127.0.0.1 |
| FSV_PORT | No | Dashboard bind address (port). | 7474 |
| FSV_TOKEN | No | Shared secret required on every API / WebSocket call (X-FSV-Token or ?token=). | |
| FSV_EOL_FILE | No | Your own end-of-life dates (JSON). | |
| FSV_MAX_SCANS | No | Number of concurrent scans. | 3 |
| FSV_NO_PLUGINS | No | Disable plugin discovery. | off |
| FSV_PLUGIN_DIR | No | Plugin discovery directory. | ~/.fsv/plugins |
| FSV_ADVISORY_FILE | No | Your own JS-library advisories (JSON). | |
| FSV_ALLOWED_HOSTS | No | Extra Host names the dashboard answers to (DNS-rebinding guard). | |
| FSV_BLOCK_PRIVATE | No | Refuse loopback / RFC 1918 targets (SSRF protection). Cloud-metadata ranges are always refused. | off |
| FSV_DISABLED_MODULES | No | Comma-separated module names to turn off. | |
| FSV_REQUIRE_VERIFICATION | No | Payload-sending scans only against hosts whose owner proved control. | off |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fsv_scanA | Run a web vulnerability scan against a target URL. Crawls the site (same-origin, skips logout/asset links) and runs modules by profile: 'passive' sends no payloads (headers, SSL/TLS, DNS, cookies, WAF, fingerprint, JWT, CSP, SRI, security.txt); 'balanced' (default) adds safe active checks (XSS, SQLi, CORS, open-redirect, SSTI, host-header); 'aggressive' is the same modules at higher rate/concurrency. Returns findings grouped with severity, CWE, OWASP category, confidence and remediation. Time-boxed by max_minutes (default 20; partial results are kept). use_ct_logs=true also asks Certificate Transparency logs (crt.sh) for subdomains (sends the domain to a third party — only with the user's consent); allow_external=false skips modules that contact hosts other than the target. seed_urls adds same-origin pages no link points to; headers/cookies make it an authenticated scan (use a test account, never a real user's session). Only scan targets the user owns or is authorized to test; pass authorized=true only after they confirm. |
| fsv_quick_checkA | Fast passive check of a single URL — no payloads sent. Runs security headers, SSL/TLS, cookies, clickjacking, CSP review, SRI, WAF/CDN detection, technology fingerprint, DNS (SPF/DMARC), HTTP methods, security.txt, and JWT analysis. Safe for a first look. Pass authorized=true after the user confirms authorization. |
| fsv_waf_checkA | Detect whether a target sits behind a Web Application Firewall or CDN (Cloudflare, AWS WAF, Akamai, Imperva, Sucuri, F5, ModSecurity, Fastly, …). Passive, single request. Pass authorized=true after the user confirms. |
| fsv_get_reportA | Get a formatted report for a completed scan. format: 'md' (default, OWASP-grouped), 'json', 'html' (self-contained), 'sarif' (for CI/code-scanning), 'csv', or 'fix-nginx' / 'fix-apache' / 'fix-caddy' / 'fix-express' / 'fix-dns'. |
| fsv_list_scansB | List recent scans with IDs, targets, status, risk grade and finding counts. Optionally filter by target host substring. |
| fsv_compare_scansA | Compare two scans by scan_id (e.g. before vs after a fix). Reports which findings were resolved, which are new, which persist, the risk-score delta and an improved/regressed verdict. Triaged-away findings are excluded, so false positives don't skew the diff. |
| fsv_target_trendB | Show the risk-score trend for a host across its scan history (oldest first) — useful for reporting whether a site's posture is improving over time. |
| fsv_triageA | Record a triage decision for a finding so it persists across future scans of the same host. status: 'confirmed', 'false_positive', 'accepted_risk', 'fixed', or 'open' (clears it). false_positive / accepted_risk / fixed are excluded from the risk score. Identify the finding by its id or fingerprint from a scan result. |
| fsv_fixesA | Turn a scan's findings into paste-ready remediation for one platform: 'nginx', 'apache', 'caddy', 'express' (helmet/cookies) or 'dns' (SPF/DMARC/CAA records, dangling-record removal). Only issues actually found produce a snippet; CSP is emitted report-only. Show the user the snippets and remind them to test on staging. |
| fsv_scan_statsC | Get the HTTP statistics of a scan (requests, cache hits, coalesced requests, retries, errors, status-code breakdown, average latency). |
| fsv_list_modulesA | List all FSV scan modules with their category (passive/active), scope (site/url) and what each checks, plus the available scan profiles. |
| fsv_verify_ownershipA | Prove control of a host so payload-sending scans are allowed on deployments that require it (FSV_REQUIRE_VERIFICATION=1). check=false returns the DNS TXT record / HTTP file to publish; check=true looks for it and records the proof. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| security_review | Guided, authorization-first security review of a site you own: quick look, full scan, attack paths first, then paste-ready fixes. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
fsv_scan, fsv_quick_check, and fsv_waf_check overlap because quick_check and waf_check are essentially subsets of scan's passive profile. fsv_fixes also overlaps with fsv_get_report's fix-* formats. Descriptions clarify the intended distinctions, but an agent still has to judge which nested tool to use.
All tools use a consistent fsv_ prefix and snake_case, which is predictable. Most follow action_object, but fsv_quick_check, fsv_waf_check, fsv_target_trend, fsv_fixes, fsv_triage, and fsv_scan_stats deviate from a strict verb_noun pattern.
Twelve tools is well within a reasonable range for a vulnerability scanner and covers distinct lifecycle stages: scanning, reporting, scan history, comparison, trend analysis, triage, remediation, stats, module listing, and ownership verification. The set is scoped without obvious bloat.
The surface covers the core scan lifecycle from ownership verification through scanning, reporting, triage, remediation, and historical comparison. Minor gaps exist around scan cancellation/deletion, scheduled scans, and direct finding retrieval outside reports, but agents can work around these.