MCP-Geo
Server Information
This webpage presents a GitHub repository named "MCP-Geo" by user "webcoderz." It is described as a geocoding Model Context Protocol (MCP) server built using the GeoPY library. The page includes details on system requirements, dependencies, available geocoding tools, installation options, safety features, environment variables, and development documentation. The repository is public and has 3 stars and 1 fork.
โญ Key Points:
- MCP-Geo is a geocoding server designed for use with Large Language Models (LLMs).
- The server utilizes the fastmcp framework and the GeoPY library.
- It offers tools for geocoding addresses, reverse geocoding coordinates, calculating distances between locations, and providing detailed geocoding information.
- Installation can be done for Claude Desktop or other environments.
- Safety features include rate limiting and error handling.
- The repository provides a set of geocoding tools accessible via the Model Context Protocol.
- The tools are designed for integration with LLMs to provide location-based services.
- The project is documented with system requirements, dependencies, installation steps, and environment variable configuration.
- The server relies on environment variables for configuring the geocoding provider (Nominatim, ArcGIS, or Bing) and related settings.
- System Requirements: Python 3.6+ is required.
- Dependencies: fastmcp and geoPy are the primary dependencies, managed via a `requirements.txt` file or using uv.
- Geocoding Tools:
- `geocode_location`: Converts addresses to latitude, longitude, and formatted addresses.
- `reverse_geocode`: Converts latitude and longitude to addresses.
- `geocodewithdetails`: Provides detailed geocoding information, including bounding boxes.
- `geocodemultiplelocations`: Geocodes a list of addresses with rate limiting.
- `reversegeocodemultiple_locations`: Reverse geocodes a list of coordinates with rate limiting.
- `distancebetweenaddresses`: Calculates the distance between two addresses.
- `distancebetweencoords`: Calculates the distance between two coordinates.
- Installation:
- Option 1: Using `fastmcp install geo.py --name "MCP Geo"` for Claude Desktop.
- Option 2: Manual configuration in other environments using a settings file.
- Configuration: The server is configured through environment variables, including `GEOCODERPROVIDER`, `NOMINATIMURL`, `SCHEME`, `ARCUSERNAME`, `ARCPASSWORD`, and `BINGAPIKEY`.
๐ Main Findings:
๐ Details:
๐ฏ Conclusion:
The MCP-Geo repository offers a geocoding server solution with a focus on integration with Large Language Models. It leverages existing libraries to provide a range of geocoding functionalities, with configurations available to suit various environments and providers. The documentation provides a good overview for users seeking to deploy or customize the server.
Server Features
geocode_location
Takes a user-provided address or place name and returns the best matchโs latitude, longitude, and formatted address. Handles errors gracefully and returns None if the location is not found or if an error occurs.
reverse_geocode
Takes a latitude and longitude and returns the nearest address. Useful for finding descriptive information about a point on the map.
geocode_with_details
Similar to geocode_location but returns additional data such as bounding boxes and more detailed address info, if supported by the geocoder.
geocode_multiple_locations
Accepts a list of address strings and returns a list of geocoding results (lat/lon/address) for each address. Rate-limited to avoid hitting geocoding service quotas.
reverse_geocode_multiple_locations
Accepts a list of [lat, lon] pairs to perform reverse geocoding for each. Returns a list of dictionaries containing lat, lon, and address or None for unsuccessful lookups, also rate-limited.
distance_between_addresses
Calculate the distance between two addresses or place names, accepts 2 addresses and a unit of measurement (miles/kilometer). Returns the distance in the specified unit, or None if either address could not be geocoded.
distance_between_coords
Calculate the distance between two lat/lon pairs, accepts 2 pairs of latitude and longitude and a unit of measurement (kilometer/miles). Returns the distance in the specified unit.
Provider Information
Webcoderz
cloud Provider