GEO MCP serverFree access
Give your AI agent a GEO + SEO check.
The Sundayable GEO MCP server lets an AI agent check any public website for search and AI-answer readiness. Your agent gets SEO and GEO scores, the top three gaps and a fix for every check, with the evidence behind each one.
For marketers, agencies, developers and owners who already work with an agent like Codex, Claude Code or Cursor.
Free account, no card. 10 checks a day per token.
YouCheck example.com with the Sundayable GEO tools and tell me the top three fixes.
geo_analyze_startqueuedgeo_analyze_statusreadygeo_analyze_result19 checks
example.com scores 30 overall (SEO 24, GEO 39), with 91% of the checklist measurable. Fix these first:
- Remove the noindex directive from public pages.
- Answer common questions directly below each question.
- Give each key page a distinct, descriptive title.
In short
- What it is
- A remote MCP server with three tools that run Sundayable’s 19-check GEO + SEO analyzer, the same one behind the free checker.
- What your agent gets
- Scores, coverage, the top three gaps, every finding with evidence and a fix, crawler access and optional mobile speed. As structured JSON.
- What it costs
- Nothing. Sign up for a token. The check calls no paid AI or data provider.
How it works
Three steps, about five minutes.
Create a free token
Sign up with Google or your email, then make a personal token. It’s shown once and lasts 30 days.
Add the server to your agent
Paste a config block into your agent’s MCP settings. Setup for Codex, Claude Code, Cursor and Claude Desktop is below.
Ask for a check
Name a website in plain words. Your agent starts the check, waits for it and reads you the findings.
Setup
Copy the config for your agent.
Replace geo_mcp_your_token with your own token, or keep it in an environment variable. Each tab says what we have tested ourselves. There is no OAuth or one-click install yet.
Codex
Tested ·Put your token in an environment variable, then add the server to your Codex config. Codex reads the token from the variable, so it never sits in the file.
export GEO_MCP_TOKEN="geo_mcp_your_token"[mcp_servers.sundayable_geo]
url = "https://sundayable.com/api/geo-mcp"
bearer_token_env_var = "GEO_MCP_TOKEN"
enabled_tools = ["geo_analyze_start", "geo_analyze_status", "geo_analyze_result"]We ran a full production check through Codex CLI 0.153.3 with this config.
Claude Code
Tested ·Add the server with one command, or commit a project .mcp.json that reads the token from your environment.
claude mcp add --transport http sundayable-geo https://sundayable.com/api/geo-mcp \
--header "Authorization: Bearer $GEO_MCP_TOKEN"{
"mcpServers": {
"sundayable-geo": {
"type": "http",
"url": "https://sundayable.com/api/geo-mcp",
"headers": { "Authorization": "Bearer ${GEO_MCP_TOKEN}" }
}
}
}Tested on our isolated preview with Claude Code 2.1.280: a full check using this command and a report read using .mcp.json with the token read from the environment. The snippets here use the production endpoint.
Cursor
Tested ·Add the server to your global or project mcp.json. Cursor fills in the token from your environment.
{
"mcpServers": {
"sundayable-geo": {
"url": "https://sundayable.com/api/geo-mcp",
"headers": { "Authorization": "Bearer ${env:GEO_MCP_TOKEN}" }
}
}
}Tested on our isolated preview with the Cursor CLI (cursor-agent 2026.10.14): a full check using this mcp.json. The snippet here uses the production endpoint. The Cursor editor itself was not tested.
Claude Desktop
Bridge tested ·Claude Desktop’s custom connectors don’t take a token header, so this uses the open-source mcp-remote bridge in claude_desktop_config.json. It needs Node.js.
{
"mcpServers": {
"sundayable-geo": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://sundayable.com/api/geo-mcp", "--header", "Authorization:${GEO_AUTH}"],
"env": { "GEO_AUTH": "Bearer geo_mcp_your_token" }
}
}
}The token sits in this file, so keep it private. This config and bridge completed a full check on our isolated preview, outside the Claude Desktop app. The snippet here uses the production endpoint; the Desktop app itself was not tested.
ChatGPT
Not in the app yetCustom MCP servers in the ChatGPT app connect with OAuth or no sign-in. This server uses a personal token, so it doesn’t plug into the ChatGPT app yet. Use Codex, OpenAI’s coding agent, or call it from the OpenAI Responses API:
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"tools": [{
"type": "mcp",
"server_label": "sundayable_geo",
"server_url": "https://sundayable.com/api/geo-mcp",
"authorization": "'"$GEO_MCP_TOKEN"'",
"require_approval": "never"
}],
"input": "Check https://example.com with the Sundayable GEO tools and list the top three fixes."
}'Follows OpenAI’s remote MCP documentation. We haven’t run it against the live server yet.
Any other MCP client
Enter these values in the client’s own server settings. Put the token in its secret field, never in the address.
- Transport
Streamable HTTP- Server URL
https://sundayable.com/api/geo-mcp- Header
Authorization: Bearer <your GEO token>
Example prompts
Ask in plain words.
Name the website and say what you want back. A good agent asks before it starts a check, because each one counts toward your allowance.
Check https://yourbusiness.com with the Sundayable GEO tools and tell me the top three fixes.
Run a GEO check on our site and on competitor.com, then compare which checks each one fails.
Which AI search crawlers can reach https://yourbusiness.com? Use the Sundayable GEO check and quote the evidence.
Check https://yourclient.com and turn the three highest-priority gaps into a task list with the exact changes.
What comes back
The result is JSON your agent can read, compare across sites and turn into a task list. Each finding says what we found, why it matters and what to change, with the pages it came from.
scoresSEO, GEO and overall out of 100, plus coverageprioritiesup to three gaps, ranked by the points they costfindingsall 19 checks with evidence and a fixcrawlerswhich search and AI bots can reach the sitelimitationswhat the check could not see
A score is a readiness checklist result. It doesn’t measure whether AI assistants cite you, your rankings or your traffic, and it promises none of them.
{
"state": "ready",
"url": "https://example.com/",
"scores": { "overall": 30, "seo": 24, "geo": 39, "coverage": 91 },
"priorities": [
{
"id": "indexable",
"label": "Search indexing directives",
"priority": "high",
"evidence": "A noindex/none directive was found in HTML or response headers.",
"recommendation": "Remove unintended noindex directives from public pages and verify indexing in Search Console."
},
{ "id": "answers", "label": "Questions with direct answers", "priority": "high" },
{ "id": "title", "label": "Clear page titles", "priority": "high" }
],
"aiVisibility": { "status": "not_measured" },
"cost": { "paidCalls": 0, "providerUsd": 0 },
"sideEffects": { "emailSent": false, "leadCreated": false }
}Tools
Three tools. Start, wait, read.
Every tool input rejects extra fields. There are no email, booking or account tools, and nothing else in your account is reachable.
geo_analyze_startStarts a check of one public website. Takes the URL and a random request key, returns a private report ID.
geo_analyze_statusReads whether the check is queued, running, ready or failed. Never starts or retries work.
geo_analyze_resultReturns scores, coverage, the top three gaps, every finding with evidence and a fix, pages read, crawler access, mobile speed and limitations.
Limits
Free, with fair limits.
Limits keep the free tier fast for everyone. When you hit one, the tool returns rate_limited with a retryAfter in seconds.
| New checks per token | 3 an hour and 10 a day (UTC) |
|---|---|
| New checks per account | 5 an hour and 20 a day (UTC), across all your tokens |
| New checks per network | 30 an hour and 150 a day per IP address, shared with browser checks on /geo |
| Checks running at once | 2 per account |
| Requests | 30 a minute per token and 60 per account, including status polls |
| Shared daily service limits | 200 new MCP checks across accounts; 1000 new checks shared with public /geo |
| Repeated and cached requests | Retrying with the same key returns the same check. Cached and coalesced checks do not spend an analysis allowance; request limits still apply. |
| What one check reads | Homepage plus up to three linked pages, within 14 seconds |
| How long results stay readable | 30 days |
| Tokens | Last 30 days, up to 5 active per account |
Security and privacy
What we keep, and what we don’t.
Token and report expiry ends access; it doesn’t delete stored data. Email hello@sundayable.com to have your data removed. Details are in our privacy policy.
Your token stays yours
We store a hash, never the token, and show it once. It expires after 30 days, you can revoke it any time, and it can only run these three tools.
Reports are private
Your token reads the JSON; your signed-in account opens the report page and PDF for 30 days. Other accounts can’t list or open your reports.
What we store
Signup saves your name, email and signup activity. Each check saves the site you asked about, the findings, your account and timestamps.
No side effects
A check sends no email, adds you to no list and books nothing. Marketing email is a separate, optional choice at signup.
Public pages only
The checker reads public pages without cookies or logins and refuses private and local network addresses.
Untrusted text stays text
Quoted website text is evidence for your agent to read, never instructions for it to follow.
Questions
The GEO MCP server, answered.
What is the Sundayable GEO MCP server?
It is a remote MCP server that lets an AI agent run Sundayable’s GEO + SEO check on any public website. The agent gets SEO and GEO readiness scores, coverage, the top three gaps and a fix for every one of the 19 checks, with the evidence behind each finding. It is the same analyzer as the free checker at sundayable.com/geo.
Which AI agents can use it?
An MCP client that can connect to a remote Streamable HTTP server and send its own Authorization header. We have run full checks through Codex CLI, Claude Code and the Cursor CLI. Claude Desktop connects through the open-source mcp-remote bridge; we tested that config, not yet inside the app. The ChatGPT app only offers OAuth or no sign-in for custom MCP servers, so it can’t connect for now. There is no one-click or OAuth install.
Is it free?
Yes. Create an account, make a token and run up to 10 checks a day per token and 20 a day per account. No card. The check uses no paid AI or data provider.
Why do I need an account to get a token?
Each token belongs to one verified person. That keeps your reports private to you, stops abuse and keeps the free allowance fair. Signing up saves your name, email and signup activity to Sundayable’s contact system. Marketing email is a separate, optional choice, and saying no doesn’t affect your token.
What does a check measure, and what doesn’t it?
It reads your homepage and up to three linked pages and scores titles, headings, structured data, answer-shaped copy, crawler access for search and AI answer bots, sitemaps, canonical tags. Mobile speed is measured only when PageSpeed is configured and available; otherwise it is marked not measured. It does not measure whether ChatGPT or other assistants actually cite you, your rankings, traffic, backlinks or Search Console data. A high score is a readiness checklist result, not a ranking or traffic promise.
How is it different from the free checker at /geo?
Same analyzer, different delivery. Both use the same account, analyzer and cached website evidence. MCP returns structured JSON and a private report page with a PDF, accessible through your signed-in account. It never runs the browser checker’s optional AI answer sample or sends report email.
What do you store, and is my token safe?
We store a hash of your token, never the token itself, and show it to you once. Tokens expire after 30 days and you can revoke one at any time. For each check we store the site you asked about, the findings, your account and timestamps. Reports stay readable for 30 days: JSON requires your token; the report page and PDF require your signed-in account. Expiry ends access; it doesn’t delete the data. Email hello@sundayable.com to have it removed.
Can Sundayable fix what the check finds?
Yes. Book a free consultation and we’ll go through your results with you and tell you what we’d fix first. Website and search work is one of our service lines.
Want the fixes done?
Your agent finds the gaps. Our team can close them.
Book a free consultation. We’ll go through your results and tell you what we’d fix first.
Endpoint: https://sundayable.com/api/geo-mcp. Codex, ChatGPT, Claude, Claude Code and Cursor are trademarks of their owners. Sundayable isn’t affiliated with or endorsed by them; their names appear only to describe setup.