geolabel/geolabel-mcp
๐ โ๏ธ - GPS coordinates to AI-ready location context โ returns place name, stable category (gym, supermarket, restaurantโฆ), and live opening hours via OpenStreetMap. Works in Claude Desktop, Claude Code, Hermes Agent, OpenClaw, and any MCP client.
Quick Install
{
"mcpServers": {
"geolabel-geolabel-mcp": {
"command": "npx",
"args": [
"-y",
"geolabel-geolabel-mcp"
]
}
}
}Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.
Documentation Overview
GeoLabel MCP Server
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:
{
"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 โ 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:
{
"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
claude mcp add geolabel -- uvx geolabel-mcp
export GEOLABEL_API_KEY=glk_your_key_here
Hermes Agent
Edit ~/.hermes/config.json:
{
"mcpServers": {
"geolabel": {
"command": "uvx",
"args": ["geolabel-mcp"],
"env": {
"GEOLABEL_API_KEY": "glk_your_key_here"
}
}
}
}
See Hermes Agent MCP docs for more.
OpenClaw
# 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 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
# pip
pip install geolabel-mcp
# run directly
GEOLABEL_API_KEY=glk_xxx geolabel-mcp
Claude Code
claude mcp add geolabel -- uvx geolabel-mcp
Then set your key:
# 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 โ
License
MIT