Connect an AI client
Ask ChatGPT about your own portfolio.
WhereItGoes speaks MCP, so ChatGPT, Claude and Cursor can read your real holdings, your history and your P&L instead of guessing from a screenshot. Read-only by default, free on every account, and revocable in one click.
Read-only by default
Every read is a GET against a fixed allowlist. It can never trade or move funds; the only things it can do beyond reading are propose a target allocation or an alert, only if you allow it, and only you can apply them.
No key to paste
You approve it in a browser, on our consent screen. No token is ever copied around.
Your data, their model
The assistant reads your real numbers instead of guessing at a screenshot.
One click to end it
Disconnect from Settings > Connections and the next call fails immediately.
The endpoint
One URL, the same for every client. There is nothing to install and no API key to generate:
https://api.whereitgoes.money/api/mcp
It speaks Streamable HTTP and authenticates with OAuth 2.1 and PKCE. Clients that expect the shorter /mcp path get redirected to it, so either form works.
Before you start
You need a WhereItGoes account with at least one source connected, because the connector reads the portfolio you already have. If you have not done that yet, start there first: an exchange takes a read-only API key, a wallet takes nothing but its public address.
ChatGPT
Custom connectors live behind developer mode. Open Settings, then Apps & Connectors, then Advanced, and turn developer mode on. Then add a connector with the URL above and OAuth as the authentication method.
A WhereItGoes consent screen opens in your browser. It names the app asking and exactly what it wants to read. If you have more than one portfolio, it also asks which one the connection reads. Approve it, and you are done: ask ChatGPT what you hold, what you deposited last month, or what you are paying in fees.
Claude
Open Settings, then Connectors, then Add custom connector, and paste the URL. Claude runs the same OAuth handshake and lands on the same consent screen.
Cursor and other MCP clients
Anything that speaks MCP over Streamable HTTP works, because none of this is client-specific. Point it at the URL and let it handle the OAuth flow; clients that register themselves dynamically and clients that publish a client ID metadata document are both supported. The MCP Inspector is the quickest way to see the raw tool list if you want to look before you connect.
What it can read
13 read-only tools, which is the same data the app itself renders. Nothing here is a separate export or a lesser copy. Several of them take a view, so one tool covers a whole question: get_portfolio answers with an overview, every holding, or the last day, week and month of change, and get_performance with true profit and loss, daily value history, or results per trading pair.
What you hold
get_portfolioget_connections
What happened
get_movementsget_money_flowsget_changesget_trading_activity
How it did
get_performanceget_incomeget_fees
Your plan
get_target_allocation
Pro only
get_risk
Housekeeping
get_alertslist_profiles
The Pro tool answers with an upgrade note on a free account rather than an error, so the assistant can tell you what it would take instead of retrying in a loop.
What it can propose
Two tools go beyond reading, and neither can change anything by itself:
set_target_allocationpropose_alert_change
The first drafts a new target allocation, the plan you mean to hold. The second drafts an alert: a new one (“tell me if BTC drops below 60k”, with or without an email), a change to one you have, or its deletion. Alerts are a Pro feature, so on a free account the assistant is told that instead of getting a draft.
Either way it hands back a link, and nothing changes until you open that link in your own browser, read the before and after, and click Apply. Both only work for a connection you separately allowed to propose changes: that is an unticked box on the consent screen, and a connection approved without it can only read.
What it cannot do
It cannot trade. It cannot move, withdraw or transfer anything. It cannot connect or disconnect a source, change any other setting, or read your exchange API keys. Those are not permissions we chose not to grant; they are paths that do not exist in the connector at all. Every read is a GET against a fixed allowlist, and the two kinds of proposal it can make wait for your click.
The token it holds is also useless anywhere else. It is signed in its own domain, separate from the one that signs app sessions, so it cannot be replayed as a login.
If you have more than one portfolio
A connection belongs to your account, and you choose which portfolio it reads by default on the consent screen. Pin it to one, and it reads that portfolio whatever is active in the app; leave it on the default, and it follows whichever portfolio is active, so switching in the app changes what the assistant sees. You can change the choice later in Settings, under Connections.
You can also name another of your portfolios in a question, like “what is in my trading account”. The assistant reads that one for that question only, without switching anything in the app. With a single portfolio, which is most accounts, there is nothing to think about here.
Disconnecting
In the app, open Settings, then Connections. Every connected app is listed with when it was approved and when it last read anything. Disconnecting takes effect on the next call, not at the end of some session. Signing out of every device revokes them all at once, and deleting your account takes them with it.
What it costs
Nothing. The connector is free on every account, including the free tier, and it does not consume any AI credit of ours: the assistant you connect is doing the talking, and we are only answering for the data. The two Pro tools stay Pro, exactly as those surfaces do in the app.
Something not working? Read the FAQ or email support@whereitgoes.money.
See where it goes.
Connect read-only in minutes. No KYC, no sign-up forms.