{
  "markdown": "# geomelon-mcp\n\nMCP server for the [Geomelon](https://rapidapi.com/hom3chuk/api/geomelon) geographic API. Exposes cities, countries, regions, and languages as tools any MCP-compatible AI client can call.\n\nLooking for other ways to integrate? See all official libraries at [geomelon.dev/libraries](https://geomelon.dev/libraries/).\n\nTwo transports are included:\n\n| Binary | Transport | Use case |\n|---|---|---|\n| `geomelon-mcp` | stdio | Claude Desktop, Cursor, Cline, Continue |\n| `geomelon-mcp-http` | HTTP (Streamable) | Claude Code, remote / hosted server |\n\n## Requirements\n\n- Node.js 18+\n- A [RapidAPI](https://rapidapi.com/hom3chuk/api/geomelon) key with the Geomelon API subscribed — optional, see [keyless demo mode](#keyless-demo-mode) below\n\n---\n\n## Keyless demo mode\n\nNo `GEOMELON_API_KEY`? Run the server anyway — it starts up with just the `search_cities_autocomplete` tool, backed by the free [oneshot host](https://geomelon.dev/free-city-autocomplete-api/), no signup required. Every other tool needs a key. This is the fastest way to try the server before subscribing on RapidAPI.\n\n### Try it with zero setup\n\nGeomelon 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:\n\n```\nhttps://mcp.geomelon.dev/mcp\n```\n\nIt 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.\n\n---\n\n## Claude Code (HTTP)\n\nCreate a `.env` file in the directory you'll run the server from:\n\n```bash\ncp .env.example .env\n# then edit .env and set GEOMELON_API_KEY\n```\n\nStart the server (dotenv loads `.env` automatically):\n\n```bash\nnpx geomelon-mcp-http\n```\n\nRegister it with Claude Code:\n\n```bash\nclaude mcp add --transport http geomelon http://localhost:3000/mcp\n```\n\nVerify it's connected:\n\n```bash\nclaude mcp list\n```\n\nThe 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.\n\n---\n\n## Claude Desktop (stdio)\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"geomelon\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"geomelon-mcp\"],\n      \"env\": {\n        \"GEOMELON_API_KEY\": \"your_rapidapi_key_here\"\n      }\n    }\n  }\n}\n```\n\nRestart Claude Desktop after saving.\n\n---\n\n## Cursor / Windsurf / Cline (stdio)\n\nAdd to your editor's MCP config:\n\n```json\n{\n  \"geomelon\": {\n    \"command\": \"npx\",\n    \"args\": [\"-y\", \"geomelon-mcp\"],\n    \"env\": {\n      \"GEOMELON_API_KEY\": \"your_rapidapi_key_here\"\n    }\n  }\n}\n```\n\n---\n\n## Remote / hosted HTTP server\n\nCreate a `.env` file on your server:\n\n```bash\ncp .env.example .env\n# set GEOMELON_API_KEY and PORT in .env\n```\n\nStart the server:\n\n```bash\nnpx geomelon-mcp-http\n```\n\nThen register with any MCP client using `http://your-host:3000/mcp` as the URL.\n\nThe 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\"`).\n\n---\n\n## Available tools\n\n### Cities\n\n| Tool | Description |\n|---|---|\n| `search_cities` | Search by name, country code, region, population range, sort order |\n| `get_city` | Full details for a city by UUID |\n| `get_city_translations` | All name translations for a city by UUID |\n| `get_city_settlement_types` | Settlement-type classifications for a city by UUID |\n| `cities_by_coordinates_closest` | Cities nearest to a lat/lon, ordered by distance |\n| `cities_by_coordinates_largest` | Largest cities near a lat/lon, ordered by population |\n| `cities_distance` | Distance in km between two cities |\n\n### Countries\n\n| Tool | Description |\n|---|---|\n| `list_countries` | List countries, filter by name prefix or telephone dialing code |\n| `get_country` | Full details for a country by UUID (includes translations and regions) |\n| `get_country_translations` | Name translations for a country by UUID |\n| `get_country_regions` | All administrative regions for a country by UUID |\n\n### Regions\n\n| Tool | Description |\n|---|---|\n| `list_regions` | List regions, filter by country UUID |\n| `get_region` | Full details for a region by UUID |\n| `get_region_translations` | Name translations for a region by UUID |\n\n### Languages\n\n| Tool | Description |\n|---|---|\n| `list_languages` | List all languages in the database |\n| `get_language` | Details for a language by UUID |\n\n### Oneshot prefix search (free, no API key)\n\n| Tool | Description |\n|---|---|\n| `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](#keyless-demo-mode).** Works in keyed mode too — it's the fastest search path. |\n\nSee [geomelon.dev/free-city-autocomplete-api](https://geomelon.dev/free-city-autocomplete-api/) for supported country/language pairs and the underlying HTTP endpoint.\n\n---\n\n### Compound tools\n\nThese tools chain multiple API calls internally to save round-trips.\n\n| Tool | Description |\n|---|---|\n| `find_cities_near_city` | Given a city UUID, find nearby cities ordered by distance or population |\n| `city_context` | Fetch a city together with its full country and region details in one call |\n| `country_overview` | Fetch a country (by UUID or name), its regions, and top cities by population |\n| `compare_cities` | Fetch two cities and the distance between them in one call |\n| `search_cities_in_country` | Search cities using a country name instead of an ISO code |\n",
  "bytes": 5913,
  "sha": "5c095a08e2a499daae42ce31e56c7804189b47ed9bfcb30380c696651c2d2859",
  "repo_slug": "930m310n/mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_930m310n_mcp_bdee72f0/readme"
}