Skip to main content
Glama
GeoGridAPI MCP server

GeoGridAPI MCP server

Official
by geogridapi

GeoGridAPI MCP server

test License: MIT

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

  1. Create an account on geogridapi.io: 500 free credits, no card.

  2. 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).

  3. 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-mcp

VS 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-mcp

Your 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

find_business

Finds a Google Business Profile by name and city, returns its place_id.

Free

estimate_grid

Exact points and credits of a grid before running it.

Free

run_grid

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

run_grids / get_batch

Up to 50 grids in one call: one listing with several keywords, or several listings with one keyword.

1 credit per point

get_grid

A grid with its rank matrix, image, competitors and change since the previous one.

Free

list_grids

Past grids, filtered by listing or keyword.

Free

get_history

Ranking trend of the same map over time.

Free

schedule_grid, list_schedules, update_schedule, delete_schedule

Reruns a grid every week or every month.

1 credit per point per run

get_balance

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

GEOGRIDAPI_API_KEY

none

Required for tool calls. Without it the server still lists its tools.

GEOGRIDAPI_MCP_URL

https://api.geogridapi.io/mcp

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 catalog

License

MIT © Localnord, LLC (GeoGridAPI)

Available Tools

13 tools
delete_scheduleDelete a repeated gridA
DestructiveIdempotent

Stop repeating a grid for good. Grids already run are kept.

Inputs: schedule_id (required).

estimate_gridEstimate the cost of a gridA
Read-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 ProfileA
Read-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 balanceB
Read-only

Credits left on the account (1 credit = 1 grid point). Free.

Inputs: no named parameters.

get_batchGet a batch of gridsA
Read-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 gridA
Read-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 trendA
Read-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 gridsA
Read-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 gridsA
Read-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 gridA
Idempotent

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 gridA
Idempotent

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

    A3.9/5.0

    Scored across 13 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness4/5

    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

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • -
      license
      Not graded
      quality
      C
      maintenance
      Enables 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.
      -