Skip to main content
Glama
digimetalab

dml-bps-mcp

Official
by digimetalab

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
BPS_API_KEYYesAPI key from webapi.bps.go.id (required)
BPS_LOG_LEVELNoLog level: debug/info/warn/error. Default: info
BPS_API_BASE_URLNoBase URL API. Default: https://webapi.bps.go.id/v1
BPS_DEFAULT_LANGNoDefault language: ind or eng. Default: ind
BPS_CACHE_ENABLEDNoEnable cache. Default: true
BPS_DEFAULT_DOMAINNoDefault domain (0000 = Nasional). Default: 0000
BPS_CACHE_MAX_ENTRIESNoMaximum cache entries. Default: 500

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_domainsA

List BPS domains/regions (province, regency/city). Use type='prov' for provinces, 'kab' for all regencies, 'kabbyprov' for regencies per province.

resolve_domainA

Convert region name to BPS domain code. Supports official names, abbreviations (Jatim, Jabar, Jogja), and fuzzy matching.

list_subjectsA

List available BPS statistical data subjects for a given domain. Subjects are main data categories (e.g. Population, Poverty, Trade).

list_subject_categoriesB

List BPS statistical subject categories. Categories group related subjects.

list_variablesC

List data variables in BPS dynamic tables. Variables determine specific data you can retrieve (e.g. Population Count, Poverty Rate).

list_vertical_variablesA

List vertical variables (breakdown/disaggregation) for a given variable. Examples: gender, age group.

list_derived_variablesA

List derived variables (aggregated categories). Examples: total, average.

list_periodsB

List available data periods for a given variable. Periods can be years, semesters, quarters, or months.

list_derived_periodsB

List derived periods for a given variable.

list_unitsA

List data units used in a given domain. Examples: Person, Percent, Rupiah.

get_dynamic_dataA

Fetch data from BPS dynamic tables. This tool requires a specific variable ID.

IMPORTANT: Use find_data first for automatic search. Use this tool only if you already know the var_id.

Common variables (national, domain=0000):

  • 1452: Population (thousand people)

  • 185: Poverty Percentage

  • 523: Open Unemployment Rate (%)

  • 108: GDP Growth Rate (%)

  • 1706: Human Development Index (HDI)

  • 2103: Gini Ratio

Use find_variable to search for other variable IDs.

list_static_tablesA

List BPS static tables. Static tables contain pre-formatted data in HTML table format.

get_static_tableA

Retrieve details of a single BPS static table (includes table content in HTML format).

list_press_releasesA

List BPS Press Releases (Berita Resmi Statistik / BRS). BRS contains the latest official data releases.

get_press_releaseB

Retrieve details of a single BPS Press Release (BRS).

list_publicationsC

List BPS publications. Publications contain in-depth analysis and statistical reports.

get_publicationB

Retrieve details of a single BPS publication.

list_strategic_indicatorsA

List BPS strategic indicators — latest headline data (inflation, economic growth, poverty, unemployment, HDI, exports/imports, etc.).

Use this tool for a quick summary of key indicators for a region. Data includes the latest value. For multi-year historical data, use find_data or get_dynamic_data.

get_trade_dataA

Retrieve foreign trade data (exports/imports) by HS code. Data includes value and volume of Indonesia's trade.

list_infographicsB

List BPS infographics. Infographics contain easy-to-understand statistical data visualizations.

get_infographicA

Retrieve details of a single BPS infographic including full description and download link.

list_census_eventsA

List BPS census activities (Population Census, Economic Census, Agricultural Census, etc.). Use the activity ID to fetch census topics and data.

list_census_topicsA

List data topics available for a specific census activity. Use list_census_events to get the activity ID.

list_census_areasA

List available areas/regions for a specific census activity. Use list_census_events to get the activity ID. Returns MFD codes used as wilayah_sensus in get_census_data.

list_census_datasetsA

List available datasets for a specific census activity and topic. Use list_census_events and list_census_topics first.

get_census_dataA

Fetch actual census data for a specific activity, area, and dataset. Use list_census_events, list_census_areas, and list_census_datasets first to get the required IDs.

list_csa_categoriesC

List BPS CSA (Classification of Statistical Activities) categories. CSA is an international statistical activity classification.

list_csa_subjectsC

List CSA subjects for a given domain and category.

list_csa_tablesB

List CSA tables for a given domain and subject.

get_csa_tableA

Retrieve details of a single CSA table (includes table content in HTML format).

list_simdasi_provincesA

List 7-digit MFD codes for all provinces used in SIMDASI (Sistem Informasi Manajemen Data Statistik Terintegrasi). Use these codes as the 'wilayah' parameter for other SIMDASI tools.

list_simdasi_regenciesA

List 7-digit MFD codes for regencies/cities in a province, used in SIMDASI. Use list_simdasi_provinces to get the parent MFD code.

list_simdasi_districtsA

List 7-digit MFD codes for districts in a regency, used in SIMDASI. Use list_simdasi_regencies to get the parent MFD code.

list_simdasi_subjectsA

List SIMDASI subjects/chapters available for a specific area. Requires a 7-digit MFD wilayah code from list_simdasi_provinces.

list_simdasi_master_tablesB

List all SIMDASI master tables available in the system.

list_simdasi_tablesA

List SIMDASI tables available for a specific area. Requires a 7-digit MFD wilayah code from list_simdasi_provinces.

list_simdasi_tables_by_subjectA

List SIMDASI tables filtered by area and subject. Requires wilayah (7-digit MFD) and id_subjek from list_simdasi_subjects.

get_simdasi_tableA

Get detailed data from a SIMDASI table for a specific area and year. Requires wilayah (7-digit MFD), tahun (year), and id_tabel from list_simdasi_tables.

list_sdgsA

List Sustainable Development Goals (SDGs) indicators from BPS. Optionally filter by goal number (1-17). Each indicator has a var_id that can be used with get_dynamic_data to fetch actual values. Domain is always 0000 (National).

get_sdgs_dataA

Fetch actual SDGs indicator data for a specific variable. Use list_sdgs first to find the var_id, then call this to get the data values.

list_sddsA

List Special Data Dissemination Standard (SDDS) indicators from BPS. SDDS covers macroeconomic data following IMF standards. Each indicator has a var_id and model type ('data' or 'statictable') used to fetch actual values. Domain is always 0000 (National).

get_sdds_dataA

Fetch actual SDDS indicator data. Use list_sdds first to find the var_id and model type. For 'data' model, this fetches dynamic table data. For 'statictable' model, it fetches a static table.

list_classificationsA

List BPS statistical classification entries by model. Supports KBLI (2009/2015/2017/2020 — business classification based on ISIC) and KBKI (2015 — commodity classification). Use 'level' parameter to filter by hierarchy level.

get_classificationA

Get detailed information about a specific statistical classification entry by its ID. Use list_classifications first to find the ID.

list_news_categoriesA

List BPS news categories (e.g., Sensus dan Survey, Statistik Lain). Use the category name as newscat filter in list_news.

list_newsA

List news from the BPS website. Unlike BRS (Official Statistics News), these are general BPS news items.

get_newsA

Retrieve details of a single news item from the BPS website.

get_glossaryA

Get detailed definition of a specific glossary term by its ID. Use list_glossary to find term IDs.

list_glossaryB

Search terms in the BPS statistical glossary. Useful for understanding definitions and meanings of statistical indicators.

searchA

Cross-type search across BPS content (static tables, publications, press releases, indicators).

When to use this tool:

  • Searching for static tables or publications by topic

  • Searching for the latest press releases (BRS)

  • General search when find_data returns no results

When NOT to use this tool:

  • If user asks for specific numeric data → use find_data

  • If you already know the variable ID → use get_dynamic_data

If WebAPI finds no results, it automatically falls back to the AllStats Search Engine.

allstats_searchA

Search BPS content via AllStats Search Engine (publications, tables, press releases, infographics, microdata, glossary, classifications). IMPORTANT: This tool has high latency due to proxy/scraping. Use the 'search' tool first as it is much faster. Only use this tool if 'search' finds no results. No API key required.

allstats_deep_searchA

Full-text search inside BPS PDF publications. Returns matching pages with text excerpts. Get publication_id from allstats_search results (deep_search_id field). Unique feature — not available via WebAPI. No API key required.

find_variableA

Search BPS data variables by keyword. Searches across all relevant subjects.

Usage examples:

  • find_variable(keyword="penduduk") → variables related to population

  • find_variable(keyword="kemiskinan", domain="3500") → poverty variables in East Java

  • find_variable(keyword="inflasi") → national inflation variables

After getting a var_id from this tool, use get_dynamic_data to retrieve the data.

find_dataA

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")

compare_dataA

Compare statistical data across regions in one step. Use this tool when the user wants to compare data between 2 or more regions. Note: only supports comparison for 1 year. For multi-year comparison, use get_trend per region.

Example user queries suitable for this tool:

  • "compare poverty in East Java and West Java"

  • "HDI DKI Jakarta vs Banten vs West Java"

  • "unemployment comparison across provinces in Java"

  • "which has higher poverty East Java or West Java?"

get_trendA

Retrieve time-series data (multi-year trend) in one step. Use this tool when the user wants to see data trends year over year.

Example user queries suitable for this tool:

  • "poverty trend Indonesia 2019-2023"

  • "HDI development in East Java last 5 years"

  • "how has unemployment been from 2020 to 2024?"

  • "poverty data West Java year to year"

get_rankingA

Retrieve province rankings by a given indicator in one step. Use this tool when the user wants to see rankings, top-N, or comparisons across all provinces.

Example user queries suitable for this tool:

  • "10 poorest provinces in Indonesia"

  • "HDI ranking across all provinces"

  • "provinces with highest unemployment"

  • "poverty ranking per province 2023"

  • "5 provinces with the largest population"

cache_clearA

Clear BPS data cache. Useful to ensure latest data is fetched directly from the API.

Prompts

Interactive templates invoked by user choice

NameDescription
compare_regionsTemplate for comparing statistics between regions
trend_analysisTemplate for multi-year statistical trend analysis
poverty_profilePoverty profile template for a region
economic_overviewTemplate for regional economic overview
population_statsTemplate for population statistics

Resources

Contextual data attached and managed by the client

NameDescription
provincesDaftar seluruh provinsi di Indonesia beserta kode domain BPS

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