Wraps the Geomelon geographic API from RapidAPI and exposes cities, countries, regions, and languages as MCP tools. You can search cities by name, country, or coordinates, calculate distances between locations, fetch administrative regions, and pull translations in multiple languages. Includes compound tools that chain calls for things like finding nearby cities or building a full country overview with regions and top cities. Ships with both stdio for Claude Desktop and HTTP transport for Claude Code or remote hosting. Requires a RapidAPI key to access the Geomelon API, though there's also a free oneshot prefix search endpoint you can call directly without authentication.
MCP server for the Geomelon geographic API. Exposes cities, countries, regions, and languages as tools any MCP-compatible AI client can call.
Looking for other ways to integrate? See all official libraries at geomelon.dev/libraries.
Two transports are included:
| Binary | Transport | Use case |
|---|---|---|
geomelon-mcp | stdio | Claude Desktop, Cursor, Cline, Continue |
geomelon-mcp-http | HTTP (Streamable) | Claude Code, remote / hosted server |
Create a .env file in the directory you'll run the server from:
cp .env.example .env
# then edit .env and set GEOMELON_API_KEY
Start the server (dotenv loads .env automatically):
npx geomelon-mcp-http
Register it with Claude Code:
claude mcp add --transport http geomelon http://localhost:3000/mcp
Verify it's connected:
claude mcp list
The server must be running whenever you use Claude Code. To use a different port set PORT=your_port and update the URL in the claude mcp add command accordingly.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"geomelon": {
"command": "npx",
"args": ["-y", "geomelon-mcp"],
"env": {
"GEOMELON_API_KEY": "your_rapidapi_key_here"
}
}
}
}
Restart Claude Desktop after saving.
Add to your editor's MCP config:
{
"geomelon": {
"command": "npx",
"args": ["-y", "geomelon-mcp"],
"env": {
"GEOMELON_API_KEY": "your_rapidapi_key_here"
}
}
}
Create a .env file on your server:
cp .env.example .env
# set GEOMELON_API_KEY and PORT in .env
Start the server:
npx geomelon-mcp-http
Then register with any MCP client using http://your-host:3000/mcp as the URL.
The HTTP transport is stateless — each request is independent, no session management needed.
| Tool | Description |
|---|---|
search_cities | Search by name, country code, region, population range, sort order |
get_city | Full details for a city by UUID |
get_city_translations | All name translations for a city by UUID |
get_city_settlement_types | Settlement-type classifications for a city by UUID |
cities_by_coordinates_closest | Cities nearest to a lat/lon, ordered by distance |
cities_by_coordinates_largest | Largest cities near a lat/lon, ordered by population |
cities_distance | Distance in km between two cities |
| Tool | Description |
|---|---|
list_countries | List countries, filter by name prefix or telephone dialing code |
get_country | Full details for a country by UUID (includes translations and regions) |
get_country_translations | Name translations for a country by UUID |
get_country_regions | All administrative regions for a country by UUID |
| Tool | Description |
|---|---|
list_regions | List regions, filter by country UUID |
get_region | Full details for a region by UUID |
get_region_translations | Name translations for a region by UUID |
| Tool | Description |
|---|---|
list_languages | List all languages in the database |
get_language | Details for a language by UUID |
Fast country-scoped city prefix search served as static files. No RapidAPI subscription needed. See geomelon.dev/free-city-autocomplete-api for the HTTP endpoint, supported country/language pairs, and response shape. This MCP server does not wrap the oneshot endpoint — call it directly.
These tools chain multiple API calls internally to save round-trips.
| Tool | Description |
|---|---|
find_cities_near_city | Given a city UUID, find nearby cities ordered by distance or population |
city_context | Fetch a city together with its full country and region details in one call |
country_overview | Fetch a country (by UUID or name), its regions, and top cities by population |
compare_cities | Fetch two cities and the distance between them in one call |
search_cities_in_country | Search cities using a country name instead of an ISO code |
GEOMELON_API_KEY*secretYour RapidAPI key for Geomelon
PORTsecretPort to run HTTP MCP on