GeoGridAPI MCP server
OfficialThis MCP server lets an AI assistant run local-SEO "geo-grid" rank tracking for Google Business Profiles on Google Maps, from search to results, batches and schedules.
Find businesses:
find_businesslooks up a listing by name and city and returns itsplace_id.Price a grid first:
estimate_gridreturns exact points and credits (free), same parameters asrun_grid.Run a rank grid:
run_gridmeasures a listing for a keyword on a grid around it — squares 3×3/5×5/7×7/9×9, or circle, diamond, hexagon, cross, ellipse, rectangle (low/medium/high density, up to 49 points), radius 0.5–30 km — and returns the rank map image, average rank, top-3 coverage and competitors ahead. 1 credit per point, refunded on failure.Run many at once:
run_gridsdoes up to 50 grids in one call (one listing with several keywords, or several listings with one keyword), thenget_batchtracks progress.Read results:
get_gridreturns the rank matrix, image, competitors and change since the previous grid;get_historyshows the ranking trend of the same map over time.Review past runs:
list_gridslists earlier grids filtered by listing or keyword.Automate:
schedule_gridreruns a grid weekly or monthly;list_schedules,update_schedule(pause/resume) anddelete_schedulemanage them.Check credits:
get_balanceshows the credits left (1 credit = 1 grid point).
Measures a Google Business Profile's ranking for a keyword across a grid of points in Google Maps, returning the rank map image, average rank, top-3 coverage, competitors ranking ahead, and changes since the previous measurement.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GeoGridAPI MCP server run a 7x7 grid for Joe's Pizza in New York on pizza"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GeoGridAPI MCP server
Ask your AI assistant where a business ranks on Google Maps, block by block.
This MCP server gives Claude, Cursor, VS Code, Windsurf and any MCP client the GeoGridAPI tools: it measures a Google Business Profile for a keyword on every point of a grid around it (a local SEO "geo-grid"), then returns the rank map as an image, the competitors ranking ahead and the change since the last measure.
"Run a 7×7 grid for Joe's Pizza in New York on pizza, then tell me who beats them in the north-east."
It runs locally over stdio and relays every call to the hosted server at https://api.geogridapi.io/mcp, so tools stay in sync with the API.
Quick start
Create an account on geogridapi.io: 500 free credits, no card.
Create an API key in the console.
gga_test_keys are free and return sample grids;gga_live_keys measure real grids (1 credit = 1 grid point).Add the server to your client (Node.js 20 or later):
Claude Desktop (claude_desktop_config.json), Cursor (.cursor/mcp.json), Windsurf, Cline:
{
"mcpServers": {
"geogridapi": {
"command": "npx",
"args": ["-y", "geogridapi-mcp"],
"env": { "GEOGRIDAPI_API_KEY": "gga_live_…" }
}
}
}Claude Code:
claude mcp add geogridapi --env GEOGRIDAPI_API_KEY=gga_live_… -- npx -y geogridapi-mcpVS Code (.vscode/mcp.json):
{
"servers": {
"geogridapi": {
"type": "stdio",
"command": "npx",
"args": ["-y", "geogridapi-mcp"],
"env": { "GEOGRIDAPI_API_KEY": "gga_live_…" }
}
}
}Docker:
docker build -t geogridapi-mcp https://github.com/geogridapi/geogridapi-mcp.git
docker run -i --rm -e GEOGRIDAPI_API_KEY=gga_live_… geogridapi-mcpYour client supports remote servers? You can skip this package and connect straight to https://api.geogridapi.io/mcp, with OAuth (Claude, ChatGPT) or an Authorization: Bearer header. See the MCP documentation.
Related MCP server: Google Maps Scraper
Tools
Tool | What it does | Cost |
| Finds a Google Business Profile by name and city, returns its | Free |
| Exact points and credits of a grid before running it. | Free |
| Measures a listing for a keyword on a grid: square 3×3, 5×5, 7×7 or 9×9, or circle, diamond, hexagon, cross, ellipse, rectangle. Returns the rank map image, average rank, top 3 coverage and competitors ahead. | 1 credit per point |
| Up to 50 grids in one call: one listing with several keywords, or several listings with one keyword. | 1 credit per point |
| A grid with its rank matrix, image, competitors and change since the previous one. | Free |
| Past grids, filtered by listing or keyword. | Free |
| Ranking trend of the same map over time. | Free |
| Reruns a grid every week or every month. | 1 credit per point per run |
| Credits left. | Free |
Six prompts come with it: local visibility audit, who ranks ahead, several keywords, ranking trend, track my listing and client report.
Ranks are positions in the Google Maps results at each grid point: lower is better, null means not in the top 20.
Configuration
Variable | Default | |
| none | Required for tool calls. Without it the server still lists its tools. |
|
| Hosted server to relay to. |
Development
npm install
npm test # unit tests, no network
GEOGRIDAPI_API_KEY=gga_test_… npm run smoke # end-to-end over stdio, free
GEOGRIDAPI_API_KEY=gga_test_… npm run sync-catalog # refresh the offline tool catalogRelated
local-rank-heatmap: one command, one Google Maps rank heatmap.
n8n-nodes-geogridapi: the GeoGridAPI node for n8n.
API documentation and pricing.
License
MIT © Localnord, LLC (GeoGridAPI)
Available Tools
13 toolsdelete_scheduleDelete a repeated gridADestructiveIdempotent
Stop repeating a grid for good. Grids already run are kept.
Inputs: schedule_id (required).
estimate_gridEstimate the cost of a gridARead-only
Exact number of points and credits a grid would cost before running it (points at sea are removed for shapes), and the balance after. Same parameters as run_grid. Free: nothing is reserved or charged.
Inputs: keyword (required), size, query, shape, +5 more.
find_businessFind a Google Business ProfileARead-only
Search Google Maps listings by name and city. Returns place_id values to use with run_grid. Free.
Inputs: query (required), language.
get_balanceGet the credit balanceBRead-only
Credits left on the account (1 credit = 1 grid point). Free.
Inputs: no named parameters.
get_batchGet a batch of gridsARead-only
Progress of a batch started with run_grids: each grid waiting, running, completed with its average rank and top 3, or failed and why. Free.
Inputs: batch_id (required).
get_gridGet a gridARead-only
Status and result of a grid created with run_grid or the API: ranks matrix (north at the top), competitors most often in the top 3, change since the previous grid of the same listing, and the map as an image once completed.
Inputs: grid_id (required).
get_historyGet the ranking trendARead-only
How a listing's ranking evolves for a keyword: every completed grid of the same map (same format, radius and center), oldest first, with the change between the first and the last. Give grid_id, or place_id and keyword (the latest grid sets the format). Free.
Inputs: limit, grid_id, keyword, place_id.
list_gridsList past gridsARead-only
The account's grids, newest first, optionally for one listing (place_id) or one exact keyword. Returns grid_id values to use with get_grid, get_history or schedule_grid. Free.
Inputs: limit, before, keyword, place_id.
list_schedulesList repeated gridsARead-only
The account's repeated grids: rhythm, status (active, paused, or stopped and why), next run and credits per month. Free.
Inputs: no named parameters.
run_gridRun a local rank gridA
Measure where a Google Business Profile ranks on Google Maps for a keyword, on every point of a grid around it. Shapes: square (size 3, 5, 7 or 9) or circle, diamond, hexagon, cross, ellipse, rectangle (density low, medium or high, up to 49 points). Costs one credit per point (square 3×3 = 9, 7×7 = 49, 9×9 = 81; medium circle = 29; points at sea are skipped and not charged), refunded if the grid fails. Test keys (gga_test_) return free mock grids. Waits up to wait_seconds, then returns the grid id if it is still running.
Inputs: keyword (required), size, query, shape, +6 more.
run_gridsRun several grids at onceA
Run up to 50 grids in one call, all with the same format: one listing with several keywords, or several listings with one keyword. Each item needs place_id or query, and a keyword. Costs one credit per point of each grid (refunded if a grid fails); refused upfront when the balance cannot cover them all. Grids start as slots free up (10 at a time). Waits up to wait_seconds, then returns the batch so far: call get_batch for the rest.
Inputs: items (required), size, shape, country, +4 more.
schedule_gridRepeat a gridAIdempotent
Rerun an existing grid (same listing, keyword, format and radius) every week (weekday 1 = Monday … 7 = Sunday) or every month (month_day 1 to 28), around 7 am Paris time. Each run costs the grid's credits; the schedule stops and the account gets an email when the balance runs out.
Inputs: grid_id (required), frequency (required), weekday, month_day.
update_schedulePause or resume a repeated gridAIdempotent
Pause a repeated grid (status paused) or resume it (status active; a schedule stopped for lack of credits restarts too).
Inputs: status (required), schedule_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Most tools have distinct purposes: find_business, run_grid, estimate_grid, get_balance, and the schedule family are clearly separated. However, run_grid vs run_grids (single vs batch) and get_grid vs get_batch vs get_history vs list_grids form a cluster of result-retrieval tools that could be confused without careful reading, though the descriptions do clarify each.
All 13 tools follow a consistent snake_case verb_noun pattern (find_business, run_grid, get_grid, list_schedules, schedule_grid, update_schedule, delete_schedule). Verbs are used predictably for their action type, making the naming highly readable.
13 tools is well within the ideal 3-15 range and each tool earns its place: search, grid execution, batch execution, result retrieval, cost estimation, balance, and full schedule lifecycle. No obvious filler or redundancy.
The surface covers the full lifecycle well: business search, grid run/estimate/get, batch run/status, history, balance, and complete schedule CRUD (create, list, update, delete). Minor gaps exist — there is no single get_schedule detail call and no way to cancel or delete already-run grids, but these are workable omissions.
Maintenance
Related MCP Connectors
Google Maps local rank grids for any Google Business Profile, paid per point, no subscription.
Live Google Maps business search, review, and photo data for AI agents over MCP.
Scrape Google Maps business leads, reviews, and photos via hosted Remote MCP.
Local SEO MCP: Google Maps rankings, Google Business Profile ratings and review counts.
Related MCP Servers
- -licenseNot gradedqualityCmaintenanceEnables AI assistants to perform comprehensive SEO and GEO measurements, including site audits, keyword research, ranking tracking, and brand visibility analysis across search engines and generative AI platforms.-
- AlicenseNot gradedqualityDmaintenanceGive your AI agent live Google Maps search, review, and photo data through one secure MCP connection.1MIT
- FlicenseNot gradedqualityBmaintenanceEnables turning Google Maps queries into structured lead lists, extracting business names, phone numbers, websites, and reviews with asynchronous job control.-
- AlicenseNot gradedqualityCmaintenanceEnables AI clients to search Google Maps places and retrieve reviews, photos, scrape jobs, results, and exports through a hosted MCP API.MIT