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

Server definition

Hash
sha256:880a07c837c652362486e50284e8099c15d2125c7b9c4affca28d275ab1f3f9f
What it is
What a remote MCP server returned when asked what it offers: 10 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Calculate core risk metrics for a portfolio — Value at Risk (VaR), Conditional VaR (CVaR), volatility, beta, and max drawdown.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "benchmark": { "default": "SPY", "description": "Benchmark ticker for beta calculation, e.g. SPY or QQQ. Default: SPY.", "maxLength": 10, "minLength": 1, "type": "string" }, "confidence_level": { "default": 0.95, "description": "VaR confidence level as a decimal, e.g. 0.95 = 95%. Range: 0.01-0.99. Default: 0.95.", "maximum": 0.99, "minimum": 0.01, "type": "number" }, "horizon_days": { "default": 1, "description": "Risk horizon in trading days. 1 = overnight, 21 ≈ 1 month, 252 ≈ 1 year. Default: 1.", "maximum": 252, "minimum": 1, "type": "integer" }, "lookback_days": { "default": 252, "description": "Number of historical trading days to use. 252 ≈ 1 year, 756 ≈ 3 years. Range: 30-1260. Default: 252.", "maximum": 1260, "minimum": 30, "type": "integer" }, "method": { "default": "historical", "description": "VaR calculation method. \"historical\" uses empirical return distribution, \"parametric\" assumes normality, \"cornish_fisher\" adjusts for skew and kurtosis. Default: \"historical\".", "enum": [ "historical", "parametric", "cornish_fisher" ], "type": "string" }, "positions": { "description": "Array of portfolio positions. Each entry needs a ticker and quantity. Free tier: max 20 positions. Paid tier: up to 500.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" } }, "required": [ "positions" ], "type": "object" }, "name": "analyze_risk", "outputSchema": null }, { "description": "Calculate option Greeks (delta, gamma, theta, vega, rho) for individual options or an options portfolio. Uses Black-Scholes for European, binomial for American style. Paid tier only.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "options": { "description": "Array of option positions to calculate Greeks for. 1-100 options. Results include per-option Greeks and aggregated portfolio Greeks.", "items": { "additionalProperties": false, "properties": { "expiry": { "description": "Option expiry date in ISO 8601 format, e.g. 2026-12-19. Must be a future date.", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "type": "string" }, "implied_volatility": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Implied volatility as a decimal, e.g. 0.25 = 25%. If omitted or null, it is computed from market_price." }, "market_price": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Current market price of the option in USD. Required when implied_volatility is not provided." }, "option_type": { "description": "Option type: \"call\" gives the right to buy, \"put\" gives the right to sell.", "enum": [ "call", "put" ], "type": "string" }, "quantity": { "default": 1, "description": "Number of contracts. Positive = long, negative = short. Default: 1.", "type": "integer" }, "strike": { "description": "Option strike price in USD. Must be a positive number.", "exclusiveMinimum": 0, "type": "number" }, "style": { "default": "european", "description": "Option exercise style. \"european\" can only be exercised at expiry (Black-Scholes). \"american\" can be exercised any time (binomial model). Default: \"european\".", "enum": [ "european", "american" ], "type": "string" }, "underlying": { "description": "Ticker symbol of the underlying asset, e.g. AAPL.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "underlying", "strike", "expiry", "option_type" ], "type": "object" }, "maxItems": 100, "minItems": 1, "type": "array" }, "risk_free_rate": { "default": 0.05, "description": "Annualized risk-free rate as a decimal, e.g. 0.05 = 5%. Used in Black-Scholes and binomial pricing models. Default: 0.05.", "maximum": 1, "minimum": 0, "type": "number" } }, "required": [ "options" ], "type": "object" }, "name": "calculate_greeks", "outputSchema": null }, { "description": "Compare two or more portfolio allocations head-to-head across all key risk and return metrics. Paid tier only.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "confidence_level": { "default": 0.95, "description": "VaR confidence level as a decimal, e.g. 0.95 = 95%. Range: 0.01-0.99. Default: 0.95.", "maximum": 0.99, "minimum": 0.01, "type": "number" }, "period_days": { "default": 252, "description": "Lookback period in trading days used for return and risk calculations. 252 = ~1 year. Range: 30-1260. Default: 252.", "maximum": 1260, "minimum": 30, "type": "integer" }, "portfolios": { "description": "Two to five named portfolios to compare head-to-head. Each needs a unique name and a list of positions. Min: 2, max: 5.", "items": { "additionalProperties": false, "properties": { "name": { "description": "Human-readable label for this portfolio, e.g. 'Current' or 'Rebalanced'. 1-50 chars.", "maxLength": 50, "minLength": 1, "type": "string" }, "positions": { "description": "Positions in this portfolio. 1-500 entries.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" } }, "required": [ "name", "positions" ], "type": "object" }, "maxItems": 5, "minItems": 2, "type": "array" } }, "required": [ "portfolios" ], "type": "object" }, "name": "compare_portfolios", "outputSchema": null }, { "description": "Compute the pairwise correlation matrix for a set of assets. Identifies highly correlated pairs and diversification opportunities.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "lookback_days": { "default": 252, "description": "Historical window for computing correlations in trading days. 30 = ~6 weeks, 252 = ~1 year. Range: 30-1260. Default: 252.", "maximum": 1260, "minimum": 30, "type": "integer" }, "method": { "default": "pearson", "description": "Correlation method. \"pearson\" = linear correlation (standard), \"spearman\" = rank-based (robust to outliers), \"kendall\" = concordance-based. Default: \"pearson\".", "enum": [ "pearson", "spearman", "kendall" ], "type": "string" }, "tickers": { "description": "Tickers to include in the correlation matrix. Minimum 2, maximum 50. Free tier: max 10 tickers. Paid tier: up to 50.", "items": { "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" }, "maxItems": 50, "minItems": 2, "type": "array" } }, "required": [ "tickers" ], "type": "object" }, "name": "correlation_matrix", "outputSchema": null }, { "description": "Run Monte Carlo simulation on a portfolio to model the distribution of future returns, including percentile outcomes and probability of loss.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "horizon_days": { "default": 21, "description": "Simulation horizon in trading days. 21 ≈ 1 month, 63 ≈ 1 quarter, 252 ≈ 1 year. Default: 21.", "maximum": 252, "minimum": 1, "type": "integer" }, "lookback_days": { "default": 252, "description": "Historical window used to estimate drift and volatility parameters. Range: 30-1260 trading days. Default: 252.", "maximum": 1260, "minimum": 30, "type": "integer" }, "model": { "default": "gbm", "description": "Stochastic process model. \"gbm\" = Geometric Brownian Motion (standard), \"jump_diffusion\" = adds jump risk for fat-tail scenarios. Default: \"gbm\".", "enum": [ "gbm", "jump_diffusion" ], "type": "string" }, "num_paths": { "default": 10000, "description": "Number of simulation paths to run. More paths = more accurate but slower. Free tier: max 1,000. Paid tier: up to 100,000. Default: 10,000.", "maximum": 100000, "minimum": 100, "type": "integer" }, "positions": { "description": "Array of portfolio positions. Free tier: max 20 positions. Paid tier: up to 500.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" }, "seed": { "anyOf": [ { "exclusiveMinimum": 0, "type": "integer" }, { "type": "null" } ], "description": "Random seed for reproducible results. Omit for a fresh random run each time." } }, "required": [ "positions" ], "type": "object" }, "name": "monte_carlo_simulation", "outputSchema": null }, { "description": "Find the optimal portfolio allocation using mean-variance optimization. Supports max Sharpe, min variance, and target return objectives. Paid tier only.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "constraints": { "additionalProperties": false, "description": "Optional weight constraints. See ConstraintsInput for details.", "properties": { "max_weight": { "default": 1, "description": "Maximum allocation weight per asset as a decimal. 0.1 = max 10% in any single asset. Range: 0.0-1.0. Default: 1.0.", "maximum": 1, "minimum": 0, "type": "number" }, "min_weight": { "default": 0, "description": "Minimum allocation weight per asset as a decimal. 0.0 = no minimum (asset may be excluded). Range: 0.0-1.0. Default: 0.0.", "maximum": 1, "minimum": 0, "type": "number" }, "sector_max": { "anyOf": [ { "additionalProperties": { "maximum": 1, "minimum": 0, "type": "number" }, "type": "object" }, { "type": "null" } ], "description": "Maximum total portfolio weight per sector, e.g. { Technology: 0.30 } = max 30% in tech. Keys should be GICS sector names." } }, "type": "object" }, "lookback_days": { "default": 756, "description": "Historical window for estimating return and covariance. 252 = 1 year, 756 = 3 years, 1260 = 5 years. Range: 252-1260. Default: 756.", "maximum": 1260, "minimum": 252, "type": "integer" }, "objective": { "default": "max_sharpe", "description": "Optimization objective. \"max_sharpe\" = maximize risk-adjusted return, \"min_variance\" = minimize portfolio volatility, \"target_return\" = hit a specific return with minimum risk. Default: \"max_sharpe\".", "enum": [ "max_sharpe", "min_variance", "target_return" ], "type": "string" }, "risk_free_rate": { "default": 0.05, "description": "Annualized risk-free rate as a decimal, e.g. 0.05 = 5%. Used in Sharpe ratio calculation. Default: 0.05.", "maximum": 1, "minimum": 0, "type": "number" }, "target_return": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Required when objective is \"target_return\". Annualized return as a decimal, e.g. 0.12 = 12% annual return target." }, "tickers": { "description": "Universe of tickers to optimize across. Must be 2-50 tickers. The optimizer will determine the best weights within this set.", "items": { "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" }, "maxItems": 50, "minItems": 2, "type": "array" } }, "required": [ "tickers" ], "type": "object" }, "name": "optimize_portfolio", "outputSchema": null }, { "description": "Break down portfolio performance into factor exposures, sector allocation, and position contributions. Computes Sharpe, Sortino, Treynor, Calmar, and Information ratios.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "benchmark": { "default": "SPY", "description": "Benchmark ticker for relative performance metrics (Information Ratio, Tracking Error, Beta). Default: SPY.", "maxLength": 10, "minLength": 1, "type": "string" }, "period_days": { "default": 252, "description": "Measurement period in trading days. 252 = ~1 year. Range: 30-1260. Default: 252.", "maximum": 1260, "minimum": 30, "type": "integer" }, "positions": { "description": "Array of portfolio positions. Free tier: max 20 positions (basic ratios only). Paid tier: up to 500 positions with full factor attribution.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" }, "risk_free_rate": { "default": 0.05, "description": "Annualized risk-free rate as a decimal, e.g. 0.05 = 5%. Used in Sharpe, Sortino, and Treynor ratios. Default: 0.05.", "maximum": 1, "minimum": 0, "type": "number" } }, "required": [ "positions" ], "type": "object" }, "name": "performance_attribution", "outputSchema": null }, { "description": "Fetch historical OHLCV price data for one or more tickers. Free tier: 1 ticker, 252 days. Paid tier: up to 20 tickers, 1260 days.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "days": { "default": 252, "description": "Number of historical trading days to return. Free tier: max 252 days (~1 year). Paid tier: up to 1260 days (~5 years). Default: 252.", "maximum": 1260, "minimum": 1, "type": "integer" }, "interval": { "default": "daily", "description": "Price interval. \"daily\" returns one OHLCV row per trading day, \"weekly\" aggregates to weekly bars, \"monthly\" aggregates to monthly bars. Default: \"daily\".", "enum": [ "daily", "weekly", "monthly" ], "type": "string" }, "tickers": { "description": "Ticker symbols to fetch price history for. Free tier: max 1 ticker. Paid tier: up to 20 tickers.", "items": { "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" }, "maxItems": 20, "minItems": 1, "type": "array" } }, "required": [ "tickers" ], "type": "object" }, "name": "price_history", "outputSchema": null }, { "description": "Break down portfolio exposure by GICS sector, market cap, and asset class. Returns concentration metrics including the Herfindahl-Hirschman Index.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "positions": { "description": "Array of portfolio positions to analyze. Returns GICS sector weights, market cap breakdown, and concentration metrics.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" } }, "required": [ "positions" ], "type": "object" }, "name": "sector_exposure", "outputSchema": null }, { "description": "Stress test a portfolio against historical crisis scenarios (GFC 2008, COVID 2020, etc.) or custom shocks (paid tier).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "additionalProperties": false, "properties": { "custom_shocks": { "anyOf": [ { "items": { "additionalProperties": false, "properties": { "market_shock": { "description": "Broad market shock applied to all positions not covered by ticker_shocks or sector_shocks. e.g. -0.10 = market down 10%. Range: -1.0 to 1.0.", "maximum": 1, "minimum": -1, "type": "number" }, "name": { "description": "Name for this custom scenario, e.g. 'Rate spike +300bps'. 1-50 characters.", "maxLength": 50, "minLength": 1, "type": "string" }, "sector_shocks": { "additionalProperties": { "maximum": 1, "minimum": -1, "type": "number" }, "description": "Per-sector shocks applied to all positions in that sector. e.g. { Technology: -0.15 }. Range: -1.0 to 1.0.", "type": "object" }, "ticker_shocks": { "additionalProperties": { "maximum": 1, "minimum": -1, "type": "number" }, "description": "Per-ticker price shocks as decimals, e.g. { AAPL: -0.20 } = AAPL drops 20%. Range: -1.0 to 1.0.", "type": "object" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Custom shock definitions. PAID tier only. Each shock specifies ticker-level, sector-level, or market-wide price changes." }, "positions": { "description": "Array of portfolio positions. Free tier: max 20 positions and historical scenarios only. Paid tier: up to 500 positions plus custom shocks.", "items": { "additionalProperties": false, "properties": { "cost_basis": { "anyOf": [ { "exclusiveMinimum": 0, "type": "number" }, { "type": "null" } ], "description": "Per-share cost basis in USD. Optional — used only for P&L calculations." }, "quantity": { "description": "Number of shares held. Use a negative value to represent a short position.", "type": "number" }, "ticker": { "description": "Ticker symbol, e.g. AAPL or MSFT. Must be uppercase, 1-10 characters.", "maxLength": 10, "minLength": 1, "pattern": "^[A-Z0-9.^-]{1,10}$", "type": "string" } }, "required": [ "ticker", "quantity" ], "type": "object" }, "maxItems": 500, "minItems": 1, "type": "array" }, "scenarios": { "default": [ "gfc_2008", "covid_2020" ], "description": "Historical scenarios to run. Available values: gfc_2008, covid_2020, dot_com_2000, black_monday_1987, taper_tantrum_2013, rate_hike_2022, volmageddon_2018, euro_crisis_2011. Default: [gfc_2008, covid_2020].", "items": { "enum": [ "gfc_2008", "covid_2020", "dot_com_2000", "black_monday_1987", "taper_tantrum_2013", "rate_hike_2022", "volmageddon_2018", "euro_crisis_2011" ], "type": "string" }, "type": "array" } }, "required": [ "positions" ], "type": "object" }, "name": "stress_test", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:880a07c837c652362486e50284e8099c15d2125c7b9c4affca28d275ab1f3f9f | sha256sum