Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,542Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:8e69a47266f67e75cf100a5fef363a9fbb4ac1ad9dd6467fa3f3a3732168501f
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "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 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "body": { "additionalProperties": {}, "properties": { "codes": { "description": "1–100 bare tickers, case-sensitive, e.g. [\"SPY\", \"QQQ\", \"VTSAX\"].", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "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": [ { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, { "type": "null" } ] } }, "required": [ "codes" ], "type": "object" } }, "required": [ "body" ], "type": "object" }, "name": "batchCalendarReturns", "outputSchema": null }, { "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 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "body": { "additionalProperties": {}, "properties": { "as_of": { "anyOf": [ { "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": "string" }, { "type": "null" } ] }, "codes": { "description": "1–100 bare tickers, case-sensitive, e.g. [\"SPY\", \"QQQ\", \"VTSAX\"].", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "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" } }, "required": [ "codes" ], "type": "object" } }, "required": [ "body" ], "type": "object" }, "name": "batchTrailingReturns", "outputSchema": null }, { "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, distributions reinvested (0.263 = +26.3%); `base_date`/`end_date` give the actual span (partial in launch/delist years). Use getTrailingReturns for rolling windows.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "pathParams": { "additionalProperties": false, "properties": { "code": { "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "queryParams": { "additionalProperties": false, "properties": { "market": { "default": "US", "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.", "type": "string" }, "year": { "anyOf": [ { "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, { "type": "null" } ], "description": "A four-digit calendar year, e.g. `2022`. Omit for the fund's most recent completed year." } }, "type": "object" } }, "required": [ "queryParams", "pathParams" ], "type": "object" }, "name": "getCalendarReturns", "outputSchema": null }, { "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 data exists. Returns 404 if the ticker is unknown. Use searchFunds to resolve a name to a code; use the returns tools for performance.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "pathParams": { "additionalProperties": false, "properties": { "code": { "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "queryParams": { "additionalProperties": false, "properties": { "market": { "default": "US", "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.", "type": "string" } }, "type": "object" } }, "required": [ "queryParams", "pathParams" ], "type": "object" }, "name": "getFund", "outputSchema": null }, { "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). Values are decimal fractions of total return, distributions reinvested (0.1234 = +12.34%); 2y and longer are annualized (CAGR). Use batchTrailingReturns for many funds.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "pathParams": { "additionalProperties": false, "properties": { "code": { "description": "The fund's bare ticker, case-sensitive — e.g. `SPY`, `QQQ`, `VTSAX`. If you only have a name, resolve it with searchFunds first.", "type": "string" } }, "required": [ "code" ], "type": "object" }, "queryParams": { "additionalProperties": false, "properties": { "as_of": { "anyOf": [ { "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": "string" }, { "type": "null" } ], "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." }, "market": { "default": "US", "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.", "type": "string" } }, "type": "object" } }, "required": [ "queryParams", "pathParams" ], "type": "object" }, "name": "getTrailingReturns", "outputSchema": null }, { "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), 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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "queryParams": { "additionalProperties": false, "properties": { "country": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by domicile country as stored (e.g. `USA`). Exact match." }, "cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Keyset pagination cursor: the `next_cursor` from the previous response. Omit for the first page." }, "exchange": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by listing exchange as stored (e.g. `NYSE ARCA`, `NASDAQ`). Exact match." }, "limit": { "default": 0, "description": "Page size, 1–1000. Defaults to 100.", "maximum": 9007199254740991, "minimum": 0, "type": "integer" }, "q": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Case-insensitive substring match on ticker or fund name (e.g. `vanguard 500`, `SPY`). Omit to list every fund." }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by security type: `ETF` or `FUND` (mutual fund). Matched exactly." } }, "type": "object" } }, "required": [ "queryParams" ], "type": "object" }, "name": "searchFunds", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:8e69a47266f67e75cf100a5fef363a9fbb4ac1ad9dd6467fa3f3a3732168501f | sha256sum