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/mcpClaude 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.