Skip to content

SecScan

by secscan.us · remote · no sign-in to list tools · v1.1.0 · published by us.secscan

Scan, monitor and fix a live web app from your editor: graded security reports with fix prompts.

Deletes · 1Changes · 5

12 tools: 1 can delete or cancel things, 5 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http secscan https://secscan.us/api/mcp --header 'Authorization: <your-authorization>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

12 tools

Deletes or cancels 1Claude Code: deny
  • dismiss_findingMark a finding as a false positive for this site, so future scans of it stop reporting it — the same as Dismiss in the app, and undoable there.No findings

    Why it is in this group

    • The name "dismiss_finding" says "dismiss": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Mark a finding as a false positive for this site, so future scans of it stop reporting it — the same as Dismiss in the app, and undoable there. ONLY use this after the user has confirmed the finding is wrong; never dismiss a real problem to improve a grade.

    Annotations the server declares

    • destructiveHint: true
Changes things 5Claude Code: ask
  • add_monitorPut a site the user owns under continuous monitoring: hourly uptime checks, CVE matching, certificate alerts and regular rescans.No findings

    Why it is in this group

    • The name "add_monitor" says "add": a word for a change.
    Description, as the server wrote it
    Put a site the user owns under continuous monitoring: hourly uptime checks, CVE matching, certificate alerts and regular rescans. Runs a full baseline scan straight away, which uses one of the user's scans exactly as in the app (free for plan holders). Returns the baseline scan_id for get_scan_status.

    Annotations the server declares

    • openWorldHint: true
  • check_domain_verificationCheck whether the file or DNS record from start_domain_verification is live.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Check whether the file or DNS record from start_domain_verification is live. On success the domain is verified and its next scan includes active tests. DNS changes can take a few minutes.

    Annotations the server declares

    • idempotentHint: true
    • openWorldHint: true
  • monitor_scan_nowRun a full scan of a monitored site now instead of waiting for its schedule — e.g.No findings

    Why it is in this group

    • The description's first verb is "run": a word for a change.
    Description, as the server wrote it
    Run a full scan of a monitored site now instead of waiting for its schedule — e.g. to confirm a fix. Free for plan holders; otherwise uses one of the user's scans, as in the app. Takes the monitor id from list_monitors.

    Annotations the server declares

    • openWorldHint: true
  • scan_urlStart a SecScan security scan of a web application the user owns or is authorised to test.No findings

    Why it is in this group

    • The description's first verb is "start": a word for a change.
    Description, as the server wrote it
    Start a SecScan security scan of a web application the user owns or is authorised to test. Returns a scan_id; most scans finish in under a minute — then call get_scan_status with wait_seconds, or get_report. Active tests (injection, XSS, SSRF…) run only on domains the user has verified; others get passive checks. Optionally also reads a GitHub repository's source (github_repo): any public one, or a private one the user connected at secscan.us. That only contacts GitHub, never the site. Each scan uses one of the user's free scans, plan scans or credits.

    Annotations the server declares

    • openWorldHint: true
  • start_domain_verificationBegin proving the user owns a domain, which unlocks active tests (injection, XSS, SSRF, access control) on its scans.No findings

    Why it is in this group

    • The name "start_domain_verification" says "start": a word for a change.
    Description, as the server wrote it
    Begin proving the user owns a domain, which unlocks active tests (injection, XSS, SSRF, access control) on its scans. Returns a file to publish on the site, or a DNS TXT record — an editor can usually add the file to the codebase and deploy it. Then call check_domain_verification. Calling it again returns the same token, so a record already published stays valid.

    Annotations the server declares

    • idempotentHint: false
Only reads 6Claude Code: allow
  • get_accountHow many scans the user can still run — free scans, plan scans and credits — and their plan.No findings

    Why it is in this group

    • The name "get_account" says "get": a word for reading.
    Description, as the server wrote it
    How many scans the user can still run — free scans, plan scans and credits — and their plan. Check this before starting several scans.

    Annotations the server declares

    • readOnlyHint: true
  • get_reportThe finished report for a scan: grade, what the scan tested and what it skipped (a clean grade says nothing about skipped areas, so say so), prioritised findings with fixes and evi…No findings

    Why it is in this group

    • The name "get_report" says "get": a word for reading.
    Description, as the server wrote it
    The finished report for a scan: grade, what the scan tested and what it skipped (a clean grade says nothing about skipped areas, so say so), prioritised findings with fixes and evidence, and a fix prompt written for the user's AI editor. Findings come 25 per page, most severe first — pass offset for the next page, or min_severity (e.g. "high") to focus on what matters most.

    Annotations the server declares

    • readOnlyHint: true
  • get_scan_statusStatus of a scan (queued, scanning, analyzing, complete, failed).No findings

    Why it is in this group

    • The name "get_scan_status" says "get": a word for reading.
    Description, as the server wrote it
    Status of a scan (queued, scanning, analyzing, complete, failed). With wait_seconds (max 60) it waits for the scan to finish and returns the full report as soon as it does.

    Annotations the server declares

    • readOnlyHint: true
  • list_monitorsSites under continuous monitoring: latest grade, last and next scan, uptime check, CVE alerts, new problems in the last scan and certificate expiry.No findings

    Why it is in this group

    • The name "list_monitors" says "list": a word for reading.
    Description, as the server wrote it
    Sites under continuous monitoring: latest grade, last and next scan, uptime check, CVE alerts, new problems in the last scan and certificate expiry. Use the monitor id with monitor_scan_now.

    Annotations the server declares

    • readOnlyHint: true
  • list_recent_scansThe user's most recent scans with their status, newest first.No findings

    Why it is in this group

    • The name "list_recent_scans" says "list": a word for reading.
    Description, as the server wrote it
    The user's most recent scans with their status, newest first.

    Annotations the server declares

    • readOnlyHint: true
  • list_verified_domainsDomains the user has proved they own.No findings

    Why it is in this group

    • The name "list_verified_domains" says "list": a word for reading.
    Description, as the server wrote it
    Domains the user has proved they own. Only these receive active testing (injection, XSS, SSRF, access control); others get passive checks. Verify more at https://secscan.us/domains.

    Annotations the server declares

    • readOnlyHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http secscan https://secscan.us/api/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__secscan__get_scan_status",
      "mcp__secscan__get_report",
      "mcp__secscan__list_recent_scans",
      "mcp__secscan__list_verified_domains",
      "mcp__secscan__get_account",
      "mcp__secscan__list_monitors"
    ],
    "ask": [
      "mcp__secscan__scan_url",
      "mcp__secscan__start_domain_verification",
      "mcp__secscan__check_domain_verification",
      "mcp__secscan__add_monitor",
      "mcp__secscan__monitor_scan_now"
    ],
    "deny": [
      "mcp__secscan__dismiss_finding"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as secscan. Review it before you use it.