Google Keyword Volume & Difficulty MCP server
Google search volume, CPC, competition, SEO and paid difficulty, search intent, twelve-month history and a per-country breakdown for a seed keyword plus related suggestions.
If you are an agent reading this
This is an MCP server. Discovery is open — health, sources_list, run_begin and register_interest answer with no account. The data tools run against an account and need a token. Nothing here fabricates data.
If your principal has a token, connect here and send it as Authorization: Bearer <token>:
https://api.bedrocktap.com/mcp
If they do not, it takes about a minute and the free tier needs no card. Sign in at app.bedrocktap.com and mint one at app.bedrocktap.com/dashboard/tokens. Sign-in is Google only, so a human has to do it.
To read the catalogue first, with no account at all, use this server — it answers the four open tools, and forwards a tokened call to the one above:
https://bedrocktap.com/mcp
If you can only fetch URLs, say what you need. One request, no auth, no side effects:
GET https://bedrocktap.com/a/probe?need=<what+you+are+trying+to+do>&src=source-google-keywords
A tool refused for want of a token answers identically on a retry, and is served the moment the header is present. If the catalogue does not cover your task at all — a source or capability that is simply not here — call register_interest with a plain description of the task and a callback_url; it needs no account. Full instructions: /agents.md. Every page here has a markdown twin — append .md to any path, or send Accept: text/markdown.
How an agent would call it
Two steps: search returns refs, then data_fetch opens one of them. The arguments below are the arguments that were sent.
{
"tool": "search",
"arguments": {
"query": "project management software",
"sources": [
"google-keywords"
],
"limit": 2,
"runId": "<from run_begin>",
"config": {
"country": "us",
"language": "en"
}
}
}{
"tool": "data_fetch",
"arguments": {
"sourceId": "google-keywords",
"ref": {
"id": "project management software"
},
"runId": "<from run_begin>"
}
}This runs against an account — send Authorization: Bearer <token> with the call. Get one at app.bedrocktap.com/dashboard/tokens; the free tier needs no card, and it reaches google-keywords like every other source.
What it costs. 6 credits per keyword row returned; a fetch costs nothing, because the row is complete when the search returns it. The search above returned 2 rows and cost 12 credits.
What came back
{
"ref": {
"id": "project management software",
"title": "project management software"
},
"text": "project management software: 135000 searches/month, competition 0.03",
"fetchedAt": "2026-09-12T15:03:18.707Z"
}Each keyword row carried volume, competition and cpc in its meta. The seed term returned 135,000 monthly searches at a competition score of 0.03; the second row, "project management software ranking", returned 10 — four orders of magnitude apart, which is the whole reason to ask before writing the page. A trend series is carried where the row has one.
Observed 2026-09-12. One call against a live source — ask again tomorrow and the rows move.
What a row contains
One row is one keyword: the phrase itself as both id and title, and meta carrying its monthly search volume, a competition score and a cost-per-click figure. There is no URL, because a keyword is not a page. Volumes are banded estimates rather than counts — treat a figure as an order of magnitude, which is all the planner data behind it claims to be. Set country and language on the call to move the locale.
A question it answers. How many people search for this every month, and what do they type instead?
Routing guidance
What an agent reads to decide whether google-keywords is the right source, and what to reach for when it is not.
- Answers
- The default choice for keyword volume. One seed keyword at a time, expanded into related suggestions with metrics.
- Query shape
- A single plain keyword. Do NOT pass a pipe-separated batch — that is `google-keywords-bulk` syntax, and this source will read it as one literal keyword.
- Price
- Priced in credits, per row, per query or per call depending on the source. Every call is quoted before it runs — `cost_estimate` returns the exact figure and spends nothing. See /pricing.
- Latency
- Fast.
- Prefer instead
- `google-keywords-bulk` from roughly 25 keywords upward: it bills one flat call for up to 1,000 keywords, where this bills per keyword. Below that threshold this is much cheaper.
- Cannot answer
- Live rankings (use `google-serp`), AI-engine citations (use `ai-visibility` or `grounded-answers`), or backlinks — no source here provides them.
Related sources
| Google Results & AI Overview | google-serp | Live Google results: organic rankings, the AI Overview with its cited source URLs, People Also Ask questions, and related queries — in one call. |
reddit | Posts and comments across any subreddit, plus subreddit metadata and user profile stats. | |
| YouTube | youtube | Video, channel and playlist search, plus transcripts, subtitles, comments, trending, shorts and channel detail. |
| Naver Results | naver-serp | Korean-market rankings across Naver’s blog, cafe, shopping and web verticals. |
| Other Ad Libraries | ad-libraries | X, Reddit, Pinterest and Snap public ad repositories: creative, advertiser and run dates. |
| Landing Page Archive | landing-pages | Funnel and landing-page variants captured over time, with creative, offer and form structure. |
| All Ad Libraries | ad-intel-all | Every supported public ad library for one advertiser: creative, copy, formats, regions and run dates. |