WhereItGoes について
WhereItGoesは、取引所やウォレットを追跡する人向けのホスト型・読み取り専用MCPサーバーです。計算済みの資産、損益、手数料、収入、リスク情報を提供し、変更は人の承認を経る提案としてのみ扱います。
主な機能
- 01保有資産と移動履歴の確認
- 02FIFO損益と運用実績
- 03手数料・収入・配分情報
- 04Proプランのリスク指標
- 05人の承認が必要な変更提案
- 06OAuth 2.1認証
活用シーン
- 01取引所やウォレットをまたいだ保有資産の確認
- 02入金・送金・取引履歴の確認
- 03運用実績、手数料、収入の把握
- 04配分やアラート変更案の作成と承認
MCP 対応
Streamable HTTPとOAuth 2.1を使うリモートMCPサーバーとして、ポートフォリオ情報を提供します。読み取りツールは読み取り専用で、任意の書き込みツールもブラウザーでの承認が必要な提案に限られます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.whereitgoes.money/api/mcpclaude mcp add --transport http money-whereitgoes-portfolio https://api.whereitgoes.money/api/mcp{"mcpServers":{"money-whereitgoes-portfolio":{"type":"http","url":"https://api.whereitgoes.money/api/mcp"}}}Cursor で開く{"servers":{"money-whereitgoes-portfolio":{"type":"http","url":"https://api.whereitgoes.money/api/mcp"}}}VS Code で開く{"mcpServers":{"money-whereitgoes-portfolio":{"type":"http","url":"https://api.whereitgoes.money/api/mcp"}}}{"mcpServers":{"money-whereitgoes-portfolio":{"serverUrl":"https://api.whereitgoes.money/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
WhereItGoes MCP サーバー
ChatGPT、Claude、Cursor にご自身の暗号資産ポートフォリオについて尋ねられます。追跡対象のすべての取引所とオンチェーンウォレットにある実際の保有資産、完全な移動履歴、FIFO 方式の損益、手数料、収入、リスクを確認できます。貼り付けが必要な API キーはなく、すべてのアカウントで無料で利用でき、ワンクリックでアクセスを取り消せます。
https://api.whereitgoes.money/api/mcp
- トランスポート:Streamable HTTP(ステートレス、JSON レスポンス)
- 認証:OAuth 2.1、認可コード+PKCE(S256)。動的クライアント登録(RFC 7591)とクライアント ID メタデータドキュメントの両方に対応しています。
- レジストリ名:公式 MCP Registry の
money.whereitgoes/portfolio - セットアップガイド:whereitgoes.money/connect-ai
このリポジトリは、ホスト型(リモート)の MCP サーバーの公開掲載情報とドキュメントです。 ローカルでインストールまたは実行するものはありません。

機能
WhereItGoes は、読み取り専用の暗号資産ポートフォリオトラッカーです。読み取り専用 API キーを使って取引所を接続し、公開アドレスを使ってウォレットを接続すると、取引と送金の履歴が再構築され、ポートフォリオの価値、損益、履歴が計算されます。MCP サーバーは、計算済みの同じ数値を AI クライアントに公開するため、アシスタントはスクリーンショットから推測するのではなく、実際のデータを参照します。
すべての数値はアプリですでに計算され、米ドル換算されています。サーバーの指示では、モデルに再計算させず、ツールが返す内容を報告するよう指示しています。
ツール
ツールは15個で、読み取りが13個、提案のみの書き込みが2個です。各読み取りツールは、アプリ独自の固定許可リストにあるエンドポイントに対する GET です。複数の関連する質問に対応するツールでは必須の view 引数を指定し、回答はそのビュー名と同じキーの下にネストされて返されます。
| グループ | ツール |
|---|---|
| まずはこちら | get_portfolio のビュー overview - 1回の呼び出しで、価値、配分、集中度、過去30日間の実質損益、目標との差、同じ期間における BTC/ETH を要約 |
| 保有資産 | get_portfolio、get_connections |
| 取引履歴 | get_movements、get_money_flows、get_changes、get_trading_activity |
| パフォーマンス | get_performance、get_income、get_fees |
| 計画とアラート | get_target_allocation、get_alerts |
| Pro プラン | get_risk(ドローダウン、ボラティリティ、Sharpe、BTC または ETH に対するベータ、0~100 の健全性スコア) |
| 管理 | list_profiles |
| 提案のみ(承認が必要) | set_target_allocation、propose_alert_change(Pro) |
すべてのポートフォリオツールでは任意の profile 引数を指定できるため、アプリに表示される内容を変更せずに、名前付きのポートフォリオ(「自分の取引口座」など)について質問できます。期間指定のビューでは period(last_24h、last_7d、last_30d、last_90d、ytd、all)も指定できます。省略すると全期間が対象になります。ビューが受け取らない引数を指定すると、無視するのではなくエラーになります。
ツールリファレンス
| ツール | ビュー | 回答内容 |
|---|---|---|
get_portfolio | overview, holdings, recent_change | 現在の状態:ポートフォリオ全体の概要、数量・価値・比率・平均取得価格・損益を含むすべての資産、24h/7d/30d の変動、および最後の同期が完了した時刻 |
get_performance | pnl, history, realized_by_pair | 自分で行った入出金を除いた期間の正確な損益、日ごとの評価額推移(「6 月の自分の資産額は?」)、取引ペア別の実現損益ランキング |
get_risk | metrics, score | Pro:ドローダウン、ボラティリティ、シャープレシオ、ベータ、BTC または ETH との相関;柱ごとのサブスコアを含む 0〜100 の構成スコア |
get_movements | 台帳を検索します:入金、出金、振替、収入、取引を、資産、取引所、ソース、ステータスで絞り込み可能 | |
get_money_flows | capital_flow, deposits, transfers, fiat | 月次または週次の USD 建て入出金額;取引所への入金とその取得原価ステータス;自分の口座間で入金と照合された出金;現地通貨ごとの法定通貨の入金額と現金化額 |
get_income | by_category, by_asset | カテゴリ別の収入合計(ステーキング、レンディング、DeFi、報酬、エアドロップ);資産ごとの収入の推移 |
get_fees | 取引所、資産、種類別の手数料を USD 換算で表示 | |
get_trading_activity | asset_totals, calendar | 資産ごとの生涯買付・売却合計;日ごとの取引件数と資産移動件数、出来高、損益 |
get_changes | 期間内の注目イベントをランキング形式で表示:大口資金移動、配分の変化、ドローダウン、対応事項 | |
get_connections | exchanges, wallets, sync_status | 接続済み取引所(キーそのものではなく、マスキングされたキーのヒントのみ);追跡対象のオンチェーンアドレス;同期中またはキューに登録されているかどうか |
get_target_allocation | 設定した配分計画と許容範囲 | |
get_alerts | 設定した価格アラートと評価額アラート | |
list_profiles | アカウント上のポートフォリオ。profile として渡します | |
set_target_allocation | 提案のみ:ブラウザーで承認する新しい計画の下書きを作成します(portfolio:write が必要です) | |
propose_alert_change | 提案のみ、Pro:ブラウザーで承認する新しいアラート、既存アラートの編集、または削除(action = create、update、delete)の下書きを作成します(portfolio:write が必要です) |
各ツールは outputSchema を宣言し、JSON テキストブロックとともに structuredContent を返します。そのため、クライアントは文章を解析する代わりに、型付きフィールドを読み取れます(単位、通貨、並び順はスキーマで説明されています)。200 行を超えるリストは切り詰められ、その場合、回答には truncated フィールドと、保持された行数および対象フィールドを示す <field>_note が含まれます。
バージョン 1.2.0 では、1.1.x のツール名が変更されました(新しい propose_alert_change を含め、26 個から 15 個になりました)。古いツール名を指定したプロンプトや設定を保存している場合は、次のように置き換えてください:get_portfolio_snapshot、get_dashboard -> get_portfolio;get_pnl_overview、get_portfolio_history、get_pnl_by_symbol -> get_performance;get_risk_metrics、get_portfolio_score -> get_risk;get_capital_flow、get_deposits、get_transfers、get_fiat_stats -> get_money_flows;get_income_by_source、get_income_timeseries -> get_income;get_asset_trade_stats、get_activity_calendar -> get_trading_activity;get_venues、get_wallets、get_sync_status -> get_connections。
すべての読み取りツールには readOnlyHint: true、destructiveHint: false、idempotentHint: true、openWorldHint: false が注釈されています。2 つの書き込みツールには readOnlyHint: false、destructiveHint: true が注釈されているため、どちらも呼び出し時に変更を適用するわけではありませんが、慎重なクライアントは呼び出す前に確認を求めます。
無料アカウントでは、get_risk のどちらのビューもエラーではなく upgrade_required の結果を返すため、アシスタントは再試行する代わりに、利用に必要な条件を説明できます。
また、接続時に別途
portfolio:write スコープを許可した場合にのみ利用できる、提案専用の任意ツールが2つあります。set_target_allocation は目標プランを作成し、propose_alert_change は価格または値のアラート(作成、編集、削除、およびメール通知の有無)を作成します。どちらも呼び出しただけでは何も変更されません。各ツールは提案を保留状態にしてリンクを返し、そのリンクを自分のブラウザーで開き、サーバーでレンダリングされた変更前後の差分を確認して「適用」をクリックした後にのみ変更が反映されます。アラートは Pro の機能であるため、無料アカウントでは propose_alert_change は何も作成せず、代わりに upgrade_required を返します。また、提案内容はアプリのアラートフォームと同じバリデーターで検証されます。セキュリティモデルを参照してください。

接続
既存のポートフォリオをコネクターが読み取るため、WhereItGoes アカウントに少なくとも1つの取引所またはウォレットを接続しておく必要があります。まだアカウントをお持ちでない場合は、こちらから開始してください。
Claude
- 設定 > コネクター > カスタムコネクターを追加を開きます。
https://api.whereitgoes.money/api/mcpを貼り付けます。- WhereItGoes の同意画面がブラウザーで開きます。承認してください。
ChatGPT
- 設定 > アプリとコネクター > 詳細設定を開き、開発者モードをオンにします。
- URL に
https://api.whereitgoes.money/api/mcpを指定し、認証方法に OAuth を選択してコネクターを作成します。 - ブラウザーで開く WhereItGoes の同意画面を承認します。
Cursor およびその他の MCP クライアント
Streamable HTTP 経由で MCP を利用し、OAuth に対応しているクライアントであれば使用できます。JSON で設定するクライアントの場合:
{
"mcpServers": {
"whereitgoes": {
"url": "https://api.whereitgoes.money/api/mcp"
}
}
}
まず生のツール一覧を確認するには、npx @modelcontextprotocol/inspector を実行し、その URL を指定します。
その後、「何を保有している?」「先月はいくら入金した?」「手数料はいくら払っている?」「今年は実際に利益が出ている?」などと質問できます。
セキュリティモデル
**設計上、読み取り専用です。**読み取り実行処理では、アプリのエンドポイントの許可リストに対する GET がハードコードされています。取引、出金、送金、資産ソースの接続や切断はできず、取引所の API キーを読み取ることもできません。これらの経路はコネクターに存在せず、単に無効化された権限ではありません。
**コネクタートークンがアプリのセッションになることはありません。**MCP アクセストークンはアプリのセッショントークンとは別のドメインで HMAC 署名されているため、一方をもう一方として検証することはできません。ツールの実行時、サーバーは同じユーザーに対して内部で有効期間の短い新しいセッションを発行し、アプリ独自の認証とプランのチェックを通じて再度処理を振り分けます。MCP トークン自体は MCP エンドポイント以外では使用できません。テストでは、双方向の分離が検証されています。
**厳格な OAuth。**PKCE S256 のみを使用します。redirect_uri はプレフィックスやワイルドカードを使わず完全一致で照合されます。不明なクライアントや未登録のリダイレクト先は行き止まりとなり、リダイレクトされることはありません。認可コードは1回のみ使用でき、有効期間は60秒です。アクセストークンの有効期間は短く、対象として MCP エンドポイントに紐付けられます。
**書き込みには毎回人間の承認が必要です。**任意の portfolio:write スコープは、同意画面で明示的に要求され、承認された場合にのみ付与されます。既存の読み取り専用接続にこのスコープを追加することはできません。このスコープがあっても、書き込みツールが行うのは提案のみです。変更が反映されるのは、自分のセッションで自分のブラウザーから whereitgoes.money のリンクを開き、保存済みのペイロードをもとにサーバーがレンダリングした変更前後の差分を確認して承認した後だけです(モデルが生成したテキストをもとにすることはありません)。提案は1回のみ使用でき、有効期限は10分です。これにより、プロンプトインジェクションを受けたツール呼び出しが、確認なしに何かを書き込むことを防ぎます。
**テナントのスコープ設定。**各呼び出しは、対象のアカウントとポートフォリオに対して毎回再検証されます。呼び出しごとにポートフォリオを選択しても、アプリで現在有効なポートフォリオは切り替わりません。
アクセス権の取り消し
- 1つのコネクター:アプリの Settings > Connections には、接続済みのすべてのアプリと、承認された日時および最後にデータを読み取った日時が表示されます。接続を解除すると、次の呼び出しは失敗します。許可はセッション終了時ではなく、リクエストごとに確認されます。
- すべて一度に:すべてのデバイスからサインアウトすると、すべてのコネクターの許可が取り消されます。
- アカウントの削除により、そのアカウントに紐づくすべての許可が削除されます。
料金
このコネクターは無料プランを含むすべてのアカウントで無料で利用でき、当社のAIクレジットも使用しません。会話を行うのはお使いのアシスタントで、WhereItGoesはデータについてのみ回答します。Proツールは、アプリ内と同様に引き続きPro向けです。
サポート
- セットアップガイド:whereitgoes.money/connect-ai
- セキュリティ概要:whereitgoes.money/security
- メール:[email protected]
このサーバーが返す情報は、いずれも投資助言ではありません。
ライセンス
このリポジトリの内容(ドキュメントおよびリスティングのメタデータ)は、MIT Licenseの下で公開されています。WhereItGoesサービス自体はホスト型の製品であり、オープンソースではありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。