Skip to main content
Glama
930m310n

geomelon-mcp

by 930m310n

geomelon-mcp

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

Requirements


Related MCP server: bamwor-mcp-server

Keyless demo mode

No GEOMELON_API_KEY? Run the server anyway — it starts up with just the search_cities_autocomplete tool, backed by the free oneshot host, no signup required. Every other tool needs a key. This is the fastest way to try the server before subscribing on RapidAPI.

Try it with zero setup

Geomelon also runs a public hosted instance of this same keyless demo — no npx, no local process. Point any remote-MCP-capable client (Claude web/desktop connectors, ChatGPT connectors, MCP Inspector, etc.) at:

https://mcp.geomelon.dev/mcp

It exposes only search_cities_autocomplete, same as running the server yourself with no API key. For the full 22-tool set, run your own instance (below) with your RapidAPI key.


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. CORS is wide open (Access-Control-Allow-Origin: *) since this transport is meant to be reachable by browser-based remote-MCP clients too. GET / (or /health) returns a small JSON status object — useful for uptime checks — reporting whether the instance has a key configured ("mode": "full" or "mode": "keyless-demo").


Available tools

Cities

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

Countries

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

Regions

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

Languages

Tool

Description

list_languages

List all languages in the database

get_language

Details for a language by UUID

Oneshot prefix search (free, no API key)

Tool

Description

search_cities_autocomplete

Country-scoped, language-specific city name prefix search backed by pre-built static files. The only tool available in keyless demo mode. Works in keyed mode too — it's the fastest search path.

See geomelon.dev/free-city-autocomplete-api for supported country/language pairs and the underlying HTTP endpoint.


Compound tools

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

Available Tools

1 tool
search_cities_in_countryA
Read-only

Search cities using a country name instead of an ISO code. Resolves the country first, then searches cities within it.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoCity name prefix to filter by
sortNoSort order
limitNoMax results (default 20)
offsetNoPagination offset
countryNameYesCountry name prefix (e.g. "France", "United States")
maxPopulationNoMaximum population
minPopulationNoMinimum population
preferredLanguagesNoComma-separated BCP 47 language tags

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the description's mention of 'Resolves the country first' adds some behavioral context but does not provide additional safety or limitation details. Description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that directly describe the tool's core purpose without any redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description gives a high-level overview of the two-step process (resolve country, search cities) but does not mention pagination or return format despite pagination parameters existing. Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters are described there. The description does not add meaning beyond the schema, but baseline is 3 due to high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'search' and resource 'cities', and specifies the mechanism: using a country name instead of an ISO code. It distinguishes the tool's function clearly despite no siblings listed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for searching cities by country name (as opposed to ISO code), providing some context. However, it does not explicitly state when to use or avoid this tool, nor does it reference alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.6/5.0
Disambiguation5/5

With only one tool, there is no risk of confusion or overlap with other tools.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (search_cities_in_country), which is consistent and descriptive.

Tool Count3/5

A single tool feels thin for a geographic data server; while it serves a specific purpose, users might expect more capabilities like listing countries or city details.

Completeness1/5

The tool only allows searching cities by country name, missing essential operations like retrieving city details, listing countries, or reverse lookups, making the surface severely incomplete.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    A geospatial MCP server that provides tools for geocoding, routing, elevation profiles, and spatial analysis. It enables AI agents to process GIS file formats like GeoJSON and Shapefiles while performing complex coordinate transformations and distance calculations.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for spatial queries via the Terranode Geospatial API, enabling AI agents to perform point-in-polygon lookups, nearest feature search, distance calculations, and spatial joins.
    6
    65
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/930m310n/geomelon-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server