Rupiah tools について
Rupiah toolsは、インドネシア語の数値表記、ルピアの書式設定と解析、2025年以降の規則に基づくVAT計算を行うオフラインMCPサーバーです。正確な十進演算と曖昧な数値形式の説明により、領収書や金額計算に使えます。
主な機能
- 01数値をインドネシア語の語句に変換
- 02ルピア金額の書式設定
- 03多様なルピア表記の解析
- 04金額や税込総額からVATを計算
- 05正確な十進演算
活用シーン
- 01領収書用にルピア金額を文字表記
- 02テキストから抽出した金額の統一
- 03VATと税込総額の計算
- 04税込総額から税抜価格を算出
MCP 対応
数値のインドネシア語表記への変換、ルピア金額の書式設定と解析、インドネシアのVAT計算を行う4つのツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| sen | boolean | いいえ | rupiah=true の場合、小数点以下を最大 2 桁まで sen として読み上げます(「…… rupiah lima puluh sen」)。「koma」とは読み上げません。 |
| angka | number|string | はい | JSON の数値、または「1250000」、「Rp1.250.000,50」、「1,5 jt」などのテキスト。非常に大きな数値(>= 2^53)はテキストとして送信してください。 |
| huruf | enum | いいえ | 文字の大文字・小文字:kecil(小文字)、awal(先頭のみ大文字)、judul(タイトルケース)、besar(大文字)。kecil | awal | judul | besar |
| rupiah | boolean | いいえ | 「rupiah」を付加します。 |
| kata_negatif | enum | いいえ | 負の数に使用する単語。minus | negatif |
詳細
mcp-rupiah
AI アシスタント向けのルピアおよびインドネシア語の数値ツールを備えたMCPサーバーです。terbilang(数値をインドネシア語の単語に変換)、ルピアの書式設定、Rp 1.250.000,- や 1,5 jt のような曖昧な金額の解析、2025年以降の規則に準拠したインドネシアの付加価値税(PPN)計算に対応しています。オフラインで動作し、10進数を正確に計算できます。API キーや依存関係は不要です。
例:「この領収書用に Rp1.500.250 の terbilang を書き、合計 Rp5.550.000 に含まれる PPN はいくらですか?」
🇮🇩 インドネシア語: 下のセクションをご覧ください。
- 単一ファイルで、依存関係なし:Node.js 18 以降に対応。
npm install、ネットワーク接続、ファイルへの書き込みは不要です。 - 正確:すべての計算に BigInt の10進数と分数を使用するため、
0.1 + 0.2のような浮動小数点の誤差は発生しません。非常に大きな数値もテキストとして送信できます。 - 誠実:曖昧な入力(
1,500は1.5なのか、1500なのか)はインドネシア式に解釈し、どのように解釈したかを結果に示します。
ツール
| ツール | 機能 | 例 |
|---|---|---|
terbilang | 数値 → インドネシア語の単語。最大999クアドリリオン(< 10^18)、koma を使った小数、負数(minus)、任意の rupiah 接尾辞と sen、文字の大文字・小文字(kecil、awal、judul、besar)に対応します。正しい se- の規則:sepuluh、sebelas、seratus、seribu(ただし satu juta)。 | 1500250 → satu juta lima ratus ribu dua ratus lima puluh |
format_rupiah | 数値 → Rp1.234.567,89(桁区切りはピリオド、小数点はカンマ)。オプション:小数点以下の桁数(0~4または自動)、Rp の有無、Rp の後のスペース、,- 接尾辞、Rp1,2 jt / Rp1,2 juta の簡略表記。四捨五入はゼロから遠ざかる方向です。 | 1250000(簡略表記) → Rp1,3 jt |
parse_rupiah | 曖昧なテキスト → 数値。Rp、Rp.、IDR、rupiah、,-、,00、単位 rb/ribu/k、jt/juta、M/miliar/milyar/b/bn、T/triliun、kuadriliun、英語式の 1,234,567.89、会計表記の (Rp1.000)、および単語(dua juta lima ratus ribu rupiah、seribu rupiah lima puluh sen)に対応します。最初に見つかった Rp 表記付きの金額を選び、ほかの候補も一覧表示します。 | Total: Rp 1.250.000,- (incl. PPN) → 1250000 |
hitung_ppn | 税引き前価格、DPP nilai lain、または PPN 込みの合計から逆算してインドネシアの付加価値税を計算します。harga jual、DPP、PPN、合計、適用した規則と法的根拠を返します。 | 1000000 → PPN Rp110.000、合計 Rp1.110.000 |
すべてのツールは読み取り専用(readOnlyHint: true)で、閉じた世界として動作します(openWorldHint: false)。数値は JSON 数値またはテキストで指定できます。2^53 以上の値はテキストとして送信してください。
hitung_ppn で使用される PPN(VAT)のルール
2025 年 1 月 1 日以降、法律上の PPN 税率は 12% です(UU 7/2021 Harmonisasi Peraturan Perpajakan)。その後、財務大臣規則 PMK 131 Tahun 2024(2024 年 12 月 31 日公布、2025 年 1 月 1 日施行)により、計算方法が次のように分かれています。
kategori | 商品・サービス | 計算式 | 実効税率 |
|---|---|---|---|
nonmewah(デフォルト) | 高級品を除くすべての課税対象商品・サービス(PMK 131/2024 第 3 条) | PPN = 12% × その他の課税標準額(DPP nilai lain)。DPP nilai lain = 販売価格/対価/輸入額の 11/12 | 11% |
mewah | PPnBM の対象となる高級品。特定の自動車、高級住宅、航空機、ヨットなど(第 2 条) | PPN = 12% × 販売価格/輸入額 | 12% |
custom | その他すべて(特別な制度) | 任意の tarif_persen ×(faktor_dpp × 価格)、faktor_dpp のデフォルトは 1 | 任意 |
計算例(nonmewah、価格 Rp1.000.000):DPP nilai lain = 11/12 × 1.000.000 = Rp916.666,67、PPN = 12% × 916.666,67 = Rp110.000、合計 Rp1.110.000。
合計金額から計算する場合(dari: "total"):価格 = 合計 ÷ 1.11 です。したがって、Rp1.110.000 → 価格 Rp1.000.000、PPN Rp110.000 となります。
このツールでは、意図的に以下を扱いません(kategori: "custom" を使用し、独自の税率/係数を指定してください)。
- 別の規則で定められた PPN besaran tertentu およびその他の nilai lain の課税標準額(PMK 11 Tahun 2025 に統合)、政府負担の PPN(DTP)、免税対象の商品/サービス、PPnBM 自体。
- 2025 年より前の期間:税率は 2022 年 4 月 1 日以降は 11%、それ以前は 10% でした。最終消費者向けに販売される高級品には 2025 年 2 月 1 日から 12% が適用されます。2025 年 1 月の移行期間はモデル化していません。
- インボイスの端数処理規則(e-Faktur)はモデル化していません。デフォルトでは金額をセン単位で表示します。必要に応じて
pembulatan(bawah、terdekat、atas)を指定すると、PPN をルピア単位に丸めます。
出典(2026 年 11 月 11 日確認):
- PMK 131 Tahun 2024、および DJP の記事 「PMK 131/2024: Tarif PPN Sebelas-Dua Belas」、2025 年 1 月 6 日、pajak.go.id。
- PMK 11/2025 に関する DJP のプレスリリース(DPP nilai lain および PPN besaran tertentu)、pajak.go.id。
- DDTCNews、2025 年 8 月 17 日:財務省が、2026 年も高級品には 12%、その他の商品には 12% × 11/12 が適用されると確認、news.ddtc.co.id。
- DDTCNews、2026 年 9 月 10 日:財務大臣が、一般的な PPN 税率は 12% のままだと発言、news.ddtc.co.id。
ルールが変更された場合も、デフォルト値が更新される間、kategori: "custom" は引き続き使用できます。これは計算補助ツールであり、税務上の助言ではありません。
インストール
**npx を使用する場合(推奨):**インストールは不要です。以下の設定で npx -y mcp-rupiah を実行します。
ソースからインストールする場合:
git clone https://github.com/EzkielynaGroup/mcp-rupiah.git
cd mcp-rupiah
node --test test/ # optional: offline tests
その後、npx の代わりに "command": "node" と "args": ["/full/path/to/mcp-rupiah.mjs"] を使用します。
Windows でアプリから npx を起動できない場合は、"command": "cmd" と "args": ["/c", "npx", "-y", "mcp-rupiah"] を使用します。
Claude Desktop
Settings → Developer → Edit Config(claude_desktop_config.json)を開き、Claude Desktop を完全に終了してから再起動します。
{
"mcpServers": {
"rupiah": {
"command": "npx",
"args": ["-y", "mcp-rupiah"]
}
}
}
Claude Code
claude mcp add rupiah -- npx -y mcp-rupiah
すべてのプロジェクトで使用できるようにするには、--scope user を追加します。claude mcp list で確認できます。
Cursor
~/.cursor/mcp.json(すべてのプロジェクト)または .cursor/mcp.json(1 つのプロジェクト)に、Claude Desktop と同じ JSON を設定します。
OpenCode
プロジェクト内の opencode.json、または ~/.config/opencode/opencode.json を使用します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"rupiah": {
"type": "local",
"command": ["npx", "-y", "mcp-rupiah"],
"enabled": true
}
}
}
設定
環境変数も API キーも不要です。サーバーはネットワーク接続を開かず、ファイルも書き込みません。
テキスト入力の読み取りルール
.は千の位の区切り、,は小数点として扱います(インドネシア式):1.250.000,50= 1250000.5。- 両方が含まれる場合は、最後に出てくる記号が小数点です。そのため、英語式の
1,234,567.89も使用できます(その旨が注記されます)。 ,が1つだけの場合は、常に小数点として扱います:1,500= 1.5(注記付き)。.が1つだけで、その後にちょうど3桁が続く場合は千の位の区切りです:1.500= 1500。それ以外の場合は小数点です:1.5= 1.5。Mはインドネシア語と同様に miliar(10^9)を意味します。小文字のmも miliar として読み取られ、注記が付けられます(百万にはjtを使用してください)。- 数字のみの文字列(
"1234.5")と科学的記数法("1.5e3")は数値として読み取られます。
制限事項
terbilangは10^18未満(最大999 kuadriliun)の数を、最大20桁の小数で表記できます。- テキスト入力は2,000文字までです。
- 2^53を超えるJSON数値は、すでに精度が失われているため受け付けません。テキストとして送信してください。
よくある質問
インドネシア語でRp1.500.000をterbilangでどう書きますか?
Satu juta lima ratus ribu rupiah. rupiah: true を指定して terbilang を呼び出してください。領収書(kuitansi)に Satu Juta Lima Ratus Ribu Rupiah と記載するには、huruf: "judul" を追加します。
「seribu」と「satu ribu」、「seratus」と「satu ratus」のどちらですか? 1,000は seribu、100は seratus です。大きな数の中でも同様です(seratus satu ribu、satu juta seribu)。100万以上では satu を使います:satu juta、satu miliar。
2025年と2026年のPPN 12%はどのように計算しますか? ほとんどの商品とサービスでは、12% × DPP nilai lain です。DPP nilai lain = 価格の11/12なので、PPNは実質的に価格の11%となります(PMK 131/2024)。PPnBMの対象となる高級品のみ、全額に対して12%が課されます。
PPN込みの合計金額から、PPN適用前の価格を求めるにはどうすればよいですか?
高級品以外は1.11で割ります(価格 = 合計 ÷ 1.11、PPN = 合計 − 価格)。dari: "total" を指定した hitung_ppn がこれを正確に計算します。
Rp1.234.567,89のように、数値をRupiah形式にするにはどうすればよいですか?
format_rupiah を使います。千の位にはピリオド、小数にはカンマを使い、Rp の後にスペースは入れません(インドネシア語の表記規則)。ringkas: true を指定すると、Rp1,2 jt のような短縮形になります。
「1,5 jt」や「Rp 1.250.000,-」を数値に変換するにはどうすればよいですか?
parse_rupiah はそれぞれ1500000と1250000を返します。文字で書かれた金額も読み取ります。
開発
node --test test/
18のテストグループ(300件以上の数値を使ったterbilangから単語解析への往復テストを含むユニットテストと、MCP stdioでのエンドツーエンドテスト)をオフラインで実行できます。課題の報告とプルリクエストを歓迎します。
インドネシア語
MCP サーバーには、AI アシスタント(Claude Desktop、Claude Code、Cursor、OpenCode)向けのルピアおよびインドネシアの数値ツールが含まれています。terbilang(数値の読み上げ表記)、ルピアの書式設定、雑多なテキストからの金額の読み取り、2025年以降の規則に準拠したPPN計算機能を備えています。オフラインで動作し、正確な十進計算が可能で、API キーや依存関係は不要です。
例:「領収書用に Rp1.500.250 を文字で書き、合計 Rp5.550.000 の PPN はいくらですか?」
ツール
| ツール | 機能 |
|---|---|
terbilang | 数値 → 文字表記:最大999京、小数は「koma」、負数は「minus」、末尾に「rupiah」や「sen」を付ける形式、文字種(小文字/先頭のみ大文字/タイトルケース/大文字)の選択に対応します。sepuluh、sebelas、seratus、seribu の規則は正しく適用されます(ただし satu juta)。 |
format_rupiah | 数値 → Rp1.234.567,89。小数桁数は0~4桁または自動設定で、Rp の有無、末尾の ,-、Rp1,2 jt / Rp1,2 juta のような簡易表記を選べます。 |
parse_rupiah | テキスト → 数値:Rp 1.250.000,-、1,5 jt、IDR 50k、2,5 M、(Rp1.000)、英語式の 1,234,567.89、数詞(dua juta lima ratus ribu rupiah)に対応します。曖昧な場合は catatan で説明します。 |
hitung_ppn | 税引前価格、別の課税標準(DPP nilai lain)、またはPPN込みの合計額からPPNを計算します。販売価格、DPP、PPN、合計額、規則、法的根拠を表示します。 |
PPN の規則(2025年1月1日以降、PMK 131 Tahun 2024):
- 奢侈品以外(既定値
nonmewah):PPN = 12% × 別の課税標準、別の課税標準 = 販売価格/対価/輸入額 × 11/12 → 実効税率は**11%**です。例:価格 Rp1.000.000 → DPP Rp916.666,67 → PPN Rp110.000 → 合計 Rp1.110.000。 - PPnBM の対象となる奢侈品(
mewah):PPN = 12% × 販売価格 → 実効税率は**12%**です(2025年2月1日から最終消費者向け小売販売に適用)。PPnBM は計算しません。 - 特別な方式(所定額のPPN、11/12以外の別の課税標準、PPN DTP、免税対象の商品/サービス、2025年より前の期間):
kategori: "custom"を使い、tarif_persenとfaktor_dppを個別に指定してください。 - 出典:PMK 131/2024、DJP の記事「PMK 131/2024: Tarif PPN Sebelas-Dua Belas」(2025年1月6日)、PMK 11/2025 に関するDJPのプレスリリース、DDTCNews(2025年8月17日、2026年9月10日)。一般税率が12%のままであることを確認しました。確認日:2026年11月11日。計算補助ツールであり、税務上の助言ではありません。
インストール:上記の例と同じです。Claude Code:claude mcp add rupiah -- npx -y mcp-rupiah。Windows:"command": "cmd"、"args": ["/c", "npx", "-y", "mcp-rupiah"]。環境変数やAPIキーは不要です。
テキストの読み取り規則:ピリオドは桁区切り、カンマは小数点です。1.500 は1500、1,500 は1.5として読み取られます(注記が表示されます)。M は10億を表します。非常に大きな数値(≥ 2^53)はテキストとして送信してください。
よくある質問
- Rp1.500.000 の文字表記は? 「Satu juta lima ratus ribu rupiah」です(
terbilangでrupiah: trueを指定し、領収書にはhuruf: "judul"を指定します)。 - Seribu と satu ribu のどちらですか? 1.000 は seribu、100 は seratus です。100万以上では satu を使います:satu juta。
- 2025年/2026年のPPN 12%はどのように計算しますか? 一般には12% × 11/12 × 価格で、価格の11%になります。奢侈品は全額に対して12%です。
- PPN込みの合計額から税引前価格を求めるには? 奢侈品以外の場合、価格 = 合計額 ÷ 1,11 です(
hitung_ppnでdari: "total"を指定します)。
ライセンス
MIT。 LICENSE を参照してください。
Ezkielyna が制作。インドネシアの開発者向けの独立したAI APIゲートウェイです(QRISで支払い可能)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。