mcp-website-traffic-rank-estimator
Allows using Cloudflare Radar as an additional website traffic rank source when a Cloudflare API token is provided, returning radar rank, bucket, and status in the output.
Allows using Google Chrome UX Report as an additional data source when a Google API key is provided, returning CrUX metrics such as LCP and data availability in the output.
Website Traffic Rank Estimator MCP Server
An MCP server that returns a research grade Tranco popularity rank and trend for any company domain. It wraps the Mamba Labs Website Traffic Rank Estimator actor on Apify and returns a Clay-ready flat JSON row to any MCP client.
What's Inside
Related MCP server: mcp-github-organization-signal-scanner
What it does
Give it a company domain and it returns that domain's position on the public Tranco list, the date of that position, a band from top_1k through beyond_1m, and whether the domain has been rising, falling or stable over roughly forty daily observations. One flat row per company.
These are ranks, not traffic. A Tranco rank does not convert to visits, sessions or a monthly number, and this tool will never return a visit count. A lower rank number is better, so the trend is given in words rather than as a signed number. Most B2B domains are not on the list at all and return not_found, which is normal rather than disqualifying. Cloudflare Radar and Chrome UX Report are available as extra sources with your own free keys, and a source you did not supply a key for reports skipped rather than not_found, because nobody looked.
All of the lookup runs on Apify. This package is a thin client that calls the actor and hands back the result unchanged.
Quick start
You need Node.js 18 or newer and an Apify account with an API token.
Add this to your Claude Desktop config:
{
"mcpServers": {
"mamba-website-traffic-rank-estimator": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-website-traffic-rank-estimator"],
"env": {
"APIFY_TOKEN": "your-apify-token"
}
}
}
}Get your token at https://console.apify.com/account/integrations, paste it in, and restart Claude Desktop. The estimate_website_traffic_rank tool will be available.
Prerequisites
Node.js 18 or newer
An Apify account with an API token
Optional: your own Cloudflare API token, free at dash.cloudflare.com, if you want the Radar source
Optional: your own Google API key with the Chrome UX Report API enabled, free at console.cloud.google.com, if you want the CrUX source
Example prompts
"What is the Tranco rank for stripe.com, and is it rising or falling?"
"Give me the popularity band for this domain and skip the trend."
"Rank these domains and flag the ones inside the top 100,000."
"Look up figma.com on Tranco and Cloudflare Radar. Here is my Cloudflare token."
Inputs
company_domain(optional): bare company domain, for examplestripe.com. This is the lookup key and the join key for every other actor in the fleet.company_name(optional): carried through to the output row for joining. Rank lookup is keyed on the domain alone, so the name does not change the answer.sources(optional): which rank sources to query. One oftranco,tranco_radar,tranco_cruxorall. Tranco is free and needs no key. Cloudflare Radar and Chrome UX Report each need your own free key, and a source you did not supply a key for reportsskippedrather thannot found.includeTrend(optional): when true (the default) the rank history Tranco already returns is used to say whether the domain is rising, falling or stable. It costs nothing extra, because the history arrives in the same response.minRank(optional): one ofnone,1000,10000,100000or1000000. It setsrank_meets_thresholdon the row, so you can filter a list to established sites without writing the comparison yourself. It never drops a row and never changes the rank returned.cloudflareApiToken(optional): your own Cloudflare API token, free to create at dash.cloudflare.com. Used only whensourcesincludes Radar.cruxApiKey(optional): your own Google API key with the Chrome UX Report API enabled, free at console.cloud.google.com. Used only whensourcesincludes CrUX.skipCache(optional): when false (the default) a successful lookup is cached for seven days and reused. Set true to force a fresh fetch.
Output
The tool returns the actor's flat JSON row for the company, with 20 snake_case fields and no nested objects. tranco_rank comes with tranco_rank_date, because a rank without a date has no shelf life. rank_band gives an honest band rather than false precision, rank_trend is a word, and radar_status and crux_status say whether those sources ran. See the Apify Store page for the full output schema.
Example output
{
"degraded": false,
"degradation_reason": null,
"company_domain": "stripe.com",
"company_name": "Stripe",
"tranco_rank": 238,
"tranco_rank_date": "2026-08-21",
"rank_band": "top_1k",
"rank_trend": "stable",
"rank_change": 1,
"rank_observations": 40,
"rank_meets_threshold": null,
"radar_rank": null,
"radar_bucket": null,
"radar_status": "skipped",
"crux_has_data": null,
"crux_lcp_p75_ms": null,
"crux_status": "skipped",
"coverage": 0.67,
"fetch_status": "ok",
"run_date": "2026-08-22T19:23:52.998Z"
}Features
Tranco popularity rank for any company domain, with the date of that rank
Trend over roughly forty daily observations, given as rising, falling or stable
An honest band such as
top_1k, rather than false precisionOptional Cloudflare Radar and Chrome UX Report sources with your own keys
Never returns a visit count, because a rank is not traffic
20 flat snake_case fields, one row per company
Full actor documentation
This server is a thin client and holds no lookup logic. For the complete input and output reference, pricing, and run history, see the Apify Store page:
https://apify.com/mambalabs/website-traffic-rank-estimator
Mamba Labs GTM Suite
This server is one of the Mamba Labs GTM Suite MCP servers. Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything. The actor behind this server is the Website Traffic Rank Estimator, immutable Apify actor ID GnOFUzlNVIoXgeJjH.
Built by Mamba Labs | npm | Apify Store
License
MIT
Built by Mamba Labs. https://apify.com/mambalabs
Available Tools
1 toolestimate_website_traffic_rankEstimate Website Traffic RankARead-onlyIdempotent
Return a research grade popularity RANK for a company domain from the public Tranco list, with the date of that rank, an honest band (top_1k through beyond_1m) and a rising, falling or stable trend over roughly forty daily observations. Returns one flat Clay ready row. THESE ARE RANKS, NOT TRAFFIC: a rank does not convert to visits and this tool will never return a visit count. A lower rank number is better, so the trend is given in words rather than as a signed number. Most B2B domains are not on the list at all and return not_found, which is normal rather than disqualifying. Read only; requires an APIFY_TOKEN and consumes Apify credits per call.
| Name | Required | Description | Default |
|---|---|---|---|
| minRank | No | Sets rank_meets_threshold on the row, so you can filter a list to established sites without writing the comparison yourself. It never drops a row and never changes the rank returned. Sent as a string for Clay compatibility. | |
| sources | No | Which rank sources to query. Tranco is free and needs no key. Cloudflare Radar and Chrome UX Report each need your own free key, and a source you did not supply a key for reports "skipped" rather than "not found", because we did not look. Sent as a string for Clay compatibility. | |
| skipCache | No | When "false" (default) a successful lookup is cached for seven days and reused, which costs you nothing on a repeated run. Set "true" to force a fresh fetch. Sent as a string for Clay compatibility. | |
| cruxApiKey | No | YOUR OWN Google API key with the Chrome UX Report API enabled, free at console.cloud.google.com. OPTIONAL and only used when sources includes CrUX. Marked secret, so the value never renders on this page. | |
| company_name | No | Optional. Carried through to the output row for joining. Rank lookup is keyed on the domain alone, so the name does not change the answer. | |
| includeTrend | No | When "true" (default) the rank history Tranco already returns is used to say whether the domain is rising, falling or stable. It costs nothing extra: the history arrives in the same response. Sent as a string for Clay compatibility. | |
| company_domain | No | Bare company domain, for example stripe.com. This is the only required input and it is the join key for every other actor in the fleet. | |
| cloudflareApiToken | No | YOUR OWN Cloudflare API token, free to create at dash.cloudflare.com. OPTIONAL and only used when sources includes Radar. Marked secret, so the value never renders on this page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the call read-only and idempotent, but the description adds substantial non-obvious behavior: it requires an APIFY_TOKEN and consumes Apify credits per call, lower rank numbers are better, trends are expressed in words, and not_found is a normal outcome for most B2B domains. This goes well beyond what the annotations alone provide.
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?
The description is dense and front-loaded: it leads with the main output, then covers the critical rank-versus-traffic distinction before moving to caveats and requirements. It has a slight redundancy around 'ranks, not traffic,' but every sentence otherwise contributes non-obvious operational context.
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 tool with eight parameters and no output schema, the description covers the essential return semantics (rank, date, band, trend, one flat Clay-ready row) and the main operational caveats (authentication, credits, skipped-vs-not_found source behavior, B2B coverage gaps). An agent has enough context to select the tool and interpret its result correctly.
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% with detailed per-parameter descriptions, so the baseline is 3. The description adds interpretive value beyond the schema, such as setting expectations that most B2B domains will return not_found and clarifying that the result is a rank rather than traffic data. It does not enumerate parameters, but the schema already covers that thoroughly.
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 opens with a specific verb and precise resource: it returns a research-grade popularity rank for a company domain from the public Tranco list. It further distinguishes itself by naming the output pieces (rank, date, band, trend) and explicitly stating it will never return a visit count.
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?
The description gives strong usage expectations, including when a result is meaningful and when it is not: 'Most B2B domains are not on the list at all and return not_found, which is normal rather than disqualifying.' It also warns that ranks do not convert to visits, so this tool cannot be used as a traffic-count source. With no sibling tools, explicit alternative routing is unnecessary.
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
v1.0.0- First observed
estimate_website_traffic_rank
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or misselection. The tool's single purpose is clearly defined and self-contained.
The single tool name follows a clear verb_noun pattern (estimate_website_traffic_rank) and is fully descriptive of its function. No competing naming conventions exist.
One tool is on the borderline of being too thin for a server, but given the extremely narrow and well-defined purpose of traffic rank estimation, it is an acceptable if minimal surface.
The tool fully covers the core read-only domain of rank estimation by providing rank, date, band, and trend. Minor gaps like batch lookups or historical comparisons are not essential but would add robustness.
Maintenance
Related MCP Connectors
- IndicesOAuthio.indices
Official Indices MCP server. Turn any website into a reliable API.
Official SerpApi MCP server for Google, Bing, and other search engines.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs Company Contact Details Extractor actor on Apify. Find a company contact page and extract role emails, a phone number and a postal address.125 npmMIT
- AlicenseAqualityDmaintenanceMCP server for the Mamba Labs GitHub Organization Signal Scanner actor on Apify. Resolve a company domain to its GitHub organization with repo, language and activity signals.123 npmMIT
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs Reddit Brand Presence and Mention Monitor actor on Apify. Resolve a company domain to its subreddit and sample public mentions of the brand.126 npmMIT
- AlicenseAqualityBmaintenanceMCP server for the Mamba Labs X Twitter Brand Presence Mapper actor on Apify. Resolve a company domain to its X handle, profile URL and follower metrics.122 npmMIT