mcpField
W
Wilayah Indonesia

Wilayah Indonesia

本地服务
github.com/EzkielynaGroup地图与出行02 天前更新

关于 Wilayah Indonesia

Wilayah Indonesia 是面向 AI 助手的 MCP 服务,可离线查询印度尼西亚各级行政区及 Kemendagri 代码。它支持容错搜索、代码验证和层级浏览,并提供 BMKG 天气接口使用的 adm4 代码。

主要功能

  1. 01离线查询行政区与代码
  2. 02容错名称搜索及筛选
  3. 03查看代码详情与下级区域
  4. 04验证代码格式和有效性
  5. 05提供 BMKG adm4 代码

适用场景

  1. 01查找村庄或地区的 Kemendagri 代码
  2. 02按行政层级浏览地区列表
  3. 03为 BMKG 天气查询取得 adm4 代码

MCP 相关

作为 MCP 服务,向客户端提供搜索、详情、列出下级区域和验证代码等只读工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ezkielynagroup-mcp-wilayah-indonesia": {
"command": "npx",
"args": [
"-y",
"mcp-wilayah-indonesia"
],
"env": {
"WILAYAH_DATA_FILE": "<WILAYAH_DATA_FILE>"
}
}
}
}
启动命令npx -y mcp-wilayah-indonesia
需要配置的环境变量
WILAYAH_DATA_FILEOptional path to another data file (.json or .json.gz, same shape as the bundled one)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-wilayah-indonesia1.0.0

工具

4

收录的工具列表 · 更新于 2 天前

参数类型必填说明
namastring是区域名称,例如 "Kemayoran"、"kab bandung"、"desa sukamaju garut"。最多 200 个字符。
batasinteger否最大结果数(默认值 10,最大值 50)。
jenisenum否可选的精确类别(比 tingkat 更细)。provinsi | kabupaten | kota | kecamatan | kelurahan | desa
tingkatinteger否可选级别:1 省,2 县/市,3 区,4 村/街道。
kode_indukstring否可选的上级代码,用于在其范围内搜索,例如 "32"(Jawa Barat)或 "32.05"(Kab. Garut)。

详细介绍

mcp-wilayah-indonesia

一个 MCP 服务,可让你的 AI 助手查询印度尼西亚行政区划及其 Kemendagri 代码:省、县/市、区(Papua 省份称为 distrik)以及村/社区。它使用随附的当前代码列表副本(Kepmendagri No. 300.2.2-2430 Tahun 2025,91,599 个区域)离线运行,并能容忍拼写错误。

示例:“雅加达中部 Kemayoran 社区的 Kemendagri 代码是什么?天气预报该使用哪个 BMKG adm4 代码?”

🇮🇩 Bahasa Indonesia:请见下方部分。

  • 单文件,无依赖:只需要 Node.js 18 或更高版本。数据(约 660 KB gzip)随软件包一起提供。
  • 无需 API 密钥,不进行网络调用,也不产生费用。只读:服务绝不会写入文件。
  • 每个回答都包含完整路径,例如 Kel. Kemayoran, Kec. Kemayoran, Kota Adm. Jakarta Pusat, Prov. Daerah Khusus Ibukota Jakarta。
  • 支持带点或不带点的代码(31.71.03.1001 或 3171031001)。

工具

工具功能
cari_wilayah按名称搜索,可容忍拼写错误。额外词语可用于指定上级区域("sukamaju garut");前置的 kab/kota/kec/desa/kel 可作为提示;支持常见简称(jogja、DKI、jatim、NTT)。筛选条件:tingkat(1–4)、jenis(provinsi、kabupaten、kota、kecamatan、kelurahan、desa)、kode_induk(在指定上级区域内搜索)、batas(最多 50)。返回代码、类别、级别、完整路径和匹配分数。
detail_kode根据代码返回名称、类别、从省份开始的所有上级区域,以及其下辖的区域数量。
daftar_anak返回某代码的直接下级区域(省 → 县/市 → 区 → 村/社区),支持使用 offset 和 batas 分页(最多 200 条)。不指定代码时会列出 38 个省。
validasi_kode检查格式(2/4/6/10 位数字,以及分段规则,例如 kota = 71–79、kelurahan = 1xxx、desa = 2xxx、desa adat = 3xxx)和代码是否存在。对于未知代码,会指出确实存在的最近上级区域;也能识别并说明岛屿代码(xx.xx.4xxxx)。

所有工具均为只读(readOnlyHint: true、openWorldHint: false)。回答为 JSON 文本及 structuredContent。

代码格式
级别类别位数示例
1provinsi232 Jawa Barat
2kabupaten(01–69)/ kota(71–79)2.232.73 Kota Bandung
3kecamatan(Papua 省份称为 distrik)2.2.232.73.01 Sukasari
4kelurahan(1xxx)/ desa(2xxx;Kab. Jayapura 的 14 个 desa adat 使用 3xxx)2.2.2.431.71.03.1001 Kemayoran

可与 BMKG 天气服务配合使用(adm4)

BMKG 的公共天气预报 API 使用相同的带点的第 4 级 Kemendagri 代码作为村庄标识,即 adm4 参数,例如 https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=31.71.03.1001(于 2026 年 11 月 11 日检查)。因此,第 4 级搜索结果会包含 bmkg_adm4 字段。将此服务与 mcp-bmkg 配合使用,助手便能从“明天 Kemayoran 的天气”查询到正确的村庄代码,再获取天气预报。

安装

使用 npx(推荐): 无需安装。以下配置会运行 npx -y mcp-wilayah-indonesia,首次启动时下载软件包(一个 .mjs 文件和数据文件,无依赖)。

从源代码安装:

git clone https://github.com/EzkielynaGroup/mcp-wilayah-indonesia.git
cd mcp-wilayah-indonesia
node --test test/        # optional, offline

然后使用 "command": "node",并将 "args": ["/full/path/to/mcp-wilayah-indonesia.mjs"] 替代 npx。

在 Windows 上,如果应用无法启动 npx,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "mcp-wilayah-indonesia"]。JSON 中的路径请使用正斜杠(C:/Users/you/mcp-wilayah-indonesia/mcp-wilayah-indonesia.mjs)或双反斜杠。

Claude Desktop

Settings → Developer → Edit Config(claude_desktop_config.json),然后完全退出并重新打开 Claude Desktop。

{
  "mcpServers": {
    "wilayah-indonesia": {
      "command": "npx",
      "args": ["-y", "mcp-wilayah-indonesia"]
    }
  }
}
Claude Code
claude mcp add wilayah-indonesia -- npx -y mcp-wilayah-indonesia

添加 --scope user,即可在每个项目中使用。运行 claude mcp list 检查。

Cursor

~/.cursor/mcp.json(所有项目)或 .cursor/mcp.json(单个项目),JSON 格式与 Claude Desktop 相同。

OpenCode

项目中的 opencode.json,或用于所有项目的 ~/.config/opencode/opencode.json。

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wilayah-indonesia": {
      "type": "local",
      "command": ["npx", "-y", "mcp-wilayah-indonesia"],
      "enabled": true
    }
  }
}

配置(环境变量)

变量必填默认值说明
WILAYAH_DATA_FILE否内置的 data/wilayah.json.gz使用其他数据文件(.json 或 .json.gz),文件结构需相同。例如,使用 scripts/build-data.mjs 构建的较新版本。

安全性与限制

  • 离线且只读:不会发起网络请求,也不会写入文件。日志写入 stderr;stdout 仅传输 MCP 消息。
  • 输入限制:名称最多 200 个字符;每次最多返回 50 条搜索结果和 200 个子项。
  • 错误以简短的工具错误信息返回(印尼语 + 英语),不包含堆栈跟踪或本地路径。
  • 数据为快照。地区拆分或更名时,代码和名称会发生变化;如用于法律或行政用途,请查阅相关法令。

数据来源与许可证

法律依据内政部部长决定 No. 300.2.2-2430 Tahun 2025(修订 No. 300.2.2-2138 Tahun 2025),据上游数据集所述
数据集cahyadsn/wilayah,文件 db/wilayah.sql,提交 d68e8d5(最近一次数据更改于 2026 年 2 月 13 日),下载于 2026 年 11 月 11 日
数据集许可证MIT,版权所有 (c) 2017-2025 Cahya DSN。完整声明随附于 data/LICENSE-DATA.txt。
内容38 个省、416 个县、98 个市、7,285 个区、8,496 个城市村、75,266 个乡村(共 91,599 行)。这些总数已与上游 README 中的表格核对。
更改转换为紧凑型 JSON + gzip;删除了 5 个名称末尾的空格。除此之外没有其他更改。

注意:上游 SQL 文件中的注释标题仍提及 No. 300.2.2-2138,而上游 README 及其更改说明指出数据依据 No. 300.2.2-2430;我们以 README 为准。雅加达的省名保留列表中的写法(Daerah Khusus Ibukota Jakarta)。本项目尚未逐行对照法令 PDF 核验数据。

上游数据更新后,重新构建:

curl -sL -o /tmp/wilayah.sql https://raw.githubusercontent.com/cahyadsn/wilayah/master/db/wilayah.sql
node scripts/build-data.mjs /tmp/wilayah.sql --commit <upstream sha> --date <YYYY-MM-DD>
node --test test/

常见问题

我的村庄代码(kode desa / kode kelurahan)是什么? 启用此服务后,向助手提问即可,例如:“kode wilayah Desa Sukamaju, Kec. Cilawu, Garut”。cari_wilayah 会返回 10 位代码(32.05.19.2014)和完整路径。

这是 BMKG 用于天气预报的相同代码(adm4)吗? 是。BMKG 的预报 API 将带点的第 4 级内政部代码作为 adm4,因此可以直接将 bmkg_adm4 传给该 API 或 mcp-bmkg。

印度尼西亚当前列表中有多少个省、县和村庄? 根据 Kepmendagri 300.2.2-2430/2025:38 个省、416 个县、98 个市、7,285 个区、8,496 个城市村和 75,266 个乡村。

这与邮政编码(kode pos)或 BPS 代码相同吗? 不同。内政部地区代码不同于邮政编码,也不同于省级以下的 BPS(统计)代码,后者可能有所不同(例如 Kota Jakarta Pusat)。此服务只包含内政部代码。

需要互联网或 API 密钥吗? 不需要。数据已随包提供;npx 下载过一次软件包后,所有操作都会在本地运行,且无需付费。

这些数据由政府发布吗? 这些代码来自内政部的一项法令,但此软件包使用的是社区编纂的 MIT 许可版本,并非政府服务。如用于法律或行政文件,请查阅内政部发布的法令。

开发

node --test test/

11 项测试会通过标准输入/输出,以真实数据中的 46 行样本为基础启动服务,并检查每个工具、筛选条件、拼写错误、分页、错误情况和损坏的数据文件;同时还会检查内置的完整列表是否能加载,以及公布的总数是否正确。不访问网络。

许可证

代码:MIT,版权所有 (c) 2026 Ezekiel Lieberhart (Ezkielyna)。数据:MIT,版权所有 (c) 2017-2025 Cahya DSN(参见 data/LICENSE-DATA.txt)。本项目与 Kemendagri、BMKG 或上游数据集作者均无关联。

由 Ezkielyna 制作。Ezkielyna 是面向印度尼西亚开发者的独立 AI API 网关(QRIS)。


印度尼西亚语

MCP 服务,让 AI 助手(Claude Desktop、Claude Code、Cursor、OpenCode 和其他 MCP 客户端)能够搜索印度尼西亚行政区划及其 Kemendagri 代码:省、县/市、区(乡镇)和村/街道。基于最新代码列表副本离线运行(Kepmendagri 第 300.2.2-2430 号,2025 年,91,599 个区域),并能容忍拼写错误。

示例问题:“雅加达中部 Kemayoran 街道的区域代码是什么?它的 BMKG adm4 代码是什么?”

  • 只需 Node.js 18+,无需依赖项、API key,下载软件包后无需联网,且免费。
  • 每条结果都包含完整路径,例如 Desa Sukamaju, Kec. Cilawu, Kab. Garut, Prov. Jawa Barat。
  • 代码可带点或不带点(31.71.03.1001 或 3171031001)。
工具
工具功能
cari_wilayah按名称搜索(可容忍拼写错误)。可附加上级名称("sukamaju garut");前缀 kab/kota/kec/desa/kel 可作为提示;可识别常见缩写(jogja、DKI、jatim、NTT)。筛选条件:tingkat(1–4)、jenis、kode_induk、batas(最多 50)。
detail_kode代码 → 名称、类型、从省级到下级的所有上级,以及其下属区域数量。
daftar_anak按页列出代码下一级的区域(offset、batas,最多 200)。不提供代码时:38 个省。
validasi_kode检查格式(2/4/6/10 位数字、市级 = 71–79、街道 = 1xxx、村 = 2xxx、传统村 = 3xxx)以及代码是否存在。对于不存在的代码,会指出最近的有效上级。可识别岛屿代码(xx.xx.4xxxx)。
与 BMKG 配合使用

BMKG 公共天气预报 API 使用带点的 Kemendagri 村/街道代码作为 adm4 参数,例如 https://api.bmkg.go.id/publik/prakiraan-cuaca?adm4=31.71.03.1001。4 级结果包含 bmkg_adm4 列。可与 mcp-bmkg 搭配使用:助手在此处搜索村级代码,然后在该服务中获取天气预报。

安装

将其添加到应用配置中(与上面的示例相同):

{
  "mcpServers": {
    "wilayah-indonesia": { "command": "npx", "args": ["-y", "mcp-wilayah-indonesia"] }
  }
}

Claude Code:claude mcp add wilayah-indonesia -- npx -y mcp-wilayah-indonesia。在 Windows 上,如果 npx 无法运行,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "mcp-wilayah-indonesia"]。

数据来源与许可证

数据取自 cahyadsn/wilayah 仓库(MIT 许可证,版权所有 (c) 2017-2025 Cahya DSN),文件 db/wilayah.sql,提交版本 d68e8d5(数据最后更新于 2026 年 2 月 13 日,下载于 2026 年 11 月 11 日)。根据该仓库的 README,数据遵循 Kepmendagri 第 300.2.2-2430 号(2025 年)。数量与源仓库 README 中的表格相符:38 个省、416 个县、98 个市、7,285 个区、8,496 个街道、75,266 个村。我们未逐条与 Kepmendagri PDF 核对。如用于法律或行政事务,请查阅 Kemendagri 发布的 Kepmendagri 文件。

常见问题
  • 如何查找村级代码? 向助手提问,例如“Desa Sukamaju Cilawu Garut 的区域代码”;cari_wilayah 会返回 10 位代码和完整路径。
  • 它与邮政编码相同吗? 不同。Kemendagri 区域代码与邮政编码及 BPS 代码不同。
  • 需要联网或 API key 吗? 不需要。数据随软件包一同提供,且完全免费。

代码:MIT。数据:MIT(Cahya DSN)。由 Ezkielyna 制作。Ezkielyna 是面向印度尼西亚开发者的独立 AI API 网关(使用 QRIS 付款)。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。