Skip to main content
ClaudeWave

Geocoding MCP Server - forward & reverse geocoding, place search, distance between locations via OpenStreetMap Nominatim. No API key, zero-config npx, for Claude & any MCP client.

MCP ServersOfficial Registry0 stars0 forksPythonMITUpdated today
Install in Claude Code / Claude Desktop
Method: NPX · wrapper
Claude Code CLI
claude mcp add geocode-mcp -- npx -y wrapper
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "geocode-mcp": {
      "command": "npx",
      "args": ["-y", "wrapper"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# Geocoding MCP Server 🗺️

[![npm version](https://img.shields.io/npm/v/geocode-mcp.svg)](https://www.npmjs.com/package/geocode-mcp)
[![npm downloads](https://img.shields.io/npm/dm/geocode-mcp.svg)](https://www.npmjs.com/package/geocode-mcp)
[![Python](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

Turn place names and addresses into coordinates (and back) for Claude Desktop and any MCP-compatible client, powered by [OpenStreetMap Nominatim](https://nominatim.org). Forward & reverse geocoding, place/POI search, and distance between locations — all from natural language. **No API key required.**

> **npm package:** [`geocode-mcp`](https://www.npmjs.com/package/geocode-mcp) &nbsp;·&nbsp; **GitHub repo:** [`danishashko/geocode-mcp`](https://github.com/danishashko/geocode-mcp).

## 🎯 What You Get

- 📍 **Geocode** — address/place/landmark → latitude & longitude
- 🔄 **Reverse geocode** — coordinates → human-readable address
- 🔎 **Place search** — find POIs/places by description
- 📏 **Distance** — straight-line distance between two named places

Geocoding is something LLMs can't reliably do on their own — this gives Claude real, current coordinates from OpenStreetMap. Every tool returns human-readable **markdown** by default, or structured **JSON** on request (`response_format: "json"`). Lightweight (Python standard library + `mcp` only), no API key.

## 🚀 Quick Start

Add this to your Claude Desktop config and restart Claude:

- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "geocode": {
      "command": "npx",
      "args": ["-y", "geocode-mcp"],
      "env": {
        "GEOCODE_USER_AGENT": "your-app-name your@email.com"
      }
    }
  }
}
```

OpenStreetMap asks every client to send a descriptive `User-Agent` with contact info. Set `GEOCODE_USER_AGENT` to your own name/email (a default is provided so it works out of the box). On first launch the npx wrapper creates an isolated Python environment and installs the dependency (one-time, ~a minute). You need **Python 3.10+** and **Node.js 16+**.

### Prefer a global install?

```bash
npm install -g geocode-mcp
```

```json
{
  "mcpServers": {
    "geocode": {
      "command": "geocode-mcp",
      "env": { "GEOCODE_USER_AGENT": "your-app-name your@email.com" }
    }
  }
}
```

## 🔧 Available Tools

| Tool | What it returns | Parameters |
|------|-----------------|------------|
| `geocode` | Ranked coordinate matches for an address/place/landmark | `query`, `limit`, `country_codes` |
| `reverse_geocode` | The address at a given latitude/longitude | `latitude`, `longitude` |
| `search_places` | Places/POIs matching a description, with coordinates | `query`, `limit`, `country_codes` |
| `distance_between` | Straight-line distance between two named places | `origin`, `destination`, `unit` |

Every tool also accepts `response_format` (`"markdown"`, the default, or `"json"`). `country_codes` is an optional comma-separated ISO 3166-1 alpha-2 filter (e.g. `us` or `us,ca`).

## 💬 Example Prompts

Once the server is connected, just ask Claude:

- "What are the coordinates of the Eiffel Tower?"
- "What's at latitude 40.7484, longitude -73.9857?"
- "Find bookstores in Paris."
- "How far is it from London to Edinburgh in miles?"
- "Geocode '1600 Pennsylvania Avenue' — US only."

## 🐛 Troubleshooting

**"OpenStreetMap is rate-limiting requests"**
Nominatim's public server allows ~1 request/second. This server self-throttles, but if you still hit it, wait a moment.

**"No locations found"**
Try a more specific or differently-worded query, or add a `country_codes` filter to disambiguate.

**"Command not found" / "Python not found"**
Ensure Python 3.10+ and Node.js 16+ are installed and on your PATH. On macOS/Linux, try `python3`.

**Tools not showing up in Claude**
1. Confirm the config file is valid JSON (no trailing commas).
2. Fully quit and reopen Claude Desktop.

## 🛠️ Manual Installation (Alternative)

If you would rather run the Python file directly instead of via npx:

**1. Download the server and install the dependency**

```bash
pip install mcp
```

(or `pip3` on macOS/Linux)

**2. Point Claude Desktop at it**

```json
{
  "mcpServers": {
    "geocode": {
      "command": "python3",
      "args": ["/absolute/path/to/geocode_mcp.py"],
      "env": { "GEOCODE_USER_AGENT": "your-app-name your@email.com" }
    }
  }
}
```

On Windows use `"command": "python"` and a path like `"C:\\path\\to\\geocode_mcp.py"`.

**3. Restart Claude Desktop.**

## 🔒 Privacy & Usage Policy

- Uses OpenStreetMap's free [Nominatim API](https://nominatim.org) — public, no key.
- Requests go straight from your machine to OpenStreetMap. Nothing is stored or proxied.
- Per the [Nominatim Usage Policy](https://operations.osmfoundation.org/policies/nominatim/), the server sends a descriptive `User-Agent` and self-throttles to ~1 request/second. Please don't use it for bulk/heavy workloads against the public server.
- Data © OpenStreetMap contributors, available under the [ODbL](https://www.openstreetmap.org/copyright).

## 📝 Notes

- `distance_between` returns straight-line (great-circle) distance, **not** driving/route distance.
- Results are ranked by relevance/importance; use `country_codes` to narrow ambiguous names (e.g. "Springfield").
- Reverse geocoding near water or remote areas may return no address.

## 📋 Changelog

See [CHANGELOG.md](CHANGELOG.md) for the full version history.

## 📚 Resources

- [Model Context Protocol](https://modelcontextprotocol.io/)
- [Nominatim API documentation](https://nominatim.org/release-docs/latest/api/Overview/)
- [Nominatim Usage Policy](https://operations.osmfoundation.org/policies/nominatim/)

## ⚖️ Legal Disclaimer

This tool uses the OpenStreetMap Nominatim API but is not affiliated with or endorsed by the OpenStreetMap Foundation. Geocoding data © OpenStreetMap contributors, licensed under the [Open Database License](https://www.openstreetmap.org/copyright). Use is subject to the [Nominatim Usage Policy](https://operations.osmfoundation.org/policies/nominatim/).

## 👤 Author

**Daniel Shashko**
- GitHub: [@danishashko](https://github.com/danishashko)
- LinkedIn: [daniel-shashko](https://linkedin.com/in/daniel-shashko)
- npm: [danielshashko](https://www.npmjs.com/~danielshashko)

## 📄 License

MIT © Daniel Shashko

What people ask about geocode-mcp

What is danishashko/geocode-mcp?

+

danishashko/geocode-mcp is mcp servers for the Claude AI ecosystem. Geocoding MCP Server - forward & reverse geocoding, place search, distance between locations via OpenStreetMap Nominatim. No API key, zero-config npx, for Claude & any MCP client. It has 0 GitHub stars and was last updated today.

How do I install geocode-mcp?

+

You can install geocode-mcp by cloning the repository (https://github.com/danishashko/geocode-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is danishashko/geocode-mcp safe to use?

+

danishashko/geocode-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.

Who maintains danishashko/geocode-mcp?

+

danishashko/geocode-mcp is maintained by danishashko. The last recorded GitHub activity is from today, with 0 open issues.

Are there alternatives to geocode-mcp?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy geocode-mcp to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: danishashko/geocode-mcp
[![Featured on ClaudeWave](https://claudewave.com/api/badge/danishashko-geocode-mcp)](https://claudewave.com/repo/danishashko-geocode-mcp)
<a href="https://claudewave.com/repo/danishashko-geocode-mcp"><img src="https://claudewave.com/api/badge/danishashko-geocode-mcp" alt="Featured on ClaudeWave: danishashko/geocode-mcp" width="320" height="64" /></a>

More MCP Servers

geocode-mcp alternatives