AdSense Publisher ID and Website Traffic MCP Server
19 tools over Streamable HTTP for Claude, Cursor, Codex and other MCP clients. Free accounts can create a key. Every figure comes back with its data month.
How it works
1. Create a key
Sign in, name a key, copy the pm_ token once.
2. Mount the server
Point Claude, Cursor, or Codex at /mcp/server with the Bearer [REDACTED]
3. Ask in natural language
Your client picks the tools. Row and month limits follow your website plan.
Your keys
Sign in to create and revoke MCP keys.
Connect your client
Paste one snippet, swap in your key, restart the client.
claude mcp add --transport http pubmonitor https://pubmonitor.com/mcp/server --header "Authorization: Bearer <YOUR_PM_KEY>"
{
"mcpServers": {
"pubmonitor": {
"url": "https://pubmonitor.com/mcp/server",
"headers": { "Authorization": "Bearer <YOUR_PM_KEY>" }
}
}
}
{
"mcpServers": {
"pubmonitor": {
"url": "https://pubmonitor.com/mcp/server",
"headers": { "Authorization": "Bearer <YOUR_PM_KEY>" }
}
}
}
codex mcp add pubmonitor --url https://pubmonitor.com/mcp/server --header "Authorization: Bearer <YOUR_PM_KEY>"
Available tools
Leaderboards 3
-
list-domain-leaderboardList the monthly domain leaderboard (top / new / trending) in the AdSense publisher index. Unlocked rows include adsense_id (string or null) and adsense_id_extra_count (integer or null when unknown). Locked rows are {rank, is_locked: true}, not missing data. Default month is the latest published data month.
-
list-publisher-leaderboardList the monthly publisher leaderboard (top / new / trending). Locked rows are {rank, is_locked: true}.
-
list-archive-monthsList published archive months visible to the caller plan. Call this before asking for a historical month.
Domain intelligence 7
-
get-domain-profileGet a domain profile: traffic, engagement, sources, countries, keywords, registration, AdSense IDs, and a short English summary. Missing fields are null — never invented zeros.
-
get-domain-traffic-trendGet a domain monthly visit series. Missing months stay null — never filled with 0. Default window is 24 months, clamped to the published sequence.
-
get-domain-summaryGet the displayable AI summary for a domain in one of 10 languages. Retracted or incomplete summaries return null fields.
-
get-domain-authorityGet domain rating, backlinks, and linking websites. Upstream failure is reported as temporarily unavailable — a 0 is never treated as real data.
-
get-domain-historyGet Wayback Machine coverage for a domain. The wayback_url is always returned so a third party can verify.
-
get-domain-dnsGet DNS records (A, AAAA, NS, MX, TXT, CNAME) for a domain.
-
get-domain-whoisGet structured WHOIS fields for a domain (registrar, dates, nameservers). Missing fields are null.
Publisher intelligence 3
-
get-publisher-profileGet an AdSense publisher profile: first seen, domain counts, traffic, growth, and top domains for a data month.
-
list-publisher-domainsList domains under an AdSense publisher with keyset pagination. Limit is 1-60. Rows include first_seen_at and is_active; sort=detected orders by first_seen_at. domain_id and expiration_time are withheld.
-
list-category-domainsList domains in a category for the latest published month only. Uses the website rank-cap lock (no identity sampling). A missing snapshot means the ranking is being rebuilt — not an empty category.
Revenue estimates 2
-
estimate-domain-revenueEstimate modeled monthly and annual revenue for an indexed domain. This is a benchmark, not measured earnings.
-
estimate-adsense-revenueEstimate a calculator baseline from category, visitor region, and monthly pageviews. No upstream lookup.
Watchlist & reports 4
-
list-watchlistList the caller watchlist (monitors) and remaining capacity.
-
add-to-watchlistAdd a domain or publisher to the caller watchlist. Idempotent: already-present targets return already_present=true.
-
remove-from-watchlistRemove a domain or publisher from the caller watchlist by natural key. Idempotent: missing targets return was_present=false.
-
create-shared-reportCreate a shareable domain report URL. Requires Pro or Business. Not idempotent — each call mints a new report.
Prompt library
The server includes three prompts, competitor-brief, monthly-movers and publisher-audit, which clients with slash commands can run directly. The examples below can be pasted into any chat.
Competitor brief
Compare example.com and sample.com over the last 12 months: traffic trend, authority, and modeled revenue. End with a verdict on which is the stronger publisher asset.
Uses get-domain-profile · get-domain-traffic-trend · estimate-domain-revenue
Monthly movers
Which domains showed up on the new and trending AdSense website rankings last month? List the top 10 with their rank movement.
Uses list-domain-leaderboard · list-archive-months
Publisher audit
Audit publisher pub-1234567890: list their domains, flag which are growing, and estimate the revenue range of the top 3.
Uses get-publisher-profile · list-publisher-domains · estimate-adsense-revenue
Revenue range
Estimate the modeled monthly revenue for example.com and explain which inputs drive the estimate.
Uses estimate-domain-revenue
Watchlist digest
List my watchlist, add example.com to it, and summarize this month's traffic change for each entry.
Uses list-watchlist · add-to-watchlist · get-domain-traffic-trend
Share a snapshot Pro & Business
Create a shared report for example.com and give me the link.
Uses create-shared-report
Plans & limits
| Plan | MCP rate | Lookups / day | Leaderboard rows | Archive months |
|---|---|---|---|---|
| Guest | — | 10 | 60 | 3 |
| Free | 10 req/min · 200 calls/day | 40 | 300 | 6 |
| Pro | 30 req/min · 2000 calls/day | 500 | 3.0K | 36 |
| Business | 60 req/min · 10000 calls/day | 3000 | 20.0K | 60 |
Before you start
- MCP daily calls use a rolling 24-hour window. Website discovery resets at 00:00 UTC.
- Write tools are watchlist add/remove and shared-report create. Everything else is read-only.
- Data is monthly. Ask
list-archive-monthsbefore requesting an old month. - Treat the key like a password. It is shown once; revoke it if it leaks.
FAQ
Can an MCP key call other endpoints?
No. MCP keys carry only the mcp:use ability and work only with /mcp/server.
Why is a rank locked?
Your plan does not show the site at that position. The row still has data; higher plans show more site names.
Why is a field null?
No value is available for that month. Treat it as unknown rather than 0.
Can I get a list of every domain?
No. Tools look up a named domain or publisher, or read a leaderboard within your plan's row limit.