Skip to main content
Glama

DataPulse MY

Server Details

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

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
r3dz4r/datapulse-my
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 3.9/5 across 5 of 5 tools scored.

Server CoherenceA
Disambiguation4/5

Each tool targets a distinct concern: search, detail lookup, licence enumeration, staleness screening, and citation provenance. However, find_by_licence and search_datasets both support licence filtering, and get_dataset and get_provenance both return metadata for a dataset id, so there is minor conceptual overlap at the edges even though the intended purposes differ.

Naming Consistency3/5

Names follow a get_/find_/search_ verb pattern with clear nouns, which is readable. However, conventions are inconsistent: 'find_by_licence' uses a prepositional suffix while 'find_stale' uses an adjectival suffix, and 'licence' uses British spelling while other names use none of that pattern. The mix of get_ vs find_ vs search_ prefixes is workable but not uniform.

Tool Count5/5

Five tools is a well-scoped surface for a dataset catalogue server. Each tool maps cleanly to a core operation (search, detail, licence scoping, staleness screening, provenance/citation), with no bloat.

Completeness3/5

The read-oriented surface covers search, detail retrieval, licence enumeration, staleness, and provenance, which fits a catalogue/watchdog use case. However, there is no obvious way to fetch a full list of all datasets outside a query, and no update/refresh operations, though this may be intentionally read-only. Minor gaps like bulk download listing or per-source browsing beyond search are absent.

Available Tools

5 tools
find_by_licenceAInspect

Return all datasets with the given licence, summarised. Use to enumerate what's available under a specific licence for compliance/reuse scoping.

ParametersJSON Schema
NameRequiredDescriptionDefault
licenceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It states the tool returns datasets 'summarised' and that it's a read/query operation, which is helpful. However, it doesn't disclose pagination, rate limits, whether 'summarised' strips full dataset details, or what happens with unknown/invalid licences. For a query tool, some of these gaps are acceptable but not ideal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero fluff. The first sentence states the action, the second provides the usage scenario. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return-value documentation is covered by the structured data. With 1 simple parameter and a clear query intent, the description covers the essential purpose and usage. It's slightly light on behavioural detail (summarisation semantics, licence value format), but for a simple filtered-list query tool this is near-complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the undocumented 'licence' parameter. The description does indicate licence is a filter value ('given licence', 'under a specific licence'), but it doesn't specify expected format (e.g., exact string vs partial match, SPDX identifier vs free text). The schema provides no enum or format hint, so the agent must guess the licence value format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Return all datasets with the given licence') with a specific resource and filter dimension ('licence'). It distinguishes reasonably from siblings like find_stale and get_dataset, since it's a licence-filtered query, though it could be more explicit about how it differs from search_datasets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context ('enumerate what's available under a specific licence for compliance/reuse scoping'). This gives a specific when-to-use scenario. However, it doesn't explicitly name alternatives or state when NOT to use this tool versus search_datasets or get_provenance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_staleAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
max_age_hoursNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool returns aging/stale/degraded datasets and those missing from the latest health snapshot, which is useful behavioral context. However, it doesn't describe whether this is a read-only operation, how results are ordered, or what happens when no stale datasets exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. The purpose statement and usage guidance are combined efficiently in a front-loaded, readable format.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only 1 optional parameter and an output schema, lowering complexity. However, with no annotations and minimal parameter explanation, the description could add more about how max_age_hours interacts with statuses and what the output snapshot comparison entails. It's adequate but not rich.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description must compensate, but it provides no explanation of the max_age_hours parameter meaning or how it affects results. However, the parameter name is fairly self-descriptive (max age in hours) with a sensible default of 24, so an agent can reasonably infer its behavior. The description's mention of 'aging, stale, or degraded' statuses implicitly connects to the age threshold, offering partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb+resource ('Return datasets whose status is...') and scopes the purpose to freshness and schema-validity risk. It's clear what the tool does, though it doesn't explicitly distinguish from siblings like find_by_licence or search_datasets by naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an explicit usage context ('Use when an agent needs to know which data has a freshness or schema-validity risk'), giving clear when-to-use guidance. It does not state exclusions or alternatives, though the sibling names suggest distinct query types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_datasetAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the disclosure burden. It does disclose the return contents explicitly (health status, timestamps, freshness signal). However, it doesn't describe error behavior for invalid/unknown dataset_id, response shape beyond listed fields, or any rate limits or auth requirements. Since there's an output schema present, the return shape is partly covered by that, keeping this at a moderate score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste. Every clause adds value: the return fields, the provenance use case, and the freshness interpretation. Front-loaded with what the tool does and its outputs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only fetch tool with an output schema present, the description covers the essential context: what it returns, when to use it, and the meaning of the freshness field. The output schema handles the return shape burden. No critical gaps for an agent to select and invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the single parameter dataset_id has no schema documentation. The description references 'one dataset id' and the context of it being found via search_datasets, implying it expects a valid id string from prior search results. While it doesn't give format examples, the single-parameter case plus the contextual guidance provides reasonable meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb+resource combo ('Return full detail for one dataset id') and precisely enumerates the outputs (health status, last-verified timestamp, content_freshness_date, freshness_signal_source). It also distinguishes itself from siblings by positioning it as the tool to fetch provenance/citation metadata after search_datasets, unlike find_by_licence, find_stale, or get_provenance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use it ('for a dataset found via search_datasets'). It notes a specific use case of distinguishing unknown-freshness from proven stale data, which hints at the freshness_signal_source semantics. However, it doesn't explicitly name sibling alternatives to exclude, though the positioning against search_datasets is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_provenanceAInspect

Return citation-ready provenance metadata for the listed dataset ids: source steward, licence (with URL), source URL, access method (curl/Camofox), last-verified timestamp. Use when an agent needs to cite DataPulse MY data in a response and must include proper attribution and licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataset_idsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses what is returned (steward, licence, URL, access method, timestamp) which is the core behavioral info. However, it doesn't state whether the tool rejects unknown/invalid dataset ids, whether the access method reflects current vs historical access, or any rate/limit behavior. The return content is well-specified but operational details are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The first sentence efficiently enumerates the returned fields, and the second gives the usage context. Every word earns its place—compact and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There's an output schema present, so return-value details are covered elsewhere. The tool is simple (1 param, reads provenance), and the description covers purpose, scope, use case, and returned fields. Given the simplicity and the presence of an output schema, the description is largely complete. Minor gaps exist around id validation behavior and error handling, but these are less critical for a read-only metadata fetch with one self-describing parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the schema gives no semantic hints beyond the parameter name 'dataset_ids'. The description says 'the listed dataset ids' and 'source for DataPulse MY data' which implies ids reference DataPulse datasets, adding some meaning. However, it doesn't clarify id format, whether they must pre-exist / be validated, or what happens with a mix of valid and invalid ids. It adds mild value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the verb (Return), resource (provenance metadata for dataset ids), and lists the specific fields returned (steward, licence with URL, source URL, access method, last-verified timestamp). It also situates the tool against siblings by mentioning the specific citation/attribution use case for DataPulse MY data, distinguishing it from search/get/find siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it ('Use when an agent needs to cite DataPulse MY data...must include proper attribution and licence'), which gives clear usage context. It doesn't explicitly state when not to use it or name alternative tools, but the context is strong enough that it's obvious this is for citation scenarios while siblings handle searching/finding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_datasetsAInspect

Search DataPulse MY's 122 Malaysian public datasets by natural-language query. Filter by licence (e.g. 'CC BY 4.0', 'Open Government Licence (Malaysia)') or source ('OpenDOSM', 'data.gov.my', 'MET Malaysia', etc.). Returns ranked matches: id, title, source, licence, status, score. Use when an agent needs to find datasets covering a topic, by an agency, or under a specific licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
sourceNo
licenceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses the search scope (122 datasets), that it ranks results, and the specific return fields (id, title, source, licence, status, score). However, it doesn't disclose behavior around empty results, licence/source matching behavior, or whether it's read-only. The return schema is specified which helps, but it doesn't mention pagination or limit defaults.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is reasonably concise at about 60 words across two sentences. It front-loads the core purpose and provides concrete filter examples efficiently. Slightly wordy in places but every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 4 parameters at 0% schema coverage, no annotations, and an output schema present, the description does a good job covering the query, licence, and source parameters with concrete examples. It lacks explicit mention of the limit parameter's behavior, but the output schema helps fill return-value understanding. For a search tool this is fairly complete guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. The description explains the 'query' parameter (natural-language query) and gives concrete examples for 'licence' ('CC BY 4.0', 'Open Government Licence (Malaysia)') and 'source' ('OpenDOSM', 'data.gov.my', 'MET Malaysia'). It doesn't mention the 'limit' parameter or its default/maximum constraints, which are only in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource combination ('Search DataPulse MY's 122 Malaysian public datasets') and clearly states what the tool does - find datasets by natural-language query. It distinguishes itself from siblings by mentioning filters (licence, source) and returning ranked matches with specific fields (id, title, source, licence, status, score).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool ('when an agent needs to find datasets covering a topic, by an agency, or under a specific licence'). However, it doesn't explicitly contrast against siblings like find_by_licence or get_dataset, though the natural-language vs structured distinction is implicitly clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides seamless access to Malaysia's official government data catalogue, enabling developers to discover, explore, and fetch datasets from the Malaysian government's open data platform through a simple, unified interface.
    Last updated
    4
    30
    10
    ISC
  • A
    license
    B
    quality
    -
    maintenance
    Enables AI assistants and CLI tools to explore and analyze datasets from 600+ global CKAN open-data portals. Provides comprehensive tools for dataset discovery, datastore queries, metadata analysis, and local downloads without writing custom CKAN integrations.
    Last updated
    14

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.