# Intruder MCP connector

Connect Intruder to Elaichi and Claude, ChatGPT, Cursor or any MCP client can list targets, review open issues, start scans and manage scan schedules inside the Intruder access that was connected, with every call logged.

Source: https://elaichi.ai/connectors/intruder/

## Facts

| | |
| --- | --- |
| Application | Intruder |
| Category | Security |
| AI tools | 31 |
| Authentication | Connects with an API key |
| Bring your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Intruder is connected

- Which Intruder issues are still open on our production targets?
- Start a scan of the new web servers we added yesterday.
- What did we fix in Intruder over the last thirty days?

## Connect Intruder in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Intruder.
2. Optionally set Share with, then press Connect.
3. Paste an Intruder API key. One person generates a token in Intruder and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Intruder tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Intruder MCP connector for Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Intruder MCP connector for ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Intruder MCP connector for Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Intruder to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Intruder tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Intruder through Elaichi

### Get a morning read on open issues

Security. Ask which Intruder issues are still open, where each one occurs and what the scanner actually found, then leave a comment on the occurrence so the next person knows where it stands.

### Add new servers as targets

IT. When a batch of new hosts goes live, add them to Intruder as targets in one go, tag them, and confirm the license has room for them.

### Kick off a scan after a release

Engineering. Once a deploy lands, start an Intruder scan on the affected targets, check its progress, and cancel it if the release is rolled back.

### Show what was fixed this quarter

Compliance. Pull the Intruder occurrences marked fixed in a date range and turn them into the evidence an auditor asks for, without exporting anything by hand.

### Keep scan schedules current

Security. List every Intruder scan schedule, change the ones that cover retired targets, and remove the schedules nobody needs anymore.

### Register API schemas for new services

AppSec. Attach an API schema to an Intruder target so the next scan covers the endpoints a new service exposes, and remove schemas for services that were shut down.

## Frequently asked questions

### How do I connect Intruder to Claude?

In Elaichi, choose Intruder and paste in your Intruder API key. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. There is no OAuth application to register and no client ID or secret to generate, so the whole thing takes a few minutes.

### Does Intruder work with ChatGPT and Cursor as well as Claude?

Yes. Intruder is connected once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. Nothing is set up separately for each client.

### What can an AI agent actually do with my Intruder data?

An agent can list your Intruder targets, scans and open issues, show where each issue occurs and what the scanner output said, and read or add comments on an occurrence. It can also start or cancel a scan, add or remove targets, manage scan schedules and API schemas, and check licenses and health. Short, specific asks such as open issues on production targets work better than long sentences.

### Does connecting Intruder give the AI access to every target and scan?

Access follows the Intruder API key that was connected, so the AI sees the targets, issues and scans that key can see and nothing more. Elaichi can narrow that further for each team, for example read-only on issues, but it can never widen what the key already allows.

### Can my team share one Intruder connection?

Yes. One person connects Intruder in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who started a scan or added a target, not the connection.

### Can I stop an agent from deleting targets or changing scan schedules in Intruder?

Yes. Restrictions in Elaichi apply per action, so you can allow listing Intruder issues and scans while blocking target deletion or schedule changes. A restricted action is never advertised to the AI client at all, so no prompt can reach it.

### What happens to an Intruder connection when someone leaves?

Offboarding a person in Elaichi ends their access to Intruder at once, across every client they used. A shared Intruder connection keeps working for everyone else on the team. If you disconnect Intruder in Elaichi, it is removed from Claude, ChatGPT, Cursor and every other client in one step.

### Does the Intruder MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Intruder is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 31 Intruder tools

Every tool below is callable through https://api.elaichi.ai/mcp once Intruder is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Intruder health** (List). Check that the Intruder API is running normally. Returns: status, authenticated_as, openapi, info, paths, components, servers.
- **List all Intruder issue occurrences** (List). List occurrences for an issue in Intruder. Returns: id, occurrence_id, target, display_address, port, protocol, extra_info, age, snoozed, snooze_reason, snooze_until, exploit_likelihood, cvss_score, first_seen_at, target_last_scanned_at, cves. Required: issue_id. occurrence_id is the stable ID that persists across scans; id may change between scans.
- **List all Intruder issues** (List). List current issues in Intruder, with filters for severity, snoozing, tags, target addresses, and new occurrences since a timestamp. Returns: id, severity, title, description, remediation, snoozed, snooze_reason, snooze_until, occurrences, exploit_likelihood, cvss_score.
- **Create a Intruder scan** (Create). Start a scan in Intruder. Returns the created scan including its id, status, scan_type, created_at, target_addresses, and start_time. Optionally pass target_addresses and/or tag_names in the body — with no body it scans all targets. Max 500 active and scheduled scans.
- **List all Intruder scans** (List). List current scans in Intruder. Returns scan records including id, status, scan_type, schedule_period, and created_at; filter by scan_type, status, schedule_period, or tag_names.
- **Intruder scans cancel** (Cancel). Cancel a running scan in Intruder. Returns the confirmation string "Scan was cancelled" on success. Required: scan_id.
- **Get single Intruder scan by ID** (Get). Get a single Intruder scan's details by id. Returns: id, status, created_at, target_addresses, scan_type, throttled, web_ports_only, schedule_period, start_time, completed_time, openapi, info, paths, components, servers. Required: id.
- **Intruder targets bulk create** (Create). Bulk add multiple targets in Intruder, including CIDR ranges. Returns the created target including id, address, display_address, target_status, license_type, and tags. Required: address for each target in the array.
- **Create a Intruder target** (Create). Add a target in Intruder. Returns the created target including id, address, display_address, target_status, target_type, license_type, and tags. Required: address; type and url when target_authentication is supplied.
- **List all Intruder targets** (List). List Intruder targets. Returns: id, address, display_address, has_api_schemas, has_authentications, last_scanned, license_type, waf_provider, waf_interference, tags, target_status, target_type. Filter by address, status, type, tags, or last scan date.
- **Delete a Intruder target by ID** (Delete). Delete an Intruder target by id. Returns an empty 204 response on success. Required: id.
- **List all Intruder fixed occurrences** (List). List fixed occurrences in Intruder — vulnerabilities that have been resolved. Returns each occurrence with id, title, severity, cvss_score, affected_host, first_seen_at, and remediated_at.
- **List all Intruder licenses** (List). List infrastructure and application license counts in Intruder. Returns: total_infrastructure_licenses, available_infrastructure_licenses, consumed_infrastructure_licenses, total_application_licenses, available_application_licenses, consumed_application_licenses.
- **Create a Intruder occurrence comment** (Create). Add a comment to an occurrence in Intruder. Returns the created comment including its id, content, commenter_type, user, and created_at. Required: issue_id, occurrence_id, content.
- **List all Intruder occurrence comments** (List). List comments on an occurrence in Intruder, newest first. Returns: id, content, commenter_type, user, created_at, edited_at. Required: issue_id, occurrence_id.
- **List all Intruder occurrence scanner output** (List). List scanner output entries for an occurrence of an issue in Intruder. Returns: id, plugin, scanner_output. Required: issue_id, occurrence_id.
- **Create a Intruder scan schedule** (Create). Create a scan schedule in intruder that runs recurring scans on your targets. Returns: id, notice, openapi, info, paths, components, servers. Requires name, first_scan_time, and scan_frequency (monthly, daily, weekly, or quarterly); first_scan_time must be in the future and on the hour.
- **Delete a Intruder scan schedule by ID** (Delete). Delete a scan schedule in intruder by id, stopping its scheduled recurring scans. Returns an empty 204 response on success. Required: id.
- **List all Intruder scan schedules** (List). List all scan schedules in intruder. Returns: id, name, schedule_period, first_scan_time, next_scan_date, status, throttled, web_ports_only, latest_scan_id, latest_scan_status, last_scan_start_time, last_scan_end_time, targets, target_tags, upload_to_drata, upload_to_vanta.
- **Update a Intruder scan schedule by ID** (Update). Update a scan schedule in intruder by id. All body fields (name, first_scan_time, scan_frequency, tags, targets, throttled, web_ports_only, upload_to_drata, upload_to_vanta) are optional for a partial update. Returns: notice, openapi, info, paths, components, servers. Required: id.
- **List all Intruder tags** (List). List tags in Intruder. Returns the collection of tag records, each containing its name (up to 40 characters), which also serves as the tag's identifier when adding or removing it from targets. Default page size 25.
- **Create a Intruder target API schema** (Create). Add an API schema to a target in Intruder by uploading a schema file. Returns the created schema including its id, name, base_url, and target_authentication_id. Required: target_id, name, base_url, file (multipart).
- **Delete a Intruder target API schema by ID** (Delete). Delete an API schema from an Intruder target by id. Returns an empty 204 response on success. Required: id and target_id.
- **List all Intruder target API schemas** (List). List API schemas attached to an Intruder target. Returns each schema's id, name, base_url, and target_authentication_id. Required: target_id.
- **Update a Intruder target API schema by ID** (Update). Update an API schema on an Intruder target, optionally replacing its schema file. Returns the updated schema including its id, name, base_url, and target_authentication_id. Required: id and target_id.
- **Create a Intruder target authentication** (Create). Add an authentication to a target in Intruder. Returns the created authentication object including its id, url, type, name, and enabled status. Required: target_id, type, url.
- **Delete a Intruder target authentication by ID** (Delete). Delete an authentication from a target in Intruder by id. Returns an empty 204 response on success. Required: target_id, id.
- **List all Intruder target authentications** (List). List the authentications configured for a target in Intruder. Returns each authentication's id, url, type, name, and enabled status. Required: target_id.
- **Update a Intruder target authentication by ID** (Update). Update an authentication on a target in Intruder. Returns the updated authentication with id, url, type, name, and enabled status. Required: target_id, id. All cookies, headers, and additional_parameters key-value pairs you want present must be included in the request; omitted values are removed.
- **Create a Intruder target tag** (Create). Create a tag for a target in Intruder. Returns the created tag object including its name (up to 40 characters). Required: target_id, name.
- **Intruder target tags bulk delete** (Delete). Delete a tag from a target in Intruder by tag name. Returns an empty 204 response on success. Required: target_id, tag_name.
