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 yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:8e69a47266f67e75cf100a5fef363a9fbb4ac1ad9dd6467fa3f3a3732168501f | sha256sum