DataPulse 是面向马来西亚公共数据的开源、只读验证层,旨在解决 AI 引用数据时因底层数据陈旧、许可不明或无法验证而导致的错误。它持续观测马来西亚官方开放数据集,并发布机器可读证据,说明来源是否可达、内容新鲜度、适用许可证、结构或记录数是否变化以及观测签名时间。
用途 DataPulse 为 AI 构建者与智能体开发者、研究人员、分析师、记者、合规与监管监测团队以及公民技术专家和公务员提供可验证的数据健康信号。其核心目标不是替代官方来源或证明数据在语义上正确,而是让数据源状况可观测、观测可复现。
主要能力
- 持续监测:按数据集声明的更新频率进行定时探测,记录可达性、真实的新鲜度信号、模式形态、记录数和采集特性。
- 十种健康状态:fresh、aging、stale、discontinued、degraded、browser-dependent、unreachable、unknown、unknown-freshness、reference。无法证明新鲜的会标记为 unknown-freshness,而非默认为健康。
- 签名证据与不可变日志:每次观测经签名并记录到公开日志,可验证观测时间和记录未被篡改。
- 机器可读优先:整个目录可通过一个索引发现,并可通过只读 MCP 服务器查询。
- 只读 MCP 服务器:提供 19 个工具,包括 search_datasets、get_dataset、get_data_passport、find_stale、find_anomalies、find_deteriorating、find_recovering、find_unreliable、find_schema_drift、check_reconciliation、get_provenance、get_evidence、verify_dataset、get_freshness_summary、verify_evidence、trust_verdict、verify_attestation、find_by_licence、usage_summary。端点:https://mcp.data-pulse.my/mcp (Streamable HTTP,无需认证)。
- 覆盖范围:440 个官方数据集,来自 45 个发布者,包括 30 个 GTFS 交通馈送(KTMB、Prasarana、BAS.MY)。当前分布:144 fresh、121 aging、126 stale、1 discontinued、3 degraded、3 unreachable、6 unknown-freshness、36 reference。
- 浏览器依赖探测:对需要客户端 JavaScript 渲染的来源,使用自托管 Camofox(补丁版无头 Chromium sidecar)探测。当前健康摘要显示 0 个浏览器依赖来源。
- 外部验证:提供 verify_external.py 等工具,可对已发布的 Ed25519 数据集信封、GitHub 源对等性和 Rekor/Sigstore 健康见证进行独立检查。观测回执可用 scripts/observation_verify.py 离线验证。
- RSS 订阅与状态徽章。
使用方式 AI 智能体可通过 MCP 配置块接入 Claude Desktop、Cursor、Cline 等兼容客户端(无需 API 密钥)。例如在 claude_desktop_config.json 中配置后重启 Claude Desktop,确认工具图标显示 "datapulse-my" 及只读工具列表。也可通过公开端点直接查询。数据集目录可从 datapulse.json 发现,每个健康报告链接提供通俗语言评估。非 GTFS 数据集另有机器可读报告信封位于 data/json/ 下;30 个 GTFS 交通馈送不提供信封,而是发布健康报告和 GTFS 样本。
适用场景
- AI 智能体在引用马来西亚数据前检查新鲜度和许可证。
- 研究人员、分析师和记者为课程作业、论文、仪表盘或发布数据提供可验证的时效和许可依据。
- 合规和监管监测团队保留可防篡改的检查轨迹。
- 公民技术专家和公务员获取透明、可复现的公共数据可发现性和描述可靠性视图。
限制 DataPulse 不替代官方来源,不证明上游政府数据在语义上正确,仅证明其观测的完整性和时间。不绕过认证、CAPTCHA 或服务条款限制;无法探测的来源标记为 unreachable 或 browser-dependent,不会静默抓取。所有抓取限速并标识 User-Agent。不收集凭据、账户或个人数据。若需调整探测频率、排除数据集或从清单移除,可提交 GitHub issue 联系维护者。