{
  "ard_spec_version": "0.9",
  "contract_version": "1.0.0",
  "dataset_count": 418,
  "endpoint": {
    "auth_required": false,
    "method": "POST",
    "transport": "streamable-http",
    "url": "https://mcp.data-pulse.my/mcp"
  },
  "entries": [
    {
      "capabilities": [
        "check_reconciliation",
        "check_reconciliation.dataset_name"
      ],
      "description": "Return the published cross-source reconciliation group for a dataset name or id, including per-member counts, dates, statuses, tolerances, and contextual deltas. A discrepancy requires human review and does not prove either source is wrong.",
      "displayName": "check_reconciliation",
      "identifier": "urn:air:data-pulse.my:mcp:check_reconciliation",
      "representativeQueries": [
        "check_reconciliation(dataset_name='interestrates')"
      ],
      "tags": [
        "malaysia",
        "read-only",
        "reconciliation",
        "trust-layer",
        "validation"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/check_reconciliation.json"
    },
    {
      "capabilities": [
        "find_anomalies",
        "find_anomalies.limit",
        "find_anomalies.min_reliability",
        "find_anomalies.mode"
      ],
      "description": "Return datasets flagged by the latest published anomaly detection (anomalies), ranked by how far the observed update interval exceeds its threshold. Optionally require a minimum publish-reliability grade; includes pipeline-computed anomaly and reliability evidence so agents do not recompute it.",
      "displayName": "find_anomalies",
      "identifier": "urn:air:data-pulse.my:mcp:find_anomalies",
      "representativeQueries": [
        "find_anomalies(limit=10)",
        "find_anomalies(min_reliability='A')",
        "find_anomalies(mode='rolling_14d')"
      ],
      "tags": [
        "anomalies",
        "freshness",
        "malaysia",
        "read-only",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_anomalies.json"
    },
    {
      "capabilities": [
        "find_by_licence",
        "find_by_licence.licence"
      ],
      "description": "Return all datasets with the given licence, summarised. Use to enumerate what's available under a specific licence for compliance/reuse scoping.",
      "displayName": "find_by_licence",
      "identifier": "urn:air:data-pulse.my:mcp:find_by_licence",
      "representativeQueries": [
        "find_by_licence(licence='Creative Commons Attribution 4.0')"
      ],
      "tags": [
        "compliance",
        "discovery",
        "licence",
        "malaysia",
        "read-only"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_by_licence.json"
    },
    {
      "capabilities": [
        "find_deteriorating",
        "find_deteriorating.limit",
        "find_deteriorating.min_anomaly_rate"
      ],
      "description": "Return datasets whose published freshness trend is deteriorating, ranked by staleness slope. Optionally require a minimum historical anomaly rate; includes pipeline-computed trend and reliability evidence so agents do not recompute it.",
      "displayName": "find_deteriorating",
      "identifier": "urn:air:data-pulse.my:mcp:find_deteriorating",
      "representativeQueries": [
        "find_deteriorating(limit=10)",
        "find_deteriorating(min_anomaly_rate=25.0)"
      ],
      "tags": [
        "freshness",
        "malaysia",
        "read-only",
        "trends",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_deteriorating.json"
    },
    {
      "capabilities": [
        "find_recovering",
        "find_recovering.limit"
      ],
      "description": "Return datasets whose published freshness trend is recovering, with the fastest staleness reductions first. Includes pipeline-computed trend and publish-reliability evidence.",
      "displayName": "find_recovering",
      "identifier": "urn:air:data-pulse.my:mcp:find_recovering",
      "representativeQueries": [
        "find_recovering(limit=10)"
      ],
      "tags": [
        "freshness",
        "malaysia",
        "read-only",
        "trends",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_recovering.json"
    },
    {
      "capabilities": [
        "find_schema_drift",
        "find_schema_drift.limit",
        "find_schema_drift.min_change_count"
      ],
      "description": "Return datasets with published structural or record-count drift evidence, ranked with structural changes first. Optionally require a minimum number of structural transitions; includes pipeline-computed evidence so agents do not infer drift from freshness alone.",
      "displayName": "find_schema_drift",
      "identifier": "urn:air:data-pulse.my:mcp:find_schema_drift",
      "representativeQueries": [
        "find_schema_drift(limit=10)",
        "find_schema_drift(min_change_count=0)"
      ],
      "tags": [
        "malaysia",
        "read-only",
        "schema",
        "trust-layer",
        "validation"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_schema_drift.json"
    },
    {
      "capabilities": [
        "find_stale",
        "find_stale.max_age_hours"
      ],
      "description": "Return datasets whose status is aging, stale, or degraded, plus datasets missing from the latest health snapshot. Use when an agent needs to know which data has a freshness or schema-validity risk.",
      "displayName": "find_stale",
      "identifier": "urn:air:data-pulse.my:mcp:find_stale",
      "representativeQueries": [
        "find_stale(max_age_hours=24)"
      ],
      "tags": [
        "freshness",
        "malaysia",
        "read-only",
        "risk",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_stale.json"
    },
    {
      "capabilities": [
        "find_unreliable",
        "find_unreliable.at_or_below_grade",
        "find_unreliable.limit"
      ],
      "description": "Return datasets whose evaluated publish-reliability grade is at or below a threshold (the unreliable ones), with the worst grades and lowest on-time percentages first. Reliability measures timeliness of successful freshness observations, not uptime; sample days are included so agents can judge evidence depth.",
      "displayName": "find_unreliable",
      "identifier": "urn:air:data-pulse.my:mcp:find_unreliable",
      "representativeQueries": [
        "find_unreliable(at_or_below_grade='C')",
        "find_unreliable(limit=10)"
      ],
      "tags": [
        "malaysia",
        "read-only",
        "reliability",
        "risk",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/find_unreliable.json"
    },
    {
      "capabilities": [
        "get_data_passport",
        "get_data_passport.dataset_id"
      ],
      "description": "Return one bounded, machine-readable Dataset Passport v1 for a canonical dataset ID. It reads the published Passport artifact only; it does not fetch an upstream source or create evidence. The Passport describes observed metadata and evidence availability, not semantic truth, completeness, certification, legal permission, safety, or AI admission.",
      "displayName": "get_data_passport",
      "identifier": "urn:air:data-pulse.my:mcp:get_data_passport",
      "representativeQueries": [
        "get_data_passport(dataset_id='fuelprice')"
      ],
      "tags": [
        "evidence",
        "malaysia",
        "passport",
        "provenance",
        "read-only",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/get_data_passport.json"
    },
    {
      "capabilities": [
        "get_dataset",
        "get_dataset.dataset_id"
      ],
      "description": "Return full detail for one dataset id, including its latest health status and last-verified timestamp, content_freshness_date, and freshness_signal_source (last_modified, content_parse, or none). Use to fetch the provenance/citation metadata for a dataset found via search_datasets and distinguish unknown-freshness from proven stale data.",
      "displayName": "get_dataset",
      "identifier": "urn:air:data-pulse.my:mcp:get_dataset",
      "representativeQueries": [
        "get_dataset(dataset_id='dosm_cpi_state')"
      ],
      "tags": [
        "dataset",
        "malaysia",
        "provenance",
        "read-only",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/get_dataset.json"
    },
    {
      "capabilities": [
        "get_evidence",
        "get_evidence.dataset_id"
      ],
      "description": "Use for a deep evidence audit or to inspect a provenance and evidence receipt. Returns the complete published evidence receipt for one dataset: probe time, transport, access dependency, freshness, schema drift / record-count drift, tolerance, status, anomaly fields, and receipt/evidence references. It reads published pipeline evidence, not a live source fetch: you may report what the pipeline observed, but must not infer the source is currently reachable or semantically true. Use it for a deep audit before or alongside verification. search_datasets → get_evidence → verify_evidence → verify_attestation.",
      "displayName": "get_evidence",
      "identifier": "urn:air:data-pulse.my:mcp:get_evidence",
      "representativeQueries": [
        "get_evidence(dataset_id='fuelprice')"
      ],
      "tags": [
        "evidence",
        "malaysia",
        "read-only",
        "receipts",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/get_evidence.json"
    },
    {
      "capabilities": [
        "get_freshness_summary"
      ],
      "description": "Return a freshness-at-a-glance summary of the published catalogue: fresh, aging, stale, and reference counts plus the latest health check time.",
      "displayName": "get_freshness_summary",
      "identifier": "urn:air:data-pulse.my:mcp:get_freshness_summary",
      "representativeQueries": [],
      "tags": [
        "freshness",
        "malaysia",
        "read-only",
        "summary",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/get_freshness_summary.json"
    },
    {
      "capabilities": [
        "get_provenance",
        "get_provenance.dataset_ids"
      ],
      "description": "Use when asked 'can I cite this source?', for licence and attribution, or for citation-ready provenance. Returns source, steward, licence/attribution context, canonical URL, and compact published evidence context: probe time, transport, access dependency, freshness signal, schema drift / record-count drift context, anomaly flag, and status. Bind a citation to dataset identity, source/evidence URL, observed-at or last-checked time, DataPulse status/verdict, licence/attribution, and a receipt/evidence digest when available. You may cite the returned provenance and describe its published evidence; it is not a freshness guarantee and does not itself verify the source is current. For pre-trust use search_datasets → verify_dataset → get_provenance.",
      "displayName": "get_provenance",
      "identifier": "urn:air:data-pulse.my:mcp:get_provenance",
      "representativeQueries": [],
      "tags": [
        "evidence",
        "malaysia",
        "provenance",
        "read-only",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/get_provenance.json"
    },
    {
      "capabilities": [
        "search_datasets",
        "search_datasets.licence",
        "search_datasets.limit",
        "search_datasets.query",
        "search_datasets.source"
      ],
      "description": "Use for discovery only: find DataPulse's 418 Malaysian public datasets by topic, source, or licence—for example, 'Malaysian public data inflation', licence and attribution, or a government dataset source. Returns ranked matches with id, title, source, licence, published status, and score. This is not trust verification: a status is published pipeline context, not proof that a dataset is current or reliable. For 'is this dataset current?' or verify before relying on data, use search_datasets → verify_dataset → get_provenance.",
      "displayName": "search_datasets",
      "identifier": "urn:air:data-pulse.my:mcp:search_datasets",
      "representativeQueries": [
        "search_datasets(licence='CC BY 4.0')",
        "search_datasets(query='Malaysian public data inflation')",
        "search_datasets(source='OpenDOSM')"
      ],
      "tags": [
        "discovery",
        "malaysia",
        "public-data",
        "read-only",
        "trust-layer"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/search_datasets.json"
    },
    {
      "capabilities": [
        "trust_verdict",
        "trust_verdict.dataset_id"
      ],
      "description": "Return published attestation facts, the unsigned methodology-versioned trust score, numeric components, and component_availability reasons, plus existing health/trend/drift/reconciliation evidence for one canonical dataset id, e.g. 'fuelprice'. This tool does not re-probe or verify the signature; call verify_attestation separately.",
      "displayName": "trust_verdict",
      "identifier": "urn:air:data-pulse.my:mcp:trust_verdict",
      "representativeQueries": [
        "trust_verdict(dataset_id='fuelprice')"
      ],
      "tags": [
        "evidence",
        "malaysia",
        "read-only",
        "trust",
        "verification"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/trust_verdict.json"
    },
    {
      "capabilities": [
        "usage_summary",
        "usage_summary.since",
        "usage_summary.until"
      ],
      "description": "Aggregate anonymous tool usage for an inclusive ISO date range, e.g. 2026-08-01 to 2026-08-07. Returns `total_calls`, `by_outcome`, `by_tool`, `by_dataset`, `trust_distribution` (per-status counts of cited datasets) for the inclusive range. Legacy identity fields are ignored.",
      "displayName": "usage_summary",
      "identifier": "urn:air:data-pulse.my:mcp:usage_summary",
      "representativeQueries": [
        "usage_summary(since='2026-08-01')",
        "usage_summary(until='2026-08-07')"
      ],
      "tags": [
        "audit",
        "malaysia",
        "read-only",
        "summary",
        "usage"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/usage_summary.json"
    },
    {
      "capabilities": [
        "verify_attestation",
        "verify_attestation.reference",
        "verify_attestation.replay_chain"
      ],
      "description": "Use to verify a signed published probe attestation after an evidence audit. Returns L1 signature, key, time, and chain-link checks; optional L2 replay of daily heads to a Git-tag anchor; and L3 scope, which requires verify_evidence for live transport. A valid signature proves attestation integrity and scope, not upstream semantic truth or currentness. For a deep audit use search_datasets → get_evidence → verify_evidence → verify_attestation.",
      "displayName": "verify_attestation",
      "identifier": "urn:air:data-pulse.my:mcp:verify_attestation",
      "representativeQueries": [
        "verify_attestation(reference='fuelprice')",
        "verify_attestation(replay_chain=False)"
      ],
      "tags": [
        "attestation",
        "evidence",
        "malaysia",
        "read-only",
        "verification"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/verify_attestation.json"
    },
    {
      "capabilities": [
        "verify_dataset",
        "verify_dataset.dataset_id",
        "verify_dataset.include_proof_steps"
      ],
      "description": "This is the preferred single-call pre-trust check for 'is this dataset current?', stale, unknown-freshness, degraded, or browser-dependent questions, and whenever an agent must verify before relying on data. Returns dataset metadata, published evidence and fail-closed signed receipt verification with artifact references. It verifies published artifacts, not a live source check: you may infer whether their receipt verifies, but must not infer current upstream availability or semantic truth. Use search_datasets → verify_dataset → get_provenance.",
      "displayName": "verify_dataset",
      "identifier": "urn:air:data-pulse.my:mcp:verify_dataset",
      "representativeQueries": [
        "verify_dataset(dataset_id='fuelprice')",
        "verify_dataset(include_proof_steps=False)"
      ],
      "tags": [
        "evidence",
        "malaysia",
        "read-only",
        "trust-layer",
        "verification"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/verify_dataset.json"
    },
    {
      "capabilities": [
        "verify_evidence",
        "verify_evidence.dataset_id"
      ],
      "description": "Use when a fresh, rate-limited live-vs-published comparison is needed for a direct-access dataset, for example after asking whether a government dataset is reachable now. Performs a rate-limited live GET and returns comparable transport receipts plus a match, mismatch, unreachable, or not_verifiable verdict. This live check is an observation, not semantic truth: it does not recompute content dates, record counts, or shape fingerprints. Results are ephemeral and do not update published health artifacts. For a deep audit use search_datasets → get_evidence → verify_evidence → verify_attestation.",
      "displayName": "verify_evidence",
      "identifier": "urn:air:data-pulse.my:mcp:verify_evidence",
      "representativeQueries": [
        "verify_evidence(dataset_id='fuelprice')"
      ],
      "tags": [
        "evidence",
        "malaysia",
        "read-only",
        "transport",
        "verification"
      ],
      "type": "application/mcp-server-card+json",
      "url": "https://www.data-pulse.my/mcp/cards/verify_evidence.json"
    }
  ],
  "host": {
    "displayName": "DataPulse MY",
    "homepage": "https://www.data-pulse.my/",
    "repository": "https://github.com/r3dz4r/datapulse-my"
  },
  "license": "MIT (catalog); dataset licences as declared per dataset",
  "publisher": {
    "name": "DataPulse MY"
  },
  "specVersion": "1.0",
  "taxonomy": [
    "fresh",
    "aging",
    "stale",
    "discontinued",
    "degraded",
    "browser-dependent",
    "unreachable",
    "unknown",
    "unknown-freshness",
    "reference"
  ],
  "trust": {
    "model": "Signed probe attestation (Ed25519 L1, git-tag L2 anchor, per-dataset cosign keyless Sigstore bundle)",
    "verification_command": "cosign verify-blob --bundle <dataset>.sigstore.json --certificate-identity <oidc-identity> --certificate-oidc-issuer https://token.actions.githubusercontent.com",
    "verification_metadata_url": "https://www.data-pulse.my/llms.txt"
  }
}
