{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_hmzb4gh8nxz7","handle":"fruit-stand-fund-returns","url":"https://wellknown.network/agents/fruit-stand-fund-returns","links":{"self":"https://wellknown.network/agents/fruit-stand-fund-returns/record.json","html":"https://wellknown.network/agents/fruit-stand-fund-returns","markdown":"https://wellknown.network/agents/fruit-stand-fund-returns/record.md","api":"https://wellknown.network/api/v1/agents/fruit-stand-fund-returns","status":"https://wellknown.network/api/v1/agents/fruit-stand-fund-returns/status","claim":"https://wellknown.network/agents/fruit-stand-fund-returns/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/fruit-stand-fund-returns/claim.json","badge":"https://wellknown.network/agents/fruit-stand-fund-returns/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/fruit-stand-fund-returns/history","tools":"https://wellknown.network/api/v1/agents/fruit-stand-fund-returns/tools"},"ard":{"identifier":"urn:air:api.fruitstand.dev:server:fruit-stand-fund-returns","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Fruit Stand Fund Returns","summary":"Trailing & calendar-year returns for 32,000+ US mutual funds & ETFs — fund performance by ticker.","description":"Trailing & calendar-year returns for 32,000+ US mutual funds & ETFs — fund performance by ticker.","publisher":{"name":"dev.fruitstand","url":null},"homepage":"https://fruitstand.dev","repository":"https://github.com/fruitstanddev/fruitstand-mcp","version":"1.0.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.fruitstand.dev/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-07T19:54:14.939761Z","publishedAt":"2026-09-07T19:54:14.939761Z","registryName":"dev.fruitstand/fund-returns"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"finance.markets","name":"Markets & Trading","confidence":1,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.938,"provenance":"derived"}],"categories":["finance","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 2h ago.","lastOkAt":"2026-10-12T00:29:10.451Z","lastProbedAt":"2026-10-12T00:29:10.451Z","statusComputedAt":"2026-10-12T00:30:16.586Z","reliability30d":{"probes":109,"successRate":1,"p50Ms":557,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":109,"ok":109,"authBoundaryOk":0,"serviceOk":109,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T00:29:10.451Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":411,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T18:27:05.445Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":519,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T12:26:00.801Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":501,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T06:23:10.942Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":480,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T23:23:28.429Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":625,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T17:30:15.088Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1225,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T11:24:43.111Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":514,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T04:32:57.140Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":365,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T22:27:14.244Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":473,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-09T15:31:28.612Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1671,"error":null,"detail":{"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"toolCount":6,"toolsHash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","serverName":"fruitstand-fund-returns","capabilities":["tools","prompts","resources"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"searchFunds","description":"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), exc"},{"name":"getFund","description":"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 da"},{"name":"getTrailingReturns","description":"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). "},{"name":"batchTrailingReturns","description":"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 dat"},{"name":"getCalendarReturns","description":"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, distri"},{"name":"batchCalendarReturns","description":"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"}],"package":null,"toolSurface":{"id":"ts_s4n8947my99e","endpointId":"ep_ureh8fsub64q","hash":"b691ff5e4fe4d9ed2676327d33b7ccf82aface0eb2222b3e1ed96e69140f6371","toolCount":6,"serverName":"fruitstand-fund-returns","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T13:27:00.958Z","lastSeenAt":"2026-10-12T00:29:10.444Z","observations":108,"toolNames":["searchFunds","getFund","getTrailingReturns","batchTrailingReturns","getCalendarReturns","batchCalendarReturns"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_ureh8fsub64q","url":"https://api.fruitstand.dev/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-09T01:24:39.322Z","auth":{"observedAt":"2026-10-09T01:24:39.338Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-09T01:24:39.347Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.fruitstand.dev","issuer":{"commonName":"WE1","organization":"Google Trust Services"},"validFrom":"2026-08-24T21:32:22.000Z","validTo":"2026-11-22T22:32:17.000Z","daysToExpiry":41,"sanCount":1,"fingerprint256":"AC:95:C1:1E:7D:80:14:D7:64:4F:0E:DC:5C:48:AF:59:BA:C4:F2:E5:28:86:9D:7D:27:01:FA:E5:E6:DE:52:6F"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"dev.fruitstand/fund-returns","url":"https://registry.modelcontextprotocol.io/v0/servers/dev.fruitstand%2Ffund-returns","firstSeenAt":"2026-09-05T22:18:30.352Z","fetchedAt":"2026-10-09T13:22:03.702Z","normalizedAt":"2026-10-09T13:22:03.702Z"}]},"firstSeenAt":"2026-09-05T22:18:30.352Z","updatedAt":"2026-10-12T00:31:56.749Z"}