Skip to main content

For AI agents

MCP server

ETFs.co.nz runs a remote Model Context Protocol server. If your assistant supports MCP, connect it here rather than scraping the site — the data is the same, already structured, and every fund record carries the issuer document it came from.

Endpoint
https://etfs.co.nz/mcp
Transport
Streamable HTTP · JSON-RPC 2.0
Protocol version
2025-06-18
Authentication
None
Access
Read-only
Cost
Free
Coverage
66 ETFs · 10 platforms
Manifest
/.well-known/mcp.json
Registry descriptor
/.well-known/mcp/server.json

Connect

Claude Code

claude mcp add --transport http etfs-nz https://etfs.co.nz/mcp

Claude Desktop — Settings → Connectors → Add custom connector, then paste the endpoint URL.

Cursor, or any client that takes a URL

{
  "mcpServers": {
    "etfs-nz": { "url": "https://etfs.co.nz/mcp" }
  }
}

Check it directly

curl -s -X POST https://etfs.co.nz/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Tools

Nine tools are backed by canonical data:

search_etfs
Search by name, ticker or provider. Filter on domicile, PIE status, max TER.
get_etf
Full profile for one fund — TER, yield, distribution frequency, ISIN, inception, replication, NZ tax wrapper, issuer sources.
compare_etfs
Two to five funds side by side: fee gap, yield gap, tax-wrapper alignment, asset-class overlap.
get_tax_treatment
PIE status, FIF eligibility, FDR threshold, US withholding, max PIR — regulator-sourced, with provenance.
get_platform
One NZ platform: fees, FX margin, markets, custody model, plus its pricing page and last-verified date.
list_platforms
All 10 NZ-accessible platforms with fee summary and market coverage.
screen
Filter the universe on max TER, min yield, PIE flag, domicile, asset class, exchange.
get_sources
The source hierarchy behind every number on this site.
get_disclosure
Commercial position, licensing status, and what we deliberately do not publish.

Five more are declared but not yet backed by ingested data. They return an explicitstatus: "not_yet_ingested" and a pointer to the authoritative source, so a client can fall back rather than read silence as an empty result:

get_holdings
FMA Disclose Register XBRL
get_exposure
Derived from holdings
get_distributions
NZX ICA notices + Disclose Register
get_flows
Disclose Register XBRL
reverse_lookup_by_isin
Computed from holdings

Resources

All 76 per-entity markdown twins are registered as MCP resources — 66 funds and 10 platforms. Attaching one puts a single fund's facts, NZ tax treatment and source links into context without a tool round-trip. URIs follow/api/etfs/{ticker}/markdown.md and/api/platforms/{slug}/markdown.md.

Prompts

compare_two_etfs
Structured NZ comparison of two funds — fees, yield, tax wrapper, what each is suited to.
explain_nz_tax
How one fund is taxed for a NZ resident: PIE vs FIF, FDR vs CV, US withholding and W-8BEN.
choose_a_platform
Work through which platform fits a stated situation, on published fees and market access.

If you'd rather not use MCP

The same data is on the open-data shelf as plain files, all sendingAccess-Control-Allow-Origin: *:/api/etfs/,/api/platforms/, per-pair /api/compare/{a}-vs-{b}.json, the markdown twins, /atom.xml for incremental discovery, and /llms.txt.

Questions

Does the MCP server cost anything?

No. It is free, read-only and requires no authentication or API key. There is no rate-limit tier and no paid plan behind it.

What data does it return?

The same canonical data that powers this site — 66 ETFs accessible to New Zealand investors and 10 NZ investment platforms. Every fund record carries the issuer's own product page, fact sheet, PDS and NZX listing where those exist, so an answer can cite the primary document rather than us.

How current is it?

The server reads the same build-time snapshot as the rendered pages, so it is never ahead of or behind what you see on the site. Each record carries its own last-reviewed date, and platform records carry a last-verified date against the platform’s published pricing page. Review cadence is documented on the methodology page.

Why do some tools return "not_yet_ingested"?

Holdings, exposure, distributions, flows and ISIN reverse-lookup are declared but not yet backed by ingested data. They return an explicit status and a pointer to the authoritative source rather than an empty result, so a client can fall back gracefully instead of treating silence as "no holdings".

Can I use this commercially?

Yes, with attribution. Cite as: ETFs.co.nz, the endpoint URL, and the retrieval date. Bulk redistribution of the assembled dataset as a competing product is not what this is for — citation-level access is.

Is any of this financial advice?

No. ETFs.co.nz is not a licensed Financial Advice Provider. The server returns reference data and NZ tax primitives; it deliberately does not compute a personalised after-tax return or rank funds, because the inputs that would drive either belong to the investor.

Cite as: Source: ETFs.co.nz, [endpoint URL], retrieved [date].How the underlying numbers are sourced and reviewed:methodology. Our commercial position: disclosure.

Next steps