CrakSEO Keyword Research MCP
Keyword search volume, CPC, difficulty and keyword ideas by country for SEO operators and AI assistants. Hosted Streamable HTTP with OAuth or a scoped API key; data calls use API credits.
Размещённый MCP-сервер
npx add-mcp 'https://crakseo.com/mcp/keyword-research'Устанавливается в Claude Code, Codex, Cursor и другие
Документация
Agent Instructions
For SEO data and indexing, start with /seo-mcp/overview.md and /seo-mcp/connect.md, then read the focused server reference. The documentation search MCP at https://docs.crakseo.com/mcp searches documentation only. Product tools use https://crakseo.com/mcp/. Check tool availability and API credit balance before paid calls. Request owner approval for paid indexing. Never invent prices, indexing guarantees or directory approval.
Keyword Research MCP: Search Volume, CPC, Keyword Difficulty
Keyword research MCP: search volume, CPC, keyword difficulty and keyword ideas by country.
Monthly search volume, CPC, competition, keyword difficulty and intent for any keyword and country, keyword ideas from seed terms, and the keywords a competitor ranks for that you don't.
| Endpoint | https://crakseo.com/mcp/keyword-research |
| Transport | Streamable HTTP |
| Sign-in | OAuth, or an API key as a bearer token |
| Scopes | seo-data:read |
| Billing | Pay as you go (API credits) |
When to use
Use when planning content, sizing demand for a niche or choosing which keywords to target.
Connect
claude mcp add --transport http crakseo-keyword-research https://crakseo.com/mcp/keyword-research
Use crakseo-keyword-research as the server name and https://crakseo.com/mcp/keyword-research as the URL. Run /mcp in Claude Code to authenticate. For OAuth, scoped API keys and a free test, follow Connect and test.
Other clients: ChatGPT, Cursor, Codex, VS Code, Cline, Gemini CLI, Grok and Muse.
Connect using the URL above; no registry ID or marketplace listing is required.
Verify without spending
Use CrakSEO get_api_credit_balance to report my balance and dataCallsEnabled. Do not buy credits or make a paid call.
Tools
| Tool | What it does | Price per call |
|---|---|---|
get_keyword_search_volume | Keyword search volume, CPC and difficulty | TBD (placeholder) |
find_keyword_ideas | Find keyword ideas | TBD (placeholder) |
get_keyword_difficulty | Keyword difficulty | TBD (placeholder) |
find_competitor_keywords | Find competitor keywords (keyword gap) | TBD (placeholder) |
get_api_credit_balance | API credit balance | Free |
[!NOTE]
Tool names, titles and parameters on this page match the server's
tools/listresponse, which stays authoritative. Example values are placeholders, not real measurements. Prices marked TBD are set at launch on API credits.
get_keyword_search_volume
Keyword search volume, CPC and difficulty. Keyword search volume, CPC and difficulty for up to 200 keywords in any country: monthly Google searches, cost per click, competition, keyword difficulty, intent and the last 12 months trend. Costs API credits per call.
- Price per call: TBD (placeholder)
- Annotations: read-only, idempotent
- Limits: Results are cached for 24 hours. Failed calls are free.
| Parameter | Type | Required | Description |
|---|---|---|---|
keywords | string[] | Yes | Up to 200 keywords. |
country | string | No | Two-letter country code of the search market, for example US, GB, DE or IN. Default US. |
language | string | No | Language code of the search market, for example en, de or pt-BR. Default en. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_keyword_search_volume",
"arguments": {
"keywords": [
"seo mcp"
],
"country": "US"
}
}
}
{
"result": {
"keywords": [
{
"keyword": "seo mcp",
"searchVolume": 0,
"cpc": 0,
"competition": 0,
"keywordDifficulty": 0,
"intent": "commercial",
"trend": [
{
"month": "2026-09",
"searchVolume": 0
}
]
}
]
},
"billing": {
"channel": "credits",
"chargedMicros": 0,
"chargedUsd": 0,
"cacheHit": false,
"balanceMicros": 0
}
}
find_keyword_ideas
Find keyword ideas. Keyword ideas: related keywords for up to 20 seed keywords with search volume, CPC, difficulty and intent, sorted by search volume. Costs API credits per call.
- Price per call: TBD (placeholder)
- Annotations: read-only, idempotent
- Limits: Results are cached for 24 hours. Failed calls are free.
| Parameter | Type | Required | Description |
|---|---|---|---|
seeds | string[] | Yes | Up to 20 seed keywords that describe the topic. |
country | string | No | Two-letter country code of the search market, for example US, GB, DE or IN. Default US. |
language | string | No | Language code of the search market, for example en, de or pt-BR. Default en. |
limit | integer | No | How many ideas to return, 10 to 500. Default 100. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "find_keyword_ideas",
"arguments": {
"seeds": [
"trail running shoes"
],
"country": "US",
"limit": 10
}
}
}
{
"result": {
"ideas": [
{
"keyword": "trail running shoes for women",
"searchVolume": 0,
"cpc": 0,
"competition": 0,
"keywordDifficulty": 0,
"intent": "commercial"
}
]
},
"billing": {
"channel": "credits",
"chargedMicros": 0,
"chargedUsd": 0,
"cacheHit": false,
"balanceMicros": 0
}
}
get_keyword_difficulty
Keyword difficulty. Keyword difficulty: how hard it is to rank organically in Google for up to 500 keywords, scored 0 to 100. Costs API credits per call.
- Price per call: TBD (placeholder)
- Annotations: read-only, idempotent
- Limits: Results are cached for 24 hours. Failed calls are free.
| Parameter | Type | Required | Description |
|---|---|---|---|
keywords | string[] | Yes | Up to 500 keywords. |
country | string | No | Two-letter country code of the search market, for example US, GB, DE or IN. Default US. |
language | string | No | Language code of the search market, for example en, de or pt-BR. Default en. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_keyword_difficulty",
"arguments": {
"keywords": [
"serp api"
],
"country": "US"
}
}
}
{
"result": {
"keywords": [
{
"keyword": "serp api",
"keywordDifficulty": 0
}
]
},
"billing": {
"channel": "credits",
"chargedMicros": 0,
"chargedUsd": 0,
"cacheHit": false,
"balanceMicros": 0
}
}
find_competitor_keywords
Find competitor keywords (keyword gap). Competitor keywords: keywords a competitor domain ranks for in Google that your domain does not, with search volume, difficulty and the competitor's position. Costs API credits per call.
- Price per call: TBD (placeholder)
- Annotations: read-only, idempotent
- Limits: Results are cached for 24 hours. Failed calls are free.
| Parameter | Type | Required | Description |
|---|---|---|---|
competitor | string | Yes | Competitor domain, for example competitor.com. |
yourDomain | string | Yes | Your domain, for example example.com. |
country | string | No | Two-letter country code of the search market, for example US, GB, DE or IN. Default US. |
language | string | No | Language code of the search market, for example en, de or pt-BR. Default en. |
limit | integer | No | How many keywords to return, 10 to 1000. Default 100. |
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "find_competitor_keywords",
"arguments": {
"competitor": "competitor.example",
"yourDomain": "example.com",
"limit": 10
}
}
}
{
"result": {
"competitor": "competitor.example",
"yourDomain": "example.com",
"keywords": [
{
"keyword": "example keyword",
"searchVolume": 0,
"keywordDifficulty": 0,
"competitorPosition": 4,
"competitorUrl": "https://competitor.example/page"
}
]
},
"billing": {
"channel": "credits",
"chargedMicros": 0,
"chargedUsd": 0,
"cacheHit": false,
"balanceMicros": 0
}
}
get_api_credit_balance
API credit balance. API credit balance: prepaid credits left for SEO data calls, amount spent, whether spending is suspended, and the per-call pricing rule. Free; no supplier call.
- Price per call: Free
- Annotations: read-only, idempotent
- Limits: Free; reads the wallet only.
| Parameter | Type | Required | Description |
|---|
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_api_credit_balance",
"arguments": {}
}
}
{
"availableMicros": 0,
"availableUsd": 0,
"spentMicros": 0,
"frozen": false,
"dataCallsEnabled": true,
"pricing": {
"creditMarkup": 0,
"minimumPerCallUsd": 0
}
}
Errors
| Code | Meaning | What to do |
|---|---|---|
insufficient_credits | The API credits wallet can't cover the call's maximum price. | Add credits at https://crakseo.com/app/indexing/credits, then retry the same call. The failed call isn't charged. |
forbidden | The connection doesn't have the scope this tool needs, for example seo-data:read or console:write. | Reconnect and grant the scope named in the message, or use an API key that has it. |
not_connected | Google Search Console or Bing Webmaster Tools isn't connected, or no connected property covers the URL. | Open the connect link in the message and sign in with the account that owns the property. |
invalid_input | A parameter is missing or out of range. | Read the message, which names the field, fix the argument and retry. |
confirmation_required | A paid indexing submission doesn't have the account owner's approval for this exact quote. | submit_indexing_urls returns status: "needs_confirmation" with a confirmationUrl. Send the owner there to approve, then retry with the same quoteId and idempotencyKey. The agent can't approve spend. |
wallet_frozen | API credit spending is suspended on this account after a refund or dispute. | Contact support@crakseo.com. |
budget_exceeded | The account's daily API credit spending limit, or the service's daily data budget, is used up. | Retry tomorrow. |
disabled | SEO data calls aren't switched on for this deployment yet. | Use the free Search Console and URL indexing tools meanwhile. get_api_credit_balance reports dataCallsEnabled. |
supplier_unavailable | The data supplier couldn't be reached or is rate limiting. | Retry later. Failed data calls are free. |
supplier_unknown | The data supplier didn't answer in time or sent an unreadable response. | Retry later. Failed data calls are free. |
supplier_error | The data supplier refused the request or returned no data. | Check the arguments (for example the location name) and retry. Failed data calls are free. |
Technical registry details
Intended MCP Registry ID:
com.crakseo/keyword-research.The namespace
com.crakseois the reverse-domain form ofcrakseo.com, used to identify the publisher. It is not a website address, product name or connection URL. You do not need it to connect.This identifier is recorded in our publishing drafts, not a claim of registry acceptance or directory approval.
This documentation is built and hosted on Mintlify, a developer documentation platform.