Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

DataPulse

REMOTE · MCP.DATA-PULSE.MY · SCANNED OCT 1

Read-only discovery for 418 Malaysian public datasets with freshness, licence, and provenance.

0 this week 82 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability82
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4631 tokens (~171/item across 27 items; 19 tools + 8 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability check failed: schema churn in the 30 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 1 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 19 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
Install

How do I install the DataPulse MCP server?

DataPulse is a hosted endpoint at https://mcp.data-pulse.my/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · mcp.data-pulse.my

# add to Claude Code
claude mcp add --transport http r3dz4r-datapulse-my 'https://mcp.data-pulse.my/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "r3dz4r-datapulse-my": {
      "url": "https://mcp.data-pulse.my/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "r3dz4r-datapulse-my": {
      "type": "http",
      "url": "https://mcp.data-pulse.my/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.r3dz4r-datapulse-my]
url = "https://mcp.data-pulse.my/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "r3dz4r-datapulse-my": {
      "type": "remote",
      "url": "https://mcp.data-pulse.my/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add r3dz4r-datapulse-my --url 'https://mcp.data-pulse.my/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  r3dz4r-datapulse-my:
    url: "https://mcp.data-pulse.my/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "r3dz4r-datapulse-my": {
      "Transport": "http",
      "Url": "https://mcp.data-pulse.my/mcp"
    }
  }
}
# add to Vellum
assistant mcp add r3dz4r-datapulse-my -t streamable-http -u 'https://mcp.data-pulse.my/mcp'
// mcp.json
{
  "mcpServers": {
    "r3dz4r-datapulse-my": {
      "type": "http",
      "url": "https://mcp.data-pulse.my/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 30 Sept 26 0
    • Server version: v4.0.0b3+400a6b1 → v4.0.0b3+1a81df5 functional
    • Server version: v4.0.0b3+94daf2a → v4.0.0b3+400a6b1 functional
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Sept 26 0
    • Server version: v4.0.0b3+0188eaa → v4.0.0b3+31043af functional
    • Server version: v4.0.0b3+015fe17 → v4.0.0b3+0188eaa functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 21 Sept 26 −1
    • Tool “get_freshness_summary” rewrote its description, which is the text the model reads security
    • Tool “get_provenance” rewrote its description, which is the text the model reads security
    • Tool “check_reconciliation” rewrote its description, which is the text the model reads security
    • Tool “find_anomalies” rewrote its description, which is the text the model reads security
    • Tool “find_by_licence” rewrote its description, which is the text the model reads security
    • Tool “find_deteriorating” rewrote its description, which is the text the model reads security
    • Tool “find_recovering” rewrote its description, which is the text the model reads security
    • Tool “find_schema_drift” rewrote its description, which is the text the model reads security
    • Tool “find_stale” rewrote its description, which is the text the model reads security
    • Tool “find_unreliable” rewrote its description, which is the text the model reads security
    • Tool “get_data_passport” rewrote its description, which is the text the model reads security
    • Tool “get_dataset” rewrote its description, which is the text the model reads security
    • Tool “get_evidence” rewrote its description, which is the text the model reads security
    • Tool “search_datasets” rewrote its description, which is the text the model reads security
    • Tool “trust_verdict” rewrote its description, which is the text the model reads security
    • Tool “usage_summary” rewrote its description, which is the text the model reads security
    • Tool “verify_attestation” rewrote its description, which is the text the model reads security
    • Tool “verify_dataset” rewrote its description, which is the text the model reads security
    • Tool “verify_evidence” rewrote its description, which is the text the model reads security
    • Schema quality: pass → fail ▼ functional
    • Server version: v4.0.0b3+126b357 → v4.0.0b3+015fe17 functional
    • Server version: v4.0.0b3+0d8d14d → v4.0.0b3+126b357 functional
    • Server version: v4.0.0b3+8b592ec → v4.0.0b3+0d8d14d functional
    • Server version: v4.0.0b3+93f155c → v4.0.0b3+8b592ec functional
    • “get_provenance” reworded the description of “dataset_ids” cosmetic
    • “check_reconciliation” reworded the description of “dataset_name” cosmetic
    • “find_anomalies” reworded the description of “limit” cosmetic
    • “find_anomalies” reworded the description of “min_reliability” cosmetic
    • “find_anomalies” reworded the description of “mode” cosmetic
    • “find_by_licence” reworded the description of “licence” cosmetic
    • “find_deteriorating” reworded the description of “limit” cosmetic
    • “find_deteriorating” reworded the description of “min_anomaly_rate” cosmetic
    • “find_recovering” reworded the description of “limit” cosmetic
    • “find_schema_drift” reworded the description of “limit” cosmetic
    • “find_schema_drift” reworded the description of “min_change_count” cosmetic
    • “find_stale” reworded the description of “max_age_hours” cosmetic
    • “find_unreliable” reworded the description of “at_or_below_grade” cosmetic
    • “find_unreliable” reworded the description of “limit” cosmetic
    • “get_data_passport” reworded the description of “dataset_id” cosmetic
    • “get_dataset” reworded the description of “dataset_id” cosmetic
    • “get_evidence” reworded the description of “dataset_id” cosmetic
    • “search_datasets” reworded the description of “licence” cosmetic
    • “search_datasets” reworded the description of “limit” cosmetic
    • “search_datasets” reworded the description of “query” cosmetic
    • “search_datasets” reworded the description of “source” cosmetic
    • “trust_verdict” reworded the description of “dataset_id” cosmetic
    • “usage_summary” reworded the description of “since” cosmetic
    • “usage_summary” reworded the description of “until” cosmetic
    • “verify_attestation” reworded the description of “reference” cosmetic
    • “verify_attestation” reworded the description of “replay_chain” cosmetic
    • “verify_dataset” reworded the description of “dataset_id” cosmetic
    • “verify_dataset” reworded the description of “include_proof_steps” cosmetic
    • “verify_evidence” reworded the description of “dataset_id” cosmetic
  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 94 to 97.

  • 19 Sept 26 −1

    No change was recorded against any check on this day. Stability & Change Management went from 97 to 94.

  • 16 Sept 26 0
    • Stability: pass → fail ▼ security
    • Server version: v4.0.0b3+33f0e1d → v4.0.0b3+93f155c functional
    • Server version: v4.0.0b3+c590e08 → v4.0.0b3+33f0e1d functional
    • Server version: v4.0.0b3+9e00a80 → v4.0.0b3+c590e08 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 1 Oct 2026 · Probed https://mcp.data-pulse.my/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=data-pulse.my CN=WE1,O=Google Trust Services,C=US 1 Oct 2026 30 Dec 2026 ECDSA 256 ECDSA-SHA256 40efbf315a757216134c273c6738fa60
SANs: data-pulse.my, *.data-pulse.my
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of mcp.data-pulse.my. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
my. present 47187 13 Verified
data-pulse.my. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.data-pulse.my/mcp Verified 200
http (plaintext) http://mcp.data-pulse.my/mcp Inconclusive 406
MCP tools · 19 exposed · ~4,217 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_reconciliation ~178

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. Use it to compare a dataset with its published cross-source group; do not use it for provenance or evidence receipts—use get_provenance or get_evidence instead. It reads precomputed reconciliation data, and single_source means no group contains the resolved dataset; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_namestringyesStable dataset slug or exact display name to resolve, e.g. 'interestrates' or 'Monthly Interest Rates'; use search_datasets to discover valid values.

Structured output declared, but exposes no named fields.

No examples provided.

find_anomalies ~263

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. Use it for unusual update intervals; do not use it for worsening freshness, recovery, reliability grades, or structural drift—use find_deteriorating, find_recovering, find_unreliable, or find_schema_drift instead. It reads precomputed anomaly data, so an empty result means no published row survives the selected filters; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
limitinteger–Maximum highest-ranked anomalies to return, e.g. 50; omit it to use 50 without changing the ranking.
min_reliability––Optional inclusive published reliability floor, e.g. 'C' keeps A, B, and C; omit it to retain rows regardless of grade.
mode––Optional exact published detection mode filter, e.g. 'rolling_14d' or 'cadence_fallback'; omit it to include every mode.
NameTypeReqDescription
resultarrayyes–

No examples provided.

find_by_licence ~158

Return all datasets with the given licence, summarised. Use to enumerate what's available under a specific licence for compliance/reuse scoping. Use it to enumerate one licence; do not use it to discover by topic or inspect a dataset's citation context—use search_datasets or get_provenance instead. It reads published manifest data, so an empty list means no published dataset has the resolved licence; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
licencestringyesExact published licence name or supported alias, e.g. 'Creative Commons Attribution 4.0'; use search_datasets to discover licence values.

Structured output declared, but exposes no named fields.

No examples provided.

find_deteriorating ~217

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. Use it for worsening freshness trends; do not use it for anomalies, recovery, reliability grades, or structural drift—use find_anomalies, find_recovering, find_unreliable, or find_schema_drift instead. It reads precomputed trend data, so an empty result means no published deteriorating row survives the selected filters; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
limitinteger–Maximum highest-ranked deteriorating datasets to return, e.g. 50; omit it to use 50 without changing ranking.
min_anomaly_rate––Optional inclusive anomaly-rate filter on published history, e.g. 25.0; omit it to retain every deteriorating row.
NameTypeReqDescription
resultarrayyes–

No examples provided.

find_recovering ~168

Return datasets whose published freshness trend is recovering, with the fastest staleness reductions first. Includes pipeline-computed trend and publish-reliability evidence. Use it for improving freshness trends; do not use it for deterioration, anomalies, reliability grades, or structural drift—use find_deteriorating, find_anomalies, find_unreliable, or find_schema_drift instead. It reads precomputed trend data, so an empty result means no published recovering row exists; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
limitinteger–Maximum fastest-recovering datasets to return, e.g. 50; omit it to use 50 without changing ranking.
NameTypeReqDescription
resultarrayyes–

No examples provided.

find_schema_drift ~217

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. Use it for structural or record-count changes; do not use it for freshness risk, anomalies, trends, or reliability—use find_stale, find_anomalies, find_deteriorating, or find_unreliable instead. It reads precomputed drift data, so an empty result means no published drift row survives the selected filters; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
limitinteger–Maximum structural-first ranked drift results to return, e.g. 50; omit it to use 50 without changing ranking.
min_change_countinteger–Inclusive filter on the larger published shape or column transition count, e.g. 1; omit it to include every drift row.
NameTypeReqDescription
resultarrayyes–

No examples provided.

find_stale ~182

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. Use it to enumerate freshness or schema-risk candidates; do not use it for anomalies, trends, reliability, or drift—use find_anomalies, find_deteriorating, find_unreliable, or find_schema_drift instead. It reads the published health snapshot, so an empty result means no rows met this snapshot-based rule; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
max_age_hoursinteger–Maximum published-snapshot age before otherwise healthy rows are included, e.g. 72; omit it to use 24 hours.
NameTypeReqDescription
resultarrayyes–

No examples provided.

find_unreliable ~227

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. Use it for timeliness reliability grades; do not use it for individual anomalies, trends, or structural drift—use find_anomalies, find_deteriorating, find_recovering, or find_schema_drift instead. It reads precomputed reliability data, so an empty result means no published grade meets the threshold; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
at_or_below_gradestring–Inclusive published reliability threshold; e.g. 'C' returns grades C, D, and F; omit it to use C.
limitinteger–Maximum worst-ranked unreliable datasets to return, e.g. 50; omit it to use 50 without changing ranking.
NameTypeReqDescription
resultarrayyes–

No examples provided.

get_data_passport ~185

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. Use it for the bounded Passport artifact; do not use it for current health detail or citation context—use get_dataset or get_provenance instead. It reads precomputed published data, and evidence_available=false identifies an unavailable or unsupported Passport; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable dataset slug returned by search_datasets, e.g. 'fuelprice'; this tool requires the slug, not a display name.

Structured output declared, but exposes no named fields.

No examples provided.

get_dataset ~196

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. Use it for one dataset's current published detail; do not use it for citation context or a Passport—use get_provenance or get_data_passport instead. It reads published data, so an absent health row is reported as unknown rather than probed live; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable dataset slug returned by search_datasets, e.g. 'dosm_cpi_state'; this tool requires the slug, not a display name.

Structured output declared, but exposes no named fields.

No examples provided.

get_evidence ~242

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. Use it for a complete published receipt; do not use it for a live transport check or signature verification—use verify_evidence or verify_attestation instead. It reads precomputed evidence, so evidence_available=false means no published health row; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable dataset slug returned by search_datasets for its complete receipt, e.g. 'fuelprice'; this tool requires the slug, not a display name.

Structured output declared, but exposes no named fields.

No examples provided.

get_freshness_summary ~114

Return a freshness-at-a-glance summary of the published catalogue: fresh, aging, stale, and reference counts plus the latest health check time. Use it for catalogue-level freshness context; do not use it to enumerate affected datasets—use find_stale instead. It reads the latest published snapshot, so missing counts or check time mean the artifact omitted them; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_provenance ~285

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. Use it for citation-ready provenance; do not use it for full evidence or a live comparison—use get_evidence or verify_evidence instead. It reads published evidence context, so absent fields mean the pipeline did not publish that value; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idsarrayyesDataset slugs returned by search_datasets for a batched citation lookup, e.g. ['fuelprice', 'pricecatcher']; preserve order and use get_dataset for display-name resolution.
NameTypeReqDescription
resultarrayyes–

No examples provided.

search_datasets ~307

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 pre-trust use search_datasets → verify_dataset → get_provenance. Use it to discover candidates; do not use it for a trust decision—use verify_dataset instead. It reads published catalogue data, so no match means the published catalogue has no matching entry; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
licence––Optional exact licence name or supported alias applied before ranking, e.g. 'CC BY 4.0'; omit it to search every licence.
limitinteger–Maximum highest-ranked discovery matches to return, e.g. 10; omitted defaults to 10 and does not change ranking.
querystringyesTopic or task phrasing used to rank discovery candidates, e.g. 'Malaysian public data inflation'; use a returned id with get_dataset.
source––Optional publisher/source substring filter applied before ranking, e.g. 'OpenDOSM'; omit it to search every source.
NameTypeReqDescription
resultarrayyes–

No examples provided.

trust_verdict ~194

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. Use it to assemble the published trust view; do not use it for receipt verification, live comparison, or signature verification—use verify_dataset, verify_evidence, or verify_attestation instead. It reads precomputed artifacts, so missing component availability explains omitted evidence rather than a live probe; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable dataset slug returned by search_datasets to aggregate, e.g. 'fuelprice'; display names are not resolved here.

Structured output declared, but exposes no named fields.

No examples provided.

usage_summary ~289

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_verdict_calls` (the count of trust_verdict records regardless of outcome or result shape), and `trust_distribution` (counts of returned trust verdicts by published score band: 90-100, 75-89, 50-74, 25-49, 0-24) for the inclusive range. Use it for aggregate tool activity; do not use it to find data-quality risks—use find_stale, find_anomalies, find_deteriorating, find_recovering, find_unreliable, or find_schema_drift instead. It reads persisted usage records, so zero totals mean no retained records in that range; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
sincestringyesInclusive first day of the persisted-record window, e.g. '2026-08-01'; it must not be after until.
untilstringyesInclusive last day of the persisted-record window, e.g. '2026-08-07'; it must not be before since.

Structured output declared, but exposes no named fields.

No examples provided.

verify_attestation ~274

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. Use it for signed-attestation integrity; do not use it for published receipt verification, a live transport comparison, or an aggregate verdict—use verify_dataset, verify_evidence, or trust_verdict instead. L2 is not run unless replay_chain is set, and a failed level reports an unsatisfied check rather than upstream semantic truth; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
referencestringyesDataset slug returned by search_datasets or an exact published digest reference, e.g. 'fuelprice'; the slug resolves through the attestation index.
replay_chainboolean–Set true to perform the slower L2 daily-head replay to a Git tag, e.g. true; omit it to run L1 only.

Structured output declared, but exposes no named fields.

No examples provided.

verify_dataset ~268

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. Use it for one published pre-trust check; do not use it for a live transport comparison or attestation-chain verification—use verify_evidence or verify_attestation instead. It verifies precomputed published artifacts, so a failed check does not identify current upstream availability; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable dataset slug returned by search_datasets for the published receipt check, e.g. 'fuelprice'; this tool requires the slug, not a display name.
include_proof_stepsboolean–Set true to include bounded verifier diagnostics for an audit, e.g. false; omit it to suppress diagnostics without changing verification.

Structured output declared, but exposes no named fields.

No examples provided.

verify_evidence ~253

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. Use it for a live transport comparison; do not use it for published receipt integrity or signed-attestation verification—use verify_dataset or verify_attestation instead. An unreachable or not_verifiable verdict reports that this live comparison could not establish a match, while cached results are still ephemeral; DataPulse is read-only, requires no API key, and the edge limits clients to roughly one request per second with a small burst, so pace or retry.

NameTypeReqDescription
dataset_idstringyesStable direct-access dataset slug returned by search_datasets for a live transport observation, e.g. 'fuelprice'; browser-dependent sources return not_verifiable.

Structured output declared, but exposes no named fields.

No examples provided.

Common questions

What is the DataPulse MCP server?

DataPulse is an MCP server listed in the public MCP registry as io.github.r3dz4r/datapulse-my. Read-only discovery for 418 Malaysian public datasets with freshness, licence, and provenance. This page covers its hosted endpoint (https://mcp.data-pulse.my/mcp).

Is the DataPulse MCP server safe to use?

DataPulse scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the DataPulse MCP server expose?

DataPulse exposes 19 tools: search_datasets, get_dataset, get_data_passport, find_stale, find_anomalies, and 14 more. Their descriptions and schemas cost roughly 4,217 tokens of context every time the server is loaded.

Does the DataPulse MCP server require authentication?

No. We connected to DataPulse without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the DataPulse MCP server still maintained?

DataPulse is still listed as active in the MCP registry. We last reached this channel on 1 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.