菲律宾地理编码服务

提供菲律宾标准地理编码(PSGC)API访问的模型上下文协议(MCP)服务器,包含完整的菲律宾地理层级数据。

  • by agentic-ph
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 agentic-ph/psgc-mcp

使用说明

PSGC MCP服务器

一种模型上下文协议(MCP)服务器,提供对菲律宾标准地理代码(PSGC)API的访问,为菲律宾提供分层地理数据。

特性

  • 完整的地理层次结构:进入岛屿群体、地区、省、市、镇和地区
  • 搜索功能:按名称查找所有级别的地理实体
  • 代码验证:验证PSGC代码并获取完整的层次结构信息
  • 实时数据:直接访问官方PSGC API
  • 类型安全:使用TypeScript构建可靠的数据结构

安装

来自NPM(已发布包)

npm install -g psgc-mcp

MCP客户端的配置

光标/风帆

添加到MCP配置文件中:

{
  "mcpServers": {
    "psgc-mcp": {
      "command": "npx",
      "args": ["-y", "psgc-mcp"],
      "transport": "stdio"
    }
  }
}

克劳德桌面

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "psgc-mcp": {
      "command": "npx",
      "args": ["-y", "psgc-mcp"],
      "transport": "stdio"
    }
  }
}

地方发展

  1. 克隆存储库
  2. 安装依赖项: npm install
  3. 构建项目: npm run build
  4. 在本地运行: npm start

可用工具

该服务器提供了一套全面的工具,用于访问按地理级别分类的PSGC数据。

岛组工具

  • get_island_groups:列出所有岛屿群。
  • get_island_group:通过其代码获取特定的岛屿组(例如。, "luzon").
  • get_island_group_regions:获取特定岛屿组内的所有区域。
  • get_island_group_provinces:获取特定岛屿组内的所有省份。
  • get_island_group_districts:获取特定岛屿组内的所有地区。
  • get_island_group_cities:获取特定岛屿组内的所有城市。
  • get_island_group_municipalities:获取特定岛屿组内的所有城市。
  • get_island_group_cities_municipalities:获取特定岛屿组内的所有城市和市政当局。
  • get_island_group_sub_municipalities:获取特定岛屿组内的所有副市镇。
  • get_island_group_barangays:获取特定岛屿群内的所有村庄。

区域工具

  • get_regions:列出所有地区。
  • get_region:通过代码获取特定区域(例如。, "130000000").
  • get_region_provinces:获取特定区域内的所有省份。
  • get_region_districts:获取特定区域内的所有地区。
  • get_region_cities:获取特定区域内的所有城市。
  • get_region_municipalities:获取特定区域内的所有城市。
  • get_region_cities_municipalities:获取特定区域内的所有城市和直辖市。
  • get_region_sub_municipalities:获取特定区域内的所有街道。
  • get_region_barangays:获取特定区域内的所有村庄。

省份工具

  • get_provinces:列出所有省份。
  • get_province:通过代码获取特定省份(例如。, "012800000").
  • get_province_cities:获取特定省份内的所有城市。
  • get_province_municipalities:获取特定省份内的所有城市。
  • get_province_cities_municipalities:获取特定省份内的所有城市和直辖市。
  • get_province_sub_municipalities:获取特定省份内的所有直辖市。
  • get_province_barangays:获取特定省份内的所有乡镇。

地区工具

  • get_districts:列出所有地区。
  • get_district:通过代码获取特定地区(例如。, "133900000").
  • get_district_cities:获取特定地区内的所有城市。
  • get_district_municipalities:获取特定地区内的所有城市。
  • get_district_cities_municipalities:获取特定地区内的所有城市和直辖市。
  • get_district_sub_municipalities:获取特定地区内的所有街道。
  • get_district_barangays:获取特定地区内的所有镇。

城市工具

  • get_cities:列出所有城市。
  • get_city:通过代码获取特定城市(例如。, "012805000").
  • get_city_barangays:获取特定城市内的所有村庄。

市政工具

  • get_municipalities:列出所有城市。
  • get_municipality:通过代码获取特定的市政当局(例如。, "012801000").
  • get_municipality_barangays:获取特定市镇内的所有镇。

市政工具

  • get_sub_municipalities:列出所有街道。
  • get_sub_municipality:通过代码获取特定的直辖市(例如。, "133901000").
  • get_sub_municipality_barangays:获取特定副市区内的所有镇。

城市/市政综合工具

  • get_cities_municipalities:列出所有城市和直辖市。
  • get_city_municipality:通过代码获取特定的城市或直辖市。
  • get_city_municipality_barangays:获取特定城市或直辖市内的所有镇。

Barangay工具

  • get_barangays:列出所有村庄。
  • get_barangay:通过代码获取特定的镇(例如。, "012805001").

搜索和发现工具

  • search_by_name:按名称搜索所有级别的地理实体。
  • get_hierarchy:获取特定PSGC代码的完整层次结构。
  • validate_code:验证地理代码是否存在并获取其详细信息。

可用资源

  • 静态数据:访问所有地理级别的预加载静态数据。
  • 动态查询:执行参数化查询以获取特定数据集。
  • 分层数据:使用资源模板检索任何给定PSGC代码的完整层次信息。

可用模板(提示)

  • 常见查询:对常见的地理问题使用预定义的提示(例如,“[省]的首府是什么?”)。
  • 引导发现:交互式提示可帮助您探索地理层次结构。
  • 数据验证:提示验证PSGC代码和地名。

使用示例

获取所有地区

{
  "tool": "get_regions",
  "arguments": {}
}

获取某个地区的省份

{
  "tool": "get_provinces",
  "arguments": {
    "region_code": "130000000"
  }
}

以名称搜索

{
  "tool": "search_by_name",
  "arguments": {
    "query": "Manila",
    "type": "city"
  }
}

获取完整的层次结构

{
  "tool": "get_hierarchy",
  "arguments": {
    "code": "133900000"
  }
}

api参考

服务器连接到位于的官方PSGC API https://psgc.gitlab.io/api/.

PSGC代码格式

PSGC代码遵循分层格式:

  • 岛屿群: 010000000, 020000000, 030000000
  • 区域:130000000(NCR)、140000000(CAR)等。
  • 省份133900000(马尼拉)、137400000(宿务)等。
  • 城市/市133903000(马尼拉市)、137404000(宿务市)等。
  • Barangays133903001(马尼拉第一区)等。

发展

先决条件

  • Node.js 18或更高版本
  • npm或纱线

设置

git clone https://github.com/your-username/psgc-mcp.git
cd psgc-mcp
npm install

构建

npm run build

发展模式

npm run dev

测试

npm test

与MCP检查员一起检查

npm run inspect

贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 进行更改
  4. 添加新功能的测试
  5. 运行测试: npm test
  6. 提交您的更改: git commit -am 'Add feature'
  7. 推到分支: git push origin feature-name
  8. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件。

支持

有关问题和疑问,请在 GitHub存储库.