Fruit Stand Fund Returns

Trailing & calendar-year total returns for 32,000+ US mutual funds and ETFs — compare fund performance by ticker. Hosted remote MCP (Streamable HTTP), free tier; on the official MCP Registry as dev.fruitstand/fund-returns.

Documentation

Fruit Stand Fund Returns — MCP Server MCP server — quality and maintenance score on Glama smithery badge

Fruit Stand Fund Returns — MCP Server

Live trailing & calendar-year total returns for 32,000+ US mutual funds and ETFs, as an MCP server. Ask an AI assistant to compare fund performance by ticker — no Morningstar or Bloomberg contract, free tier, same API key as the REST API.

Hosted, remote MCP over Streamable HTTP · works with Claude, Cursor, and any MCP client · get a free API key

Comparing SPY, QQQ and VTI ETF returns through the Fruit Stand Fund Returns MCP server in Claude


Quick start

1. Get an API key

Sign up at app.fruitstand.dev — the free tier needs no card.

2. Point your client at the endpoint

https://api.fruitstand.dev/mcp

Remote MCP over Streamable HTTP, authenticated with your API key as a bearer token.

Native remote-MCP clients (Claude web/desktop "Add custom connector", Cursor, etc.) — use the URL above and add the header:

Authorization: Bearer YOUR_API_KEY

Claude Desktop config (claude_desktop_config.json) — bridge to the remote endpoint with mcp-remote:

{
  "mcpServers": {
    "fruit-stand": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://api.fruitstand.dev/mcp",
        "--header",
        "Authorization: Bearer YOUR_API_KEY"
      ]
    }
  }
}

Restart the client and the Fruit Stand tools appear.

Docker — the same bridge as a container (this repo's Dockerfile), for clients that take a docker command:

{
  "mcpServers": {
    "fruit-stand": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "-e", "FRUITSTAND_API_KEY", "ghcr.io/fruitstanddev/fruitstand-mcp"],
      "env": { "FRUITSTAND_API_KEY": "YOUR_API_KEY" }
    }
  }
}

The container only bridges stdio to api.fruitstand.dev/mcp — all data comes from the hosted server.

3. Ask a question

"Compare the 1-year, 5-year, and since-inception returns of SPY, QQQ, and VTI, and tell me which had the best 2022 calendar year."

The assistant calls batchTrailingReturns and batchCalendarReturns and summarizes.


Tools

Six tools, mirroring the REST API. Returns come back as decimal fractions (0.1234 = 12.34%).

ToolDoesKey inputs
searchFundsSearch / list the fund universe (keyset paginated)q, type, country, exchange, cursor, limit
getFundFund metadata by tickercode
getTrailingReturnsTrailing returns for one fund (latest or as-of a date)code, as_of?
batchTrailingReturnsTrailing returns for up to 100 funds in one callcodes[], as_of?
getCalendarReturnsCalendar-year return for one fund (latest or a given year)code, year?
batchCalendarReturnsCalendar-year returns for up to 100 funds in one callcodes[], year?

Tickers use the SYMBOL.US form (e.g. SPY.US, VTSAX.US).


About the data

  • Coverage: ~32,000 US mutual funds & ETFs.
  • Trailing returns: standard windows through since-inception, total return (distributions reinvested).
  • Calendar returns: full-year total return per calendar year.
  • Freshness: refreshed daily from the same pipeline that builds the Fruit Stand datasets on Snowflake Marketplace.
  • Methodology & field reference: app.fruitstand.dev/api/mcp and the docs.

MCP tool calls are metered exactly like REST calls and count against your monthly quota. A key with no active plan gets a 403 on tool calls.


Links

License

MIT — this repo holds the public docs and connector metadata for the hosted service; the service implementation lives in a separate repo.