Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
Refnusa is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Indonesia reference data: holidays, wages, regions, postal codes, tax, food prices, KBLI, BPS stats
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http refnusa-mcp https://refnusa.dev/mcp
# 2 — ask your agent for something these tools do
# list_datasets, get_holidays, check_holiday and 29 more
Refnusa costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http refnusa-mcp https://refnusa.dev/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
32 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Coverage and status of every dataset: status, row count, source instrument, effective date, publisher, official source URL, last check, data period, cadence, maximum age, next expected update, and the catalogue page. The licence, caveat and fallback fields are Indonesian text.
No parameter schema on file.
Public holidays (libur nasional) and joint leave days (cuti bersama) for one year, from that year's SKB 3 Menteri decree.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | integer | yes | Calendar year, for example 2026 |
Whether one date is a public holiday or cuti bersama, with the decree it was checked against. Weekends count only when the decree names them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| date | string | yes | Date in YYYY-MM-DD form |
Provincial minimum wage (UMP) for one year (default: the newest loaded), all provinces or one province. For 2026, 29 provinces cite the governor decree and 9 the BPS table; 1997 to 2025 rows cite the BPS yearly table (2017 and Jawa Barat 2016: BPS Statistik Indonesia 2018, Tabel 3.2.23).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | integer | no | Calendar year, for example 2026; omit for the newest year loaded |
| province_code | string | no | Kemendagri province code, optional |
Every loaded year of the provincial minimum wage (UMP) for one province, oldest first, each row with its source (governor decree or BPS table) and URL. 1997 to 2026. Without province_code: the same rows for all provinces in one response, ordered by province then year (for charts and bulk analysis).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| province_code | string | no | Kemendagri province code; omit for all provinces |
Regency or city minimum wage (UMK) for one year. With regency_code: that kabupaten/kota (default year: its newest). Without it: every kabupaten/kota with a confirmed figure for the year (default: the newest loaded), in one response, optionally limited to one province_code.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| year | integer | no | Calendar year, for example 2026; omit for the newest year loaded |
| regency_code | string | no | Kemendagri kabupaten/kota code; omit to list all |
| province_code | string | no | Kemendagri province code; used only when regency_code is omitted |
Every loaded year of the regency or city minimum wage (UMK) for one kabupaten/kota, oldest first, each row with its source instrument and URL: a governor decree, or for some regions the open-data portal of the regional government (source_instrument then starts with Portal and notes that the dataset has no decree number). Covers Jawa Barat 2023 to 2026, Jawa Tengah 2022 to 2026, Jawa Timur 2024 to
| Parameter | Type | Required | Notes |
|---|---|---|---|
| regency_code | string | yes | Kemendagri kabupaten/kota code |
Administrative regions: the 38 provinces, the children of one parent code, or one region by code.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| level | string | no | Level to list; anything below provinsi needs parent_code |
| parent_code | string | no | List the children of this code |
| code | string | no | Return this one region |
Postal codes of one kelurahan or desa by its wilayah code.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| wilayah_code | string | yes | Kemendagri wilayah code |
Regions (kelurahan or desa) that carry one postal code.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| postal_code | string | yes | Postal code |
PPh 21 effective average rate (TER) bracket for a monthly gross income and TER category A, B or C, per PP 58/2023.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | yes | TER category A, B or C |
| income_idr | integer | yes | Monthly gross income in rupiah |
Annual non-taxable income (PTKP) for a taxpayer status such as TK/0 or K/1.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | yes | PTKP status code |
Prayer times for one kabupaten/kota and date, computed by a documented hisab method; not an official Kemenag feed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| city_code | string | yes | Kemendagri kabupaten/kota code; a kecamatan or kelurahan code falls back to its parent |
| date | string | yes | Date in YYYY-MM-DD form |
BPJS contribution rates as a percent of monthly wage, per program (JHT, JP, JKK, JKM, JKP, JKN), with the decree behind each rate. JKK serves the PP 6/2025 bands; the 2026 JP wage cap is Rp10.547.400 (the BPJS article 18913 says Rp10.547.000, see the row note).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| program | string | no | Program; omit for all |
| status | string | no | current (default) or superseded rows, or all |
Three-digit bank codes (Sandi Bank) of the commercial and sharia banks on the OJK head-office list of June 2026, by code or by part of the bank name; no argument lists all 105.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | no | Sandi Bank, optional |
| name | string | no | Part of the bank name, optional |
Retail price per litre of the subsidised and special-assignment fuels (Solar, minyak tanah, RON 90) from Kepmen ESDM 218.K/MG.01/MEM.M/2022. Non-subsidised fuels are not included.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fuel | string | no | kerosene, gas_oil (Solar) or ron90; omit for all three |
The 10 staple food groups and their 21 items that PIHPS Nasional (Bank Indonesia) reports per province, with code, Indonesian and English name, unit (Rp/kg), the markets (tradisional, modern) that have a price on the newest day, and for the groups the first and last month of the monthly series.
No parameter schema on file.
Latest PIHPS Nasional (Bank Indonesia) price of a staple food per province, in Rp/kg, on the newest observation day, plus PIHPS national averages. Covers the 10 groups and 21 items. Without market you get one row per province and commodity: the traditional-market (tradisional) price when it exists, otherwise the modern-market price; each row names its market and day. Traditional markets report for
| Parameter | Type | Required | Notes |
|---|---|---|---|
| commodity | string | no | Commodity code from list_food_commodities (a group or an item), optional; with month, groups only |
| market | string | no | tradisional or modern; omit for one row per province and commodity, tradisional first then modern (with month: tradisional only) |
| province_code | string | no | Kemendagri province code, optional (Papua and Papua Barat only: 91, 92) |
| month | string | no | Return this month instead of the newest on file, optional |
Monthly PIHPS Nasional (Bank Indonesia) price series, in Rp/kg, for one province and one staple food from May 2017; each point is the price on the first day of the month with data (observed_on). Optional from and to months.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| commodity | string | yes | Commodity code from list_food_commodities |
| province_code | string | yes | Kemendagri province code |
| from | string | no | First month, optional |
| to | string | no | Last month, optional |
Imigrasi PNBP fees from PP 45/2024: passport (biasa 5 and 10 years, electronic and non-electronic, SPLP, same-day service) and visa kunjungan (single and multiple trip). Government fee only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | passport or visa; omit for all |
| fee_code | string | no | One fee by code, optional |
Search the KBLI 2020 business-field classification (Peraturan BPS 2/2020) by part of the title or a code prefix, optionally one of its five levels (kategori, golongan_pokok, golongan, subgolongan, kelompok). Returns code, level, parent and title; fetch one code for its description.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | Part of the title, or the start of a code, optional |
| level | string | no | Restrict to one level, optional |
| limit | integer | no | Maximum items returned, default 50 |
One KBLI 2020 entry by code (a letter A to U, or 2, 3, 4 or 5 digits) with its description, its ancestors up to the kategori and its children.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | yes | KBLI code |
Tax and duty rates, each with its decree: PPN 12% and the 11/12 DPP (PMK 131/2024), Bea Meterai tariff and threshold (UU 10/2020), and the domestic cukai hasil tembakau table (PMK 97/2024 Lampiran I).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | ppn, bea_meterai or cukai_hasil_tembakau; omit for all |
| rate_code | string | no | One rate by code, optional |
Ride-hailing motorbike fare limits per zone (per-km lower and upper bound, minimum fare for the first 4 km) from KP 667/2022. A 2026 decision may supersede it; see the dataset note.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| zone_code | string | no | zona_1, zona_2 or zona_3; omit for all |
BAZNAS RI 2026 zakat figures: fitrah (SK 14/2026) and the nisab and rate of zakat penghasilan dan jasa (SK 15/2026).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | fitrah or penghasilan; omit for all |
| zakat_code | string | no | One figure by code, optional |
Harga eceran tertinggi: beras medium and premium by wilayah (Perbadan Bapanas 5/2024) and LPG 3 kg in Jawa Timur (Kepgub 801/2024). Needs checking: the press reports Kepala Bapanas decision 299/2025 (Aug 2025) replaced Perbadan 5/2024, not yet verified from the primary document; do not treat these rows as current.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| commodity | string | no | Commodity; omit for all |
| region | string | no | Part of the region name, for example Kalimantan, optional |
Regional statistics from BPS tables: the indicator ids with unit, level (province or kabupaten/kota), every period available, source table and caveats. Includes unemployment (TPT), poverty and poverty lines, HDI (IPM), wages, population, GRDP per capita and life expectancy. Start here, then call get_stat_values or get_stat_series.
No parameter schema on file.
One BPS indicator for one period across all regions in a single call (for a map), plus the national figure. Period is YYYY or YYYY-MM as listed by list_stat_indicators; omit it for the latest. A bare year on a semester indicator resolves to the latest period in that year.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| indicator | string | yes | Indicator id |
| period | string | no | Period, optional (default: latest) |
The time series of one BPS indicator for one region: a province (2 digits), a kabupaten/kota (5 characters like 32.73, hdi_regency only) or 00 for Indonesia.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| indicator | string | yes | Indicator id |
| region_code | string | yes | Kemendagri region code, or 00 for Indonesia |
Checks the structure of a 16-digit NIK and looks up its region digits in the wilayah table. Send the NIK in the JSON body; it is never logged.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| nik | string | yes | The 16-digit NIK |
Checks the format of an Indonesian vehicle plate and names the region of its prefix when the prefix table is loaded.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| plate | string | yes | Plate such as B 1234 XYZ |
Estimated take-home pay from a monthly gross salary: worker BPJS deductions (JHT, JP, JKN), PPh 21 by the PP 58/2023 TER table or the December annual recalculation, and the employer's own contributions, each line with its decree. Give gross, or regency_code to use that kabupaten/kota UMK. An estimate; the employer payslip decides.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| gross | integer | no | Monthly gross salary in rupiah; omit when regency_code is given |
| regency_code | string | no | Use this kabupaten/kota newest UMK as the gross, optional |
| ptkp | string | yes | PTKP status |
| jkk_band | string | no | JKK risk band of the employer; default sangat_rendah (the lowest band, 0,24%) |
| jp | string | no | Whether Jaminan Pensiun applies, default true |
| jkn | string | no | Whether BPJS Kesehatan applies, default true |
| jp_cap | integer | no | JP wage cap in rupiah; default is the stored 2026 cap (Rp10.547.400), give it to use another |
| month | string | no | monthly (TER, January to November) or december (annual recalculation), default monthly |
| jkn_employer_taxable | string | no | Count the employer JKN premium as taxable income, default true |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Refnusa or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| list_datasets | no tags | |
| get_holidays | no tags | |
| check_holiday | no tags | |
| get_ump | no tags | |
| get_ump_history | no tags | |
| get_umk | no tags | |
| get_umk_history | no tags | |
| get_wilayah | no tags | |
| get_postal_code | no tags | |
| reverse_postal_code | no tags | |
| get_pph21_ter | no tags | |
| get_ptkp | no tags | |
| get_prayer_times | no tags | |
| get_bpjs_rates | no tags | |
| get_bank_codes | no tags | |
| get_fuel_prices | no tags | |
| list_food_commodities | no tags | |
| get_food_prices_latest | no tags | |
| get_food_price_series | no tags | |
| get_passport_fees | no tags | |
| search_kbli | untrusted-input | untrusted-input: keyword "fetch" |
| get_kbli | no tags | |
| get_tax_rates | no tags | |
| get_ojol_tariffs | no tags | |
| get_zakat | no tags | |
| get_het_prices | no tags | |
| list_stat_indicators | no tags | |
| get_stat_values | no tags | |
| get_stat_series | no tags | |
| validate_nik | no tags | |
| validate_plate | no tags | |
| calculate_net_salary | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.2.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Refnusa can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.