# How to Use the MarketXLS MCP to Build Portfolio Reports (Financial Advisors)
> Wire MarketXLS's portfolio + market-data APIs into Claude via MCP, then chain it for quarterly client letters that explain returns in plain English — without the compliance pitfalls of generic AI.
**Author:** [Alex Lowe](https://theaicareerlab.com/about) — Founder, The AI Career Lab
**Published:** 2026-05-24
**Canonical URL:** https://theaicareerlab.com/blog/marketxls-mcp-financial-advisors-portfolio-reports
**Profession:** financial-advisor
**Category:** how-to
**Tags:** financial advisor, financial planner, MCP, MarketXLS, portfolio reporting, quarterly client letter, agentic AI, compliance, 2026
---A solo or small-RIA quarterly letter is one of the most-leveraged comms an advisor ships. It lands in every client's inbox simultaneously, sets expectations for the year ahead, justifies the fee, surfaces tax-loss-harvesting opportunities, and — if you're doing it right — references each client's portfolio specifics in a way that feels personal.

The work cost is brutal. A 40-client book typically eats 15–25 hours per quarter on letter drafting, performance commentary, and the inevitable round of "can you explain what 'sequence-of-returns risk' means again?" follow-ups.

[MarketXLS](https://marketxls.com) is the market-data + Excel-analytics platform that wraps Refinitiv-grade data into a usable surface for advisors. Its MCP-style API access lets Claude pull the underlying portfolio analytics for an agentic loop. Combined with the [AI Cowork Vault Bundle](https://clowealex.gumroad.com/l/tjttha), you get plain-English client letters that reference each portfolio's specifics in your firm voice.

> 💡 **The stack.** MarketXLS MCP supplies the portfolio + market analytics. The [AI Cowork Vault Bundle](https://clowealex.gumroad.com/l/tjttha) provides the agentic skill scaffolding — currently no financial-advisor-specific vault, but the bundle's cross-profession skills (`/client-communication`, `/voice-keeper`) work fine. **$49 one-time** for all 7 vaults.

## What the MarketXLS MCP actually does

MarketXLS exposes ~150 functions across portfolio analytics, fundamental data, options analytics, technical indicators, ETF research, and economic-indicator pulls. For advisor workflow, the MCP-relevant subset:

- **`portfolio_performance`** — given a portfolio (holdings + cost basis), return YTD / quarterly / multi-year return, Sharpe ratio, beta, max drawdown
- **`benchmark_compare`** — compare portfolio against custom benchmark (60/40 or any blended index)
- **`fundamentals`** — PE, dividend yield, payout ratio, growth rates for individual holdings
- **`scenario_test`** — what happens to portfolio under stress scenario (2022-style drawdown, 2008-replay, rate-shock)
- **`tax_loss_candidates`** — holdings with unrealized losses, sorted by harvesting value

The MCP returns structured numbers. The advisor decides what to say about them.

## Pre-flight

- **Claude Cowork** (desktop) or **Claude Code** — Pro/Enterprise tier strongly recommended for client-data work
- A **MarketXLS subscription** with API access (their "Professional" tier and above)
- Your **client portfolio data** in a format Claude can read (CSV from your PMS, or paste-in)
- The **[AI Cowork Vault Bundle](https://clowealex.gumroad.com/l/tjttha)** for the client-comm skills

## Configure the MCP server

```json
{
  "mcpServers": {
    "marketxls": {
      "command": "npx",
      "args": ["-y", "@marketxls/mcp-server"],
      "env": {
        "MARKETXLS_API_KEY": "your-api-key"
      }
    }
  }
}
```

Restart Claude. MarketXLS connector should appear in your customize panel.

## Run the quarterly performance pull

For one client — say, the Anderson family with a ~$1.4M portfolio across taxable + IRA + Roth:

```text
Use the MarketXLS MCP:
1. Pull Q1 2026 performance for Anderson_Family portfolio (CSV attached)
2. Compare against my standard benchmark: 60% VTI + 30% BND + 10% VEA
3. Calculate YTD return, Q1 return, trailing 12-month, 3-year annualized
4. Identify holdings with unrealized losses > $1k (TLH candidates)
5. Run scenario test: what if 30-year rates spike 150 bps?
6. Return structured summary
```

MarketXLS returns the numbers. Claude formats. You scan for surprises (a holding that drawdown-ed worse than expected, a benchmark divergence that needs explanation).

## Draft the client letter

```text
/quarterly-client-letter
Client: Anderson Family (Bob and Mary, both 64)
Portfolio: $1.4M across taxable + traditional IRA + Roth
Performance summary: [paste MarketXLS pull from above]
Their priorities (from last meeting): preserve wealth, modest growth, generational transfer
Last quarter's specific question they asked: "Should we be more defensive given the election?"
Tone: warm, plain-English, no jargon. They are sophisticated but not finance people.
Length: 600-800 words
Compliance: standard RIA quarterly-letter framing; no specific predictions; 
  reference past performance disclaimer
```

The vault produces a draft. It opens with a sentence referencing their actual concern from last quarter (defensiveness given the election). It walks through the quarter's numbers in plain English. It addresses tax-loss harvesting opportunities (with a "let's discuss" framing, not a directive). It closes with the next-meeting offer.

You review the draft. The voice-keeper guard fires if it drifts into generic-advisor-letter territory ("uncertain times call for cautious optimism" — the kind of phrase you'd never write). You replace the one generic sentence the draft slipped in. You sign and queue for send.

## Chain into the family-meeting agenda

Same context, different output:

```text
/family-meeting-agenda
Family: Anderson
Last meeting: 2026-02-15
This meeting: scheduled 2026-05-30
Their priorities (carry over): preserve wealth, modest growth, generational transfer
This quarter's notable: [from MarketXLS pull above]
Open items from last meeting: [you fill in or vault loads from memory]
Time: 45 minutes
Format: in-person, with their adult son joining
```

Output: a structured agenda. Performance review (10 min). Their open questions (15 min). Generational transfer / estate items (15 min). Next-quarter logistics (5 min). The vault prompts you for items they specifically asked about; it doesn't invent topics.

## Chain into the TLH execution memo

When TLH candidates surface, the vault has a follow-up skill:

```text
/tlh-execution-memo
Client: Anderson Family
TLH candidates: [from MarketXLS pull]
Wash-sale considerations: my firm's standard 30-day wait + replacement-security map
Tax bracket context: [client's tax bracket]
Compliance: this is documentation for the file, not yet client-approved
```

A memo for your file documenting the proposed TLH trades, the reasoning, the wash-sale-compliant replacement securities, the estimated tax-deferred benefit. Goes into the client file before you reach out for verbal approval.

## The compliance + voice guards

Two things firing ambient:

- **Compliance phrasing guard** — the vault flags drafts that make forward predictions ("we expect rates will…"), specific performance guarantees, or anything that would trigger the SEC Marketing Rule. The guard doesn't replace your firm's compliance review; it catches the obvious before the draft hits compliance.
- **Voice-keeper guard** — generic-advisor-letter phrases (mentioned above). Catches the cliché before it ships.

## What this doesn't do

It doesn't replace your PMS reporting. The standard PDF performance report still comes from Orion / Black Diamond / Tamarac. The MCP-driven flow is for the *narrative* layer on top.

It doesn't render financial advice. The MCP returns data; the advisor's narrative is what's signed and sent. The advisor is responsible for the advice.

It doesn't autosend. Drafts queue for review.

## Common failure modes

- **Benchmark drift**. Your "standard 60/40" might not match the MCP's default 60/40. Always specify the exact benchmark composition; otherwise you get the vendor's default which may not be apples-to-apples.
- **Tax bracket inference**. The vault asks for tax bracket because it affects TLH framing; don't let it infer. Have it in the client setup data.
- **Voice drift on quarterly letters specifically**. Quarterly letters are the highest-volume use case and the voice guard tends to under-trigger on them (most letters sound similar across the industry). Feed 3 of your past letters as voice reference.
- **MarketXLS data lags**. For real-time options analytics there's a delay; for end-of-quarter performance pulls, fine.

## When you'd skip this stack

- **Sub-15 clients**. Manual letter writing for 15 clients is faster than the setup time.
- **You outsource client comms to a service like Snappy Kraken or AdvisorStream**. Those have their own AI-drafting; layering another is overkill.
- **Your compliance posture forbids AI in client comms**. Some BDs/RIAs have explicit policy; read it first.

## Sources

- MarketXLS: [Developer API documentation](https://marketxls.com/api-docs/)
- Anthropic: [Model Context Protocol (MCP) introduction](https://modelcontextprotocol.io)
- SEC: [Marketing Rule (Rule 206(4)-1)](https://www.sec.gov/investment/marketing-rule)
- FINRA: [Communications with the Public (Rule 2210)](https://www.finra.org/rules-guidance/rulebooks/finra-rules/2210)
## Frequently asked questions

### How does this compare to using Orion or Black Diamond?

Different layers. Orion / Black Diamond / Tamarac are performance-reporting platforms — they own the portfolio data and produce the standard PDF report. MarketXLS is a market-data + analytics tool (more like an Excel-with-superpowers stack), useful for ad-hoc analysis, custom benchmarks, scenario testing. The MCP-driven flow described here doesn't replace your PMS-reporting stack; it adds the narrative + plain-English explainer layer on top.

### Is this safe for a RIA fiduciary standard?

The output is what you sign and send — same standard as any draft from an associate. The agentic AI doesn't violate fiduciary duty; an advisor who fails to review the output before sending might. Document the review. Compliance Q (SEC Marketing Rule, FINRA correspondence rule, your specific advertising procedures) still applies to AI-drafted client comms; route the draft through the same review process you'd use for any newsletter or quarterly letter.

### What about citation accuracy on financial data?

MarketXLS data is licensed from primary providers (typically Refinitiv, FactSet, Morningstar depending on the field). Citation risk is in the *narrative* — AI can invent statistics if you don't ground it in the actual pull. The skill chain described here always passes the structured data into the narrative draft as context, so the narrative refers to numbers that actually came from MarketXLS. Still, spot-check before sending.

---

*Canonical version: https://theaicareerlab.com/blog/marketxls-mcp-financial-advisors-portfolio-reports*
*This document is the Markdown companion served for AI crawlers and answer engines. See the canonical URL for the rendered version with navigation, related content, and interactive elements.*