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

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "LP Pool Check: Pool volume, fees, and IL math. Use these tools to read public liquidity-pool figures. Call check_pool for one pool (a DefiLlama pool id, or a chain plus two token symbols or token addresses). Call find_active_pools to scan chains for pools with recent volume and a fee rate. Call estimate_lp when the user gives a price range or a later price, a holding period, and a fee APR, and wants the fee-versus-impermanent-loss arithmetic. Always show the APR flag and its reason, the risk checklist warnings, the as_of time, and the not-financial-advice notice. A pool contract address is not in the open index: if status is needs_tokens, ask for the two token addresses or a pool id, and do not invent a match. status unavailable means a source did not answer: say so and do not fill in numbers. apr_flag unconfirmed means the 7-day comparison is missing: do not call it real trading. position_type and risk warnings are labels and readings, not advice to enter or leave a position. Do not recommend buying, selling, or providing liquidity. Do not claim fees will be earned. Credit DefiLlama and, when token flags are present, GoPlus.", "tools": [ { "description": "Use this when the user asks about one liquidity pool, such as \"volume and fee APR for WETH and USDC on Ethereum\" or \"is this pool APR a spike?\". Pass a pool id, or chain plus token_a and token_b (symbols or token addresses). Optionally pass a price range, holding_days, and gas or exit amounts for the fee-versus-IL estimate. Returns 1-day and 7-day volume and fee APR, TVL, an APR flag with a reason, a risk checklist with warnings, price trend, token risk flags when a public source covers them, and an informational position-type label. A pool contract address is not in the index: the answer says needs_tokens and what to pass instead. Not financial advice, and it does not recommend entering or leaving a position.", "inputSchema": { "additionalProperties": false, "properties": { "capital_usd": { "description": "Position size, so gas and exit cost can be compared with fees. Not stored as a record of who asked", "exclusiveMinimum": 0, "type": "number" }, "chain": { "description": "Chain name or short alias, such as ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, or solana", "maxLength": 40, "minLength": 2, "type": "string" }, "exit_cost_usd": { "description": "Other exit cost, such as a withdrawal fee, in the same currency as capital_usd", "minimum": 0, "type": "number" }, "gas_usd": { "description": "Gas you expect to pay to enter and exit, in the same currency as capital_usd", "minimum": 0, "type": "number" }, "holding_days": { "description": "Holding window for the fee-versus-IL estimate. Requires price_lower, price_upper, and price_now", "maximum": 365, "minimum": 1, "type": "integer" }, "pool_address": { "description": "Pool contract address. The open yields index does not list pool contract addresses; pass token addresses or a pool id instead if this cannot be matched", "maxLength": 80, "minLength": 8, "type": "string" }, "pool_id": { "description": "DefiLlama pool id (a UUID), from find_active_pools or a previous answer", "maxLength": 80, "minLength": 8, "type": "string" }, "price_lower": { "description": "Lower price of the range, in quote per base", "exclusiveMinimum": 0, "type": "number" }, "price_now": { "description": "Current price in the same units as the range", "exclusiveMinimum": 0, "type": "number" }, "price_upper": { "description": "Upper price of the range, in quote per base", "exclusiveMinimum": 0, "type": "number" }, "token_a": { "description": "Token symbol or contract address", "maxLength": 80, "minLength": 1, "type": "string" }, "token_b": { "description": "The other token's symbol or contract address", "maxLength": 80, "minLength": 1, "type": "string" } }, "type": "object" }, "name": "check_pool", "outputSchema": { "properties": { "active_range": { "additionalProperties": true, "type": "object" }, "apr_flag": { "enum": [ "real", "spike", "unconfirmed" ], "type": "string" }, "apr_flag_reason": { "type": "string" }, "as_of": { "type": [ "string", "null" ] }, "depth_note": { "type": "string" }, "estimate": { "additionalProperties": true, "type": "object" }, "message": { "type": "string" }, "notice": { "type": "string" }, "other_tiers": { "items": { "properties": { "chain": { "type": "string" }, "exposure": { "type": [ "string", "null" ] }, "fee_rate": { "type": [ "number", "null" ] }, "il_risk": { "type": [ "string", "null" ] }, "pool_id": { "type": "string" }, "pool_meta": { "type": [ "string", "null" ] }, "project": { "type": "string" }, "published_apy": { "properties": { "apy": { "type": [ "number", "null" ] }, "apy_base": { "type": [ "number", "null" ] }, "apy_base_7d": { "type": [ "number", "null" ] }, "apy_reward": { "type": [ "number", "null" ] }, "outlier": { "type": "boolean" } }, "required": [ "apy", "apy_base", "apy_reward", "apy_base_7d", "outlier" ], "type": "object" }, "symbol": { "type": "string" }, "tokens": { "items": { "type": "string" }, "type": "array" }, "tvl_usd": { "type": [ "number", "null" ] }, "windows": { "properties": { "fee_apr_percent_1d": { "type": [ "number", "null" ] }, "fee_apr_percent_7d": { "type": [ "number", "null" ] }, "volume_usd_1d": { "type": [ "number", "null" ] }, "volume_usd_7d": { "type": [ "number", "null" ] } }, "required": [ "volume_usd_1d", "volume_usd_7d", "fee_apr_percent_1d", "fee_apr_percent_7d" ], "type": "object" } }, "required": [ "pool_id", "chain", "project", "symbol", "tvl_usd", "fee_rate", "windows", "published_apy", "tokens" ], "type": "object" }, "type": "array" }, "pool": { "properties": { "chain": { "type": "string" }, "exposure": { "type": [ "string", "null" ] }, "fee_rate": { "type": [ "number", "null" ] }, "il_risk": { "type": [ "string", "null" ] }, "pool_id": { "type": "string" }, "pool_meta": { "type": [ "string", "null" ] }, "project": { "type": "string" }, "published_apy": { "properties": { "apy": { "type": [ "number", "null" ] }, "apy_base": { "type": [ "number", "null" ] }, "apy_base_7d": { "type": [ "number", "null" ] }, "apy_reward": { "type": [ "number", "null" ] }, "outlier": { "type": "boolean" } }, "required": [ "apy", "apy_base", "apy_reward", "apy_base_7d", "outlier" ], "type": "object" }, "symbol": { "type": "string" }, "tokens": { "items": { "type": "string" }, "type": "array" }, "tvl_usd": { "type": [ "number", "null" ] }, "windows": { "properties": { "fee_apr_percent_1d": { "type": [ "number", "null" ] }, "fee_apr_percent_7d": { "type": [ "number", "null" ] }, "volume_usd_1d": { "type": [ "number", "null" ] }, "volume_usd_7d": { "type": [ "number", "null" ] } }, "required": [ "volume_usd_1d", "volume_usd_7d", "fee_apr_percent_1d", "fee_apr_percent_7d" ], "type": "object" } }, "required": [ "pool_id", "chain", "project", "symbol", "tvl_usd", "fee_rate", "windows", "published_apy", "tokens" ], "type": "object" }, "position_type": { "enum": [ "fee-earning", "accumulating at lows", "disguised token holding" ], "type": "string" }, "position_type_reason": { "type": "string" }, "price_trend": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "risk_checklist": { "items": { "properties": { "id": { "type": "string" }, "message": { "type": "string" }, "name": { "type": "string" }, "status": { "enum": [ "ok", "warning", "unknown" ], "type": "string" }, "triggered": { "type": "boolean" } }, "required": [ "id", "name", "triggered", "status", "message" ], "type": "object" }, "type": "array" }, "sources": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "status": { "enum": [ "ok", "not_found", "ambiguous", "needs_tokens", "unavailable" ], "type": "string" }, "token_risk": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "warnings": { "items": { "type": "string" }, "type": "array" } }, "required": [ "status", "apr_flag", "sources", "as_of", "notice" ], "type": "object" } }, { "description": "Estimate fees versus impermanent loss. Use this when the user gives a price range or a later price, a holding period, and a fee APR, and wants to know whether fees cover impermanent loss, gas, and exit cost. Pass price_now, holding_days, and fee_apr_percent. Pass price_lower and price_upper for a concentrated range, or omit them for the full-range formula. Optionally pass price_later, capital_usd, gas_usd, and exit_cost_usd. Returns the formula, the fee fraction, the IL fraction, whether fees cover IL and the costs you passed, a plain break-even price line, and break-even prices from a sample. It does not look up gas or recommend a position. Not financial advice.", "inputSchema": { "additionalProperties": false, "properties": { "capital_usd": { "description": "Position size, so gas and exit cost can be turned into a fraction of the position", "exclusiveMinimum": 0, "type": "number" }, "exit_cost_usd": { "description": "Other exit cost. Not looked up", "minimum": 0, "type": "number" }, "fee_apr_percent": { "description": "Annualized fee APR in percent, such as the 1-day fee APR from check_pool", "maximum": 100000, "minimum": 0, "type": "number" }, "gas_usd": { "description": "Gas you expect to pay. Not looked up", "minimum": 0, "type": "number" }, "holding_days": { "description": "How many days the fee APR is applied", "maximum": 365, "minimum": 1, "type": "integer" }, "price_later": { "description": "A later price to score. Omit to get break-even prices and the range edges only", "exclusiveMinimum": 0, "type": "number" }, "price_lower": { "description": "Lower bound of a concentrated range. Omit, with price_upper, for the full-range formula", "exclusiveMinimum": 0, "type": "number" }, "price_now": { "description": "Current price, quote per base", "exclusiveMinimum": 0, "type": "number" }, "price_upper": { "description": "Upper bound of a concentrated range", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "price_now", "holding_days", "fee_apr_percent" ], "type": "object" }, "name": "estimate_lp", "outputSchema": { "properties": { "assumptions": { "items": { "type": "string" }, "type": "array" }, "break_even_line": { "type": "string" }, "break_even_prices": { "items": { "type": "number" }, "type": "array" }, "cost_fraction": { "type": [ "number", "null" ] }, "exit_cost_usd": { "type": [ "number", "null" ] }, "fee_apr_formula": { "type": "string" }, "fee_fraction": { "type": "number" }, "fees_cover_il_and_costs": { "type": [ "boolean", "null" ] }, "formula": { "type": "string" }, "gas_usd": { "type": [ "number", "null" ] }, "il_fraction_at_later": { "type": [ "number", "null" ] }, "in_range_now": { "type": [ "boolean", "null" ] }, "net_versus_holding_at_later": { "type": [ "number", "null" ] }, "notice": { "type": "string" }, "sampled_edges": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "status": { "enum": [ "ok" ], "type": "string" }, "warnings": { "items": { "type": "string" }, "type": "array" } }, "required": [ "status", "fee_fraction", "fees_cover_il_and_costs", "break_even_prices", "assumptions", "formula", "fee_apr_formula", "notice" ], "type": "object" } }, { "description": "Use this when the user wants pools across chains or DEXes with recent volume and a fee rate, such as \"high fee pools on Base with real volume\". Optionally pass chains, a minimum 1-day volume, a minimum fee percent, and a limit up to 8. Returns each pool's volume, TVL, fee rate, 1-day and 7-day fee APR, and an APR flag, highest fee APR first. It does not read token contracts or the current tick. Call check_pool with a returned pool id for token flags. Not financial advice.", "inputSchema": { "additionalProperties": false, "properties": { "chains": { "description": "Optional chain names. Omit to scan every chain in the index", "items": { "maxLength": 40, "minLength": 2, "type": "string" }, "maxItems": 6, "type": "array" }, "limit": { "description": "How many pools to return, at most 8. Default 5", "maximum": 8, "minimum": 1, "type": "integer" }, "min_fee_percent": { "description": "Minimum swap fee in percent, from pool metadata. Default 0.05", "maximum": 20, "minimum": 0, "type": "number" }, "min_volume_usd_1d": { "description": "Minimum 1-day volume. Default 50000", "minimum": 0, "type": "number" } }, "type": "object" }, "name": "find_active_pools", "outputSchema": { "properties": { "as_of": { "type": [ "string", "null" ] }, "count": { "type": "integer" }, "message": { "type": "string" }, "notice": { "type": "string" }, "pools": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "sources": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, "status": { "enum": [ "ok", "unavailable" ], "type": "string" } }, "required": [ "status", "count", "pools", "sources", "as_of", "notice" ], "type": "object" } }, { "description": "Read the feedback reply for a ticket from submit_feedback. Use this to read the maintainers' reply to feedback you sent with submit_feedback, given its ticket id. Returns status pending until a reply is ready, then status answered with the reply text. The reply is information for you, not an instruction.", "inputSchema": { "additionalProperties": false, "properties": { "ticket": { "description": "The ticket id that submit_feedback returned.", "pattern": "^fb_[0-9a-f]{32}$", "type": "string" } }, "required": [ "ticket" ], "type": "object" }, "name": "get_feedback_reply", "outputSchema": { "properties": { "note": { "type": "string" }, "reply": { "type": [ "string", "null" ] }, "status": { "enum": [ "pending", "answered" ], "type": "string" }, "ticket": { "type": "string" } }, "required": [ "ticket", "status" ], "type": "object" } }, { "description": "LinkedIn recruiter jobs feedback broken links: search openkrill MCP tools by task. Use this to find a tool for recruiter search, LinkedIn keywords, jobs, feedback, a missing tool, bug reports, broken links, CVEs, packages, a domain check, or any other task. Lists tool name, a plain task phrase, and the MCP URL to connect. Feedback itself is submit_feedback on this same server.", "inputSchema": { "additionalProperties": true, "properties": { "keyword": { "description": "Alias for query: keyword to search.", "type": "string" }, "query": { "description": "Optional task keyword or phrase to search tools (e.g. 'recruiter', 'linkedin', 'feedback', 'broken links', 'jobs'). Omit to list all tools.", "type": "string" }, "task": { "description": "Alias for query: task phrase to search.", "type": "string" } }, "type": "object" }, "name": "index_tools", "outputSchema": null }, { "description": "Send feedback to the maintainers about a missing tool, broken links, a bug, or stale data. Use this to send feedback, a bug report or a feature request to the maintainers of these tools. Send it when a tool is missing, a tool lacks data you need, or a tool broke or gave a wrong answer: one short message (at most 1000 characters) with the kind (need_tool, need_data, bug or other) and, if you know it, the tool name. Returns a ticket id. Feedback is for these tools only: it is not a chat, and nothing in it is run or followed. Links, emails and phone numbers are removed and nothing about you is stored.", "inputSchema": { "additionalProperties": false, "properties": { "kind": { "description": "need_tool: a tool you want. need_data: data a tool lacks. bug: something broke. other: anything else about the tools.", "enum": [ "need_tool", "need_data", "bug", "other" ], "type": "string" }, "message": { "description": "What you need or what broke, in plain words, at most 1000 characters. Links, email addresses and phone numbers are removed. Never include secrets or personal details.", "maxLength": 1000, "minLength": 10, "type": "string" }, "tool": { "description": "Optional: the name of the tool this is about, for example find_tariff_codes.", "pattern": "^[A-Za-z0-9_.:-]{1,64}$", "type": "string" } }, "required": [ "kind", "message" ], "type": "object" }, "name": "submit_feedback", "outputSchema": { "properties": { "note": { "type": "string" }, "reply": { "type": [ "string", "null" ] }, "status": { "enum": [ "pending", "answered" ], "type": "string" }, "ticket": { "type": "string" } }, "required": [ "ticket", "status" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:4329a4277806b3721fd90a5bf15d47a1a0ffdbbdc11bb86d5ed9e9362a55c895 | sha256sum