Skip to main content
Glama
khapham7165

WhereItGoes MCP server

WhereItGoes MCP server

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.

Related MCP server: Crypto Portfolio MCP Server

Tools

25 read tools. Each one is a GET against a fixed allowlist of the app's own endpoints.

Group

Tools

Start here

get_portfolio_snapshot - one call that summarises value, allocation, concentration, 30-day true P&L, target drift and BTC/ETH over the same window

What you hold

get_portfolio, get_dashboard, get_wallets, get_venues, get_portfolio_history

What happened

get_movements, get_deposits, get_transfers, get_changes, get_capital_flow, get_activity_calendar

How it did

get_pnl_overview, get_pnl_by_symbol, get_fees, get_income_by_source, get_income_timeseries, get_fiat_stats, get_asset_trade_stats

Plans and alerts

get_target_allocation, get_alerts

Pro plan

get_risk_metrics (drawdown, volatility, Sharpe, beta vs BTC or ETH), get_portfolio_score

Housekeeping

get_sync_status, list_profiles

Most tools take an optional period and a profile argument, so one question can read a named portfolio ("my trading account") without changing what the app shows.

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

There is also one optional, propose-only tool, set_target_allocation, available only if you grant the separate portfolio:write scope when connecting. It does not change anything when called: it 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. 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:

{
  "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.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to retrieve real-time data on wallet DeFi positions, token balances, and NFT holdings across multiple blockchains. It supports hundreds of protocols and provides specialized tools for chain-specific or protocol-specific portfolio analysis.
    8
    8 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides read-only portfolio management and analytics across Binance, Coinbase, and Kraken exchanges. It enables users to track holdings, analyze risk, and monitor market intelligence through 18 specialized tools.
    2
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides read-only access to Monarch Money financial data, enabling AI assistants to analyze transactions, budgets, and cashflow.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Connects Claude Desktop to crypto and brokerage portfolio data via Coinbase and SnapTrade, providing read-only tools to inspect accounts, holdings, prices, and provider health.
    5
    MIT