> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crakseo.com/llms.txt
> Use this file to discover all available pages before exploring further.

> ## 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/<server>.
> Check tool availability and API credit balance before paid calls. Request owner approval for paid indexing. Never invent prices, indexing guarantees or directory approval.

# Codex SEO MCP quickstart

> Add CrakSEO's SEO MCP and Search Console MCP to the Codex CLI and IDE extension in config.toml, make the first call and check the output.

The Codex CLI and the Codex IDE extension share `~/.codex/config.toml`.

## 1. Add the servers

**Sign in with OAuth (recommended)**

```toml ~/.codex/config.toml theme={null}
[mcp_servers.crakseo-seo]
url = "https://crakseo.com/mcp/seo"

[mcp_servers.crakseo-search-console]
url = "https://crakseo.com/mcp/search-console"
```

Then sign in once per server:

```bash theme={null}
codex mcp login crakseo-seo
codex mcp login crakseo-search-console
```

**Use an API key**

```toml ~/.codex/config.toml theme={null}
# export CRAKSEO_API_KEY=YOUR_CRAKSEO_API_KEY in your shell profile

[mcp_servers.crakseo-seo]
url = "https://crakseo.com/mcp/seo"
bearer_token_env_var = "CRAKSEO_API_KEY"

[mcp_servers.crakseo-search-console]
url = "https://crakseo.com/mcp/search-console"
bearer_token_env_var = "CRAKSEO_API_KEY"
```

Restart Codex. Run `codex mcp list` to confirm the servers are loaded.

Create API keys at [crakseo.com/app/settings/keys](https://crakseo.com/app/settings/keys). Never commit a real key.

## 2. Check the connection

```bash theme={null}
codex mcp list
```

Expected output: `crakseo-seo` and `crakseo-search-console` with their URLs. In a Codex session, `/mcp` lists the loaded tools.

## 3. Make the first call

First verify the SEO data connection with a free call:

```text theme={null}
Use CrakSEO get_api_credit_balance to report my balance and dataCallsEnabled.
Do not purchase credits or make a paid call.
```

If `dataCallsEnabled` is false, paid data calls are unavailable; adding credits does not enable them. Continue with the free Search Console tools instead. If enabled, review current pricing and get permission before the research call below.

Ask your AI:

```text theme={null}
Use CrakSEO to get the monthly Google search volume and CPC for "seo mcp" in the United States.
```

The client asks permission to call `get_keyword_search_volume` with arguments like these:

```json theme={null}
{
  "keywords": [
    "seo mcp"
  ],
  "country": "US"
}
```

**Expected output** when your account has API credits (the shape is exact; the numbers here are placeholders):

```json theme={null}
{
  "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
  }
}
```

**Expected output** on a new account with no credits: a tool error with `isError: true` whose text is the JSON below. You aren't charged, and the AI should send you to [crakseo.com/app/indexing/credits](https://crakseo.com/app/indexing/credits) instead of retrying:

```json theme={null}
{
  "code": "insufficient_credits",
  "message": "This call needs up to $X.XXXX in API credits. Add credits in the API account."
}
```

For a free first call, connect the Search Console server instead and ask: "List my Search Console properties, then show my top 10 queries for the last 28 days."

## Add more servers

> **All CrakSEO MCP servers**
>
> | Server | Endpoint | Tools | Billing |
> | - | - | - | - |
> | [SEO MCP](https://docs.crakseo.com/mcp-servers/seo.md) | `https://crakseo.com/mcp/seo` | 20 | Pay as you go (API credits) |
> | [Google SERP API MCP](https://docs.crakseo.com/mcp-servers/serp-api.md) | `https://crakseo.com/mcp/serp-api` | 6 | Pay as you go (API credits) |
> | [Keyword Research MCP](https://docs.crakseo.com/mcp-servers/keyword-research.md) | `https://crakseo.com/mcp/keyword-research` | 5 | Pay as you go (API credits) |
> | [Backlink Checker MCP](https://docs.crakseo.com/mcp-servers/backlinks.md) | `https://crakseo.com/mcp/backlinks` | 4 | Pay as you go (API credits) |
> | [Google Rank Tracker MCP](https://docs.crakseo.com/mcp-servers/rank-tracker.md) | `https://crakseo.com/mcp/rank-tracker` | 5 | Pay as you go (API credits) |
> | [SEO Site Audit MCP](https://docs.crakseo.com/mcp-servers/site-audit.md) | `https://crakseo.com/mcp/site-audit` | 3 | Pay as you go (API credits) |
> | [Local SEO MCP](https://docs.crakseo.com/mcp-servers/local-seo.md) | `https://crakseo.com/mcp/local-seo` | 3 | Pay as you go (API credits) |
> | [AI Search Visibility MCP](https://docs.crakseo.com/mcp-servers/ai-visibility.md) | `https://crakseo.com/mcp/ai-visibility` | 4 | Pay as you go (API credits) |
> | [URL Indexing MCP](https://docs.crakseo.com/mcp-servers/url-indexing.md) | `https://crakseo.com/mcp/url-indexing` | 5 | Free IndexNow and Bing; paid Google submission |
> | [Google Search Console MCP](https://docs.crakseo.com/mcp-servers/search-console.md) | `https://crakseo.com/mcp/search-console` | 8 | Free |

## Troubleshooting

* **Server not listed:** check the TOML syntax. Each server needs its own `[mcp_servers.<name>]` table.
* **401 Unauthorized:** run `codex mcp login <name>` again, or check that the key's environment variable is exported in the shell that starts Codex.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.