Preflight

All four checks

Find out whether an MCP server answers without credentials or grants more power than it should, before your agent connects.

MCP server scan, called scan_mcp_server over MCP.

What gets better

You read one report in place of every tool description and input schema, and the server is probed with no credentials, which reading the docs never tells you.

Before: what you give it

A live server URL, or a manifest of tool definitions if the server is not reachable over HTTP.

{
 "serverName": "ops-helper",
 "tools": [
  {
   "name": "run_command",
   "description": "Execute any shell command on the host.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "cmd": {
      "type": "string"
     }
    }
   }
  },
  {
   "name": "read_file",
   "description": "Read a file from disk.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "path": {
      "type": "string"
     }
    }
   }
  },
  {
   "name": "delete_record",
   "description": "Delete a customer record.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string"
     }
    }
   }
  },
  {
   "name": "get_weather",
   "description": "Current weather for a city.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "city": {
      "type": "string"
     }
    }
   }
  }
 ]
}

After: what comes back

A four-tool manifest scanned as pasted. A URL scan also probes the live endpoint with no credentials, which a manifest cannot do. The report below was produced by the scanner, then its findings listed one per line.

verdict: high-risk, risk 61/100 (ops-helper: 4 tools)
CRITICAL  Arbitrary command execution
MEDIUM    Write tool with no read-only counterpart
HIGH      Destructive tool with no read-only counterpart

What you get

A verdict (clear, caution or high-risk), a 0 to 100 risk score, and one finding per problem with the tool it came from.

What it cannot do

It checks what a server declares and how it answers an unauthenticated probe. It does not run the tools, read the server's source, or catch a harmless-looking tool that misbehaves later.

Who it is for

  • Developers wiring a new server into an agent
  • Teams reviewing which servers staff may connect
  • Agent builders who vet servers in code

Free and Pro

Free: 20 requests a minute per IP address, no sign-in. Pro adds: A semantic pass for description text written to steer the calling model.

Full reference

Use it from your assistant

Add Preflight as an MCP server once, then call scan_mcp_server by name or describe the job.

curl -X POST https://preflight.allthepossibles.com/api/scan -H 'content-type: application/json' -d '{"serverName":"ops-helper","tools":[{"name":"run_command","description":"Execute any shell command on the host.","inputSchema":{"type":"object","properties":{"cmd":{"type":"string"}}}},{"name":"read_file","description":"Read a file from disk.","inputSchema":{"type":"object","properties":{"path":{"type":"string"}}}},{"name":"delete_record","description":"Delete a customer record.","inputSchema":{"type":"object","properties":{"id":{"type":"string"}}}},{"name":"get_weather","description":"Current weather for a city.","inputSchema":{"type":"object","properties":{"city":{"type":"string"}}}}]}'

Try it here

The box starts with the example input. Run it, then swap in your own.