graphql_introspect
Run a GraphQL introspection query against any endpoint to retrieve and summarize its schema for security auditing. Includes SSRF protection with optional private address override.
Instructions
Run a GraphQL introspection query against url and summarize the schema.
Single HTTP POST. Read-only. Will not mutate state on the server.
By default, requests resolving to private / loopback / link-local /
cloud-metadata addresses are blocked (SSRF protection). Set
allow_private=True to override — useful when explicitly auditing
internal infrastructure.
Redirects are disabled (an HTTP 3xx from the target raises
HTTP-error: redirects disabled). This prevents a public endpoint from
redirecting the request to a private address after the pre-flight check.
Residual risk: DNS rebinding. The pre-flight resolution and the actual HTTP request happen in separate syscalls and the OS may resolve the hostname twice. A hostile DNS that returns a public IP for the check and a private IP for the request can defeat the guard. For high-stakes environments, run this tool inside a network namespace / egress proxy that enforces address restrictions independently.
Args:
url: Full GraphQL endpoint URL (e.g. https://api.example.com/graphql).
timeout: Network timeout in seconds (clamped to [1, 60]).
insecure: Skip TLS verification (for self-signed certs in test envs).
allow_private: Permit requests to private / internal addresses.
Default False.
Returns:
IntrospectReport summarizing the schema and security observations.
If the URL resolves to a private address and allow_private is
False, returns {"error": "blocked-private-address", ...}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| timeout | No | ||
| insecure | No | ||
| allow_private | No |