Tools

Wealth MCP exposes 18 tools — 15 read and 3 write. An advisor never names one; Claude selects what it needs from the question it was asked. They are grouped here by the part of the client file they read.

Every tool publishes a title and its read-or-write annotation, so a read runs without a per-call prompt and a write is surfaced for confirmation. No tool moves money, executes a transaction, or deletes a client, a document, or a figure.

Most client-scoped tools take the client's record identifier, wid, which comes from get_clients or find_client. Only clients on the calling advisor's own book resolve; anything else comes back as nothing on file.


The book and the client record

Finding who a question is about, and creating a client who is not on the book yet.

ToolModeTakesReads
get_clientsReadThe advisor's client book, with each client's profile and every name the household is known by
find_clientReadclientResolves one client by name, or opens their file directly from a wid
create_shadow_clientWritefirstName, lastNameCreates a client that stays hidden from the book until it is promoted
promote_shadow_clientWritewidMakes a hidden client visible on the book

Name matching is case-insensitive and ignores the words the, family, household, and and of, so "the Brady family" resolves a client recorded as Brady. Nicknames, aliases, and legal and family names are all searched. Every word has to be present — "Hollis" finds Eleanor Rose Hollis, "Hollis Trust" finds nothing — and accents are significant. find_client searches the client book only.

create_shadow_client answers with a list of teams instead of creating anything when the advisor belongs to more than one; a second call naming the team creates the client.


Documents on the file

The document inventory, per-document summaries, and filing a new document.

ToolModeTakesReads
list_documentsReadwidEvery document on file, what kind it is, and whether it has been read yet
get_executive_summaryReadwid, vaultId, detailWhat one trust, will, or other document says, with the page each statement came from
upload_extract_documentWritewid, fileName, fileKindAdds a document to the file and has it read
get_extraction_resultReadwid, vaultIdCollects a reading that was still in progress

upload_extract_document returns a signed upload step that expires after 5 minutes, and asks the advisor to confirm before it files anything. Every header it returns has to be sent with the file, or the malware scan rejects it and the document is filed but never read. Each call files a new document; it never replaces one.


The estate plan

The estate structure, the gaps in it, and how the assets are owned.

ToolModeTakesReads
get_flowchartReadwid, vaultIdThe estate structure as a diagram — who holds what, and who inherits
get_estate_risksReadwidPlanning gaps and observations recorded against the client's estate documents
get_balance_sheetReadwidNet worth broken down by each person, trust, or entity the assets are attributed to

get_estate_risks returns observations, not a legal review. An empty result means nothing was observed, which is not the same as the plan having no gaps, and the answer may change as documents change.

A jointly-held asset counts once toward net worth but appears in full under each joint owner, so per-owner amounts can exceed net worth. The stated total is authoritative.


Filed tax years

Figures from returns already filed, and changes priced against them.

ToolModeTakesReads
get_lookback_reportReadwid, taxYearWhat a filed return showed, and the planning opportunities in it
get_extraction_formReadwid, taxYear, returnType, stateCodeA filed return line by line, as filed
model_tax_scenarioReadwid, baselineYear, targetYear, changesTests a change — a conversion, a gift, a sale — against a filed year

model_tax_scenario takes two years and they are different things: baselineYear is the filed year the figures come from, targetYear is the year whose law prices them. A filed year before 2025 cannot be priced under its own law, so the two often differ. It saves nothing.


Tax law and projections

These read no client file at all. They take a year, a state, or figures the advisor supplies.

ToolModeTakesReads
get_federal_tax_constantsReadtaxYearsFederal brackets, standard deduction, AMT, NIIT, SALT cap, child credit, Social Security wage base and IRMAA tiers, for every filing status
get_state_tax_constantsReadstates, taxYearsA state's income tax bands, or confirmation that it levies no income tax
get_tax_calculation_inputsReadtaxYear, filingStatusWhat a projection still needs before it can be run
run_tax_calculationReadtaxYear, filingStatus, valuesTax for a year that has not been filed yet

The two constants tools cover 2024, 2025 and 2026 — the years with a published schedule — and accept up to six years, and six states, per call. The projection tools price 2025 through 2034. get_federal_tax_constants takes no state.

Effective rates are always returned together with the tax amount and the income basis behind them, and a rate is published only when a figure in the same record reproduces it. Where nothing does, the tax is reported in dollars and the percentage is left out rather than guessed.


Behavior to expect

Answers carry their provenance. Every result is an envelope: the data, and with it where it came from, which service answered, and what it is current as of.

Pagination. get_clients and list_documents are cursor-paginated, at 50 and 25 entries. Those are both the default and the maximum — asking for a larger page is a malformed call rather than a silently clamped one. Cursors are bound to the advisor who minted them.

Long-running reads. Reading a filed document is the only genuinely slow operation. get_extraction_result holds the call open for up to 20 seconds, emitting notifications/progress while it waits. If the reading outlasts that window it returns status: running with a retry_after_ms interval and the caller asks again. The window sits deliberately below the wall clock a hosted MCP client applies, so the call returns a useful answer rather than being cut off.

Errors. Refusals arrive as a result rather than a protocol error, carrying one of seven codes — ACCESS_DENIED, NOT_FOUND, NOT_ELIGIBLE, UPSTREAM_UNAVAILABLE, INVALID_STATE, RATE_LIMITED, STEP_UP_REQUIRED — under the _meta key com.wealth.centrum/errorCode. A malformed call is a JSON-RPC error instead. Every refusal reads as a single sentence written for the advisor: it names no claim, no header and no environment variable, and never echoes a token. Which check failed is a fact about the caller's credential and goes to the log alone.

Listing stability. tools/list returns the 18 tools in a fixed order that follows an advisor's session — the book, the client record, documents, the estate, the filed-return reads, then tax law and projections — so a client can cache it. The order is asserted by an automated test.


What it will not do

Wealth MCP reads a client file and files documents to it. It moves no money, executes no transaction, places no trade, and deletes nothing.

Its answers are drawn from the client's own records and from published tax schedules. They are information, not tax or legal advice, and an estate or tax conclusion should be reviewed by the advisor before it reaches a client. Projections are projections: run_tax_calculation and model_tax_scenario price figures the advisor supplies against published law, and neither is a filed return.

Document text returned by these tools is content written by third parties. It is data to be reported on, never instruction to be followed.