Skip to main content
Glama
geolabel

geolabel-mcp

by geolabel
README.md
# GeoLabel MCP Server

<!-- mcp-name: io.github.TylerCoxDruin/geolabel -->

Turn GPS coordinates into AI-ready location context — for Claude Desktop, Claude Code, and any MCP-compatible assistant.

## What it does

Send coordinates. Get back a place name, category, and real-time opening hours:

```json
{
  "label": "Walmart",
  "category": "supermarket",
  "is_open": true,
  "closes_at": "23:00",
  "opening_hours": "Mo-Su 06:00-23:00"
}
```

Claude can then answer: *"You're at Walmart, which closes in 47 minutes."*

---

## Quick setup

### 1. Get a GeoLabel API key

Free at [geolabel.dev](https://geolabel.dev) — 100 requests/day, no credit card required.

### 2. Add to your agent

Pick your client below.

---

#### Claude Desktop

Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "geolabel": {
      "command": "uvx",
      "args": ["geolabel-mcp"],
      "env": {
        "GEOLABEL_API_KEY": "glk_your_key_here"
      }
    }
  }
}
```

Restart Claude Desktop. The GeoLabel tool will appear in the tools list.

#### Claude Code

```bash
claude mcp add geolabel -- uvx geolabel-mcp
export GEOLABEL_API_KEY=glk_your_key_here
```

#### Hermes Agent

Edit `~/.hermes/config.json`:

```json
{
  "mcpServers": {
    "geolabel": {
      "command": "uvx",
      "args": ["geolabel-mcp"],
      "env": {
        "GEOLABEL_API_KEY": "glk_your_key_here"
      }
    }
  }
}
```

See [Hermes Agent MCP docs](https://hermes-agent.nousresearch.com/docs/user-guide/features/mcp) for more.

#### OpenClaw

```bash
# Register the server
openclaw mcp set geolabel \
  --command uvx \
  --args geolabel-mcp \
  --env GEOLABEL_API_KEY=glk_your_key_here

# Verify it's registered
openclaw mcp list
```

See [OpenClaw MCP docs](https://docs.openclaw.ai/cli/mcp) for more.

---

### 3. Use it

```
You: I'm at 41.8827, -87.6233 — what's here and is it open?

Agent: You're at Planet Fitness (a gym). It's currently open and closes
       at 11:00 PM tonight — you have about 3 hours left.
```

---

## Tools

### `get_location_label`

Identifies the nearest named place within `radius` metres of the given coordinates.

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `lat` | float | required | Latitude (-90 to 90) |
| `lng` | float | required | Longitude (-180 to 180) |
| `radius` | int | 100 | Search radius in metres (max 500) |

**Response fields:**

| Field | Type | Description |
|-------|------|-------------|
| `place` | string \| null | Raw venue name from OpenStreetMap |
| `label` | string | Clean, display-ready name |
| `category` | string \| null | Stable type: `gym`, `supermarket`, `restaurant`, etc. |
| `distance_meters` | float \| null | Distance from your coordinates to the place |
| `is_open` | bool \| null | `true` open · `false` closed · `null` no hours data |
| `opens_at` | string \| null | Next opening time `HH:MM` (when closed) |
| `closes_at` | string \| null | Today's closing time `HH:MM` (when open) |
| `opening_hours` | string \| null | Raw OSM `opening_hours` string |
| `cached` | bool | Served from 10-min cache; hours always recalculated live |

---

## Alternative installation

```bash
# pip
pip install geolabel-mcp

# run directly
GEOLABEL_API_KEY=glk_xxx geolabel-mcp
```

### Claude Code

```bash
claude mcp add geolabel -- uvx geolabel-mcp
```

Then set your key:

```bash
# add to your shell profile or .env
export GEOLABEL_API_KEY=glk_your_key_here
```

---

## Configuration

| Variable | Required | Description |
|----------|----------|-------------|
| `GEOLABEL_API_KEY` | Yes | Your GeoLabel API key |
| `GEOLABEL_BASE_URL` | No | Override API base URL (default: `https://api.geolabel.dev`) |

---

## Privacy

GeoLabel strips coordinates from all server logs before they touch disk. No movement history is stored. Data is processed in real-time and immediately discarded. [Full privacy policy →](https://geolabel.dev/terms.html)

---

## License

MIT

TDQS

A4.8/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no possibility of confusion between tools. The single tool's purpose is clearly defined.

Naming Consistency5/5

With only one tool, naming consistency is inherently perfect. The name 'get_location_label' follows a clear verb_noun pattern.

Tool Count3/5

A single tool is at the low end of typical scope. It serves a focused purpose (geolocation labeling), but the server feels thin for a full MCP surface.

Completeness4/5

The tool provides rich detail (name, category, hours, distance) for its single operation. Lacks additional geolocation utilities like batch or address lookup, but core need is met.

Maintenance

ActivityInactive
ResponsivenessNo issues