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.
概览
远程 MCP 服务器,让助手读取你自己的加密资产组合:持仓、流水、FIFO 盈亏、手续费、收益与风险。
- 可以做什么
- 汇总整个组合:总价值、配置、集中度、近期变化与同步状态
- 列出持仓以及已连接的交易所和钱包,密钥仅显示掩码提示
- 检索流水账本:充值、提现、转账、法币进出与资金流
- 报告业绩:真实盈亏、每日价值历史、按交易对排序的已实现盈亏、收益与手续费
- 查看交易活动、重要变化、目标配置、提醒,Pro 账户还可看风险指标与健康评分
- 以提案形式起草目标配置或提醒变更,由你在浏览器中确认
- 适用场景
- 适合已在 WhereItGoes 中跟踪加密资产组合、希望助手用真实计算数据而非截图回答“我持有什么”“上月充值多少”“手续费多少”“今年是否盈利”等问题的用户。
- 运行要求
- 远程 Streamable HTTP 端点,无需本地安装。需要一个 WhereItGoes 账户,并至少连接一个交易所或钱包。通过 OAuth 2.1 授权码加 PKCE 并在同意页面批准。两个仅提案工具需单独授予 portfolio:write 权限范围。
安装
在 SourceWeft 中
- 打开 控制台中的 WhereItGoes,将其添加到工作区。
- 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
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.
- 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/portfolioin 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.
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.
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
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
- Open Settings > Connectors > Add custom connector.
- Paste
https://api.whereitgoes.money/api/mcp. - A WhereItGoes consent screen opens in your browser. Approve it.
ChatGPT
- Open Settings > Apps & Connectors > Advanced and turn on developer mode.
- Create a connector with the URL
https://api.whereitgoes.money/api/mcpand OAuth as the authentication method. - 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:
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
- Setup guide: whereitgoes.money/connect-ai
- Security overview: whereitgoes.money/security
- Email: [email protected]
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版本历史
2- v1.2.0最新Oct 23, 2026
- v1.1.2Oct 23, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分