Crawlgraph MCP
Server Details
MCP server for the CrawlGraph backlink-intelligence API. Gives any MCP client - Claude Desktop, Claude Code, Cursor, Cline, Zed, Windsurf - backlink lookups and competitor gap analysis built on the public Common Crawl webgraph (4.4B edges, 120M domains).
- Status
- Healthy
- Uptime
- 100.0% over 57 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
backlinks and backlink_changes are clearly distinguished as single-snapshot vs cross-release comparison, and releases is orthogonal. The main overlap is between gap_analysis and gap_outreach_targets, since the latter wraps the former, but the descriptions clearly frame one as raw output and the other as ranked outreach targets.
All names use snake_case noun phrases, which is internally consistent, though there is no verb_noun convention and slight irregularity between bare nouns (backlinks, releases) and compound nouns (backlink_changes, gap_analysis). Still readable and predictable.
Five tools is a tight, well-scoped set for a Common Crawl backlink analysis service, with each tool covering a distinct capability. Slightly lean but no obvious filler.
The lifecycle from discovering backlinks, comparing snapshots, finding gaps, and ranking outreach targets is covered, plus a releases reference tool. Minor gaps exist (no anchor-text or page-level referring URL lookup, no explicit authority-only lookup), but core workflows are complete.
Available Tools
5 toolsbacklink_changesBacklink changes between releasesARead-onlyIdempotentInspect
Compare referring-domain observations between two Common Crawl releases. When from_release and to_release are omitted, the API chooses the newest queryable release pair. Costs one backlinks call against the monthly quota. A removed domain means it was not observed in the newer Common Crawl snapshot, not that deletion from the live web has been proven. comparison_available: false is a valid successful response when two queryable snapshots do not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Target domain, e.g. 'example.com'. | |
| to_release | No | Newer Common Crawl release id. | |
| from_release | No | Older Common Crawl release id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | Yes | |
| added | Yes | |
| counts | Yes | |
| domain | Yes | |
| message | No | |
| removed | Yes | |
| truncated | Yes | |
| to_release | Yes | |
| from_release | Yes | |
| authority_moved | Yes | |
| snapshot_caveat | Yes | |
| comparison_available | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, open-world, non-destructive. The description adds attributes annotations cannot express: it consumes one backlinks call from the monthly quota, 'removed' means only not-observed in the newer snapshot (not proven live-web deletion), and comparison_available:false is a legitimate success state. These are exactly the behavioral caveats an agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, each carrying distinct information (purpose, defaults, cost, interpretation caveat, valid edge-case response). The core action is front-loaded and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is not required, yet the description still covers the one return state an agent could misread as failure (comparison_available:false). With quota cost, default behavior, and result interpretation all addressed, nothing material is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds the non-obvious default behavior: both release parameters are optional and the API selects the newest queryable pair when omitted. That is semantic value beyond the schema's terse 'Newer/Older Common Crawl release id' strings.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Compare referring-domain observations between two Common Crawl releases'), which clearly separates it from the sibling 'backlinks' (single snapshot) and 'releases' (release listing). An agent can tell what it does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the default path when from_release/to_release are omitted (API picks the newest queryable pair) and notes the quota cost, which frames when the call is worthwhile. It does not explicitly route an agent to alternatives such as 'backlinks' for single-release data, so routing guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backlinksBacklink lookupARead-onlyIdempotentInspect
Look up referring domains (backlinks) for a single target domain from the Common Crawl webgraph. Returns each linking domain with host count and CrawlGraph authority score, plus the target's own authority/rank. Costs one backlinks call against the monthly quota (1,000/mo for lifetime or eligible monthly paid access). These snapshot observations do not prove live links.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'authority' (default) or 'hosts'. | |
| limit | No | Max rows (1..10000, default 1000). | |
| domain | Yes | Target domain, e.g. 'stripe.com'. | |
| release_id | No | Common Crawl release id (defaults to latest; see the releases tool). |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | Yes | |
| cg_rank | Yes | |
| results | Yes | |
| returned | Yes | |
| release_id | Yes | |
| cg_authority | Yes | |
| release_label | Yes | |
| total_linking_domains | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/openWorld/non-destructive, but the description adds real value: the per-call quota cost (1 of 1,000/month) and, critically, the caveat that these are snapshot observations that do not prove live links. That reliability caveat is exactly the kind of context an agent cannot infer from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with purpose and return shape before the cost and caveat. Nothing is wasted, though the return-shape sentence overlaps somewhat with the existing output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with an output schema and full annotation coverage, the description supplies everything an agent needs: what is queried, what comes back, what it costs, and how much to trust the result. Return values are already covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so domain, sort, limit and release_id are all documented in the schema and the baseline is 3. The description's mention of 'host count' and 'authority score' loosely echoes the sort enum values but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Look up referring domains (backlinks) for a single target domain') plus the data source (Common Crawl webgraph). The 'single target domain' scope also implicitly separates it from multi-domain siblings like gap_analysis and from the time-series sibling backlink_changes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the 'single target domain' scoping and the explicit quota cost, which tells the agent this is a metered call worth budgeting. However, it never states when to choose this over backlink_changes or gap_analysis, and there are no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gap_analysisCompetitor backlink gap analysisARead-onlyIdempotentInspect
Run a competitor backlink gap analysis: find domains observed linking to one or more of your competitors but NOT to you. Submits an async job and polls until done (usually 5-30s). Returns every gap with found_on listing which competitors each domain was observed linking to. Costs one gap job against the monthly quota (50/mo for lifetime or eligible monthly paid access). These observations do not prove live links.
| Name | Required | Description | Default |
|---|---|---|---|
| my_domain | Yes | Your domain. | |
| competitor_domains | Yes | 1 to 5 competitor domains. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gaps | Yes | |
| my_domain | Yes | |
| total_gaps | Yes | |
| competitor_domains | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds substantial operational context beyond them: async job submission with polling (5-30s), the quota cost per call, and the caveat that observations 'do not prove live links'. It does not detail failure/error behavior or quota-exhaustion handling, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then layers behavior, cost, and a caveat in three tight sentences with no redundancy. Every sentence carries distinct information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a two-parameter async tool: the description discloses latency, polling behavior, cost, output shape, and a data-quality caveat, and an output schema exists so return structure need not be re-explained. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are already documented, so the baseline is 3. The description reinforces that competitor_domains holds 'one or more of your competitors' and explains the found_on output field, but adds no format, syntax, or validation meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource (competitor backlink gap analysis) and defines the exact result set: domains linking to one or more competitors but not to you. This clearly distinguishes it from sibling tools like backlinks and gap_outreach_targets without needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the described output rather than stated: you run it when you want a gap list. The quota note ('costs one gap job against the monthly quota') gives decision-relevant context, but there is no explicit when-to-use/when-not or mention of alternatives such as gap_outreach_targets as the logical follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gap_outreach_targetsOutreach target finderARead-onlyIdempotentInspect
The warm-outreach play. Runs a gap analysis, then ranks results: PRIORITY = domains observed linking to ALL your competitors but not you (research candidates, without proof of live links or publisher awareness), SECONDARY = domains observed linking to 2+ competitors. Platform/CDN noise is filtered, top N priority targets are scored by authority. Use 2-3 competitors. Costs one gap job + one backlinks call per enriched target.
| Name | Required | Description | Default |
|---|---|---|---|
| my_domain | Yes | Your domain. | |
| enrich_top | No | Authority-score the top N priority targets. Default 10; each costs one backlinks call. 0 disables. | |
| include_platforms | No | Keep platform/CDN/social domains in the list. Default false. | |
| competitor_domains | Yes | 2 to 5 competitor domains (2-3 recommended). |
Output Schema
| Name | Required | Description |
|---|---|---|
| my_domain | Yes | |
| total_gaps | Yes | |
| priority_targets | Yes | |
| secondary_targets | Yes | |
| authority_enriched | Yes | |
| competitor_domains | Yes | |
| platforms_filtered | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), yet the description adds genuinely new behavioral context: the two-tier ranking semantics, that PRIORITY domains are research candidates 'without proof of live links or publisher awareness', noise filtering, and the exact cost model (one gap job + one backlinks call per enriched target). This is exactly the kind of cost/side-effect disclosure that goes beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line framing ('The warm-outreach play'), then dense but purposeful detail. Every clause adds information, though the ranking definitions make it longer than strictly minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-tier ranking tool with an output schema present, the description covers the ranking logic, the caveat on unverified targets, noise filtering, and cost. An agent has everything needed to invoke it correctly, and return format is handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning: 'top N priority targets are scored by authority' explains enrich_top, 'Platform/CDN noise is filtered' explains include_platforms, and 'Use 2-3 competitors' adds guidance on competitor_domains beyond the schema's 2-5 range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: runs a gap analysis and ranks results into PRIORITY/SECONDARY outreach targets. It distinguishes itself from the sibling gap_analysis by framing the output as an outreach play with scoring, so an agent can tell the two apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context ('the warm-outreach play') and a concrete recommendation ('Use 2-3 competitors'), plus a cost caveat. It does not explicitly say when to prefer this over gap_analysis or backlinks, so it lacks the exclusion/routing language that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
releasesList Common Crawl releasesARead-onlyIdempotentInspect
List the Common Crawl releases the API can query. Does not count against any quota. Use a release id with the backlinks tool to query a specific snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| releases | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds that it does not count against quota, which is valuable behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no superfluous words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and an output schema. The description fully explains purpose, quota impact, and how to use the output with a sibling tool. Complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. The description adds no parameter info, but none is needed since there are no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Common Crawl releases the API can query, with a specific verb and resource. It distinguishes from siblings by mentioning using a release id with the backlinks tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it does not count against quota, and advises to use a release id with the backlinks tool to query a specific snapshot, providing clear context for when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
backlink_changes
4 tool updates
- First observed
backlinks - First observed
gap_analysis - First observed
gap_outreach_targets - First observed
releases
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs117 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceRevnuvo Company Intelligence tells AI agents what changed at a company, with evidence. It observes company websites, technologies, and DNS over time and returns timestamped, confidence-aware changes, signals, and monitoring.9MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.