Skip to content

For agents

The same guide is available as markdown.

The Bitcoin Adviser, for agents

Guide version 1. Generated 2026-10-18. Registry revision c23b3b6e18ac.

This is the published reference for the tools on this site. It is generated when the site is built. It is not a daily report, and a sitemap date is not evidence that a page or a tool changed.

The client's vault has three keys: the client controls one, The Bitcoin Adviser controls one as key agent, and the vault company (Theya or Unchained) controls the third. Only the client can initiate a transaction. Two of the three keys must approve a transaction before the Bitcoin can move.

Services

Links use the pages' own names. Calculators are the live tools. This guide does not embed a Bitcoin price.

Approved claims

We've been helping clients secure their bitcoin for over 10 years, with The Bitcoin Adviser officially launching in 2023. We now support over 700 clients and thousands of bitcoin held in collaborative self-custody. (approved 2026-10-11; source: https://thebitcoinadviser.com/facts)

  • Officially launched in 2023 (source: https://thebitcoinadviser.com/facts)
  • Helping clients secure their bitcoin for over 10 years (source: https://thebitcoinadviser.com/facts)
  • Over 700 clients (source: https://thebitcoinadviser.com/facts)
  • 25+ advisers globally (source: https://thebitcoinadviser.com/facts)
  • Thousands of bitcoin held in collaborative self-custody (source: https://thebitcoinadviser.com/facts)

How to call

POST https://thebitcoinadviser.com/mcp with protocol 2026-07-28 preferred (Streamable HTTP). Older clients may use 2025-06-18 on the same endpoint; it is not a second API. The machine-readable list is https://thebitcoinadviser.com/tools-manifest (advertises 2026-07-28). This guide is https://thebitcoinadviser.com/for-agents.

A short-lived legacy GET with Accept: text/event-stream may open an SSE listen stream (keep-alives only, bounded lifetime) for older connectors; tools are still invoked with POST. Modern protocol 2026-07-28 does not use standalone GET streaming.

A client on either supported protocol can list and call the same tools. Other protocol versions are rejected.

Unknown arguments are an error. An empty list from find_answer means no published answer, which is different from a rejected call.

Callable tools

28 operations are callable through MCP. The list is the registry, not a fixed count.

  • `find_answer`
  • `search_articles`
  • `get_article`
  • `find_related_content`
  • `choose_path`
  • `choose_security_path`
  • `choose_retirement_path`
  • `choose_us_path`
  • `calculate_retirement_scenario`
  • `explain_retirement_scenario`
  • `compare_growth`
  • `convert_fiat_to_sats`
  • `borrow_vs_sell`
  • `read_market_position`
  • `read_supply_schedule`
  • `estimate_transaction_fee`
  • `estimate_referral_earnings`
  • `explain_referral_program`
  • `find_adviser`
  • `open_playbook`
  • `check_security_posture`
  • `assess_risk`
  • `explain_gap`
  • `read_warning`
  • `draft_will_starter`
  • `prepare_enquiry`
  • `prepare_referral_application`
  • `prepare_terms_request`

find_answer

Find an answer in the knowledge base. Searches The Bitcoin Adviser's published knowledge base and returns up to five answers, word for word as the site publishes them, best first.

State: Callable through MCP.

Arguments:

- `query`: string

- `id`: string

- `topic`: basics | control | continuity | income | retirement | us | fees | operations | onboarding | professionals | referrals

- `audience`: individual | family | client | professional | business

- `jurisdiction`: global | AU | US

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `find_answer`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

search_articles

Search the Journal's articles. Searches the published articles in The Bitcoin Adviser's Journal (articles and guides, from 2023 on) and returns a handful, best first: title, a short excerpt, topics, editorial type, author, original publish date, substantive update date and canonical url.

State: Callable through MCP.

Arguments:

- `query` (required): string

- `topic`: basics | control | continuity | income | retirement | us | fees | operations | onboarding | professionals | referrals

- `type`: evergreen-explanation | practical-guide | commentary | research | historical-reporting | time-sensitive-analysis

- `limit`: integer

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `search_articles`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

get_article

Read one Journal article. Opens one published article from The Bitcoin Adviser's Journal by its slug or url, and returns its author, original publish date, update date, editorial type, canonical url and the anchors of its sections.

State: Callable through MCP.

Arguments:

- `slug` (required): string

- `section`: string

- `full`: boolean

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `get_article`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

find_related_content

Find related answers, articles and pages. For a question (query) or one Journal article (slug or url), returns what The Bitcoin Adviser publishes on the subject: approved answers first, then Journal articles, then the guides, pages and tools they point to.

State: Callable through MCP.

Arguments:

- `query`: string

- `slug`: string

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `find_related_content`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

choose_path

Choose a path. Routes a visitor to the right starting point from their situation.

State: Callable through MCP.

Arguments:

- `situation` (required): protect-for-family | adviser | something-wrong | inherited

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `choose_path`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

choose_security_path

Choose a Security Centre path. Routes a Security Centre concern to its one next room.

State: Callable through MCP.

Arguments:

- `concern` (required): digital-life | holding-unsure | family-recovery

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `choose_security_path`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

choose_retirement_path

Choose a retirement path. Routes by the retirement system the visitor is working with, not by where they live.

State: Callable through MCP.

Arguments:

- `system` (required): united-states | australia | other

- `smsfEstablished`: boolean

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `choose_retirement_path`, with those arguments inside `arguments`.

Refuses: advice.

choose_us_path

Choose a U.S. starting point. Routes a U.S. visitor by situation to The Bitcoin Adviser's U.S. guidance first: a primary page, related pages, a reason quoted from the primary page, the tax year where the guidance is dated, and an optional enquiry.

State: Callable through MCP.

Arguments:

- `situation` (required): family-future | estate-or-incapacity | retirement-account | family-office | tax-reporting

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `choose_us_path`, with those arguments inside `arguments`.

Refuses: advice.

calculate_retirement_scenario

Calculate a retirement scenario. Illustrates how many years Bitcoin holdings plus monthly contributions might take to support a target annual income.

State: Callable through MCP.

Arguments:

- `currency` (required): USD | AUD

- `currentBtc`: number

- `monthlyContribution`: number

- `targetIncome`: number

- `btcPrice`: number

- `scenario`: conservative | base | aggressive

- `inflationToggle`: boolean

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `calculate_retirement_scenario`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

explain_retirement_scenario

Explain a retirement scenario. Runs calculate_retirement_scenario itself and explains the result in plain English.

State: Callable through MCP.

Arguments:

- `currency` (required): USD | AUD

- `currentBtc`: number

- `monthlyContribution`: number

- `targetIncome`: number

- `btcPrice`: number

- `scenario`: conservative | base | aggressive

- `inflationToggle`: boolean

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `explain_retirement_scenario`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

compare_growth

Compare Bitcoin accumulation with cash savings. Illustrates how a lump sum plus monthly contributions might grow in Bitcoin compared with cash savings, nominal and after inflation.

State: Callable through MCP.

Arguments:

- `currency`: USD | EUR | GBP | AUD | JPY

- `scenario`: conservative | base | aggressive | bear

- `initialAmount`: number

- `monthlyContribution`: number

- `years`: number

- `inflationPct`: number

- `bitcoinCagrPct`: number

- `savingsPct`: number

- `btcPrice`: number

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `compare_growth`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

convert_fiat_to_sats

Convert fiat to sats. Converts an amount of USD, AUD, EUR or GBP into sats at The Bitcoin Adviser's cached spot price (or a fixed fallback when the spot is unavailable), and returns the same conversion for a small basket of everyday items.

State: Callable through MCP.

Arguments:

- `amount`: number

- `currency`: usd | aud | eur | gbp

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `convert_fiat_to_sats`, with those arguments inside `arguments`.

Refuses: advice, allocation.

borrow_vs_sell

Compare selling Bitcoin with borrowing against it. Illustrates the liquidity from selling an amount of Bitcoin after tax, against borrowing on it as collateral, and what each leaves at a later price.

State: Callable through MCP.

Arguments:

- `btcAmount`: number

- `horizon`: flat | up50 | up100 | stress30 | stress50

- `taxRegion`: us | au

- `taxRatePct`: number

- `mode`: btc_to_btc | fiat_loan

- `ltvPct`: number

- `interestRatePct`: number

- `termYears`: number

- `btcPriceUsd`: number

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `borrow_vs_sell`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

value_bitcoin_on_date

Value Bitcoin on a past date. Milestone.

State: Planned, not callable.

Arguments:

- `date` (required): string

- `btcAmount`: number

- `currency`: aud | usd | eur | gbp

No call recipe. This operation cannot be invoked over MCP.

Refuses: allocation.

read_market_position

Read the Bitcoin market position. The Bitcoin market observatory's reading (/dashboard): the Bitcoin price in AUD, USD, EUR or GBP (default AUD), the Mayer Multiple (price over the mean of the 200 completed UTC daily USD closes, unavailable if any of those days is missing) and the position against the published Power Law model trend (USD, σ 0.2).

State: Callable through MCP.

Arguments:

- `currency`: aud | usd | eur | gbp

- `day`: string

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `read_market_position`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

read_supply_schedule

Read Bitcoin's supply schedule. Bitcoin's scheduled cumulative block subsidy through a block height (the dashboard's Supply drawer), from the consensus rule alone: 50 BTC halved every 210,000 blocks, zero from the 64th halving, 2,099,999,997,690,000 sats in all.

State: Callable through MCP.

Arguments:

- `height`: integer

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `read_supply_schedule`, with those arguments inside `arguments`.

Refuses: advice.

estimate_transaction_fee

Estimate a Bitcoin transaction fee. Estimates a Bitcoin network fee as virtual size × fee rate (the dashboard's fee estimator).

State: Callable through MCP.

Arguments:

- `pattern`: p2wpkh | p2tr | p2wsh-2of3 | p2sh-p2wsh-2of3

- `inputs`: integer

- `outputs`: integer

- `vbytes`: integer

- `priority`: fastest | halfHour | hour | economy

- `feeRate`: number

- `currency`: aud | usd | eur | gbp

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `estimate_transaction_fee`, with those arguments inside `arguments`.

Refuses: advice.

read_treasury_reality_check

Read the treasury company Reality Check. Bitcoin treasury company shares (Strategy, Metaplanet, Strive) against holding Bitcoin, from TBA Console's weekly verified closes: the share-price return, the return relative to BTC in the same currency ((1 + share) / (1 + BTC) − 1, the primary measure), and Loan My Coins' Reality Check scenario after its 5% fee (0.95 × (1 + share) / (1 + BTC) − 1 BTC per 1 BTC staked), over 1 week and 1, 3, 6 and 12 months.

State: Planned, not callable.

Arguments:

- `period`: 1w | 1m | 3m | 6m | 1y

No call recipe. This operation cannot be invoked over MCP.

Refuses: advice, allocation.

estimate_referral_earnings

Illustrate referral programme earnings. Illustrates potential Referral Fees under The Bitcoin Adviser's standard referral programme terms.

State: Callable through MCP.

Arguments:

- `mode`: recurring

- `terms`: current

- `clientsPerMonth`: number

- `btcPerClient`: number

- `years`: integer

- `existingBookBtc`: number

- `firstDeposit`: string

- `measuredBtc`: number

- `btcPriceUsd`: number

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `estimate_referral_earnings`, with those arguments inside `arguments`.

Refuses: advice, allocation, price.

explain_referral_program

Explain the referral programme. Returns the standard terms The Bitcoin Adviser offers new referral partners, as recorded from the agreement: each rule in plain words with its clause, and the terms version they come from.

State: Callable through MCP.

Arguments:

- No arguments.

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `explain_referral_program`, with those arguments inside `arguments`.

Refuses: advice.

find_adviser

Find an adviser. Shortlists advisers of The Bitcoin Adviser whose recorded details confirm what was asked.

State: Callable through MCP.

Arguments:

- `audience`: holder | professional | media

- `need`: smsf | ira | custody | education | inheritance | corporate | family_office

- `language`: en | es | fr | it | de | nl | ja

- `market`: americas | au-nz | europe | japan | africa

- `all`: boolean

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `find_adviser`, with those arguments inside `arguments`.

Refuses: advice.

open_playbook

Open a playbook. Returns a versioned Security Centre playbook: checklist groups and items with citations, plus the readiness questions explain_gap accepts.

State: Callable through MCP.

Arguments:

- `playbookId`: trezor-collaborative-security

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `open_playbook`, with those arguments inside `arguments`.

Refuses: seed, private-key, custody, advice.

check_security_posture

Check security posture. Names the one security layer that needs attention (perimeter, holding, control, or continuity) and one next room, from enumerated answers.

State: Callable through MCP.

Arguments:

- `answers` (required): object

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `check_security_posture`, with those arguments inside `arguments`.

Refuses: seed, private-key, allocation, price, custody, advice.

assess_risk

Assess bitcoin security risk. The full Bitcoin risk assessment: from enumerated answers across the four layers (perimeter, holding, control, continuity), returns every finding in priority order (priority exposure, continuity gap, improvement) with what it means, why it matters and one guide, then each layer's status and a summary.

State: Callable through MCP.

Arguments:

- `answers` (required): object

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `assess_risk`, with those arguments inside `arguments`.

Refuses: seed, private-key, allocation, price, custody, advice.

explain_gap

Explain a readiness or posture gap. Reads validated answers, either readiness answers for a playbook (answers) or security posture answers (posture, the same shape check_security_posture takes).

State: Callable through MCP.

Arguments:

- `playbookId`: trezor-collaborative-security

- `answers`: object

- `posture`: object

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `explain_gap`, with those arguments inside `arguments`.

Refuses: seed, private-key, allocation, price, custody, advice.

read_warning

Read the security warnings desk. Returns the published warnings register: four evergreen threat types (what multisig limits and what it does not stop), then each published incident with its reviewed state (active or historical), its review freshness (current, or overdue once its review-by date passes), who it applies to, statuses, facts, the recommended action, evidence, dates, review owner and source link.

State: Callable through MCP.

Arguments:

- `warningId`: string

- `state`: active | historical

- `threatType`: supply-chain | seed-generation | firmware | impersonation

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `read_warning`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

draft_will_starter

Draft a Bitcoin Will Starter. Builds the Bitcoin Will Starter's structured draft: a Bitcoin-aware starting point to take to a lawyer where the person lives.

State: Callable through MCP.

Arguments:

- `jurisdiction` (required): us | au | uk | ca | de | eu | sg | other

- `date`: string

- `address`: string

- `usState`: string

- `governingLaw`: string

- `fullName`: string

- `spouse`: string

- `childrenCount`: string

- `children`: string

- `digitalShare`: string

- `digitalPrimary`: string

- `digitalContingent`: string

- `residuaryPrimary`: string

- `residuaryContingent`: string

- `executor`: string

- `executorLocation`: string

- `alternateExecutor`: string

- `guardian`: string

- `alternateGuardian`: string

- `signatureDay`: string

- `signatureMonth`: string

- `signatureYear`: string

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `draft_will_starter`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

prepare_enquiry

Prepare an enquiry. Returns the validated path and source context for the client enquiry form, and where a person can complete it.

State: Callable through MCP.

Arguments:

- `path`: collaborative-security | inheritance | emergency | professional | general | referral

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `prepare_enquiry`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

prepare_referral_application

Prepare a referral partner application. Returns the client enquiry form for a referral programme enquiry (tba_path=referral) and where a person can complete it, with a validated audience (professional-adviser, community-partner, bitcoiner, or unspecified).

State: Callable through MCP.

Arguments:

- `audience`: professional-adviser | community-partner | bitcoiner | unspecified

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `prepare_referral_application`, with those arguments inside `arguments`.

Refuses: seed, private-key, advice.

prepare_terms_request

Prepare a terms request. Assembles a request for a person to review: who, which agreement, and an idempotency key.

State: Callable through MCP.

Arguments:

- `agreement` (required): client-terms

- `person` (required): object

Call:

- POST https://thebitcoinadviser.com/mcp

- Protocol 2026-07-28

- Tool `prepare_terms_request`, with those arguments inside `arguments`.

Name and email are accepted only after the person agrees. Do not invent an example. The tool does not send terms.

Refuses: seed, private-key, advice.

resolve_public_profile

Resolve a public profile. Catalogue milestone.

State: Planned, not callable.

Arguments:

- `slug` (required): string

No call recipe. This operation cannot be invoked over MCP.

Refuses: seed, private-key.

Hard rules

Education, not personalised advice. If the published source does not answer, say so and link the source. Do not invent the rest.

Do not ask for a seed phrase or a private key.

Do not submit a form or send terms. prepare_enquiry, prepare_referral_application and prepare_terms_request hand the person the form. The person reviews and submits on the site.

A personal situation goes to a Security Review at https://thebitcoinadviser.com/contact.

A security check names gaps. It never calls an arrangement safe, and it gives no score.

Two-of-three approval is not permission for any two keyholders to start and complete a client transaction. Only the client can initiate.

Quote the English source and link it when answering in another language.

draft_will_starter is a starter for a lawyer to review. It is not a will or legal advice.