Set up the SEOFix MCP server by hand
Manual MCP setup for Claude Code, Codex, Cursor and other clients - endpoint, Authorization bearer header, transport and connection troubleshooting.
The SEOFix MCP server is a remote Streamable HTTP server at https://mcp.seofix.ai/mcp. Add it to your agent with your API key in an Authorization: Bearer sk_... header. The quickest way is npx seofix connect; this page covers doing it by hand.
Before you start
You need an API key. In the app: Settings → Agent & MCP → Create API key. Copy it from the dialog: it is shown only once. The key acts for the team you were viewing when you created it. See API keys.
In the examples below, replace sk_... with your key.
Claude Code
Run in your project's terminal:
claude mcp add --transport http seofix https://mcp.seofix.ai/mcp \
--header "Authorization: Bearer sk_..."
Add --scope user to use it in every project, not only this one. Check it with claude mcp get seofix.
Codex
Add to ~/.codex/config.toml:
[mcp_servers.seofix]
url = "https://mcp.seofix.ai/mcp"
http_headers = { "Authorization" = "Bearer sk_..." }
To keep the key out of the file, use bearer_token_env_var = "SEOFIX_API_KEY" instead of http_headers, and set SEOFIX_API_KEY in the environment Codex runs in.
Cursor
Add to .cursor/mcp.json in your project:
{
"mcpServers": {
"seofix": {
"url": "https://mcp.seofix.ai/mcp",
"headers": {
"Authorization": "Bearer sk_..."
}
}
}
}
This file holds your key. Keep it out of version control, for example by adding /.cursor/mcp.json to .git/info/exclude or .gitignore.
Other MCP clients
Any client that supports remote HTTP servers with custom headers works. The generic shape is:
{
"mcpServers": {
"seofix": {
"type": "http",
"url": "https://mcp.seofix.ai/mcp",
"headers": {
"Authorization": "Bearer sk_..."
}
}
}
}
Key names differ between clients; check your client's documentation. If your client only supports local stdio servers, put an HTTP-to-stdio bridge in front of the URL. The server itself only speaks Streamable HTTP.
How the server works
| Property | Value |
|---|---|
| Endpoint | https://mcp.seofix.ai/mcp |
| Transport | Streamable HTTP, stateless: no sessions, no server-initiated notifications |
| Methods | POST /mcp only. GET and DELETE /mcp answer 405 Method not allowed.; any other path answers 404. |
| Auth | Authorization: Bearer sk_... on every request. The Bearer prefix is optional. |
| Tools | 33, listed in the MCP tools reference |
The server holds no credentials. It reads the bearer token from each request and passes it to the SEOFix REST API (https://api.seofix.ai/v1). Every tool call is therefore subject to the same permissions, credit costs and rate limits as the API: 60 requests per minute per key, plus per-endpoint limits. See Errors and rate limits.
Tool results and errors
A successful tool returns one text item, usually compact JSON. get_fix_prompt returns markdown.
A failed tool returns a text item with isError: true in the form code: message, for example:
site_not_verified: Rechecks need a verified site. Verify ownership first: see GET /v1/sites/{id}/verification.
budget_exhausted errors also carry (resets_at: <ISO time>). The codes are the API's error codes; see Errors and rate limits.
Troubleshooting
| Symptom | Cause and fix |
|---|---|
unauthenticated: No API key provided. |
The client sent no Authorization header. Check the header name and that your client supports custom headers for HTTP servers. |
unauthenticated: Valid API key required. |
The key is wrong, was revoked, or was replaced by a rotation. Create a new key or run npx seofix connect. |
team_access_revoked: ... |
You are no longer a member of the team the key acts for. Get a new key for a team you belong to. |
rate_limited: ... |
More than 60 calls per minute with this key, or a per-endpoint limit. Wait and retry. |
network_error: Could not reach the audit API |
The MCP server could not reach the API. Retry shortly; if it persists, email [email protected]. |
| The client cannot connect or lists no tools | Check the URL is exactly https://mcp.seofix.ai/mcp, that the transport is HTTP (not SSE or stdio), and restart the agent after changing its config. |
| The agent still uses an old key | Agents read their MCP config at start. Restart the agent after rotating or reconnecting. |
To test your key without MCP:
curl -s https://api.seofix.ai/v1/ping -H "Authorization: Bearer $SEOFIX_API_KEY"
A valid key answers {"user_id": ...}.
Related
More in AI agents & MCP
Still stuck? Email [email protected] with your site and what you expected to see.