geomelon-mcp
This server provides an MCP interface to the Geomelon geographic API, enabling AI clients to query detailed data about cities, countries, regions, and languages worldwide.
Cities
Search by name, country code, region, population range, and sort order
Get full details, translations, and settlement-type classifications by UUID
Find cities nearest to coordinates (by distance or population)
Calculate distance in km between two cities
Countries
List countries, filtered by name prefix or telephone dialing code
Get full details, translations, and administrative regions by UUID
Regions
List regions (optionally filtered by country) and get full details/translations by UUID
Languages
List all available languages and get details by UUID
Compound Tools (multi-step queries in one call)
Find cities near a city — resolves coordinates and returns nearby cities by distance or population
City context — fetch a city with its full country and region details
Country overview — fetch a country (by UUID or name), its regions, and top cities by population
Compare cities — full details for two cities plus the distance between them
Search cities in country — search cities using a country name instead of an ISO code
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@geomelon-mcpsearch for cities named London"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| stdio | Claude Desktop, Cursor, Cline, Continue |
| HTTP (Streamable) | Claude Code, remote / hosted server |
Requirements
Node.js 18+
A RapidAPI key with the Geomelon API subscribed — optional, see keyless demo mode below
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/mcpIt 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_KEYStart the server (dotenv loads .env automatically):
npx geomelon-mcp-httpRegister it with Claude Code:
claude mcp add --transport http geomelon http://localhost:3000/mcpVerify it's connected:
claude mcp listThe 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 .envStart the server:
npx geomelon-mcp-httpThen 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 by name, country code, region, population range, sort order |
| Full details for a city by UUID |
| All name translations for a city by UUID |
| Settlement-type classifications for a city by UUID |
| Cities nearest to a lat/lon, ordered by distance |
| Largest cities near a lat/lon, ordered by population |
| Distance in km between two cities |
Countries
Tool | Description |
| List countries, filter by name prefix or telephone dialing code |
| Full details for a country by UUID (includes translations and regions) |
| Name translations for a country by UUID |
| All administrative regions for a country by UUID |
Regions
Tool | Description |
| List regions, filter by country UUID |
| Full details for a region by UUID |
| Name translations for a region by UUID |
Languages
Tool | Description |
| List all languages in the database |
| Details for a language by UUID |
Oneshot prefix search (free, no API key)
Tool | Description |
| 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 |
| Given a city UUID, find nearby cities ordered by distance or population |
| Fetch a city together with its full country and region details in one call |
| Fetch a country (by UUID or name), its regions, and top cities by population |
| Fetch two cities and the distance between them in one call |
| Search cities using a country name instead of an ISO code |
Available Tools
1 toolsearch_cities_in_countryARead-only
Search cities using a country name instead of an ISO code. Resolves the country first, then searches cities within it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | City name prefix to filter by | |
| sort | No | Sort order | |
| limit | No | Max results (default 20) | |
| offset | No | Pagination offset | |
| countryName | Yes | Country name prefix (e.g. "France", "United States") | |
| maxPopulation | No | Maximum population | |
| minPopulation | No | Minimum population | |
| preferredLanguages | No | Comma-separated BCP 47 language tags |
TDQS
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.
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.
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.
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.
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.
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
With only one tool, there is no risk of confusion or overlap with other tools.
The single tool name follows a clear verb_noun pattern (search_cities_in_country), which is consistent and descriptive.
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.
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
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
Geo-based flight search MCP server. Find more flights between any two places on earth
Geospatial MCP server for earthquake, tsunami, volcano, disaster, and FX data queries.
MCP server for Japan geodata: cadastral lot numbers (chiban) and reverse geocoding, for AI agents.
Geospatial AI MCP server — satellite imagery, embeddings, weather, GNS governance
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA 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.4MIT
- AlicenseAqualityFmaintenanceMCP server providing structured geographic data for AI agents. Access 261 countries and millions of cities via Bamwor API.5612MIT
- AlicenseNot gradedqualityDmaintenanceMCP Server that gives AI assistants access to comprehensive country data from 250+ countries.1MIT
- AlicenseAqualityDmaintenanceMCP 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.665MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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