mcpField
R
Rupiah tools

Rupiah tools

ローカル
github.com/EzkielynaGroup金融データ02 日前に更新

Rupiah tools について

Rupiah toolsは、インドネシア語の数値表記、ルピアの書式設定と解析、2025年以降の規則に基づくVAT計算を行うオフラインMCPサーバーです。正確な十進演算と曖昧な数値形式の説明により、領収書や金額計算に使えます。

主な機能

  1. 01数値をインドネシア語の語句に変換
  2. 02ルピア金額の書式設定
  3. 03多様なルピア表記の解析
  4. 04金額や税込総額からVATを計算
  5. 05正確な十進演算

活用シーン

  1. 01領収書用にルピア金額を文字表記
  2. 02テキストから抽出した金額の統一
  3. 03VATと税込総額の計算
  4. 04税込総額から税抜価格を算出

MCP 対応

数値のインドネシア語表記への変換、ルピア金額の書式設定と解析、インドネシアのVAT計算を行う4つのツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"ezkielynagroup-mcp-rupiah": {
"command": "npx",
"args": [
"-y",
"mcp-rupiah"
]
}
}
}
起動コマンドnpx -y mcp-rupiah

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-rupiah1.0.0

ツール

4

掲載時のツール一覧 · 2 日前に更新

パラメーター型必須説明
senbooleanいいえrupiah=true の場合、小数点以下を最大 2 桁まで sen として読み上げます(「…… rupiah lima puluh sen」)。「koma」とは読み上げません。
angkanumber|stringはいJSON の数値、または「1250000」、「Rp1.250.000,50」、「1,5 jt」などのテキスト。非常に大きな数値(>= 2^53)はテキストとして送信してください。
hurufenumいいえ文字の大文字・小文字:kecil(小文字)、awal(先頭のみ大文字)、judul(タイトルケース)、besar(大文字)。kecil | awal | judul | besar
rupiahbooleanいいえ「rupiah」を付加します。
kata_negatifenumいいえ負の数に使用する単語。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/1211%
mewahPPnBM の対象となる高級品。特定の自動車、高級住宅、航空機、ヨットなど(第 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で支払い可能)。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。