chuk-mcp-geocoder▌
by chrishayuk
chuk-mcp-geocoder — fast geocoding API using Nominatim & OpenStreetMap for forward & reverse geocoding, place search, bo
An MCP server providing geocoding and place discovery services via Nominatim and OpenStreetMap. It enables users to perform forward and reverse geocoding, extract bounding boxes, and find nearby places or administrative hierarchies.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / Location-based applications and services
- / Mapping and GIS development
- / Address validation and standardization
- / Geographic data analysis
capabilities
- / Convert addresses to latitude/longitude coordinates
- / Convert coordinates to human-readable addresses
- / Extract bounding boxes for locations
- / Find nearby places and points of interest
- / Retrieve administrative hierarchies for locations
what it does
Provides geocoding services to convert addresses to coordinates and vice versa, plus find nearby places using OpenStreetMap data.
about
chuk-mcp-geocoder is a community-built MCP server published by chrishayuk that provides AI assistants with tools and capabilities via the Model Context Protocol. chuk-mcp-geocoder — fast geocoding API using Nominatim & OpenStreetMap for forward & reverse geocoding, place search, bo It is categorized under developer tools.
how to install
You can install chuk-mcp-geocoder in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
Apache-2.0
chuk-mcp-geocoder is released under the Apache-2.0 license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
chuk-mcp-geocoder
Geocoding & Place Discovery MCP Server via Nominatim/OpenStreetMap.
Provides forward/reverse geocoding, bounding box extraction, nearby places discovery, batch geocoding, route waypoints, and administrative boundary lookup — designed to work alongside other MCP geospatial servers (DEM, STAC, etc.).
This is a demonstration project provided as-is for learning and testing purposes.
Tools
| Tool | Description |
|---|---|
geocode | Place name to coordinates (lat, lon, bbox, address) |
reverse_geocode | Coordinates to place name and address |
bbox_from_place | Place name to [west, south, east, north] bbox for DEM/STAC tools |
nearby_places | Find places near a coordinate at multiple scales |
admin_boundaries | Administrative hierarchy (country, state, county, city, suburb) |
batch_geocode | Geocode multiple place names in one call |
route_waypoints | Geocode waypoints in order and compute route distances |
distance_matrix | Compute haversine distance matrix between multiple points |
geocoder_status | Server status and cache statistics |
geocoder_capabilities | Full capabilities listing with LLM guidance |
Installation
Using uvx (Recommended - No Installation Required!)
The easiest way to use the server is with uvx, which runs it without installing:
uvx chuk-mcp-geocoder
This automatically downloads and runs the latest version. Perfect for Claude Desktop!
Using uv (Recommended for Development)
# Install from PyPI
uv pip install chuk-mcp-geocoder
# Or clone and install from source
git clone <repository-url>
cd chuk-mcp-geocoder
uv sync --dev
Using pip (Traditional)
pip install chuk-mcp-geocoder
Usage
With Claude Desktop
Option 1: Use the Public Server (Easiest)
Connect to the hosted public server at geocoder.chukai.io:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"geocoder": {
"url": "https://geocoder.chukai.io/mcp"
}
}
}
Option 2: Streamable HTTP URL (Local)
Run the server locally and connect via HTTP:
{
"mcpServers": {
"geocoder": {
"url": "http://localhost:8010/mcp"
}
}
}
Then start the server:
uvx chuk-mcp-geocoder http
Option 3: Run Locally with uvx
{
"mcpServers": {
"geocoder": {
"command": "uvx",
"args": ["chuk-mcp-geocoder"]
}
}
}
Option 4: Run Locally with pip
{
"mcpServers": {
"geocoder": {
"command": "chuk-mcp-geocoder"
}
}
}
Standalone
Run the server directly:
# With uvx (recommended - always latest version)
uvx chuk-mcp-geocoder
# With uvx in HTTP mode
uvx chuk-mcp-geocoder http
# Or if installed locally
chuk-mcp-geocoder
chuk-mcp-geocoder http
Or with uv/Python:
# STDIO mode (default, for MCP clients)
uv run chuk-mcp-geocoder
# or: python -m chuk_mcp_geocoder.server
# HTTP mode (for web access and streamable HTTP)
uv run chuk-mcp-geocoder http
# or: python -m chuk_mcp_geocoder.server http
# HTTP mode with custom host/port
uv run chuk-mcp-geocoder http --host 0.0.0.0 --port 9000
STDIO mode is for MCP clients like Claude Desktop and mcp-cli. HTTP mode runs a web server on http://localhost:8010 for HTTP-based MCP clients.
Usage with MCP CLI
uv run mcp-cli --server geocoder,dem,stac
Then ask:
"Get the elevation profile for Mersea Island"
The LLM will use bbox_from_place or geocode to resolve the location, then pass coordinates to the DEM server.
Configuration
| Environment Variable | Description | Default |
|---|---|---|
NOMINATIM_EMAIL | Contact email for Nominatim API | (none) |
NOMINATIM_BASE_URL | Custom Nominatim instance URL | https://nominatim.openstreetmap.org |
MCP_STDIO | Force stdio transport mode | (auto-detect) |
Development
Setup
# Clone the repository
git clone <repository-url>
cd chuk-mcp-geocoder
# Install with uv (recommended)
uv sync --dev
# Or with pip
pip install -e ".[dev]"
Running Tests
make test # Run tests
make test-cov # Run tests with coverage
make coverage-report # Show coverage report
Code Quality
make lint # Run linters
make format # Auto-format code
make typecheck # Run type checking
make security # Run security checks
make check # Run all checks
Building
make build # Build package
make publish-test # Upload to TestPyPI for testing
make publish-manual # Manually upload to PyPI (requires PYPI_TOKEN)
make publish # Create tag and trigger GitHub Actions release
Architecture
Follows the same 5-layer pattern as chuk-mcp-dem:
- core/nominatim.py — Async HTTP client with rate limiting and LRU cache
- core/geocoder.py — Async manager with validation and typed dataclass results
- models/responses.py — Pydantic v2 response models (
extra="forbid",to_text()) - constants.py — All configuration, messages, and metadata
- tools/*/api.py — MCP tool registration with
@mcp.tool()decorators
Public Server
A public instance is hosted at geocoder.chukai.io for easy access:
- URL:
https://geocoder.chukai.io/mcp - Protocol: MCP over HTTPS (Streamable HTTP)
- Free to use: No API key required
- Always up-to-date: Running the latest version
Simply add it to your Claude Desktop config:
{
"mcpServers": {
"geocoder": {
"url": "https://geocoder.chukai.io/mcp"
}
}
}
Data Source
All geocoding data comes from OpenStreetMap via the Nominatim API.
- Data license: ODbL 1.0
- API rate limit: 1 request/second (public API)
- Results are cached in-memory (1 hour TTL)
License
Apache-2.0
FAQ
- What is the chuk-mcp-geocoder MCP server?
- chuk-mcp-geocoder is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for chuk-mcp-geocoder?
- This profile displays 60 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.8 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Extended AI Capabilities
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Context Enhancement
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Workflow Automation
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Implementation Guide▌
Prerequisites
- ›Claude Desktop 0.7.0+ or Cursor IDE with MCP support
- ›Basic understanding of MCP architecture and capabilities
- ›Access credentials for integrated services (if required)
- ›Willingness to experiment and iterate on configuration
Time Estimate
15-60 minutes depending on server complexity
Installation Steps
- 1.Install MCP server: npm install -g [package-name] or via GitHub
- 2.Add server configuration to ~/.claude/mcp.json
- 3.Provide required credentials and configuration
- 4.Restart Claude Desktop to load new server
- 5.Test basic functionality with simple prompts
- 6.Explore capabilities and experiment with use cases
- 7.Document successful patterns for reuse
Troubleshooting
- ⚠MCP server not loading: Check config syntax, verify installation
- ⚠Connection errors: Check network, firewall, credentials
- ⚠Feature not working: Read server docs, check required parameters
- ⚠Performance issues: Monitor resource usage, check for network latency
- ⚠Conflicts with other servers: Check port assignments, namespace collisions
Best Practices▌
✓ Do
- +Read server documentation thoroughly before setup
- +Start with simple use cases to validate functionality
- +Test in non-production environment first
- +Monitor resource usage and performance
- +Keep servers updated for bug fixes and new features
- +Document configuration for team members
- +Use environment variables for sensitive configuration
✗ Don't
- −Don't grant overly permissive access to MCP servers
- −Don't skip reading security considerations in docs
- −Don't expose sensitive data without proper controls
- −Don't run untrusted MCP servers without code review
- −Don't ignore error messages—investigate root cause
💡 Pro Tips
- ★Combine multiple MCP servers for powerful workflows
- ★Create custom MCP servers for your specific needs
- ★Share successful configurations with team
- ★Use MCP inspector for debugging
- ★Join MCP community for tips and troubleshooting
Technical Details▌
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
- Model Context Protocol (MCP)
- JSON-RPC 2.0
- stdio or HTTP transport
Compatibility
- Claude Desktop
- Cursor IDE
- Custom MCP clients
When to Use This▌
✓ Use When
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid When
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.
Integration▌
- →Tool composition: Chain multiple MCP tools in workflows
- →Context augmentation: Provide AI with relevant external data
- →Action delegation: Let AI execute tasks on external systems
- →Bidirectional sync: Keep AI context and external systems in sync
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.8★★★★★60 reviews- ★★★★★Mia Dixit· Dec 28, 2024
According to our notes, chuk-mcp-geocoder benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Pratham Ware· Dec 4, 2024
We wired chuk-mcp-geocoder into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Yuki Brown· Dec 4, 2024
We wired chuk-mcp-geocoder into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Yuki Taylor· Nov 27, 2024
We evaluated chuk-mcp-geocoder against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Yash Thakker· Nov 23, 2024
chuk-mcp-geocoder is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
- ★★★★★Yusuf Jain· Nov 23, 2024
chuk-mcp-geocoder has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
- ★★★★★Mia Bhatia· Nov 23, 2024
chuk-mcp-geocoder is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
- ★★★★★Aditi Rao· Nov 19, 2024
Useful MCP listing: chuk-mcp-geocoder is the kind of server we cite when onboarding engineers to host + tool permissions.
- ★★★★★Fatima Sethi· Nov 19, 2024
chuk-mcp-geocoder has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
- ★★★★★Noor Torres· Oct 18, 2024
chuk-mcp-geocoder has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
showing 1-10 of 60