关于 NarcoScope — illicit-economy evidence atlas
NarcoScope 面向研究者与公众,将非法经济领域的官方统计转化为图表、地图和通俗说明。它区分有来源、示例、过时及不可用的证据,不把数据缺口当作结论。
主要功能
- 01各国零售价格趋势与负担能力
- 02前体走廊与动态流向地图
- 03查获量与消费数据的多源对照
- 04可按名称或别名搜索 OFAC 名单
- 05缅甸区域风险档案与证据导出
- 06来源标注与通俗说明
适用场景
- 01比较不同国家的零售价格与当地收入
- 02结合过量死亡或污水数据评估查获趋势
- 03按实体名称或别名查阅指定记录
- 04导出区域风险档案以供离线分析
MCP 相关
提供只读的 Streamable HTTP MCP 服务,地址为 https://www.narcoscope.com/mcp。工具返回由 JSON Schema 支持的结构化内容,并保留官方、示例、过时、不可用及受限等证据状态。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://www.narcoscope.com/mcpclaude mcp add --transport http beepboop2025-narcoscope https://www.narcoscope.com/mcp{"mcpServers":{"beepboop2025-narcoscope":{"type":"http","url":"https://www.narcoscope.com/mcp"}}}在 Cursor 中打开{"servers":{"beepboop2025-narcoscope":{"type":"http","url":"https://www.narcoscope.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"beepboop2025-narcoscope":{"type":"http","url":"https://www.narcoscope.com/mcp"}}}{"mcpServers":{"beepboop2025-narcoscope":{"serverUrl":"https://www.narcoscope.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
14| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 | |
| topic | enum | 否 | all | china | regions | information_controls | model_evaluations | funding | institutions | liquidity | global_data |
| offset | integer | 否 |
详细介绍
🌍 NarcoScope
线上站点:narcoscope.com · 证据新闻室:narcoscope.com/#newsroom
部署状态已于 2026-09-08 验证:
narcoscope.com和www.narcoscope.com均由 Railway 运行环境提供服务。Hetzner Fleet 发布器从 GitHub 部署经过验证的源代码,并在服务提供商和公开源站验证确切的提交。注册表元数据和 Agent 使用主域名 MCP 端点。
这是一个服务于公共利益的教育类 数据探索工具,旨在让全球毒品贸易数据变得 通俗易懂。UNODC、INCB 和 EUDA 已发布街头(零售)价格、前体化学品价格以及贩运流向/查获数据,但这些数据都埋藏在大多数人难以读懂的密集 PDF 和 CSV 文件中。这个应用是这些公开数据之上的 转换层:提供清晰的图表、地图和通俗易懂的说明。
**使命:**让难以读懂的官方毒品数据惠及大众。我们不创建新的数据源,而是帮助人们 理解 现有数据。
Agent 和 API 访问
- RFC 9727 API 目录:
https://narcoscope.com/.well-known/api-catalog - OpenAPI:
https://narcoscope.com/openapi.json - MCP 清单:
https://narcoscope.com/server.json - Streamable HTTP MCP:
https://www.narcoscope.com/mcp - 机器可读的产品上下文:
https://narcoscope.com/.well-known/ai-catalog.json - Agent 可读指南:
https://narcoscope.com/llms.txt
{
"mcpServers": {
"narcoscope": { "url": "https://www.narcoscope.com/mcp" }
}
}
MCP 服务为只读服务,每个工具都会返回由 JSON Schema 支持的 structuredContent。1.3 版同时支持无状态 MCP 2026-07-28 发现通道和旧版 2025-06-18 初始化通道。它会保留官方、示例、过时、不可用和受限等状态,不会将缺失的证据转化为评分。
分阶段/线上/注册表的边界以及强制发布顺序记录在 docs/MCP-1.3.0-RELEASE-GATE.md 中。
展示内容
- 街头价格 — 各国的零售价格趋势,并提供按纯度调整后的视图,以及可负担性视角(以当地平均收入对应的天数表示价格)。
- 前体流动与价格 — 走私通道和前体化学品价格,并突出显示源头枢纽(尤其是中国)。
- 流动地图 — 以 Equal-Earth 世界地图呈现通道弧线,并随时间动态变化。
- 交叉验证 — 将查获数据与执法机构不会收集的其他维度进行对照。查获量的变化与执法能力的相关程度至少不亚于与走私量的相关程度,而查获数据本身无法区分这两者;过量用药死亡率(生命统计登记机构)和污水负荷(环境化学家)则可以。不同维度相符时,结论可信;出现分歧时,分歧本身就是发现——查获量上升而消费持平,说明是执法效果;消费上升而查获量持平,则说明市场扩张未被拦截。每项结论都会报告有多少个独立维度为其提供支持,以及在剔除其中任意一个维度后是否依然成立。**验证案例:**加拿大大麻在 2019→2023 年间的查获量下降了 94%,而经测量的污水消费量上升了 69%。加拿大于 2018 年将大麻合法化,因此查获量骤降是因为执法停止,而非需求停止——工具会如实说明这一点,而不是报告市场萎缩。
- 指定名单 — OFAC SDN 名单上依据禁毒及跨国犯罪授权列出的约 2,600 个实体,可按名称或 OFAC 发布的别名搜索;另提供基于财政部为各实体记录的国家构建的司法辖区网络。中介中心性和关节点分析可显示哪些司法辖区维系着指定实体网络。
- 证据编辑部 — 确定性、可离线运行的出版流程,提供句子级引文和独立来源门槛。其首项范围明确的分析将合法贸易、选定的官方事件和美国危害数据分别置于不同的证据轨道,并说明公开记录无法支持哪些关联或因果归因。
- Palimpsest BRI 背景 — 聚焦于 CPEC、Gwadar、CMEC、Kyaukpyu 和 Balochistan 的固定范围来源就绪度及国家经济背景轨道。它保留官方、独立和建模所得的主张类别,以及不可用的 WDI 覆盖情况,但不能用于毒品市场、行为者、路线、罪责、政治或因果推断。
- 缅甸专题 — 省级(金三角)详情:生产地区、内战冲突压力、中国及第三国前体流入、跨境通道城镇和查获量。情报层融合多源证据,为各地区评定风险/置信度分数,标记跨来源分歧,按可靠性等级为来源加权,并计算逐年风险趋势(上升/下降/稳定),以便分析人员了解势头;当平静地区与已越过高风险阈值的地区接壤时,会标记地理外溢预警;当某地区最新记录早于报告年份时,会标记证据陈旧度(当前/较旧/陈旧),并相应降低置信度;还会使用赫芬达尔-赫希曼指数评估前体通道集中度(多元化/中等/集中),以标记对单一来源供应的依赖——这既是脆弱性信号,也是拦截优先事项。分析人员可直接从简报中将风险概况和证据图谱台账导出为 CSV,以供离线审阅。
每个视图都会自动生成一句*“通俗说明”*,并提供悬停提示,以通俗易懂的方式解释各项数据。
截图
Street Prices 现在提供官方数据:UNODC《2025 年世界毒品报告》统计附录 8.1(2019–2023 年的每克零售价格和纯度,共 69 个国家的 208 条记录),并使用世界银行的人均 GDP(2024 年)呈现可负担性视角。流向地图、前体化学品和缅甸的数据仍为示意数据,等待导入——应用内徽标会明确标示哪些是哪些。
深色、动态效果丰富的界面:WebGL 地球仪从源头枢纽(珊瑚色)向中转和目的地节点(青色)描绘前体化学品流向;标题逐字显现,页面区块则随滚动逐个展开。沉浸式图层完全受 prefers-reduced-motion 控制,在移动设备和不支持 WebGL 的设备上则会回退到轻量级 2D 画布。

Street Prices——价格趋势和可负担性视角,并附有通俗易懂的摘要:

Flow Map——展示前体化学品流向、按年份动态呈现的 Equal-Earth 世界地图:

Myanmar Focus——金三角的省级细节:

道德范围(请阅读)
此工具报告的是已发布的汇总统计数据——按国家和年份统计,聚焦地区则细化至省级——严格用于认知、教育和研究。根据设计,它不提供销售点、实时、街区级或可导航的位置数据;前体化学品图层也仅存储物流信息(品类、数量、地点、管控状态),不包含化学信息、合成路线或产量。本工具不是、也绝不可用作获取任何物质的指南。
私有 ScamShield 信号
Hetzner 分析环境可以导入 ScamShield 隐私最小化的 Telegram 汇总数据,供内部审核。这些数据不会进入网站或受 Git 管理的数据集。严格的架构防火墙会拒绝原始消息、精确 IOC、来源标识符、声称覆盖范围普遍的说法、声称可公开使用的说法,以及任何省略人工审核要求的内容。导入器无法访问网络,仅保留汇总计数、源文件哈希、每小时快照,以及位于 /var/lib/narcoscope-analyst/ 下的仅追加收据账本。
有关信任边界和生产服务,请参阅 deploy/private-import/README.md。
具名实体
“指定对象”选项卡会列出人物和公司,其他所有图层都不会这样做。对此,我们坚持以下原则:
- 指定是政府发布的一项行为——某实体依据明确的法律授权,于明确日期被列入名单。NarcoScope 报告的是政府采取了什么行动,而非该实体做了什么;它不包含自由文本指控字段,且被指定不代表已裁定有罪。OFAC 会将对象从名单中移除;依赖任何条目之前,请先查阅实时名单。
- 上游 OFAC 文件中包含地址、护照和国民身份证号码以及出生日期,但这些信息被刻意排除在提取范围之外。
- 新闻报道和众包追踪器只是线索,不是记录。 C4ADS、InSight Crime、EIA、GASO 等来源均已登记在来源注册表中,由受治理的抓取程序读取并放入分析人员的工作队列。具名实体只有在同时出现在官方指定名单上时,才会进入打包数据集。这条规则写入了
scripts/scrape/myanmar-sources.json中的verification_rule。 - 指定关系图不包含实体之间的边,因为 OFAC 不会发布此类信息。自行编造关系边并据此计算中心性,将会利用本工具虚构的关系图,对个人给出看似确定的排名。这些方法不在已发布汇总数据的范围内。
数据溯源
现在,大多数随附图表都是官方提取数据,由流水线根据以下来源重新生成。仍属示意性的数据已明确标出:缅甸地区级流量以及前体价格序列(INCB 不发布前体价格)。应用内徽标会说明各数据的性质,每个生成的数据集都带有溯源标头,注明来源、检索日期和提取规则。
- UNODC — Drugs: prices & World Drug Report — https://dataunodc.un.org
- INCB — Precursors Report 2025(经审计的确切 PDF)— https://www.incb.org/incb/uploads/documents/Publications/AnnualReports/AR2025/Precursors_Report/E_INCB_2025_4_eng.pdf
- CDC NCHS — VSRR 暂定药物过量死亡人数 — https://data.cdc.gov/NCHS/VSRR-Provisional-Drug-Overdose-Death-Counts/xkb8-kh2a
- Statistics Canada — 市政污水中的药物代谢物 — https://www150.statcan.gc.ca/t1/tbl1/en/tv.action?pid=1310087101
- US Treasury OFAC — 特别指定国民 — https://sanctionslist.ofac.treas.gov/Home/SdnList
- EUDA (EMCDDA) — 价格、纯度与污水 — https://www.euda.europa.eu/data
- World Bank — 人均 GDP — https://data.worldbank.org
- ACLED / International Crisis Group — 缅甸内战背景
完整注册表涵盖自动化数据集、需人工处理的数据集,以及为分析师工作队列提供信息(而非供应用使用)的调查报告,见 scripts/pipeline/sources.json。
每个条目都记录了许可、更新频率、自动化级别及其供给对象。
其中有两个条目专门登记,以避免反复讨论相关理由:OpenSanctions 未在其批量数据制品中公布任何许可,因此它只是一个查询指引,而非随附数据集;OCCRP Aleph 的各集合许可禁止再分发。
污水数据来自加拿大,而非欧洲。 EUDA 会向非浏览器客户端返回 HTTP 403(无论使用当前 URL、旧版 URL,还是 data.europa.eu 所链接的副本),而 ACIC 提供的是 PDF,因此无法自动化获取这两个知名项目的数据。Statistics Canada 通过无需密钥的 API,以开放许可发布相同测量值,数据粒度相同,计量单位也同为 SCORE——因此它是随附数据集的默认来源,而加拿大也是第二个完成全面交叉验证的国家。欧洲和澳大利亚的数据覆盖仍需通过 CSV 面板导入经过验证的导出文件。
通过页脚中的 “Load official data (CSV)” 面板加载真实数据;每个文件都由 src/lib/ingest.ts 解析,错误行会被报告,而不会被静默丢弃。
列映射请参阅 src/lib/ingest-config-reference.md。
可以使用 Palimpsest 风格的受治理抓取器,为缅甸冲突及前体流量来源的初步筛查做准备:
npm run scrape:myanmar -- --out docs/sources/myanmar-observations.csv --pretty
该输出是供分析师使用的工作队列,其中包含摘录和内容指纹,而非可直接用于应用的数据;加载前,请先核实数据,并将各行整理为符合缅甸内战/前体 CSV 架构的格式。
衍生本体涵盖数据中实际出现的所有实体和关系类型,由 npm run ontology 重新生成到 docs/ontology/。它通过观察随附数据集归纳得出,而非由语言模型生成:语料库已有类型和溯源标记,因此可直接从中读取架构,从而彻底消除幻觉风险。此本体为待审核草案,绝不会自动应用到 src/types.ts。
新增的 Enterprise Intel 选项卡提供事件/实体证据图谱、区域风险评分、置信度/来源多样性指标,以及供分析师审核的证据台账。有关基于论文的设计,请参阅 docs/ENTERPRISE_HARDENING.md。
Evidence Newsroom 选项卡读取一份已纳入版本控制的档案和回执,这些内容无需联网或调用模型即可生成。发布内容必须包含句子和视觉内容的引文;用于综合分析的上游来源必须保持活跃且相互独立;还必须进行反方论证、说明局限,并完成因果关系/责任归属安全检查。请参阅 docs/EVIDENCE_NEWSROOM.md。
证据新闻编辑部发布规范
新闻编辑部明确标注为自动化证据分析,并注明
humanReviewStatus: not_recorded。构建过程中不会使用生成式模型,不包含专家或受影响者的证词,也绝不会模拟这些人的声音。首篇文章不会指名提出指控,将回应权记录为 not_required,并发布带有稳定修订版和内容哈希的更正/更新历史。
构建所用的官方记录可以支持有出处的观察结论。分析性或方法论综合结论至少需要两个独立且实际使用的官方上游组;仅注册可用、仅具备相关能力或不可用的数据源,均不提供任何交叉佐证。若输入数据缺少合法贸易的分母、记录级联结、经裁定的结果或可靠的国家归属,新闻编辑部就会 abstain。不会把原产地标签、行政认定或单独的死亡率趋势转化为有罪认定或因果归因。
发布页面如下:
- 应用路由:
/#newsroom; - 独立 HTML:
/news/china-linked-precursor-incidents-official-record.html; - 机器简报:
/news/china-linked-precursor-incidents-official-record.machine-brief.json; - 引用档案:
/news/china-linked-precursor-incidents-official-record.dossier.json; - JSON Feed:
/news/feed.json;以及 - Atom Feed:
/news/feed.xml。
运行 npm run news:build 以重新生成离线包,运行
npm run news:check 以验证每个已检入的字节。生产构建会在 TypeScript 和 Vite 之前运行过期产物检查。
技术栈
React 18 · Vite 8 · TypeScript · Recharts · react-simple-maps(world-atlas 已在本地打包)。界面层还使用 Three.js / React Three Fiber(带 bloom 后期处理的延迟加载主视觉地球仪——不会包含在初始包中)、@react-spring/web(基于物理效果的文字/分区显现和动画计数器)以及 Lenis(全局平滑滚动)——均受 prefers-reduced-motion 守护。运行时数据存储(src/lib/dataStore.ts)会在加载时将示例数据替换为真实数据。
开发
npm install
npm run dev # local dev server
npm run scrape:myanmar -- --pretty
npm run ontology # regenerate docs/ontology/draft-ontology.{json,md}
npm run news:build # regenerate the deterministic evidence newsroom
npm run news:check # verify that checked-in newsroom artifacts are current
npm run bridge:palimpsest-bri:check # verify the pinned BRI artifact + hash
npm run build # type-check (tsc) + production build → dist/
npm run preview # preview the build
npm run typecheck # tsc --noEmit
npm test # run unit tests (Vitest)
部署(Vercel)
此仓库已适配 Vercel(vercel.json 固定使用 Vite 框架)。可任选其一:
- 控制面板: 在 vercel.com 导入 Git 仓库——无需配置,自动检测。
- CLI:
npx vercel(预览)/npx vercel --prod(生产环境)。
只有 api/mcp.mjs 和 api/v1.mjs 是函数入口点。API 辅助工具和测试使用带下划线前缀的路径,避免 Vercel 将其发布为函数。npm run build 会在构建前依据 vercel.json 检查此边界。
数据管道
npm run data:refresh 会获取可自动化处理的开放数据源(UNODC WDR
附录、World Bank GDP、CDC VSRR 死亡率、OFAC SDN 指定名单),
重新生成打包的数据集,并依据测试套件进行验证。单项刷新命令:npm run data:overdose、
npm run data:designations。每季度运行的 GitHub Action 会执行相同操作,并在数据发生变化时创建 PR。完整数据源注册表(包括尚未接入的手动和 API 密钥数据源)位于
scripts/pipeline/sources.json;操作指南见 docs/DATA_PIPELINE.md。
当前覆盖范围的限制
每克纯品价格的计算需要已知纯度。街头价格和符合条件的前体流动记录保留其引用的 UNODC 和 INCB 来源; 目前没有可引用的前体价格序列,缅甸数据集也不可用。污水监测覆盖加拿大。Designations 选项卡仅使用 OFAC 作为指定机构。这些限制并不代表对缺失观测值的估算。
许可证
MIT 适用于应用程序代码。数据仍须遵守各自来源的许可证和署名要求。WDR 附录为本教育项目而转载;转售及其他商业用途须获得出版方许可。API 和 CSV 导出均保留这些条款。
中国及区域互联研究
“一带一路”、中巴经济走廊/瓜达尔、俾路支省和缅甸视图共用一个 Palimpsest 研究工作台。将研究区域切换为中国,即可查看详细的 NBS 研究结果。年度国家债务、储备、经常账户和通胀对比会保留参考年份;这些数据不衡量项目或地区层面的结果。
REST 资源为 /api/v1/connected-research;MCP 提供 get_connected_research。两者均提供经过验证的 public/data/palimpsest-connected-research-v1.json 快照及其 SHA-256 校验文件。npm run bridge:connected:sync 会从固定的 Palimpsest URL 刷新数据;npm run bridge:connected:check 会离线验证打包副本。Hetzner 线路发布器会在定期发布期间刷新该文件。获取失败时会保留带日期的副本。
快照还可包含中国证据观测站:去重后的经济历史数据、欧盟报告的贸易数据、官方文件变更和历史方法案例。中国视图展示完整研究结果;区域视图展示单独标注来源的贸易背景信息。可选的 observatory 摘要会新增第五个具名输入哈希及相应的源时钟。其哈希用于标识完整的 Palimpsest 证据快照;打包文件的 SHA-256 也会绑定 REST 和 MCP 提供的摘要。较旧的四输入快照仍可读取。
桥接仅接纳四个固定的公共数据集路由和经审核的覆盖范围计数。SAFE 数值记录仍为私有;其卡片和下载内容仅包含获取元数据。文件缺失、方法修订和贸易数据分歧,均不能证明存在隐瞒、过错或因果关系。官方公告日期与收集日期保持区分。
NBS 统计数据署名、世界银行 CC BY 4.0 署名及发布方仅限元数据的条款仍按各自来源执行。地理位置或时间相同,不能证明行为方之间存在关联,也不能证明过错或因果关系。关于数据收集者和分析方法的详细说明,请参阅 Palimpsest 的 docs/CONNECTED-ECONOMIC-RESEARCH.md。
全球市场研究工作区
共享的深色研究界面连接 NarcoScope 和 Palimpsest。数据资料库会查询来源原生的国家、城市、类别、细分和期间观测数据;其中包含关联的分级设色地图、比较历史、地理条形图、来源记录检查和带来源标注的 CSV 下载。现有的查获、组织犯罪、区域、药物过量和污水分析视图仍可访问。
新资料库包含 129,217 个来源单元格(74,373 个数值观测和 54,844 个明确标记为不可用的单元格),涵盖 58 项指标。数据来源包括 WDR2026 毒品附录、Statistics Canada 的月度污水测量数据、World Bank 非正规性估算,以及获得来源许可的 WDI 常规武器和企业调查系列。军备转让 TIV 不是货币价值,也不是对非法贸易的分类。非正规性模型并未衡量整个黑色经济。每个来源均保留其参考日期和限制条件。
npm run markets:check 用于验证公开的来源约束型目录和契约;npm run workspace:build 会生成 Palimpsest 使用的便携式探索器。/api/v1/markets 用于发现覆盖范围和有效筛选条件组合;/api/v1/market-observations 用于返回分页测量数据。对应的 MCP 工具是 get_market_catalog 和 query_market_observations。来源数据集不会包含在初始 JavaScript 包中。
MCP 目录采用 narcoscope.global-market-catalog-page.v1:page 和 limit 按稳定的数据集/指标顺序选择最多四项指标。数据集覆盖范围、哈希值以及指标和来源总数均保持完整;该页中的指标会附带来源详情和再利用限制。每项指标的地理位置、类别、子组和已观测选项列表,均有各自的 dimensionPagination 总数和下一页标记。设置 dataset 和 indicator,然后使用相同的 dimensionLimit(默认值为 25,最大值为 50)遍历 dimensionPage,即可枚举所有值,包括明确的空值。跨页保留数据集哈希值;如果哈希值发生变化,请重新开始枚举。完整的 REST 目录和浏览器探索器仍沿用现有契约。MCP 会测量两个协议副本的响应大小,并将其控制在 1 MiB 预算内;如果未来的元数据超出预算,则会返回有界错误并提供缩小页面的建议。
互联研究
Seiche 的 research_network 工具和 /api/v2/research-network 端点会将 Palimpsest 的完整来源目录,与单独整理的资金背景和明确的研究步骤连接起来,并接入 LiquiLens、Undertow 和 NarcoScope。
使用 topic、offset 和 limit;按照 next_offset 获取其余数据集。
人工研究台位于 https://seiche.info/#RESEARCH。Telegram 用户可以使用
/research china、/research regions 或 /research liquidity。
目录行是引用,不代表获准再分发来源数据值或更改评分。来源时间、权利和缺失情况均会随数据保留。检索到的目录哈希是字节身份标识,不是数据提供者的证明。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。