australian-postcodes-mcp
FastMCP server for Australian postcodes and suburbs lookup with fuzzy matching
Documentation
Australian Postcodes MCP Server
A high-performance MCP (Model Context Protocol) server providing Australian postcode and suburb data with intelligent fuzzy matching, designed specifically for AI assistants handling customer service interactions.
Features
๐ Core Search Capabilities
- Postcode to Suburbs: Find all suburbs for a given postcode
- Suburb to Postcodes: Find postcodes for suburbs (with fuzzy matching)
- Smart Validation: Verify suburb-postcode combinations
- LGA Queries: List all suburbs in a Local Government Area (city/council)
๐ฏ AI-Optimized Features
- Fuzzy Matching: Handles typos and misspellings with confidence scoring
- Phonetic Search: Matches spoken names that may be misheard
- Autocomplete: Suggests completions for partial suburb names
- Smart Suggestions: Provides alternatives when exact matches aren't found
- Geographic Search: Find nearby suburbs within a radius
๐ Data Coverage
- ~17,000 Australian postcodes and suburbs
- Local Government Areas (LGAs)
- Statistical Areas (SA3/SA4)
- Geographic coordinates (latitude/longitude)
- Electoral divisions
- State and region information
Quick Start
Installation
# Clone the repository
git clone https://github.com/yourusername/australian-postcodes-mcp.git
cd australian-postcodes-mcp
# Install dependencies
pip install -r requirements.txt
# Import postcode data
python src/utils/data_loader.py
# Test locally
fastmcp dev src/server.pyUsage with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"australian-postcodes": {
"command": "fastmcp",
"args": ["run", "/path/to/australian-postcodes-mcp/src/server.py"]
}
}
}Available Tools
Search Tools
- `search_by_postcode` - Find suburbs for a postcode
- `search_by_suburb` - Find postcodes for a suburb
- `validate_suburb_postcode` - Verify a combination is valid
- `get_location_details` - Smart search accepting either postcode or suburb
Fuzzy Matching Tools
- `find_similar_suburbs` - Find closest matches for misspelled suburbs
- `autocomplete_suburb` - Get completions for partial names
- `validate_spelling` - Suggest spelling corrections
- `phonetic_search` - Handle phone-misheard names
Location Tools
- `list_suburbs_in_lga` - All suburbs in a Local Government Area
- `find_lga_for_suburb` - Get the LGA/city for a suburb
- `list_suburbs_in_radius` - Find nearby postcodes within radius
- `get_neighboring_suburbs` - Find adjacent areas
Analytics Tools
- `get_state_statistics` - Postcode and suburb counts by state
- `list_all_lgas` - Available Local Government Areas
- `search_by_region` - Query by statistical area
Examples
Basic Search
# Find suburbs for postcode 2300
result = await search_by_postcode("2300")
# Returns: Newcastle, Newcastle West, etc.
# Find postcode for suburb
result = await search_by_suburb("Newcastle", state="NSW")
# Returns: 2300Fuzzy Matching
# Handle misspellings
result = await find_similar_suburbs("Newcaslte", state="NSW")
# Returns: Newcastle (confidence: 0.92), New Lambton (confidence: 0.75)
# Phonetic search
result = await phonetic_search("new castle")
# Returns: Newcastle, Newcastle WestLGA Queries
# List suburbs in Newcastle LGA
result = await list_suburbs_in_lga("Newcastle", state="NSW")
# Returns: All suburbs in Newcastle city council areaDeployment
FastMCP Cloud (Recommended)
1. Push to GitHub
2. Connect repository at fastmcp.cloud
3. Configure environment variables
4. Deploy with one click
Local Development
# Run development server
fastmcp dev src/server.py
# Run production server
python src/server.pyData Source
Data sourced from the community-maintained Australian Postcodes repository.
Performance
- SQLite with optimized indexes for fast queries
- Sub-100ms response time for most queries
- Efficient fuzzy matching using rapidfuzz library
- Cached phonetic encodings for voice queries
Contributing
Contributions welcome! Please see CONTRIBUTING.md for guidelines.
License
MIT License - See LICENSE for details.
Support
For issues or questions, please open an issue on GitHub or contact the maintainers.
Built with FastMCP for the Model Context Protocol
Frequently asked questions
What is australian-postcodes-mcp?
australian-postcodes-mcp is FastMCP server for Australian postcodes and suburbs lookup with fuzzy matching
How do I install australian-postcodes-mcp?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is australian-postcodes-mcp open source?
Yes โ it is hosted on GitHub at https://github.com/jezweb/australian-postcodes-mcp and has 3 stars.
Related MCP tools
Damn Vulnerable MCP Server Python-based implementation. Trusted by 1200+ developers. Trusted by 1200+ developers. Trusted by 1200+ developers.
A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases Python-based implementation. Trusted by 900+ developers.
Query MCP enables end-to-end management of Supabase via chat interface: read & write query executions, management API support, automatic migration versioning...
Model Context Protocol with Neo4j Python-based implementation. Trusted by 700+ developers. Trusted by 700+ developers. Trusted by 700+ developers.
An MCP server that provides control over Android devices via adb Python-based implementation. Trusted by 500+ developers.
A Model Context Protocol (MCP) server for PostgreSQL databases with enhanced capabilities for AI agents. Python-based implementation.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP