Server definition
- Hash
- sha256:ae55a164212962531b0a155dd55b4237c97fdfae7be7034c676621e619436fc9
- What it is
- What a remote MCP server returned when asked what it offers: 18 tools
The blob, as servednamed by its sha256
{
"instructions": "You are about to act on a price or a rate and cannot tell how stale it is. Every figure here carries the date it was observed. 18 tools. TOOL CALLS ARE x402-PAID in USDC on Base: send the base64 X-PAYMENT header on this POST /mcp request, or params._meta['x402/payment'], or call the equivalent GET endpoint. An unpaid call answers with a valid x402 accepts array and settles nothing, and initialize, ping, tools/list and GET /health are free. WHAT IS LIVE AND WHAT IS A SNAPSHOT, because it changes what you should trust: crypto spot, Base gas, DeFi yields and prediction markets are read from upstream at request time. US macro and Treasury rates are DATED SNAPSHOTS refreshed daily from FRED — this Worker cannot reach FRED directly — and every response carries the date the figure was observed, not the date you asked. GET /health publishes, free and unprompted, the age of each snapshot and whether it is past the 48-hour staleness bar, so you can decide whether a call is worth making before you make it. Routes refuse and settle nothing rather than bill for an answer they cannot support; a refusal is not a failure and costs you nothing. CPI, core PCE and M2 are published as INDEX LEVELS, not as rates of change — compute your own deltas and do not read an index level as a percentage. Prediction-market prices are the venue's own last trade, not a calibrated probability.",
"tools": [
{
"description": "Current Base mainnet gas price read live from JSON-RPC, in both wei and gwei. Use this to estimate the cost of a Base transaction before submitting it. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /gas.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "base_gas_price",
"outputSchema": null
},
{
"description": "Coinbase spot price in USD for up to ten crypto assets. Use this for a current crypto price. Returns an explicit per-symbol error rather than a guessed number when an asset is unavailable. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /crypto.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"symbols": {
"description": "Comma-separated asset symbols (default BTC,ETH,SOL) Example: 'BTC,ETH'.",
"examples": [
"BTC,ETH"
],
"type": "string"
}
},
"type": "object"
},
"name": "crypto_spot_prices",
"outputSchema": null
},
{
"description": "Total value locked per blockchain from DefiLlama, ranked high to low, with each chain's native token symbol and EVM chain id plus the summed cross-chain total. Use it to compare chains by capital deployed or to check where a chain sits. A chain with no published TVL keeps a null figure and is excluded from the total rather than counted as zero. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/chains.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "How many to return, 1-100 (default 25) Example: '25'.",
"examples": [
25
],
"type": "integer"
},
"search": {
"description": "Chain name substring Example: 'Base'.",
"examples": [
"Base"
],
"type": "string"
}
},
"type": "object"
},
"name": "defi_chains",
"outputSchema": null
},
{
"description": "Full DefiLlama detail for one protocol by slug: current TVL in USD with its observation time, per-chain TVL breakdown, category, token symbol, chain list, description and links. Use it after finding a slug with the protocols list. An unknown slug returns an honest not_found and is not billed. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/protocol.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "DefiLlama protocol slug (required) Example: 'aave-v3'.",
"examples": [
"aave-v3"
],
"type": "string"
}
},
"type": "object"
},
"name": "defi_protocol",
"outputSchema": null
},
{
"description": "Rank DeFi protocols by total value locked from DefiLlama, filtered by chain, category or name substring, with each protocol's slug, category, chain list, TVL in USD, 1d/7d TVL change and market cap. Use it to size a protocol, find the biggest venues on a chain, or resolve the slug the protocol-detail tool needs. A protocol DefiLlama publishes no TVL for keeps a null figure, never a zero. Read live at request time and held for 5 minutes. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/protocols.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Exact DefiLlama category Example: 'Lending'.",
"examples": [
"Lending"
],
"type": "string"
},
"chain": {
"description": "Only protocols deployed on this chain Example: 'Base'.",
"examples": [
"Base"
],
"type": "string"
},
"limit": {
"description": "How many to return, 1-100 (default 20) Example: '20'.",
"examples": [
20
],
"type": "integer"
},
"search": {
"description": "Name or slug substring Example: 'aave'.",
"examples": [
"aave"
],
"type": "string"
}
},
"type": "object"
},
"name": "defi_protocols",
"outputSchema": null
},
{
"description": "Price arbitrary on-chain tokens with DefiLlama's coins API, addressed as chain:address (or coingecko:id), returning price in USD, symbol, decimals, a confidence score and the pricing timestamp for each. Use it to value a DeFi position holding tokens no exchange lists. This is NOT the exchange spot-price tool: use the crypto spot tool for a plain price of a major asset. A token DefiLlama cannot price inside search_width returns null, never a substituted price. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/token-prices.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"coins": {
"description": "Comma-separated DefiLlama coin ids as chain:address or coingecko:id, up to 20 (required) Example: 'base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,coingecko:ethereum'.",
"examples": [
"base:0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913,coingecko:ethereum"
],
"type": "string"
},
"search_width": {
"description": "How far back a price may be taken from (default 6h) Example: '6h'.",
"examples": [
"6h"
],
"type": "string"
}
},
"type": "object"
},
"name": "defi_token_prices",
"outputSchema": null
},
{
"description": "Screen DefiLlama's yield-pool universe by chain, project, token symbol, minimum TVL and stablecoin-only, ranked by APY, returning each pool's stable pool_id, chain, project, symbol, TVL in USD, total/base/reward APY, 30-day mean APY, impermanent-loss risk and exposure. Use it to find where a given asset earns yield. An unpublished APY stays null, never zero. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /defi/yields.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"chain": {
"description": "Only pools on this chain Example: 'Base'.",
"examples": [
"Base"
],
"type": "string"
},
"limit": {
"description": "How many to return, 1-100 (default 20) Example: '20'.",
"examples": [
20
],
"type": "integer"
},
"min_tvl_usd": {
"description": "Minimum pool TVL in USD (default 1000000) Example: '1000000'.",
"examples": [
1000000
],
"type": "number"
},
"project": {
"description": "Only pools from this DefiLlama project Example: 'aave-v3'.",
"examples": [
"aave-v3"
],
"type": "string"
},
"stablecoin_only": {
"description": "Only stablecoin pools Example: 'true'.",
"examples": [
true
],
"type": "boolean"
},
"symbol": {
"description": "Token symbol substring Example: 'USDC'.",
"examples": [
"USDC"
],
"type": "string"
}
},
"type": "object"
},
"name": "defi_yields",
"outputSchema": null
},
{
"description": "European Central Bank reference foreign-exchange rates for a chosen base currency, with the ECB observation date. Refreshed automatically by a Worker cron from Frankfurter. These are daily reference rates, not live tradable quotes, and every response carries `snapshot.captured_at` and `snapshot.age_hours`. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /fx.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"as_of": {
"description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.",
"examples": [
"2026-08-11"
],
"type": "string"
},
"base": {
"description": "Base currency ISO-4217 (default USD) Example: 'USD'.",
"examples": [
"USD"
],
"type": "string"
},
"symbols": {
"description": "Comma-separated target currencies Example: 'EUR,GBP,JPY'.",
"examples": [
"EUR,GBP,JPY"
],
"type": "string"
}
},
"type": "object"
},
"name": "fx_reference_rates",
"outputSchema": null
},
{
"description": "Search or browse Manifold Markets questions, returning each one's probability, outcome type, volume, liquidity, unique bettor count, close time, creator and resolution state. Manifold is a PLAY-money venue denominated in MANA, so treat a probability as a crowd forecast rather than a real-money price; every response says so and reports the token. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /manifold/markets.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"filter": {
"description": "all, open, closed or resolved (default open) Example: 'open'.",
"examples": [
"open"
],
"type": "string"
},
"limit": {
"description": "How many markets, 1-50 (default 10) Example: '10'.",
"examples": [
10
],
"type": "integer"
},
"search": {
"description": "Question text to search for Example: 'bitcoin'.",
"examples": [
"bitcoin"
],
"type": "string"
},
"sort": {
"description": "score, newest, liquidity, close-date or most-popular Example: 'score'.",
"examples": [
"score"
],
"type": "string"
}
},
"type": "object"
},
"name": "manifold_markets",
"outputSchema": null
},
{
"description": "List Polymarket events — the grouped questions such as an election or a rate decision — ordered by volume, each with title, slug, end date, volume, 24h volume, liquidity, open interest, its full market count and the priced member markets themselves. Use it when a question has many candidate outcomes and you want them together rather than one at a time. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/events.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ascending": {
"description": "Sort ascending instead of descending Example: 'false'.",
"examples": [
false
],
"type": "boolean"
},
"closed": {
"description": "Return closed events instead of open ones Example: 'false'.",
"examples": [
false
],
"type": "boolean"
},
"limit": {
"description": "How many events, 1-25 (default 5) Example: '5'.",
"examples": [
5
],
"type": "integer"
},
"markets_per_event": {
"description": "Member markets per event, 1-25 (default 5) Example: '5'.",
"examples": [
5
],
"type": "integer"
}
},
"type": "object"
},
"name": "polymarket_events",
"outputSchema": null
},
{
"description": "Polymarket's public trader leaderboard by traded volume or realised profit over a 1d, 7d, 30d or all-time window, returning each trader's rank, published pseudonym and display name, wallet address and USDC amount. Use it to find who is moving size on the venue. A trader who publishes no name stays null; no name is inferred. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/leaderboard.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "How many traders, 1-50 (default 10) Example: '10'.",
"examples": [
10
],
"type": "integer"
},
"metric": {
"description": "volume or profit (default volume) Example: 'volume'.",
"examples": [
"volume"
],
"type": "string"
},
"window": {
"description": "1d, 7d, 30d or all (default 7d) Example: '7d'.",
"examples": [
"7d"
],
"type": "string"
}
},
"type": "object"
},
"name": "polymarket_leaderboard",
"outputSchema": null
},
{
"description": "One Polymarket market by Gamma id, slug or condition id, with its full outcome pricing and the LIVE CLOB order book for each outcome token: best bid, best ask, midpoint, spread and the top price levels with sizes. Use it before taking a position, to see real depth rather than only a last price. An outcome with no order book returns a null book rather than a fabricated price; an unknown identifier returns not_found and is not billed. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/market.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"condition_id": {
"description": "Full 0x-prefixed 32-byte condition id (66 chars), as returned by the markets/events/search tools Example: '0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354'.",
"examples": [
"0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354"
],
"type": "string"
},
"depth": {
"description": "Order-book levels per side, 1-20 (default 5) Example: '5'.",
"examples": [
5
],
"type": "integer"
},
"id": {
"description": "Polymarket Gamma market id Example: '908713'.",
"examples": [
"908713"
],
"type": "string"
},
"slug": {
"description": "Market slug, if you have no id Example: 'fed-rate-hike-in-2026'.",
"examples": [
"fed-rate-hike-in-2026"
],
"type": "string"
}
},
"type": "object"
},
"name": "polymarket_market",
"outputSchema": null
},
{
"description": "List live Polymarket markets ordered by volume or liquidity, each with its question, Gamma id, condition id, every outcome with its USDC price and CLOB token id, best bid/ask, last trade price, volume, liquidity and end date. Use it to see what the largest real-money prediction markets are pricing right now. Prices are probabilities between 0 and 1. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/markets.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"ascending": {
"description": "Sort ascending instead of descending Example: 'false'.",
"examples": [
false
],
"type": "boolean"
},
"closed": {
"description": "Return closed markets instead of open ones Example: 'false'.",
"examples": [
false
],
"type": "boolean"
},
"limit": {
"description": "How many markets, 1-50 (default 10) Example: '10'.",
"examples": [
10
],
"type": "integer"
},
"order": {
"description": "volumeNum, liquidityNum, startDate or endDate Example: 'volumeNum'.",
"examples": [
"volumeNum"
],
"type": "string"
}
},
"type": "object"
},
"name": "polymarket_markets",
"outputSchema": null
},
{
"description": "Recent public trade prints for one Polymarket market, addressed by its condition id: timestamp, side, outcome, price, size, notional in USD, the trader's published pseudonym and wallet, and the transaction hash. Use it to see whether a quoted price is actually trading and who is behind the flow. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /polymarket/trades.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "How many trades, 1-100 (default 20) Example: '20'.",
"examples": [
20
],
"type": "integer"
},
"market": {
"description": "Full 0x-prefixed 32-byte condition id (66 chars) of the market, as returned by the markets/events/search tools (required) Example: '0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354'.",
"examples": [
"0xf708d6652a477c59d7da116df8ff3d393b993e7037367b96cc33aa519cb48354"
],
"type": "string"
}
},
"type": "object"
},
"name": "polymarket_trades",
"outputSchema": null
},
{
"description": "Find a prediction market by question text across two venues at once — Polymarket (USDC, real money) and Manifold (MANA, play money) — returning a single normalised list with the venue, its currency, the question, the YES probability, volume, end date and a direct URL, plus a per-venue status so a venue that failed is visible rather than silently dropped. Use it when you know the question but not the venue or the id. Kalshi is deliberately not included: its API answers Cloudflare Workers with HTTP 429 on every attempt. Costs $0.008 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /prediction-markets/search.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit_per_venue": {
"description": "Results per venue, 1-20 (default 5) Example: '5'.",
"examples": [
5
],
"type": "integer"
},
"q": {
"description": "Question text to search for (required) Example: 'fed rate'.",
"examples": [
"fed rate"
],
"type": "string"
},
"venues": {
"description": "Comma-separated subset of polymarket,manifold Example: 'polymarket,manifold'.",
"examples": [
"polymarket,manifold"
],
"type": "string"
}
},
"type": "object"
},
"name": "prediction_market_search",
"outputSchema": null
},
{
"description": "USDC, USDT and DAI spot price against USD plus each one's peg deviation in basis points. Use this to check whether a stablecoin is holding its dollar peg before settling or holding value in it. Costs $0.005 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /stablecoin.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "stablecoin_peg_deviation",
"outputSchema": null
},
{
"description": "US macroeconomic indicators from the St. Louis Fed (FRED): effective federal funds rate in percent, CPI and core PCE index levels, unemployment rate in percent, and M2 money stock, each with its own observation date. IMPORTANT: this is a STORED SNAPSHOT, not a live read of FRED at request time — fred.stlouisfed.org blocks Cloudflare Workers (HTTP 520), so the snapshot is refreshed out of band. Every response carries `snapshot.captured_at` and `snapshot.age_hours`; check them before relying on the figures, and read `as_of` for the underlying observation date. CPI/PCE/M2 are index levels, not year-over-year rates. Costs $0.01 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /macro.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"as_of": {
"description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.",
"examples": [
"2026-08-11"
],
"type": "string"
}
},
"type": "object"
},
"name": "us_macro_indicators",
"outputSchema": null
},
{
"description": "US Treasury constant-maturity yields for the 2, 10 and 30 year tenors in percent, the computed 10s2s curve spread with an explicit inverted flag, and the 30-year fixed mortgage rate. IMPORTANT: this is a STORED SNAPSHOT, not a live read — the FRED host blocks Cloudflare Workers (HTTP 520), so it is refreshed out of band. Every response carries `snapshot.captured_at` and `snapshot.age_hours`; check them before trading or quoting off these numbers. Costs $0.01 USDC per call via x402 on Base; an unpaid call returns the payment challenge instead of data, and a call that returns no data is never settled so it costs nothing. Equivalent HTTP route: GET /rates.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"as_of": {
"description": "Return the stored capture in effect at this UTC date or ISO timestamp instead of the latest one (append-only history; not subject to the freshness limit) Example: '2026-08-11'.",
"examples": [
"2026-08-11"
],
"type": "string"
}
},
"type": "object"
},
"name": "us_treasury_yields",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ae55a164212962531b0a155dd55b4237c97fdfae7be7034c676621e619436fc9 | sha256sum