API and MCP setup
Connect Crawle to an AI assistant with MCP, or to your own scripts with an API key.
On this page
Choose how to connect
MCP with OAuth
- Use it when
- A person connects Crawle to an AI assistant or agent platform.
- Sign-in
- OAuth: the person approves the scopes.
- Access
- Read. Write tools are in preview and also need the person's workspace role.
- Workspaces
- Every workspace the person can open, one at a time.
API key
- Use it when
- A server-side script, scheduled job or integration runs without an interactive user.
- Sign-in
- A key created in the app under Settings › API keys.
- Access
- Read only.
- Workspaces
- The one workspace the key belongs to.
Connect Crawle to your AI assistant
Step 1: Add the connector
Add Crawle as a remote MCP connector in your agent platform, with this server URL.
URLhttps://api.crawle.io/mcp
Step 2: Sign in with OAuth
Authenticate with OAuth when the agent platform asks to connect Crawle.
Step 3: Approve only the scopes you need
Reconnect the connector after scope changes, so the agent receives the updated grant.
Step 4: Try a first prompt
Ask the agent to list your workspaces before it inspects sites. The connected app then shows in Crawle under Settings › Connected apps.
Scopes
A tool needs one scope. Approve the read scopes for questions; add a write scope only when the agent should change something.
Read
sites:read- Gives access to
- AI readiness, account context, client groups, crawl exclusion rules, effective settings, google, migrations, overview, regions, sitemaps, sites, tags, verification, weekly report settings, weekly reports, workspaces
- Example tool
list_ai_bot_access
urls:read- Gives access to
- URLs, google, segments
- Example tool
list_segments
issues:read- Gives access to
- issues, redirect chains
- Example tool
list_issues
alerts:read- Gives access to
- alert trigger configs, alerts, custom extractions, incidents, notification settings
- Example tool
list_alert_trigger_configs
changes:read- Gives access to
- URLs, changes
- Example tool
list_recent_changes
links:read- Gives access to
- internal link score, links
- Example tool
list_links
exports:read- Gives access to
- exports
- Example tool
list_exports
historical:read- Gives access to
- GSC, historical
- Example tool
list_gsc_query_metrics
technology:read- Gives access to
- technology
- Example tool
list_technology_findings
workspaces:read- Gives access to
- workspaces
- Example tool
list_workspaces
account:read- Gives access to
- account context
- Example tool
get_workspace_context
Write
OAuth only, and the person's role must allow the change.
sites:write- Gives access to
- AI readiness, URL submissions, URLs, delete preview, migrations, segments, sitemaps, sites, verification
- Example tool
create_segment
settings:write- Gives access to
- bulk settings
- Example tool
apply_bulk_settings
alerts:write- Gives access to
- alert policy, alert trigger configs, custom extractions, notification settings
- Example tool
create_alert_trigger_override
exports:write- Gives access to
- exports
- Example tool
create_export
workspace:write- Gives access to
- client groups, tags
- Example tool
create_client_group
team:write- Gives access to
- team
- Example tool
update_team_member_role
technology:write- Gives access to
- technology
- Example tool
update_site_technology_settings
Workspace context
Workspace context is explicit, so agencies can use one account across multiple client workspaces without leaking data between them.
Example prompts
MCP works best when the request is specific about workspace, site, severity, time window, and desired output.
“List critical issues for example.com and group them by template or URL pattern.”
Reads the site's issues with
list_issues(issues:read).“Find broken internal links, include source pages, and suggest which links should be updated first.”
Reads links with
list_links(links:read).“Summarize what changed on this site during the last 24 hours and separate open from resolved incidents.”
Reads changes and incidents with
list_recent_changesandlist_incidents(changes:read,alerts:read).“Check the detected technology stack for this site and summarize any high-confidence exposed-version risks.”
Reads the stack with
get_site_technology_stack(technology:read).
What the agent gets back
For the incidents prompt, the tool's REST equivalent GET /v1/api/sites/{site_id}/incidents returns this shape:
{
"items": [
{
"acknowledged_at": "example",
"acknowledged_by": "example",
"affected_count": 1,
"closure_kind": "merged_into_group",
"created_at": "example",
"details": {},
"eligibility_revision": 1,
"escalation_count": 1,
"extra_data": {
"closure_kind": "consumed"
},
"first_detected_at": "example",
"id": 1,
"last_checked_at": "example",
"membership_key": "example",
"membership_revision": "example",
"membership_state": "confirmed",
"redirected_count": 1,
"resolved_at": "example",
"resolved_count": 1,
"restored_count": 1,
"severity": "critical",
"status": "active",
"summary": "example",
"title": "Example",
"trigger_type": "example",
"website_id": 1
}
],
"limit": 1,
"next_cursor": "example",
"offset": 1,
"resolve_selection_count": 1,
"resolve_selection_filter_summary": {},
"resolve_selection_skipped_count": 1,
"resolve_selection_token": "example",
"selection_count": 1,
"selection_filter_summary": {},
"selection_token": "example",
"sort_by": "example",
"total": 1,
"unclassified_count": 1
}API keys for scripts
API keys are still useful for server-side scripts, scheduled jobs, and integrations that do not involve an interactive user. Grant the narrowest scopes needed and rotate keys when teammates, vendors, or automation ownership changes.
Last updated October 29, 2026