GridPin offline geocoder MCP server
io.github.gridpin/gridpin-mcp·v0.4.0Offline geocoding and reverse geocoding from one local file per country. No API key, no rate limit.
not scanned yet
0 stars
Reviews
Write oneNobody has reviewed GridPin offline geocoder yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
GridPin offline geocoder tools
No tool declarations could be read from the package source. They show once the server is installed.
How GridPin offline geocoder compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 91/100
- higher than 85% of 48,255 servers
Release history: 3 versions in the registry since 2026-10-15, latest 2026-11-02, typically one every 16 days.
Install GridPin offline geocoder in Claude Code, Cursor or VS Code
claude mcp add gridpin-mcp -- uvx gridpin-mcp
What the publisher says
From the GridPin offline geocoder repository's README, as published. We do not edit it. Read it on GitHub
GridPin
A country in a file — offline forward and reverse geocoding.
Quick start
$ pip install gridpin gridpin-mcp
$ gridpin-fetch fr # France sheet, 365 MB, checked against the signed release; prints its pathimport gridpin
from gridpin_mcp import sheets
g = gridpin.Geocoder(str(sheets.download("fr"))) # no-op once the sheet is downloaded
g.geocode("1 rue de la Paix, Paris", 1)Countries: br de es fr it nl rs (gridpin-fetch --list). For AI agents there is an MCP server — claude mcp add gridpin -- uvx gridpin-mcp, details in mcp/README.md. Everything after the download runs offline.
GridPin is an offline geocoder: a country in a data file, memory-mapped and ready in milliseconds, with no server, no database import, and no network. It resolves addresses to coordinates (forward) and coordinates to the nearest indexed address (reverse — approximate: streets are indexed by centroid, so each result carries its distance_m). On a single arm64 laptop core, measured on the France sheet: exact address lookups run at ~3,000/s, reverse geocoding at ~1,800/s, and typo-tolerant fuzzy matching much slower — tens of milliseconds per query, so batch it across cores when you feed it messy input. The engine and every query run fully offline — not a byte of what you geocode leaves your machine; the only network step is you downloading a sheet yourself, and a downloaded sheet carries no query data. Because you compute results locally from openly licensed data, you may store them forever, which hosted geocoding APIs typically forbid. If you have considered self-hosting Nominatim (a beefy server, days of import) or an on-prem geocoder license, the alternative here is: download one file, open it on any laptop.
Install
CLI — prebuilt binaries for Linux x8664 (x8664-unknown-linux-gnu), macOS Apple Silicon (aarch64-apple-darwin) and Windows x8664 (x8664-pc-windows-msvc) are attached to every GitHub release; other targets (Intel macOS, Linux arm64/musl, Windows arm) build from source:
$ base=https://github.com/gridpin/gridpin/releases/download/v0.4.0
$ curl -fsSLO "$base/gridpin-aarch64-apple-darwin.tar.gz"
$ curl -fsSLO "$base/gridpin-release-signers"
$ curl -fsSLO https://dl.gridpin.dev/v0.4.0/attestation.json
$ curl -fsSLO https://dl.gridpin.dev/v0.4.0/attestation.json.sig
# the trust root comes from the OTHER channel — see "Verifying a release" for why
$ ssh-keygen -Y verify -f gridpin-release-signers -I gridpin-release \
-n gridpin-g02 -s attestation.json.sig < attestation.json \
|| { echo "signature does not verify — STOP"; exit 1; }
$ want=$(python3 -c 'import json;print([a["sha256"] for a in json.load(open("attestation.json"))["assets"] if a["name"]=="gridpin-aarch64-apple-darwin.tar.gz"][0])')
$ test "$want" = "$(shasum -a 256 gridpin-aarch64-apple-darwin.tar.gz | cut -d' ' -f1)" \
|| { echo "archive does not match the signed attestation — STOP"; exit 1; }
$ tar xzf gridpin-aarch64-apple-darwin.tar.gz && sudo mv gridpin /usr/local/bin/Yes, that is longer than curl | tar. Unpacking an archive runs its contents sooner or later, and a checksum published beside the file it describes proves only that the download was not truncated — whoever can replace one can replace both. The four extra lines are what makes it a check.
Or build from source with stable Rust: cargo build --release --manifest-path gridpin/Cargo.toml.
Python — pip install gridpin. This one rests on PyPI's own integrity, not on the signature above: the attestation covers the artifacts we publish ourselves. If you need the signed chain, take the wheel from the GitHub release and verify it the same way as the CLI archive.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
GridPin offline geocoder: common questions
- Is GridPin offline geocoder MCP server safe?
- Yes, by our scan: it is graded A (91/100). Read the GridPin offline geocoder safety report
- How do I install GridPin offline geocoder?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does GridPin offline geocoder need an API key?
- No secret keys are declared. It reads 1 setting from the environment.
- Is GridPin offline geocoder maintained?
- The last commit was 20 days ago (2026-10-15). The latest release is v0.4.0.