Skip to main content
Glama
digimetalab

dml-bps-mcp

Official
by digimetalab

find_data

Search and retrieve Indonesian BPS statistics in one step. Describe the data you need, and it automatically resolves region, year, and fetches the matching value.

Instructions

Primary AI tool: search and retrieve BPS data in one step. Automatically: detect intent → resolve region → find variable → fetch data.

Intent Detection (automatic):

  • Single value (specific number) → find_data

  • Comparison ("compare X and Y") → delegate to compare_data

  • Trend ("trend 2019-2024") → delegate to get_trend

  • Ranking ("top 10 poorest provinces") → delegate to get_ranking

  • Table/Breakdown ("religion by subdistrict") → find_data + static table fallback

  • Publication ("find publication") → delegate to search

Quick Reference — Common Topics

Topic

Fastest Method

var_id (national)

Poverty (count)

find_data or get_dynamic_data

183, 185

Poverty (%)

find_data or get_dynamic_data

184, 192

Unemployment (TPT %)

get_dynamic_data(var="543")

543

Unemployment (count)

get_dynamic_data(var="674")

674

Inflation (YoY)

list_strategic_indicators

-

Economic growth

list_strategic_indicators

-

HDI

list_strategic_indicators or get_dynamic_data

1706

Gini Ratio

get_dynamic_data(var="98")

98

Population

get_dynamic_data(var="1452")

1452

GRDP

list_strategic_indicators(domain=province_code)

-

Exports/Imports

list_strategic_indicators or get_trade_data

-

Religion

find_data or list_static_tables

-

Publications/BRS

search or allstats_search

-

Text in PDF

allstats_deep_search

-

Strategy:

  1. Latest headline figures → list_strategic_indicators

  2. Historical/specific numeric data → find_data or get_dynamic_data + var_id above

  3. Search publications/tables/BRS → search or allstats_search

  4. Search text inside PDFs → allstats_deep_search

Examples:

  • find_data(query="penduduk miskin", region="Indonesia", year="2023")

  • find_data(query="pengangguran", region="Jawa Timur", year="2023")

  • find_data(query="PDRB", region="Bali", year="2023")

  • find_data(query="pemeluk agama", region="Kabupaten Jombang")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
yearNoData year (e.g. '2023' or '2020,2021,2022,2023' for multi-year). Leave empty for latest data.
queryYesDescription of data to find (e.g. jumlah penduduk, angka kemiskinan, inflasi, PDRB, pengangguran, pemeluk agama)
regionNoRegion name (e.g. Indonesia, Jawa Timur, Surabaya, DKI Jakarta). Supports official names and abbreviations.Indonesia
Behavior4/5

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

No annotations exist, so the description carries the full burden. It discloses the automatic pipeline 'detect intent → resolve region → find variable → fetch data' and notes delegation behavior. While it doesn't discuss auth, rate limits, or return format, for a read-only retrieval tool this is reasonable and adds substantial behavioral context.

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 longer than average but exceptionally well-structured with headers, tables, bullet lists, and a front-loaded purpose sentence. Every section serves a distinct role: intent detection, quick reference, strategy, and examples. Minor redundancy exists between Quick Reference and Strategy, but overall it earns its length.

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?

Given the tool's complexity (automatic intent detection, delegation logic) and absence of an output schema, the description is quite complete: it covers intent disambiguation, topic mappings, strategic priorities, and examples. It omits an explicit statement of return format or error handling, but the examples and fallback notes ('static table fallback') imply expected outputs. This is a robust description for a primary AI tool.

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 coverage is 100% (all three parameters described), so the baseline is 3. The description adds value through concrete examples (query, region, year) and a Quick Reference table that maps common topics to useful var_ids and alternative methods. This enriches the schema definitions without contradicting them.

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 'Primary AI tool: search and retrieve BPS data in one step', establishing a specific verb and resource. It distinguishes itself from siblings by explicitly listing delegation targets (compare_data, get_trend, get_ranking, search), making the tool's scope unambiguous.

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

Usage Guidelines5/5

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

The 'Intent Detection' section provides explicit when-to-use and when-not-to-use rules for multiple query types (single value, comparison, trend, ranking, table/breakdown, publication). The 'Strategy' list additionally ranks alternative tools by scenario, giving the agent clear decision criteria.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/digimetalab/dml-bps-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server