Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:d32ca1669b2a0d8645545edada22960f826b75ca5c9ad0d95183cab77fea8b0c
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Net worth, balance sheet and current holdings, in the ledger's base currency.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_dashboard", "outputSchema": null }, { "description": "Historical net-worth snapshots (one point per day where recorded).", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_net_worth_history", "outputSchema": null }, { "description": "Current price per ticker with its source, quote currency and recent change, plus any manual overrides.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_prices", "outputSchema": null }, { "description": "The forecast/FIRE plan's assumptions (salary, expenses, inflation, retirement dates, tax mode). The projection itself is computed client-side.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_projection_config", "outputSchema": null }, { "description": "Valid accounts, providers, tickers, asset classes and categories. Read this before writing: trades and adjustments must use these values unless allow_new_values is set.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_reference_data", "outputSchema": null }, { "description": "Capital-gains / income tax estimate for a year: gains, losses, exemption (including any carried-forward amount), taxable base and estimated tax.", "inputSchema": { "properties": { "account": { "description": "One portfolio; absent sums every configured one", "type": "string" }, "year": { "description": "Defaults to the current year", "type": "string" } }, "required": [], "type": "object" }, "name": "get_tax_report", "outputSchema": null }, { "description": "Linked exchange, bank and wallet connections, each with its sync mode (balance updates, or transactions staged for review) and when it last synced.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "list_connections", "outputSchema": null }, { "description": "Transaction history as a human-friendly list, newest first.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "list_transactions", "outputSchema": null }, { "description": "Log a trade (buy / sell / swap), expressed as from-asset to to-asset. Same body and validation as POST /api/transactions.", "inputSchema": { "properties": { "allow_new_values": { "description": "Create accounts/providers/tickers not yet in reference-data. Default false.", "type": "boolean" }, "description": { "type": "string" }, "from_account": { "type": "string" }, "from_amount": { "example": 1000, "type": "number" }, "from_asset": { "type": "string" }, "from_category": { "type": "string" }, "from_description": { "type": "string" }, "from_provider": { "type": "string" }, "from_risk": { "maximum": 4, "minimum": 0, "type": "integer" }, "from_ticker": { "type": "string" }, "overall_eur_value": { "description": "The trade's total value in the ledger's base currency (the field name is historical: EUR was the only base)", "example": 1000, "type": "number" }, "to_account": { "type": "string" }, "to_amount": { "example": 8.5, "type": "number" }, "to_asset": { "type": "string" }, "to_category": { "type": "string" }, "to_description": { "type": "string" }, "to_provider": { "type": "string" }, "to_risk": { "maximum": 4, "minimum": 0, "type": "integer" }, "to_ticker": { "type": "string" }, "tx_date": { "description": "Today or tomorrow at the latest (the user's own calendar day); later dates are rejected", "example": "2026-06-17", "format": "date", "type": "string" } }, "required": [ "tx_date", "from_account", "from_provider", "from_ticker", "from_asset", "from_amount", "to_account", "to_provider", "to_ticker", "to_asset", "to_amount", "overall_eur_value" ], "type": "object" }, "name": "log_trade", "outputSchema": null }, { "description": "Record a signed quantity change on one holding (a balance update that is not a trade). Same body and validation as POST /api/position-adjustments.", "inputSchema": { "properties": { "account": { "type": "string" }, "allow_new_values": { "type": "boolean" }, "asset": { "type": "string" }, "provider": { "type": "string" }, "quantity_delta": { "description": "Signed quantity change (non-zero)", "type": "number" }, "ticker": { "type": "string" }, "tx_date": { "description": "Today or tomorrow at the latest (the user's own calendar day); later dates are rejected", "format": "date", "type": "string" } }, "required": [ "tx_date", "account", "provider", "ticker", "asset", "quantity_delta" ], "type": "object" }, "name": "record_balance_adjustment", "outputSchema": null }, { "description": "Fetch fresh market prices now. With no ticker this refreshes every priced holding; with one it refreshes just that ticker.", "inputSchema": { "properties": { "symbol": { "description": "Provider symbol when it differs from the ticker", "type": "string" }, "ticker": { "description": "Omit to refresh every ticker", "type": "string" } }, "required": [], "type": "object" }, "name": "refresh_prices", "outputSchema": null }, { "description": "Sync every linked connection in one pass: push the latest balance into each linked holding, and stage new transactions into the review queue. Reports what was written, what was staged and any per-provider errors.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "sync_connections", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d32ca1669b2a0d8645545edada22960f826b75ca5c9ad0d95183cab77fea8b0c | sha256sum