A professional Model Context Protocol (MCP) server that integrates with Ghana Post's GPS addressing system to provide accurate location services for Claude AI and other MCP-compatible applications.
# Ghana Post GPS MCP Server
A Model Context Protocol (MCP) server that converts Ghana Post GPS addresses into detailed location information including coordinates.
## Features
- **GPS Address Lookup**: Convert Ghana Post GPS codes (e.g., "GA-554-3608") to detailed location information
- **Address Validation**: Validate GPS code format before processing
- **Batch Processing**: Look up multiple GPS addresses at once (up to 10)
- **Nearby Coordinates**: Generate coordinates within a specified radius of a known location
- **Real API Integration**: Uses the actual Ghana Post GPS API
## Installation
### Prerequisites
- Node.js 18.0.0 or higher
- npm
### Setup
1. **Clone or download this project**
2. **Install dependencies**:
```bash
npm install
```
3. **Build the project**:
```bash
npm run build
```
## Usage
### Development Mode
```bash
npm run dev
```
### Production Mode
```bash
npm run start
```
### Testing
```bash
# Test server connection
npm run test
# Test GPS lookup
npm run test-lookup
```
## Available Tools
### 1. lookup_gps_address
Converts a Ghana Post GPS address to detailed location information.
**Input**:
- `gps_code` (string): GPS address code (e.g., "GA-554-3608")
**Output**: Location details including coordinates, street, area, district, region, and postcode.
### 2. validate_gps_code
Validates if a string matches the Ghana Post GPS address format.
**Input**:
- `gps_code` (string): GPS code to validate
**Output**: Validation result with format information and examples.
### 3. batch_lookup_gps
Looks up multiple GPS addresses at once (maximum 10).
**Input**:
- `gps_codes` (array): Array of GPS codes to look up
**Output**: Results for all provided GPS codes with status information.
### 4. find_nearby_coordinates
Generates coordinates within a radius of a known GPS location.
**Input**:
- `gps_code` (string): Base GPS code
- `radius_km` (number, optional): Search radius in kilometers (default: 1)
- `count` (number, optional): Number of po …