Fruit Stand Fund Returns

Trailing & calendar-year returns for 32,000+ US mutual funds & ETFs — fund performance by ticker.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
80%
Qualität der Benennung
93%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~2,151Tokens (Tool-Definitionen)
~2.8 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (1.68% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "fund-returns": {
      "url": "https://api.fruitstand.dev/mcp"
    }
  }
}

Remote-Endpunkte

https://api.fruitstand.dev/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (6)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢searchFunds(queryParams)

Search the ~32,000 US mutual funds and ETFs by name or ticker to get the `code` the other tools need. Returns fund metadata only — name, type (ETF or FUND), exchange, currency, ISIN, and the date range with return data — plus `next_cursor` for keyset paging. No performance figures here; use getTrailingReturns / getCalendarReturns for those.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "queryParams": {
      "type": "object",
      "properties": {
        "q": {
          "description": "Case-insensitive substring match on ticker or fund name (e.g. `vanguard 500`, `SPY`). Omit to list every fund.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "type": {
          "description": "Filter by security type: `ETF` or `FUND` (mutual fund). Matched exactly.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "country": {
          "description": "Filter by domicile country as stored (e.g. `USA`). Exact match.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "exchange": {
          "description": "Filter by listing exchange as stored (e.g. `NYSE ARCA`, `NASDAQ`). Exact match.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "cursor": {
          "description": "Keyset pagination cursor: the `next_cursor` from the previous response. Omit for the first page.",
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "limit": {
          "description": "Page size, 1–1000. Defaults to 100.",
          "default": 0,
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "queryParams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢getFund(queryParams, pathParams)

Fetch one fund's metadata by ticker (`code`): name, type (ETF or FUND), exchange, currency, ISIN, active/inactive status, and the date range for which return data exists. Returns 404 if the ticker is unknown. Use searchFunds to resolve a name to a code; use the returns tools for performance.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "queryParams": {
      "type": "object",
      "properties": {
        "market": {
          "description": "Market/exchange code for the fund. Defaults to US — all funds are currently US-listed and `code` is a bare ticker (e.g. SPY), so this is informational and does not affect lookups. Reserved for future multi-market support.",
          "default": "US",
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "pathParams": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first."
        }
      },
      "required": [
        "code"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "queryParams",
    "pathParams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪getTrailingReturns(queryParams, pathParams)

Trailing total returns for one fund: 1d, 1w, 1m, 3m, 6m, YTD, 1y-20y, and since inception. Latest by default, or pass `as_of` (snaps to the prior trading day). Values are decimal fractions of total return, distributions reinvested (0.1234 = +12.34%); 2y and longer are annualized (CAGR). Use batchTrailingReturns for many funds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "queryParams": {
      "type": "object",
      "properties": {
        "market": {
          "description": "Market/exchange code for the fund. Defaults to US — all funds are currently US-listed and `code` is a bare ticker (e.g. SPY), so this is informational and does not affect lookups. Reserved for future multi-market support.",
          "default": "US",
          "type": "string"
        },
        "as_of": {
          "description": "Return the figures as of this date (`YYYY-MM-DD`). On a weekend or market holiday it snaps back to the nearest prior trading day — the response's `as_of_date` shows the day actually used. Omit for the latest available data.",
          "anyOf": [
            {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "pathParams": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first."
        }
      },
      "required": [
        "code"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "queryParams",
    "pathParams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪batchTrailingReturns(body)

Trailing total returns for up to 100 funds in one call - same data as getTrailingReturns. Pass `codes` and optional `as_of`. One row per fund; funds with no data are omitted and order is not guaranteed, so match on `code`. Values are decimal fractions, total return, distributions reinvested. Use this to compare or screen funds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "codes": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "1–100 bare tickers, case-sensitive, e.g. [\"SPY\", \"QQQ\", \"VTSAX\"]."
        },
        "market": {
          "default": "US",
          "description": "Market/exchange code for the funds. Defaults to US; informational and does not affect lookups (codes are bare tickers). Reserved for future multi-market support.",
          "type": "string"
        },
        "as_of": {
          "anyOf": [
            {
              "type": "string",
              "format": "date",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "codes"
      ],
      "additionalProperties": {}
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪getCalendarReturns(queryParams, pathParams)

Full calendar-year (Jan-Dec) total return for one fund. Pass `year`, or omit for the latest completed year. `calendar_year_return` is a decimal fraction, distributions reinvested (0.263 = +26.3%); `base_date`/`end_date` give the actual span (partial in launch/delist years). Use getTrailingReturns for rolling windows.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "queryParams": {
      "type": "object",
      "properties": {
        "market": {
          "description": "Market/exchange code for the fund. Defaults to US — all funds are currently US-listed and `code` is a bare ticker (e.g. SPY), so this is informational and does not affect lookups. Reserved for future multi-market support.",
          "default": "US",
          "type": "string"
        },
        "year": {
          "description": "A four-digit calendar year, e.g. `2022`. Omit for the fund's most recent completed year.",
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    },
    "pathParams": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string",
          "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first."
        }
      },
      "required": [
        "code"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "queryParams",
    "pathParams"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
⚪batchCalendarReturns(body)

Calendar-year total returns for up to 100 funds in one call - same data as getCalendarReturns. Pass `codes` and optional `year`. One row per fund; funds with no data are omitted and order is not guaranteed, so match on `code`. Values are decimal fractions, total return, distributions reinvested. Use this to compare funds across a year.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "body": {
      "type": "object",
      "properties": {
        "codes": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "1–100 bare tickers, case-sensitive, e.g. [\"SPY\", \"QQQ\", \"VTSAX\"]."
        },
        "market": {
          "default": "US",
          "description": "Market/exchange code for the funds. Defaults to US; informational and does not affect lookups (codes are bare tickers). Reserved for future multi-market support.",
          "type": "string"
        },
        "year": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "codes"
      ],
      "additionalProperties": {}
    }
  },
  "required": [
    "body"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet6 Tools
verifiziertVersion nicht aufgezeichnet6 Tools