Skip to content

ShipLatch

by shiplatch.com · remote · no sign-in to list tools · v1.0.0 · published by com.shiplatch

Free passive security scan for AI-built apps: leaked API keys, public .env files, security headers

Changes · 11 high finding

3 tools: 1 change things and 2 only read.

Scanned Oct 22, 2026

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

claude mcp add --transport http scanner https://shiplatch.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 high1 warn
  • The input schema at properties.focus.description refers to ".env".

    Matched text

    inputSchema.properties.focus.description: "...answer one question yes/no. env = is a .env file public; vite = is a dev server exp..."

    What this check looks for
  • The server marks "scan_url" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "run": a word for a change.

    What this check looks for

Tools

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

3 tools

Changes things 1Claude Code: ask
  • scan_urlRun ShipLatch's free passive security scan on a public web app URL (for example a Lovable, Bolt, Replit or Cursor app).2 findings

    Why it is in this group

    • The description's first verb is "run": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • High

      The input schema at properties.focus.description refers to ".env".

      Matched text

      inputSchema.properties.focus.description: "...answer one question yes/no. env = is a .env file public; vite = is a dev server exp..."

      What this check looks for
    • Warn

      The server marks "scan_url" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The description's first verb is "run": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Run ShipLatch's free passive security scan on a public web app URL (for example a Lovable, Bolt, Replit or Cursor app). Read-only: it fetches the page and its public JS like a browser would and never logs in, submits forms or tests exploits. Returns the grade, issue counts and the type of each issue; exact locations and fix prompts stay in the full report for the verified owner. Only scan sites you own or are authorized to test. Results for the same site are cached for 24 hours. If the scan takes longer than about 25 seconds it returns status "running" and a scan_ref: call get_scan with it.

    Annotations the server declares

    • title: Scan a web app (free, passive)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 2Claude Code: allow
  • get_scanGet the free summary of a ShipLatch scan by its scan_ref (from scan_url).No findings

    Why it is in this group

    • The name "get_scan" says "get": a word for reading.
    Description, as the server wrote it
    Get the free summary of a ShipLatch scan by its scan_ref (from scan_url). Use it when scan_url returned status "running". Results are kept for 7 days.

    Annotations the server declares

    • title: Get a scan result
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_checksList the categories of security checks ShipLatch runs, which are in the free passive scan and which need ownership verification.No findings

    Why it is in this group

    • The name "list_checks" says "list": a word for reading.
    Description, as the server wrote it
    List the categories of security checks ShipLatch runs, which are in the free passive scan and which need ownership verification. No network access.

    Annotations the server declares

    • title: List what ShipLatch checks
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

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.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http scanner https://shiplatch.com/mcp

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__scanner__get_scan",
      "mcp__scanner__list_checks"
    ],
    "ask": [
      "mcp__scanner__scan_url"
    ],
    "deny": []
  }
}

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 scanner. Review it before you use it.