MCP Servers

A collection of Model Context Protocol servers, templates, tools and more.

H
Hongkongaddressmcp

MCP server by OctHex2016

Created 2/16/2026
Updated about 21 hours ago
Repository documentation and setup instructions

Address MCP Server

A Model Context Protocol (MCP) server for Hong Kong address lookup and correction using the Address Lookup Service (ALS) open data from the HKSAR Government.

Features

  • Fuzzy address matching — Corrects typos in building names, street names, estate names (Chinese & English)
  • Structured input parsing — Parses the standard HK address form format (室/層/樓/大廈名稱/街名及街號/地區)
  • Free-text search — Search by any combination of address fields
  • Bilingual — Full support for Traditional Chinese and English addresses
  • LLM-powered correction — Uses Dify LLM API to compose the final corrected full address
  • Offline fallback — Falls back to local-only matching if LLM is unavailable
  • GeoAddress & Coordinates — Returns GeoAddress identifiers and WGS84 coordinates

Data Source

Uses the ALS GeoJSON files (18 district files) from DATA.GOV.HK:

  • als_addresses_(district_name).geojson — One file per District Council district

Tools

check_address

Look up and correct a Hong Kong address using structured fields.

Parameters: | Field | Description | Example | |-------|-------------|---------| | buildingName | Building name (大廈名稱) | 其士商業中心 | | streetName | Street name (街名) | 宏開道 | | buildingNo | Street number (街號) | 8 | | estateName | Estate name (屋邨/屋苑) | 德福花園 | | villageName | Village name (村) | 三家村 | | district | District (地區) | 九龍灣 | | region | Region (地區選項) | 九龍 / KLN | | floor | Floor (層) | 8 | | unit | Unit/Room (室) | 215 |

parse_and_check_address

Parse a structured Chinese address form and look up/correct it.

Input example:

室:215
層:8
樓:(未填寫)
大廈名稱:科士商業中心
屋邨/屋苑/村:(未填寫)
街名及街號:宏開道 8號
地區:九龍灣
地區選項:已勾選 九龍

Output: Identifies that "科士商業中心" should be "其士商業中心" (CHEVALIER COMMERCIAL CENTRE).

correct_address ⭐ (Recommended)

The main tool — parses, looks up, and corrects an address using ALS open data + Dify LLM. Returns the final corrected full address.

Parameters: | Field | Description | |-------|-------------| | address | Any address text — structured form or free text (Chinese/English) |

Example output:

CHINESE: 九龍觀塘區宏開道8號其士商業中心8樓215室
ENGLISH: Unit 215, 8/F, CHEVALIER COMMERCIAL CENTRE, 8 WANG HOI ROAD, KWUN TONG DISTRICT, KLN
GEOADDRESS: 3981120257T20050430
CORRECTIONS: 大廈名稱: "科士商業中心" → "其士商業中心" (CHEVALIER COMMERCIAL CENTRE)

search_address_by_text

Free-text search for addresses.

Parameters: | Field | Description | |-------|-------------| | query | Free-text query (Chinese or English) | | maxResults | Max results (default: 5) |

Setup

Install dependencies

npm install

Configure Environment Variables

Copy the example environment file and update with your credentials:

cp .env.example .env

Edit .env to set your Dify API credentials:

DIFY_API_KEY=your-api-key-here
DIFY_API_ENDPOINT=https://your-dify-endpoint.com/v1

Note: The .env file is gitignored to protect your credentials.

Run as MCP server

node index.js

Configure in your MCP client

Add to your MCP settings (e.g. ~/.cursor/mcp.json or Windsurf MCP config):

{
  "mcpServers": {
    "address-mcp": {
      "command": "node",
      "args": ["/Users/hillmantam/AddressMCP/index.js"]
    }
  }
}

Environment Variables Reference

| Variable | Required | Description | |----------|----------|-------------| | DIFY_API_KEY | Yes | Your Dify API key | | DIFY_API_ENDPOINT | Yes | Your Dify API base URL (e.g., https://your-endpoint.com/v1) |

Run tests

npm test

Example Correction

Input: 科士商業中心 at 宏開道 8號, 九龍灣

Output:

  • ⚠️ 大廈名稱: "科士商業中心" → "其士商業中心" (CHEVALIER COMMERCIAL CENTRE)
  • Correct address: 九龍觀塘區宏開道8號其士商業中心
  • GeoAddress: 3981120257T20050430
  • Coordinates: 22.32133, 114.21127

Architecture

User Input → Parse structured fields → Fuse.js fuzzy search (local GeoJSON)
                                          ↓
                                    Top 5 candidates
                                          ↓
                                    Dify LLM API → Final corrected address
                                          ↓
                              (Fallback: local-only if LLM fails)
  • Fuse.js — Fuzzy string matching for Chinese and English text
  • Dify LLM — AI-powered address correction and formatting
  • MCP SDK — Standard Model Context Protocol server over stdio
  • GeoJSON — All 18 district files loaded into memory with indexed search
Quick Setup
Installation guide for this server

Install Package (if required)

npx @modelcontextprotocol/server-hongkongaddressmcp

Cursor configuration (mcp.json)

{ "mcpServers": { "octhex2016-hongkongaddressmcp": { "command": "npx", "args": [ "octhex2016-hongkongaddressmcp" ] } } }