mcpField
N
nestegg-calculators

nestegg-calculators

リモート
github.com/VladimirWrites金融データ43 週間前に更新
リポジトリ

nestegg-calculators について

nestegg-calculatorsは、ローン、投資、債券、オプション、税務を扱う90種類以上のステートレスな金融計算ツールを提供します。ユーザーデータ、リアルタイム価格、為替レート照会を使わず、入力値に基づいて計算し、JSON APIとMCPサーバーから利用できます。

主な機能

  1. 0190種類以上のステートレスな金融計算
  2. 02ローンと返済スケジュールの計算
  3. 03投資、債券、オプションの計算
  4. 04ドイツの給与税計算を収録
  5. 05型付きMCPツール、リソース、プロンプト

活用シーン

  1. 01住宅ローンの返済額とスケジュールを計算
  2. 02指定した入力で金融シナリオを比較
  3. 03対応する税年度のドイツの手取り給与を推定
  4. 04AIエージェントのワークフローで金融計算を利用

MCP 対応

Streamable HTTPのMCPサーバーは、計算機能をツール、ドキュメントをリソース、定義済みワークフローをプロンプトとして公開します。計算はステートレスで入力を保存せず、必要な為替レートなどは呼び出し側が指定します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://nestegg.money/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

99
パラメーター型必須説明
modeenumはい返済期間を固定して返済額を計算するか、返済額を固定して期間を計算します。term | payment
ratenumberはい年利率(パーセント)(6 = 6%)。
extraarrayいいえ日付を指定した追加元金返済(任意)。
limitnumberいいえdetail=monthly の場合の月次行数の上限(デフォルト値および最大値は 360。nextOffset でページング)。
amountnumberはいローン元金。
detailenumいいえ出力サイズ。summary(デフォルト):合計 + 年次内訳。monthly:全返済スケジュール(offset/limit でページング)。summary | yearly | monthly
offsetnumberいいえdetail=monthly の場合の月次返済スケジュールの開始インデックス(デフォルトは 0)。
paymentnumberいいえmode が 'payment' の場合に使用する月々の返済額。
rateStepsarrayいいえ任意の金利変更(例:Zinsbindung の終了後)。返済額は固定され、各変更日以降の未返済残高には新しい年利が適用されます。
startDatestringはい初回返済月を ISO 日付(YYYY-MM-DD)で指定します。
termYearsnumberいいえ期間(年)。mode が 'term' の場合に使用します。
fixedUntilstringいいえ任意。金利が確定している期間の終了日を ISO 日付で指定します。それ以降の返済スケジュールは推定値です。

詳細

nestegg.money のロゴ

nestegg.money

プライバシーを守る、ゼロ知識の純資産・給与トラッカーです。
ブラウザー内で暗号化します。メールアドレスもパスワードも不要で、アカウント番号だけで利用できます。

公開中のアプリ

CI ライセンス:Apache 2.0

スクリーンショット

nestegg.money のダッシュボード:純資産の推移、資産配分のドーナツチャート、年ごとの内訳

概要

意図的にシンプルに設計された、ゼロ知識の個人台帳です。単一の Cloudflare Worker で、静的なフロントエンド(フレームワークもバンドラーも不使用)と3つの小さな API ルートを提供し、ストレージには D1 を使用します。ログインには Mullvad 方式のアカウント番号を使います。データは送信前に ブラウザー内で暗号化されるため、サーバーに保存されるのは暗号文だけです。

機能

  • 推移:年ごとの純資産を積み上げ棒グラフで表示します。資産(またはカテゴリー)ごとに色分けし、負債がある場合は純資産の折れ線を表示します。
  • 資産配分:最新年の資産配分をドーナツチャートで表示します。
  • 入力:年をタップすると編集画面が開きます。各行は1つの資産(名称、通貨、価値)です。資産の追加・削除、前年のコピー、年の名称変更ができます。
  • カテゴリー:資産にカテゴリー(例:「株式」)を割り当てられます。編集画面では各カテゴリーを小計付きのセクションとして表示し、グラフではカテゴリーを1つの区分にまとめます。
  • 長期資産とローン:車や住宅の価値を継続的に減価・増価させ、実際の返済スケジュールに基づくローンを設定できます。追加返済、金利固定期間、返済額または返済期間の入力に対応しています。その純資産価値は、所有しているすべての年に反映されます。
  • 複数通貨:各行で個別の通貨を設定でき、すべて ECB のレート(/api/fx)を使って選択した表示通貨に換算されます。過去の年には、その年の年末レートを使用します。
  • ティッカー/暗号資産の行:株数 × リアルタイム価格を /api/price(Yahoo プロキシ)で取得します。過去の年には、その年の終値を固定して使用します。外部に送信されるのは公開シンボルだけで、アカウントやユーザーを識別する情報は送信されません。
  • 給与:個人ごとの月給を設定できます(総支給額または手取り額を選択)。昇給や転職などのイベント、2軸グラフ、スプレッドシートからの貼り付けインポートに対応しています。
  • 予算:毎月の「残額」の概算を表示します。最新の給与月の収入、資産から取得したローン返済額、入力した定期支出を、カテゴリー別の内訳とドーナツチャートでまとめます。
  • 将来予測と退職後の資金計画:将来の純資産を予測します(積立、成長、シナリオの幅、FIRE 目標)。公的年金(一定額またはドイツの Rentenpunkte)を含めた取り崩しもシミュレーションできます。
  • 同期:ゼロ知識方式です。アカウント番号からアカウントハッシュ(サーバーが見る唯一の情報)と AES-GCM キー(ブラウザーから外に出ることはありません)が生成されます。複数デバイスでの編集はレコードごとにマージされ、削除済みを示すトゥームストーンが保持され、最新のデータが優先されます。 復旧手段はありません。番号を安全に保管してください。実際のバックアップには「JSON をエクスポート」を使用します。
  • 共有リンク:選択したセクションの読み取り専用スナップショットを作成し、アドバイザーと共有できます。共有ごとに専用の AES-GCM キーが生成され、URL フラグメントだけで受け渡されます。サーバーには、関連付けできない ID と暗号文が保存されます。有効期限は30日で、いつでも無効化できます。
  • 2言語対応:アプリ(プロフィール内の言語選択)、ランディングページ(/ と /de/)、および完全にブラウザー内で同じ給与計算エンジンを実行する公開版の Brutto-Netto-Rechner (英語版)を通じて、英語とドイツ語に対応しています。

レイアウト

nestegg.money/
├── src/                  # the Worker: /api/fx, /api/price, /api/vault, /api/share,
│                         # /api/calc/*, /mcp, /.well-known/mcp.json + page routing
├── public/
│   ├── index.html        # marketing landing (generated; German at de/, see scripts/)
│   ├── dashboard.html    # the app — loads one <script type="module" src="js/main.js">
│   ├── brutto-netto-rechner.html  # public net-salary calculator (client-side, per-locale)
│   ├── i18n/             # runtime dictionaries (en, de)
│   ├── lib/              # finance-math: pure calculators incl. finance-math/de/
│   │                     #   (generated BMF PAP Lohnsteuer engines + statutory tables)
│   ├── css/              # base, landing, app styles
│   └── js/               # native ES modules (no bundler); layers point ui → io → domain
│       ├── domain/       #   pure logic, no DOM/network: money, dates, schema, ids,
│       │                 #   loan, asset-value, model, forecast, retirement, merge, store
│       ├── io/           #   effects: crypto (encrypt), storage (localStorage/sync/fetch)
│       ├── ui/           #   DOM: dom, chart-kit, charts, networth, assets, salary, gate
│       └── main.js       #   entry point: cross-cutting wiring + boot
├── scripts/              # generators: per-locale pages, BMF PAP → JS, calculator docs
├── tests/                # node --test: domain math, calculators, MCP, i18n page sync
├── schema.sql            # D1: one row per account (hash → encrypted blob)
└── wrangler.toml

Worker は最初に実行され(run_worker_first)、ホスト名に応じてランディングページとアプリを振り分け、/api/* を処理します。それ以外はすべて静的アセットのバインディングに渡されます。フロントエンドは通常の ES モジュールグラフで、ブラウザーが直接読み込みます。ビルド手順はありません。

デプロイ

Cloudflare アカウントと npm i -g wrangler(その後 wrangler login)が必要です。

  1. wrangler d1 create networth-db → database_id をコピーして wrangler.toml に貼り付けます。
  2. wrangler d1 execute networth-db --remote --file=schema.sql
  3. wrangler deploy
  4. URL を開いてアカウントを作成し、数値を保存します。

ローカル開発:wrangler dev(ライブ API とローカル D1 を使ってアプリを配信します)。

npm version patch|minor|major でリリースを作成します。version フックが新しい番号をサービスワーカーのキャッシュ名(public/sw.js)に記録するため、クライアントは新しいビルドを取得できます。

テスト(ローン/資産/予測/退職後の計算、migrate、複数デバイス間のマージ、暗号化):npm test(node --test tests/*.mjs を実行します。純粋なドメインモジュールを直接インポートするため、ブラウザーは不要です)。

計算ツールと MCP

金融計算機能は、あらゆるクライアント(AI エージェントを含む)が呼び出せる 99 個のステートレスな計算ツールとしても公開されています。入力値だけに基づく純粋関数です。ユーザーデータも、リアルタイム価格も、為替レートの参照も(レートは入力として渡します)、認証もありません。リモートサービスのため、入力値はサーバーに送信されますが、保存されず、リクエスト本文も記録されません。各呼び出しはメモリ上で計算され、破棄されます。

ドイツ向けのセットは、データを含む例外です。de-net-salary は、公式の BMF Programmablaufplan を使って、2023~2026 年の課税年度の手取り額を正確に計算します(生成されたエンジンは public/lib/finance-math/de/ にあり、公開されている Prüftabellen の全 1,008 件の値と照合済みです)。de-abgeltungsteuer、de-kindergeld、de-midijob、de-rentenpunkte も同じ検証済みの法定テーブルを共有します。それ以外はすべて国に依存しません。

  • JSON API: POST https://nestegg.money/api/calc/<name>(JSON を受け取り、JSON を返します)。 GET /api/calc で一覧を取得できます。詳しくは public/docs/calculators.md をご覧ください。
  • MCP サーバー(Streamable HTTP): https://nestegg.money/mcp — 同じ計算ツールを MCP ツールとして提供します。型付きの outputSchema、読み取り専用のアノテーション、resources/* としてのドキュメント、prompts/* としての定型ワークフロー(mortgage-plan、fire-check、brutto-netto)が含まれます。

MCP クライアントへのインストール:

claude mcp add --transport http nestegg https://nestegg.money/mcp

公式 MCP レジストリにも io.github.VladimirWrites/nestegg-calculators として公開されています(main で server.json が変更されると自動で再公開されます)。ディスクリプターは /.well-known/mcp.json で配信され、エージェントが見つけやすいように llms.txt も用意されています。

例(エージェントはデフォルトでは応答を簡潔に保ち、その後必要に応じて詳しく調べます):

> amortization { amount: 475000, rate: 3.75, mode: "payment", payment: 2869.8, startDate: "2024-04-01" }
  → { monthlyPayment, payments, totalInterest, payoffDate, yearly: [ …per-year… ] }   // summary
> amortization { …same…, detail: "monthly", offset: 0, limit: 12 }
  → { schedule: [ …12 rows… ], scheduleTotal: 204, nextOffset: 12 }                    // paginated

備考

  • 新しいアカウントは、現在の年を含む空の状態で始まります。年をタップして資産行を追加し、「+ Year」で年を追加するか、「Reset」で最初からやり直します。
  • バックエンドのない通常のプレビューでは、フォールバックの為替レートを使って localStorage のみで動作します。同期、リアルタイムの為替レート、価格はデプロイ後に有効になります。
  • サーバーは入力した数値を読み取れませんが、暗号化されたデータのサイズ、同期時刻、IP アドレスは確認できます。アプリのフッターに明記されています。

貢献

イシューやプルリクエストを歓迎します。ドメインロジック(public/js/domain/)は純粋な関数で、テストでカバーされています。PR を送る前に npm test を実行し、新しい動作についてはテストを追加してください。ui/ と io/ の各レイヤーは薄く、ブラウザー向けです。DOM 操作を domain/ に入れないでください。(package.json のバージョンとサービスワーカーのキャッシュ名は一致している必要があります。一致を強制するテストがあります。警告が表示された場合は npm run sync-version を実行してください。)

ライセンス

Apache License 2.0 の下でライセンスされています。© 2026 Vladimir Jovanovic.

コメント

MCP は初めてですか?

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

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