npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

geomelon-mcp

v1.0.8

Published

MCP server for the Geomelon geographic API — stdio and remote HTTP transports

Readme

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:

| Binary | Transport | Use case | |---|---|---| | geomelon-mcp | stdio | Claude Desktop, Cursor, Cline, Continue | | geomelon-mcp-http | HTTP (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

| 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 |

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 |