Wraps the Geomelon geographic API from RapidAPI and exposes cities, countries, regions, and languages as MCP tools. You get search, proximity lookups, distance calculations, and full metadata including translations and settlement types. Includes compound tools like country_overview and city_context that chain multiple calls to save round trips. Ships with both stdio (for Claude Desktop, Cursor, Cline) and HTTP transports (for Claude Code or remote hosting). Requires a RapidAPI key for most operations, though there's a free prefix search endpoint for country scoped city autocomplete. Reach for this when you need structured geographic queries beyond what search engines offer.
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 |
claude mcp add --transport stdio 930m310n-mcp -- npx -y geomelon-mcp