Geomelon

A geographic data MCP covering cities, countries, regions, and languages — with multilingual support

geomelon-mcp

MCP server for the Geomelon geographic API. Exposes cities, countries, regions, and languages as tools any MCP-compatible AI client can call.

Two transports are included:

BinaryTransportUse case
geomelon-mcpstdioClaude Desktop, Cursor, Cline, Continue
geomelon-mcp-httpHTTP (Streamable)Claude Code, remote / hosted server

Requirements

  • Node.js 18+
  • A RapidAPI key with the Geomelon API subscribed

Claude Code (HTTP)

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.


Claude Desktop (stdio)

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.


Cursor / Windsurf / Cline (stdio)

Add to your editor's MCP config:

{
  "geomelon": {
    "command": "npx",
    "args": ["-y", "geomelon-mcp"],
    "env": {
      "GEOMELON_API_KEY": "your_rapidapi_key_here"
    }
  }
}

Remote / hosted HTTP server

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.


Available tools

Cities

ToolDescription
search_citiesSearch by name, country code, region, population range, sort order
get_cityFull details for a city by UUID
get_city_translationsAll name translations for a city by UUID
get_city_settlement_typesSettlement-type classifications for a city by UUID
cities_by_coordinates_closestCities nearest to a lat/lon, ordered by distance
cities_by_coordinates_largestLargest cities near a lat/lon, ordered by population
cities_distanceDistance in km between two cities

Countries

ToolDescription
list_countriesList countries, filter by name prefix or telephone dialing code
get_countryFull details for a country by UUID (includes translations and regions)
get_country_translationsName translations for a country by UUID
get_country_regionsAll administrative regions for a country by UUID

Regions

ToolDescription
list_regionsList regions, filter by country UUID
get_regionFull details for a region by UUID
get_region_translationsName translations for a region by UUID

Languages

ToolDescription
list_languagesList all languages in the database
get_languageDetails for a language by UUID

Compound tools

These tools chain multiple API calls internally to save round-trips.

ToolDescription
find_cities_near_cityGiven a city UUID, find nearby cities ordered by distance or population
city_contextFetch a city together with its full country and region details in one call
country_overviewFetch a country (by UUID or name), its regions, and top cities by population
compare_citiesFetch two cities and the distance between them in one call
search_cities_in_countrySearch cities using a country name instead of an ISO code

Related Servers