Skip to main content
Glama
Malja MCP

Malja MCP

Official

Top host / origin countries

top_host_countries
Read-only

Rank host or origin countries by refugee and displacement metrics for a chosen year, with optional normalization per population or GDP to compare relative burden.

Instructions

Rank countries by a displacement metric for a year. by="asylum" (default) ranks host countries; by="origin" ranks countries people fled from. Set normalize_by="population" to rank per 1,000 residents (or "gdp" per US$1bn) — the ranking that shows Lebanon and Chad ahead of large economies.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "top_host_countries"
  }
}

Input Schema

NameRequiredDescriptionDefault
byNoRank hosts ("asylum") or origins ("origin")
yearNoYear to rank (default: latest available)
limitNoHow many rows (default 10)
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.
metricNoMetric to rank by (default refugees)
normalize_byNoNormalize values by a denominator: "population" → per 1,000 residents, "gdp" → per US$1bn GDP. Requires the worldbank provider.

Output Schema

NameRequiredDescriptionDefault
byYes
unitYes
yearYes
metricYes
sourceYes
rankingYes
normalize_byYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.8.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / year / maximum
      Added value: +9007199254740991
  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 the safety profile is covered. The description adds interpretive context (normalized rankings surface small hosts like Lebanon and Chad) but says nothing about data availability, provider failure behavior, or rate/response characteristics for the open-world data source.

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?

Three tight sentences, front-loaded with the core action and followed by mode selection and normalization. The closing clause about Lebanon and Chad is motivational rather than strictly necessary but is short and aids interpretation.

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?

An output schema exists, so return values need no explanation, annotations cover safety, and all six parameters are schema-documented. The only real gap is the un-enumerated metric parameter, where the agent still cannot tell which metric strings are accepted.

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?

With 100% schema coverage the baseline is 3, but the description adds value the schema omits: it declares the default for by ("asylum") and explains what the normalized numbers mean in practice. The free-form metric parameter's valid values remain unexplained in both places.

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 ("Rank countries by a displacement metric for a year") and immediately defines the two ranking modes, host vs origin. It is distinguishable from siblings like country_profile or compare_countries by being an explicit ranking operation, though no sibling is named.

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?

Gives clear selection logic between the two modes ("by='asylum' (default) ranks host countries; by='origin' ranks countries people fled from") and when to add normalize_by. It lacks exclusions or pointers to alternative sibling tools for related questions, so it stops short of a 5.

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