地址查找与纠正服务

一个基于香港特别行政区政府开放数据的地址查找与纠正服务,支持中英文地址的模糊匹配、结构化解析和自由文本搜索,并利用LLM技术进行最终地址纠正。

  • by OctHex2016
  • JavaScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 OctHex2016/HongKongAddressMCP

使用说明

地址MCP服务器

一种模型上下文协议(MCP)服务器 香港地址查询和更正 使用香港特别行政区政府的地址查询服务(ALS)公开数据。

特性

  • 模糊地址匹配 --更正建筑物名称、街道名称、房地产名称(中英文)中的拼写错误
  • 结构化输入解析 —Parses the standard HK address form format(室/层/楼/大厦名称/街名及街号/地区)
  • 自由文本搜索 --按地址字段的任意组合搜索
  • 双语 --完全支持繁体中文和英文地址
  • LLM供电校正 -使用Dify LLM API编写最终更正的完整地址
  • 离线回退 --如果LLM不可用,则回退到仅本地匹配
  • 地理地址和坐标 --返回地理地址标识符和WGS84坐标

数据源

使用ALS GeoJSON文件(18个地区文件) 数据。GOV.HK:

  • als_addresses_(district_name).geojson --每个区议会选区一份文件

工具

check_address

使用结构化字段查找并更正香港地址。

参数:

字段 描述 示例
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 单位/房间 215

parse_and_check_address

解析一个结构化的中文地址表单并查找/更正它。

输入示例:

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

输出: Identifies that“科士商业中心”should be“其士商业中心”(CHEVALIER COMMERCIAL CENTRE).

correct_address ⭐ (推荐)

主要工具——使用以下命令解析、查找和更正地址 ALS开放数据+Dify LLM。返回最终更正的完整地址。

参数:

字段 描述
address 任何地址文本——结构化形式或自由文本(中文/英文)

输出示例:

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

免费文本搜索地址。

参数:

字段 描述
query 自由文本查询(中文或英文)
maxResults 最大结果(默认值:5)

设置

安装依赖项

npm install

配置环境变量

复制示例环境文件并使用您的凭据进行更新:

cp .env.example .env

编辑 .env 设置您的Dify API凭据:

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

注: 这 .env 为了保护您的凭据,文件被忽略了。

以MCP服务器运行

node index.js

在MCP客户端中配置

添加到MCP设置中(例如。 ~/.cursor/mcp.json 或Windsurf MCP配置):

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

环境变量引用

变量 必填 描述
DIFY_API_KEY 是 您的Dify API密钥
DIFY_API_ENDPOINT 是 您的Dify API基础URL(例如。, https://your-endpoint.com/v1)

运行测试

npm test

示例更正

输入: 科士商業中心 在 宏開道 8號, 九龍灣

输出:

  • ⚠️ 大厦名称:“科士商业中心”→“其士商业中心”(CHEVALIER COMMERCIAL CENTRE)
  • Correct address:九龙观塘区宏开道8号其士商业中心
  • 地理地址: 3981120257T20050430
  • 坐标:22.32133,114.21127

建筑

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 --中英文文本的模糊字符串匹配
  • Dify法学硕士 --AI驱动的地址校正和格式化
  • MCP-SDK --基于stdio的标准模型上下文协议服务器
  • GeoJSON --通过索引搜索将所有18个地区文件加载到内存中