WhereItGoes

money.whereitgoes由 whereitgoes.money 發布官方發布者v1.2.0更新於 Oct 24, 2026

Read your crypto portfolio across exchanges and wallets: holdings, history, FIFO P&L, fees, income.

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

遠端 MCP 伺服器,讓助理讀取你自己的加密資產組合:持倉、流水、FIFO 損益、手續費、收益與風險。

可以做什麼
  • 彙總整體組合:總價值、配置、集中度、近期變化與同步狀態
  • 列出持倉以及已連接的交易所與錢包,金鑰僅顯示遮罩提示
  • 檢索流水帳本:入金、出金、轉帳、法幣進出與資金流
  • 報告績效:真實損益、每日價值歷史、依交易對排序的已實現損益、收益與手續費
  • 查看交易活動、重要變化、目標配置、提醒,Pro 帳戶還可看風險指標與健康分數
  • 以提案形式草擬目標配置或提醒變更,由你在瀏覽器中確認
適用情境
適合已在 WhereItGoes 追蹤加密資產組合、希望助理用真實計算數據而非截圖回答「我持有什麼」「上個月入金多少」「手續費多少」「今年是否獲利」等問題的使用者。
執行需求
遠端 Streamable HTTP 端點,無需在本機安裝。需要一個 WhereItGoes 帳戶,並至少連接一個交易所或錢包。透過 OAuth 2.1 授權碼加 PKCE 並在同意頁面核准。兩個僅提案工具需另外授予 portfolio:write 權限範圍。
安裝前請注意
會讀取你的組合資料並傳送給你所連接的 AI 用戶端。兩個寫入工具僅產生提案,需你開啟連結並確認前後對照後才生效,提案 10 分鐘後過期。portfolio:write 為選用授權,既有的唯讀連線無法追加。免費帳戶使用風險與提醒等 Pro 工具會回傳 upgrade_required。可在應用程式內逐一撤銷連線。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 WhereItGoes,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/money.whereitgoes%2Fportfolio/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "whereitgoes": {
      "type": "http",
      "url": "https://api.whereitgoes.money/api/mcp"
    }
  }
}

README

WhereItGoes MCP server

[WhereItGoes MCP server on AI Agents Listing]

Ask ChatGPT, Claude or Cursor about your own crypto portfolio: real holdings across every exchange and on-chain wallet you track, full movement history, FIFO profit and loss, fees, income and risk. No API key to paste, free on every account, revocable in one click.

https://api.whereitgoes.money/api/mcp
  • Transport: Streamable HTTP (stateless, JSON responses)
  • Auth: OAuth 2.1, authorization code + PKCE (S256). Dynamic client registration (RFC 7591) and Client ID Metadata Documents are both supported.
  • Registry name: money.whereitgoes/portfolio in the official MCP Registry
  • Setup guide: whereitgoes.money/connect-ai

This repository is the public listing and documentation for a hosted (remote) MCP server. There is nothing to install or run locally.

[The connect-ai setup page]

What it does

WhereItGoes is a read-only crypto portfolio tracker. You connect exchanges with read-only API keys and wallets by public address; it rebuilds your trade and transfer history and computes portfolio value, P&L and history. The MCP server exposes those same computed numbers to an AI client, so the assistant reads your real data instead of guessing from a screenshot.

Every figure is already computed and USD-valued by the app. The server instructions tell the model to report what the tools return rather than recompute it.

Tools

15 tools: 13 reads and two propose-only writes. Each read is a GET against a fixed allowlist of the app's own endpoints. Tools that cover several related answers take a required view argument, and the answer comes back nested under the key named after that view.

GroupTools
Start hereget_portfolio view overview - one call that summarises value, allocation, concentration, 30-day true P&L, target drift and BTC/ETH over the same window
What you holdget_portfolio, get_connections
What happenedget_movements, get_money_flows, get_changes, get_trading_activity
How it didget_performance, get_income, get_fees
Plans and alertsget_target_allocation, get_alerts
Pro planget_risk (drawdown, volatility, Sharpe, beta vs BTC or ETH; 0-100 health score)
Housekeepinglist_profiles
Propose-only (you approve)set_target_allocation, propose_alert_change (Pro)

Every portfolio tool takes an optional profile argument, so one question can read a named portfolio ("my trading account") without changing what the app shows. Windowed views also take period (last_24h, last_7d, last_30d, last_90d, ytd, all); omitting it means all time. A view refuses an argument it does not take, rather than ignoring it.

Tool reference

ToolViewsAnswers
get_portfoliooverview, holdings, recent_changeThe present state: whole-portfolio summary; every asset with quantity, value, weight, average cost and P&L; 24h / 7d / 30d change and when the last sync finished
get_performancepnl, history, realized_by_pairTrue P&L for a period with your own deposits and withdrawals stripped out; daily value series ("what was I worth in June"); realized P&L ranked by trading pair
get_riskmetrics, scorePro: drawdown, volatility, Sharpe, beta and correlation vs BTC or ETH; 0-100 structure score with pillar sub-scores
get_movementsSearch the ledger: deposits, withdrawals, transfers, income, trades, filterable by asset, venue, source, status
get_money_flowscapital_flow, deposits, transfers, fiatMoney in and out in USD per month or week; exchange deposits and their cost-basis status; withdrawals matched to deposits between your own accounts; fiat put in and cashed out per local currency
get_incomeby_category, by_assetIncome totals by category (staking, lending, DeFi, rewards, airdrops); income over time per asset
get_feesFees by venue, asset and type, valued in USD
get_trading_activityasset_totals, calendarLifetime buy and sell totals per asset; per-day trade and movement counts, volume and P&L
get_changesRanked notable events for a period: big flows, allocation shifts, drawdowns, to-dos
get_connectionsexchanges, wallets, sync_statusConnected exchanges (masked key hints only, never keys); tracked on-chain addresses; whether a sync is running or queued
get_target_allocationThe allocation plan you set, with tolerance bands
get_alertsPrice and value alerts you configured
list_profilesThe portfolios on your account, to pass as profile
set_target_allocationPropose-only: drafts a new plan you approve in your browser (needs portfolio:write)
propose_alert_changePropose-only, Pro: drafts a new alert, an edit to one, or its deletion (action = create, update, delete), which you approve in your browser (needs portfolio:write)

Every tool declares an outputSchema and returns structuredContent alongside a JSON text block, so a client can read typed fields (units, currency and ordering are described in the schema) instead of parsing prose. A list longer than 200 rows is cut, and the answer then carries a truncated field and a <field>_note saying how many rows were kept and which.

Version 1.2.0 renamed the 1.1.x tools (26 became 15, counting the new propose_alert_change). If you saved a prompt or config that names an old tool: 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.

Every read tool is annotated readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false. The two write tools are annotated readOnlyHint: false, destructiveHint: true, so a cautious client asks before calling them, even though neither applies anything on the call.

On a free account both get_risk views answer with an upgrade_required result rather than an error, so the assistant can say what it would take instead of retrying.

There are also two optional, propose-only tools, available only if you grant the separate portfolio:write scope when connecting: set_target_allocation drafts a target plan, and propose_alert_change drafts a price or value alert (create, edit or delete, including whether it also emails you). Neither changes anything when called: each parks a proposal and returns a link, and the change lands only after you open that link in your own browser, read a server-rendered before/after diff, and click Apply. Alerts are a Pro feature, so on a free account propose_alert_change answers upgrade_required instead of drafting anything, and a draft is checked by the same validator the app's alert form uses. See Security model.

[The tool list on the connect-ai page]

Connect

You need a WhereItGoes account with at least one exchange or wallet connected, because the connector reads the portfolio you already have. Start here if you have not.

Claude

  1. Open Settings > Connectors > Add custom connector.
  2. Paste https://api.whereitgoes.money/api/mcp.
  3. A WhereItGoes consent screen opens in your browser. Approve it.

ChatGPT

  1. Open Settings > Apps & Connectors > Advanced and turn on developer mode.
  2. Create a connector with the URL https://api.whereitgoes.money/api/mcp and OAuth as the authentication method.
  3. Approve the WhereItGoes consent screen that opens in your browser.

Cursor and other MCP clients

Anything that speaks MCP over Streamable HTTP and handles OAuth works. For clients configured with JSON:

json
{  "mcpServers": {    "whereitgoes": {      "url": "https://api.whereitgoes.money/api/mcp"    }  }}

To look at the raw tool list first, run npx @modelcontextprotocol/inspector and point it at the URL.

Then ask things like "what do I hold", "how much did I deposit last month", "what am I paying in fees", or "am I actually up this year".

Security model

Read-only by construction. The read executor hard-codes GET against an allowlist of app endpoints. There is no trading, no withdrawal, no transfer, no way to connect or disconnect a source, and no way to read your exchange API keys. Those paths do not exist in the connector; they are not permissions that happen to be switched off.

A connector token can never become an app session. MCP access tokens are HMAC-signed in a separate domain from app session tokens, so each type is unverifiable as the other. When a tool runs, the server mints a fresh short-lived session for the same user internally and re-dispatches through the app's own auth and plan checks; the MCP token itself is useless anywhere except the MCP endpoint. Tests assert the separation in both directions.

Strict OAuth. PKCE S256 only; redirect_uri matched exactly with no prefix or wildcard; an unknown client or unregistered redirect gets a dead end, never a redirect; authorization codes are single use and live 60 seconds; access tokens are short-lived and bound to the MCP endpoint as their audience.

Writes need a human, every time. The optional portfolio:write scope is granted only when explicitly requested and approved on the consent screen; an existing read-only connection cannot acquire it. Even with it, a write tool only proposes. The change applies when you open the link in your own browser, under your own session, on whereitgoes.money, and approve a before/after diff rendered by the server from the stored payload (never from text the model wrote). Proposals are single use and expire after 10 minutes. This keeps a prompt-injected tool call from writing anything without you seeing it.

Tenant scoping. Every call is re-checked against the account and portfolio it belongs to. Picking a portfolio per call never changes which portfolio the app itself has active.

Revoking access

  • One connector: in the app, Settings > Connections lists every connected app with when it was approved and when it last read anything. Disconnect, and the very next call fails; the grant is checked on every request, not at the end of a session.
  • Everything at once: signing out of every device revokes all connectors.
  • Account deletion removes every grant with the account.

Pricing

The connector is free on every account, including the free tier, and uses no AI credit of ours: your assistant does the talking, WhereItGoes only answers for the data. The Pro tools stay Pro, as they are in the app.

Support

Nothing returned by this server is investment advice.

License

The contents of this repository (documentation and listing metadata) are released under the MIT License. The WhereItGoes service itself is a hosted product and is not open source.

來源:README.md,提交 49a4986

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

2
  1. v1.2.0最新Oct 23, 2026
  2. v1.1.2Oct 23, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分