Docs / MCP server reference
CrawlRaven MCP server
Free preview + paidVerified August 2026A remote Model Context Protocol server that exposes approved CrawlRaven data to an AI client through typed, read-only tools and OAuth. Full access has eight tools; eligible free previews have seven bounded tools for one website. New to this? The connection guide covers the in-app consent and revocation workflow.
Looking for help with the app itself? Start with the CrawlRaven product guides.
https://mcp.crawlraven.com/mcp
Overview
Add the server URL to a client that supports remote MCP over OAuth, approve the connection in the browser, and the CrawlRaven tools appear in that client. There is nothing to install and no key to paste.
Tools return structured data with a short text summary attached, so a model receives the rows themselves rather than a rendered dashboard. Typical calls: which queries lost clicks over 90 days, what to work on this week from the opportunity list, whether a Google update lines up with a drop in the daily rows.
| Property | Value |
|---|---|
| Endpoint | |
| Transport | Remote HTTP (Streamable HTTP) |
| Authentication | OAuth authorization code with S256 PKCE |
| Tools | 8 with full access; 7 in free preview |
| Scopes | 5 with full access; 4 in free preview |
| Side effects | None. Every tool fetches data. |
Availability
Full access is included with paid plans
A paid allowance from a lifetime deal, active subscription, or support override enables the full eight-tool catalog. Eligible free accounts can use the bounded preview while the experiment is enabled for them.
| Access mode | What it includes |
|---|---|
| Free preview | One activated website; fixed 28-day Search Console reporting; up to 50 Query, Page, Opportunity, or Target Keyword rows; no pagination or annotations; 20 tool calls shared by the account each UTC day. |
| Full access | All eight approved tools, supported reporting windows, and cursor pagination within each tool’s documented bounds. |
Free preview is account-specific, not a promise for every free account. Its first approved grant pins the account to one activated website; later free grants cannot choose another. Upgrading does not widen an existing free grant’s scopes or remove its website pin. Reconnect after upgrading to review full access.
Eligibility is checked on every tool call. If paid access lapses, a paid grant stays visible and revocable but returns no data until paid access is restored. If a free preview becomes unavailable, its grant likewise remains visible and revocable.
See Billing for current plan availability, or the changelog for what shipped when.
Quickstart
- 01
Add the server URL
In the MCP or connector settings of an OAuth-capable client, add as the server.
- 02
Sign in to CrawlRaven
The client opens a browser prompt. Sign in with the account that owns the websites you want the agent to see.
- 03
Review the consent screen
Check the client name, choose an eligible CrawlRaven account, and read the requested scopes. A free preview also asks for its pinned website. One grant covers one client, one user, and one account.
- 04
Approve and return to the client
Let the browser tab finish its redirect. Closing it early leaves the token exchange incomplete, which is the usual reason no tools appear.
- 05
Call list_websites
It returns the
website_idevery other tool needs.
Client setup
Claude.ai and Claude Desktop
Customize > Connectors > add a custom connector, then paste the server URL.
https://mcp.crawlraven.com/mcp
Claude Code
Add the server, then authenticate from /mcp or with claude mcp login crawlraven.
claude mcp add --transport http crawlraven https://mcp.crawlraven.com/mcp
ChatGPT
Enable developer mode, add a custom connector with the server URL, complete the OAuth prompt.
https://mcp.crawlraven.com/mcp
Codex
Add the Streamable HTTP server URL, then sign in from the CLI.
codex mcp login crawlraven
OpenClaw
Add the server with OAuth, then log in.
openclaw mcp add crawlraven --url https://mcp.crawlraven.com/mcp \ --transport streamable-http --auth oauth openclaw mcp login crawlraven
Cursor
Add a remote Streamable HTTP MCP server with the CrawlRaven URL, choose OAuth when prompted.
https://mcp.crawlraven.com/mcp
Authorization
CrawlRaven supports the standard client registration order and falls back down it: a pre-registered client ID, currently used only by MCP Inspector, then Client ID Metadata Documents, which clients such as ChatGPT prefer, then RFC 7591 Dynamic Client Registration.
| Item | Behavior |
|---|---|
| Flow | Authorization code with S256 PKCE on all three registration paths |
| Consent | Per client, user, and account; requested again for a different account |
| Access token | One hour |
| Refresh token | Rotates after each successful renewal |
| Expiry | Refresh tokens, DCR registrations and grants all expire after 90 days |
| Callbacks | HTTPS redirect URIs must match exactly. Native clients may use an HTTP loopback callback, where only the port may vary. |
Do not paste secrets
The client performs OAuth discovery on its own. A CrawlRaven personal access token, a Google token or a browser cookie does not belong in a client configuration.
Tools
Eight tools ship in the full catalog. A client only sees tools covered by its approved scopes. Free preview grants receive the first seven tools below; list_annotations is full-access only.
| Tool | Access | Scope | Returns | Parameters |
|---|---|---|---|---|
list_websites | Full + preview | websites:read | Website IDs, display names, site URLs, lifecycle status, activation state, and full-workspace access for the authorized account. | None |
get_website_overview | Full + preview | search_performance:read | A compact Search Console overview for one website: the reporting period, plus current and previous clicks, impressions, CTR and average position. | website_id, days |
get_search_performance | Full + preview | search_performance:read | Daily Search Console rows for one website with current versus previous KPI comparisons and period availability. | website_id, days |
list_queries | Full + preview | search_performance:read | Top Search Console queries with clicks, impressions, CTR and average position, within a bounded top-query corpus. | website_id, days, search, limit, cursor |
list_pages | Full + preview | search_performance:read | Top ranking pages with clicks, impressions, CTR and average position, within a bounded top-page corpus. | website_id, days, search, limit, cursor |
list_opportunities | Full + preview | opportunities:read | Opportunities ordered by pinned state, Priority, and SEO impact, with lifecycle status, evidence, and recommended actions. | website_id, status, limit, cursor |
list_target_keywords | Full + preview | targets:read | Durable target keyword plans: intended URLs, intent groups, priority, status, source, volume, and difficulty where saved. | website_id, status, search, limit, cursor |
list_annotations | Full only | annotations:read | The website timeline: manual notes, Google updates, and opportunity lifecycle changes, paging backward through the window. | website_id, days, limit, cursor |
Parameters
| Name | Type | Notes |
|---|---|---|
website_id | string, required | The website to query. Every tool except list_websites needs one. |
days | number, default 28 | Reporting window. Search Console tools accept 7, 28, 90 or 365. list_annotations accepts 1 through 400. |
search | string, optional | Case-insensitive substring filter, up to 500 characters. Applies to query keys, page keys or target keywords. |
status | enum, optional | Opportunities: active, in_progress, resolved, returned, ignored, snoozed, all. Omitted returns active and returned. Target keywords: targeted or ignored. |
limit | number, default 25 | Rows per page, capped at 100. list_annotations defaults to 100 and caps at 200. |
cursor | string, optional | The next_cursor from the previous page, passed back to get the next one. It stops working if the filters or the window change. |
Free preview fixes days at 28, caps list results at 50, and removes cursor. Full-access validation follows the parameter table above.
Example prompts
You never call a tool yourself. You ask in plain language and the client picks the tool, fills in the parameters, and pages through results if it needs to. These are prompts that reliably land on each tool, so they double as a map of what the connection is good for.
Replace the site placeholder
Replace [your site] with the exact CrawlRaven site name or domain before pasting. Everything except list_websitesneeds a website, so naming it avoids an extra discovery call. Timeline prompts require full access because free preview does not include annotations.
list_websites
Anything that starts with which site. The agent needs a website_id before it can call anything else, so this usually runs on its own the first time.
- Which websites do I have in CrawlRaven?
- Which of my sites are activated, and which have full workspace access?
- Use [your site] for everything I ask next.
get_website_overview
The headline number. One call, one period, and the same period before it.
- How did [your site] do in search over the last 28 days?
- Are clicks on [your site] up or down against the previous period, and did position move with them?
- Give me a two-sentence search summary for [your site] over the last 90 days.
get_search_performance
Anything about shape over time. This returns a row per day, so the agent can find the week something changed.
- Walk through daily clicks for [your site] over the last 90 days and point out the sharpest drops.
- Did traffic to [your site] fall gradually or overnight?
- Which week in the last year was the worst for impressions on [your site]?
list_queries
Questions about what people searched. Filterable by text, so you can scope it to a topic.
- What are the top queries for [your site] over the last 28 days?
- Which queries containing pricing get impressions but almost no clicks?
- Compare the top queries for the last 28 days with the last 90 and tell me what is new.
list_pages
Questions about which URLs earn the traffic, and which are stuck just off the first page.
- Which pages on [your site] get the most clicks this month?
- Find pages with real impressions sitting between position 8 and 20.
- Which of my blog posts lost the most clicks against the previous period?
list_opportunities
The what should I do question. Opportunities already carry impact estimates, evidence and a recommended action, so the agent is reading a decision rather than inventing one.
- What should I work on this week for [your site]?
- Show the highest-impact active opportunities and explain the evidence behind the top three.
- Turn the top five opportunities into a checklist I can hand to a writer.
list_target_keywords
Questions about the plan rather than the past: what you decided to target and which URL was meant to rank.
- List the target keywords for [your site] with their planned URLs.
- Which target keywords are still marked as targeted but have no planned URL?
- Group my target keywords by intent and show which high-priority terms are missing a planned URL.
list_annotations
Questions about why. The full-access timeline carries your own notes, Google updates, and opportunity milestones.
- What happened on [your site] over the last 90 days?
- Was there a Google update near the drop in early June?
- Show the timeline for the last year and line the notes up with the traffic changes.
Prompts that chain tools
The connection is more useful when one question needs several tools. The agent decides the order, so you can ask for the outcome rather than the steps.
Monthly client update
Overview for the headline, pages and queries for the movers, timeline for the explanation.
- Write the monthly search update for [your site]: how the period compared with the one before, the pages and queries that moved most, and anything on the timeline that explains it.
Decay triage
Pages first, then content-decay opportunities and the timeline to separate a page problem from a broader Google change.
- Find the pages on [your site] that lost the most clicks over 90 days, check for matching content-decay opportunities, and see whether a Google update lines up with the drop.
Plan coverage
The durable target plan compared with the bounded top-query corpus.
- Compare my target keywords for [your site] with the top returned Search Console queries, and flag planned terms that are absent from that bounded query list.
Sprint planning
Opportunities ranked by impact, sized against the traffic the affected pages already earn.
- Give me the current opportunities for [your site] ordered by impact, and for each one tell me what the affected page currently earns so I can judge whether it is worth it.
Every prompt that contains [your site] is a template. Replace it with the exact site name or domain before pasting. If the client cannot match it, it will call list_websites and ask which site you meant.
Prompts by role
Start with the job you are doing rather than a tool name. The badge under each prompt shows the minimum access it expects. Free prompts use the pinned website, fixed 28-day period, first result page, and shared daily allowance; full-access prompts can use broader periods, pagination, and the timeline.
Founder / owner
A concise decision brief without SEO jargon. Start with the preview-safe prompt; use the second when timeline access is available.
- Use my CrawlRaven site. Summarize the last 28 days against the preceding period, name the three current opportunities that matter most, and give me one concrete next action for each. Keep it to ten bullets and state any data limits.Preview + full
- Prepare my 90-day owner brief for [your site]: headline search movement, the pages that lost the most clicks in the returned corpus, the three highest-priority current opportunities, and any nearby timeline event worth investigating. Do not claim that timing proves causation.Full access
SEO specialist
Diagnosis with explicit periods, bounded rows, and evidence behind each recommendation.
- For my pinned site, find returned queries with meaningful impressions and average position between 4 and 20 over the available 28-day period. Compare them with current striking-distance opportunities and rank the best five actions by Priority.Free preview
- For [your site], inspect the 90-day query corpus page by page until next_cursor is empty. Find high-impression returned queries in positions 4–20, compare them with current opportunities and target keywords, and state how many rows you inspected and whether the source was truncated.Full access
Agency / consultant
Client-ready reporting that keeps the site, period, comparison, and evidence boundary attached.
- Create a client-safe 28-day search update for my pinned site: headline KPI movement, the five returned Query and Page movers, and the top three current opportunities. Separate observations from recommendations and include the report scope.Free preview
- Write the monthly search update for [your site] using the last 90 days: KPI comparison, leading returned Query and Page gains and losses, current opportunity priorities, and relevant notes or Google updates from the timeline. End with three next actions and a data-boundary note.Full access
Content lead / editor
Turn current search evidence and the durable target plan into an editorial queue.
- For my pinned site, combine the five highest-priority current opportunities with targeted keywords that have no planned URL. Produce a short editorial queue with the evidence and recommended action for each item.Preview + full
- For [your site], find current content-decay opportunities, inspect the affected pages' returned 90-day search performance, and compare them with the durable target plan. Produce an editorial brief for the best five candidates and identify where the evidence is only partial.Full access
Developer / analyst
Structured, reproducible output without inventing unsupported REST endpoints or write operations.
- Return a JSON object for my pinned site with its website_id, lifecycle and access state, the 28-day KPI values and deltas, and the request scope used. Do not call tools that are not needed for those fields.Preview + full
- For [your site], retrieve the 365-day daily Search Console series and the complete available 90-day Page result set using next_cursor. Return JSON with the reporting periods, rows inspected, truncation state, and whether cursor pagination completed. Do not fetch URLs or use undocumented API routes.Full access
Just exploring
Learn what the account contains before asking for a deeper analysis.
- Show which CrawlRaven websites I can use, explain which one is available to this connection, and suggest three useful read-only questions I can ask next without exceeding my access mode.Preview + full
Scopes
A grant is bound to one user and the one account picked during consent. Full access can approve five scopes. Free preview is restricted to websites, search performance, opportunities, and target keywords; it does not grant annotations:read.
| Scope | Grants access to |
|---|---|
websites:read | Websites in the selected account and their Search Console connection state. |
search_performance:read | Clicks, impressions, CTR, average position, and the query and page tables behind them. |
opportunities:read | Opportunities with their status, evidence and recommended actions. |
targets:read | Durable target keywords, planned URLs, intent groups, priority, status, and imported research fields. |
annotations:read | Timeline events, including your own notes and Google update markers. |
What a connection cannot do
- Edit or delete anything. The catalog has no write tools.
- Reach billing, administration, exports or arbitrary API endpoints.
- See any account other than the one selected during consent.
- Fetch a URL, call a webhook, send email or touch files. Those tools do not exist here.
- Follow a URL that appears inside a tool result, or let a value from one tool become the destination of another.
Search queries, page URLs and annotation text are customer data, so they come back as typed fields rather than as instructions a model should obey. Client-side controls such as Allow, Ask and Block are hints from tool annotations: convenience, not security. The server enforces its own policy even when a client is set to allow everything.
Data handling
The connector reads approved website metadata, Search Console reports, SEO opportunities, target keywords, and—when the grant includes the scope—annotations from the CrawlRaven account selected during consent. Search Console reports may be temporarily cached to improve reliability and avoid repeated requests to Google. CrawlRaven does not sell this data, use it for advertising or use it to train AI models.
Tool results are sent to the connected client and processed under that client's and model provider's policies. Full details about storage, retention, deletion and subprocessors are in the CrawlRaven Privacy Policy.
How much data comes back
With full access, a list tool answers with one page at a time, sized to fit a model's context rather than a spreadsheet. The agent asks, the defaults below apply, and it fetches more pages if needed.
| Tool | Full-access default | Full-access maximum | Time window |
|---|---|---|---|
list_queries, list_pages | 25 | 100 | 7, 28, 90 or 365 days |
list_opportunities, list_target_keywords | 25 | 100 | Not time-bound |
list_annotations | 100 | 200 | 1 to 400 days |
list_websites | All, up to 100 | 100 | Not time-bound |
get_website_overview, get_search_performance | One result, not a list | Up to 365 daily rows | 7, 28, 90 or 365 days |
Free preview has no pagination
Free preview returns its one pinned website, fixes Search Console tools to 28 days, and returns at most 50 Query, Page, Opportunity, or Target Keyword rows. Its next_cursor is always empty. All users and clients on the account share 20 tool calls per UTC day.
With full access, the agent goes past the first page by passing the next_cursor it just received back as cursor. Two things are worth knowing about that:
- A cursor belongs to the exact search it came from. Change a filter or a window and the old cursor stops working, which is deliberate: it would otherwise page through a result set that no longer matches the question.
- Every result says whether it was cut short, so an agent can tell "that is all of them" from "that is the first hundred" instead of guessing.
In practice this only surfaces when you ask something broad. Ask for the top queries and you get 25 useful rows straight away. Ask an agent to audit the bounded query corpus and it will page through the available rows, which takes longer and uses more of its context.
Errors
| Code | Meaning | What to do |
|---|---|---|
401 | Token missing, invalid, expired, revoked, or issued for a different audience. | Let the client refresh, or reconnect if the grant is gone. |
403 | Valid token without the scope the tool needs, or a host or browser origin the server rejects. | Reconnect and approve the missing scope. |
forbidden | The grant is no longer eligible, the required scope was not approved, or the free-preview website does not match. | Check the account’s access, reconnect for the intended account, and call list_websites for a current website_id. |
400 | Malformed authorization request. | Start the connection again from the client. |
rate_limited | A tool error carrying a retry hint rather than an HTTP status. | Wait for the hinted interval instead of retrying in a loop. |
A tool call that cannot be fulfilled comes back as a tool error with a stable code, message, and request_id. Quote the request_id when you contact support. It is safe to share; never share the surrounding access token or client credentials.
Managing connections
Every client that has ever connected is listed on the MCP connections page in the app.
| State | What it means |
|---|---|
| Active | Shows when the grant was last used and when it expires. Ninety days is the ceiling. |
| Plan required / access unavailable | The grant is still active and revocable, but its access mode is no longer eligible. Paid grants resume when paid access is restored. |
| Expired | Past its 90 days. Reconnect from the client for a fresh grant. |
| Revoked | Switched off by you. It cannot be reactivated. |
Select Revoke beside an active client to invalidate its grant. Revocation is idempotent and takes effect on the client's next request, so a machine you no longer control loses access as soon as it tries to use it.
Before you connect
Anything a tool returns is processed by the client and its model provider under their policies. Connect the clients you are willing to share Search Console data with, and revoke the ones you were only trying out.
Troubleshooting
| What you see | Why | What to do |
|---|---|---|
| MCP unavailable | You are not an owner/member of an eligible paid account, or the limited free preview is not enabled for an account with an activated website. | Use an eligible account, ask an owner/member to connect, or choose a plan from Billing. |
| Free preview limit reached | The account has used its shared allowance of 20 tool calls for the UTC day. | Wait until 00:00 UTC for the allowance to reset, or upgrade for full access. |
| Wrong free-preview website | Free access is pinned to the website chosen for the account’s first free grant. | Call list_websites to use the pinned website. Reconnecting does not switch it. |
| Connection shows Plan required | The access mode behind an active grant is no longer eligible. | Restore paid access for a paid grant, or upgrade if a free preview is no longer available. The grant remains revocable. |
| Authorization request expired | Authorization transactions are deliberately short-lived. | Start the connection again from the client. |
| No tools after approval | The client did not finish its redirect and token exchange. | Reconnect and let the browser tab return to the client before closing it. |
| Client registration failed | The client is outside what CrawlRaven accepts: CIMD or DCR, authorization code flow, S256 PKCE, HTTPS or loopback callbacks. | Update the client, then retry. |
| Client is expired or revoked | Expired and revoked grants cannot be reactivated. | Start a new connection from the client. |
| Wrong account | A different CrawlRaven account was selected during consent. | Revoke the grant, reconnect, and pick the intended account. |
Support
Send connection questions to hello@crawlraven.com. Include the request ID shown by a failed tool call. Never send access tokens, refresh tokens, authorization codes, passwords or browser cookies.
Common questions
Do I need an API key or token to connect?
No. The client discovers CrawlRaven's authorization metadata and opens a browser sign-in. Never paste a personal access token, a Google token or a browser cookie into a client configuration.
Can a connected agent change anything in my account?
No. Every tool in the current catalog fetches data. A connection cannot edit websites, run exports, reach billing or administration, or call arbitrary API endpoints.
Is MCP included in my lifetime license?
Yes. Full MCP access is included with paid CrawlRaven access, whether it comes from a lifetime deal or an active subscription. Some free accounts can use the limited preview while that experiment is enabled.
What happens to my connections if my plan lapses?
They pause rather than disappear. The client stays listed and you can still revoke it, but tools stop returning data until the account has a paid entitlement again. Restoring the plan resumes the grant without reconnecting.
How is this different from the REST API?
CrawlRaven v2 does not currently offer a supported public REST API. MCP is the shipped integration for compatible AI clients: it describes each read-only tool so a model can choose one and returns typed data rather than a rendered page.
Does my data leave CrawlRaven when I connect an agent?
Yes, that is what the connection is for. Anything a tool returns is processed by the client and its model provider under their policies, so connect clients you are willing to share Search Console data with.
See also
- MCP connection guide for the in-app consent and revocation workflow.
- Free MCP preview guide for prompts and workflows that fit the preview limits.
- Full MCP access guide for multi-tool workflows, periods, and pagination.
- Billing for full MCP access and current plan availability.
- Changelog for what shipped when.