BJDATA · 北京基础数据查询服务

接入指南

让你的 AI 助手(Claude、Cursor 等)或命令行直接查询北京社区级人口数据。服务只返回汇总结果,不提供原始明细。

当前数据:第七次人口普查(2020-11-01 时点) 空间单元:6,721 个社区/村 · 346 个街道乡镇 · 16 个区 坐标:WGS84
token 只在这个页面里使用,不会保存或上传。还没有 token?见下方“申请 token”。

开始之前

需要准备三样东西:

申请 token

  1. 联系本服务的数据管理员,说明你的姓名、单位和用途(比如“城建院张三,做朝阳区养老设施配置研究”)。
  2. 管理员会私信发给你一段消息,里面有 token 和接入命令。每人一个 token,请勿转发;需要给别人用,请让对方自己申请。
  3. 如果 token 泄露或不再需要,告诉管理员吊销即可,不影响其他人。

安装接入

按你用的客户端选一种,不需要都装。

在终端运行一行命令:

然后重启 Claude Code,输入 /mcp,能看到 bjdata 显示为已连接就成功了。直接问“劲松街道 60 岁以上老人有多少”试试。

怎么提问

接入 AI 助手后,用平常说话的方式提问就行,助手会自己选工具、确认地名。下面这些都能直接问:

建议在引用结果时,把助手返回的时点、口径说明一起带上。

命令行速查

想做什么命令
查地名写法bjdata find 劲松
街道某年龄段人口bjdata pop --town 劲松街道 --age 22-35
社区人口bjdata pop --community 劲松西社区 --age 60-
半径范围人口bjdata pop --lon 116.4615 --lat 39.8845 --r 800
年龄结构bjdata ages --district 东城区 --bin 5
排名bjdata rank --district 朝阳区 --age 60- --limit 10
逐社区全表(CSV)bjdata table --district 海淀区 --csv > 海淀.csv
自定义年龄段全表bjdata table --bands 0-14,20-34,60+,80+ --csv > 全市.csv
边界 GeoJSONbjdata boundary --town 劲松街道 > 劲松.geojson
升级客户端bjdata update

年龄写法:22-35 表示 22 到 35 岁,60- 表示 60 岁及以上,-14 表示 14 岁及以下。任何命令加 --json 输出原始 JSON。CSV 文件带 BOM,用 Excel 直接打开不会乱码。

可用工具

AI 助手看到的就是这些工具。一般不用记,了解一下能查什么即可。

工具用途
find_areas按名称查街道、社区的规范写法和 adcode
population_in_area一个范围内的常住人口、外来人口、某年龄段人数与占比
age_structure一个范围的年龄结构(人口金字塔数据)
age_table逐社区或逐街道的分年龄段人数与占比全表
rank_areas按年龄占比、人口、外来人口占比、密度排名
get_boundary区、街道、社区的简化边界(GeoJSON)
list_datasets / describe_dataset数据集清单和详细口径

查询范围可以是:全市、区、街道乡镇、单个社区、经纬度加半径(最大 5 公里),或者自己画的多边形(最大 500 平方公里)。

口径与隐私规则

两条隐私规则

查询范围年龄区间
全市、区、街道乡镇任意单岁区间,如 22-35 岁
社区、半径范围、自定义多边形,以及只含 1 个社区的街道年龄边界自动取整到 5 岁,如 22-35 岁会变成 20-34 岁;返回结果里会注明

另外,任何少于 10 人的数字都显示为 <10,对应的占比显示为空。这是隐私保护,不是缺数据。

使用数据前请了解

常见问题

提示“未授权”(401)
token 没填、填错,或者已经被吊销。检查有没有多复制空格;还不行就联系管理员重新发一个。
提示“查询服务正在启动”(503),或者第一次查询特别慢
服务闲置 20 分钟后会休眠,下一次请求要花 10 到 20 秒唤醒。等一下再试即可;命令行客户端会自动重试。
连不上,或者超时
多半是网络问题。服务部署在境外,请开代理后重试。Claude Code 和命令行会跟随系统代理或 HTTPS_PROXY 环境变量。
为什么我查 22-35 岁,结果写的是 20-34 岁?
社区级和自定义范围的年龄边界会取整到 5 岁,防止通过多次查询拼出单个年龄的人数。需要精确的单岁区间,请改成按街道、区或全市查询。
服务更新后我需要做什么?
AI 助手接入的方式什么都不用做,查询逻辑和数据更新后立刻生效;如果新增了工具,重启 Claude Code 或新开一个 claude.ai 对话就能看到。命令行客户端在有新版本时会提示,运行 bjdata update 升级即可。
能拿到原始数据或单岁明细吗?
不能。这个服务的定位就是只提供汇总结果。如果研究确实需要更细的数据,请直接联系数据管理员商量。
结果能和其他数据叠加吗?
可以。age_table 和 find_areas 都返回 12 位 adcode,可以作为主键关联;get_boundary 返回的边界是 WGS84 坐标的 GeoJSON,能直接拖进 QGIS。