Skip to main content
Glama
Malja MCP

Malja MCP

Official

Export data

export_data
Read-only

Export normalized dataset records as CSV, JSON, Markdown, or GeoJSON to get raw data for download or paste elsewhere.

Instructions

Export normalized records from any dataset as csv, json, markdown or geojson (geojson only makes sense with group_by set, so rows map to countries). Use this when the user wants raw data to download or paste elsewhere.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "dataset": "<dataset>",
      "format": "<format>"
    },
    "name": "export_data"
  }
}

Input Schema

NameRequiredDescriptionDefault
roleNo"asylum" = people hosted IN the country; "origin" = people displaced FROM the country
limitNoMax rows (default 500)
formatYesSerialization format
localeNoLanguage of the human-readable text output: "en" (default) or "ar" (Modern Standard Arabic, right-to-left). Structured JSON fields, ISO3 codes and dataset ids stay in English either way.
countryNoFilter by country (name or ISO3)
datasetYespopulation | demographics | asylum-applications | asylum-decisions | context-indicators | idps | conflict-events | humanitarian-funding | food-security
year_toNoLast year of the range (default: latest available)
group_byNoBreak rows down per asylum or origin country instead of aggregating
year_fromNoFirst year of the range (default: 10 years back)
include_codebookNoAttach a codebook documenting every exported variable (meaning, unit, derivation) — ready for a paper's data appendix. Default false.
include_manifestNoAttach an extraction manifest (exact arguments, timestamp, server version, citation) for reproducibility. Default true.

Output Schema

NameRequiredDescriptionDefault
dataYes
formatYes
datasetYes
codebookNo
manifestNo
row_countYes
truncatedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.8.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • removedInput schema / properties / group_by / $ref
      Removed value: -"#/properties/role"
    • addedInput schema / properties / group_by / enum
      Added value: +[
      +  "asylum",
      +  "origin"
      +]
    • addedInput schema / properties / group_by / type
      Added value: +"string"
    • changedOutput schema / properties / data / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "propertyNames": {
      +      "type": "string"
      +    },
      +    "type": "object"
      +  }
      +]
    • addedOutput schema / properties / manifest / propertyNames
      Added value: +{
      +  "type": "string"
      +}
  2. First observedv0.7.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, so safety is covered. The description adds one genuinely useful constraint — geojson only makes sense with group_by, since rows map to countries — but says nothing about output size, truncation at the limit cap, or manifest/codebook side effects beyond what the schema states.

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?

Two compact sentences with the format contract front-loaded and the usage cue second. The parenthetical geojson caveat is slightly awkward but carries real information, so nothing is wasted.

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 a full output schema, 100% parameter coverage and annotations in place, the description only needs to frame purpose, formats and usage, which it does. Minor gaps around result size and how include_manifest/include_codebook affect the payload are left to the schema.

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 100%, so the baseline would be 3. The description earns a bump by documenting a cross-parameter dependency (format=geojson requires/implies group_by) that no single parameter description conveys.

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?

States a specific verb+resource (export normalized records) and enumerates the four output formats, so the agent knows exactly what it produces. It does not name the closest siblings (export_report, generate_chart, generate_map), so differentiation is left implicit.

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?

"Use this when the user wants raw data to download or paste elsewhere" gives a clear use condition that implicitly separates it from report/chart/map generators in the sibling list. It offers no explicit when-not rule or named alternative.

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