Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,544Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Moltline's Business Suite: 30 industry/operations persona-skill products (finance admin, bookkeeping support, legal-office ops, real estate, hospitality, SMB operations and more). Free: list_products, get_free_skill, unit_economics. Premium: get_full_product, get_full_skill.", "tools": [ { "description": "Compute months of cash runway and the projected out-of-cash date. FREE.\n\nTypical input {\"cash_balance\": 120000, \"monthly_burn\": 15000,\n\"monthly_revenue\": 5000} returns {\"runway_months\": 12.0,\n\"net_burn_monthly\": 10000, \"projected_out_of_cash\": \"YYYY-MM-DD\"}; when\nrevenue covers burn it returns {\"runway\": \"infinite at current numbers\n(revenue covers burn)\", ...}.\n\nUse when a cash balance and a monthly burn are known. Not for per-unit\nprofitability (unit_economics). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"cash_balance must be >= 0\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "cash_balance": { "description": "Cash on hand today; must be 0 or greater, e.g. 120000.", "minimum": 0, "type": "number" }, "monthly_burn": { "description": "Total monthly outflow in the same currency as cash_balance, e.g. 15000.", "type": "number" }, "monthly_revenue": { "default": 0, "description": "Monthly inflow netted against burn, e.g. 5000. Default 0.", "type": "number" } }, "required": [ "cash_balance", "monthly_burn" ], "type": "object" }, "name": "cash_runway", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Load a product's free gateway skill with its complete instructions. FREE.\n\nTypical input {\"slug\": \"smb-ops-desk\"} returns {\"slug\": \"smb-ops-desk\",\n\"skill\": \"<skill name>\", \"instructions\": \"<full skill text>\"}.\n\nReturns exactly one skill - the product's free gateway skill - chosen\nautomatically from the slug, with no plan required. Use when the caller\nwants usable instructions immediately. Not for the product's other skills:\nthose are named and need get_full_skill with a skill_name, which requires\na paid plan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'. Use list_products.\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "Product slug exactly as returned by list_products, e.g. \"smb-ops-desk\"; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_free_skill", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Load one product in full: its persona plus every paid skill. PREMIUM (license).\n\nTypical input {\"slug\": \"smb-ops-desk\"} returns {\"slug\": ..., \"name\": ...,\n\"persona\": \"<persona text>\", \"skills\": [{\"name\": ..., \"instructions\":\n...}, ...], \"free_skill\": {...}}.\n\nReturns persona plus every skill for one product. Use when the caller\nwants the whole product. Not for a single skill (get_full_skill) and not\nfor a free look, which list_products and get_free_skill provide with no\nplan. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "slug": { "description": "Product slug exactly as returned by list_products, e.g. \"smb-ops-desk\"; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_full_product", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Load one paid skill's complete instructions from a product. PREMIUM (license).\n\nTypical input {\"slug\": \"smb-ops-desk\", \"skill_name\": \"invoice-chaser\"}\nreturns {\"slug\": ..., \"skill\": ..., \"instructions\": \"<full skill text>\"}.\n\nReturns one named skill, selected by skill_name. Use when the caller wants\none specific paid skill. Not for the free gateway skill, which\nget_free_skill returns with no plan, and not for every skill at once\n(get_full_product). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"unknown slug '<value>'\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "skill_name": { "description": "Exact skill name as listed in that product's \"skills\" array from list_products, e.g. \"invoice-chaser\"; must be non-empty.", "minLength": 1, "type": "string" }, "slug": { "description": "Product slug exactly as returned by list_products, e.g. \"smb-ops-desk\"; must be non-empty.", "minLength": 1, "type": "string" } }, "required": [ "slug", "skill_name" ], "type": "object" }, "name": "get_full_skill", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "List every product in the Business Suite line with its included skills. FREE.\n\nTakes no arguments. Typical input {} returns a list of 30 product objects, each\n{\"slug\": \"smb-ops-desk\", \"name\": ..., \"tagline\": ..., \"skills\":\n[\"Skill A\", ...], \"free_skill\": \"Gateway Skill Name\"}. Use the returned\nslug values with get_free_skill, get_full_product, or get_full_skill.\n\nReturns metadata only - no persona text and no skill instructions. Use\nwhen the caller wants to see what this server covers. Not for keyword\nsearch across the whole 138-product catalog, which the catalog server's\nsearch_catalog does, and not for instructions the caller can act on\n(get_free_skill). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"}. Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "list_products", "outputSchema": { "properties": { "result": { "items": { "additionalProperties": true, "type": "object" }, "type": "array" } }, "required": [ "result" ], "type": "object", "x-fastmcp-wrap-result": true } }, { "description": "Compute an amortized loan payment: monthly payment, total paid, total interest. FREE.\n\nAdministrative math only — not financial advice. Typical input\n{\"principal\": 250000, \"annual_rate_pct\": 6.5, \"years\": 30} returns\n{\"monthly_payment\": 1580.17, \"months\": 360, \"total_paid\": ...,\n\"total_interest\": ...}.\n\nUse for a fixed-rate amortized loan. Not for interest-free schedules - the\nmerchant server's installment_plan splits a total without interest. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"principal and years must be > 0\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "annual_rate_pct": { "description": "Annual interest rate as a percentage, 0 to 100, e.g. 6.5 for 6.5%.", "maximum": 100, "minimum": 0, "type": "number" }, "principal": { "description": "Loan amount; must be greater than 0, e.g. 250000.", "exclusiveMinimum": 0, "type": "number" }, "years": { "description": "Loan term in years; must be greater than 0; fractions allowed, e.g. 30.", "exclusiveMinimum": 0, "type": "number" } }, "required": [ "principal", "annual_rate_pct", "years" ], "type": "object" }, "name": "loan_payment", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Compute the selling price needed to hit a target margin percentage. FREE.\n\nTypical input {\"unit_cost\": 12, \"target_margin_pct\": 60} returns\n{\"required_price\": 30.0, \"unit_margin\": 18.0,\n\"equivalent_markup_pct\": 150.0}.\n\nThe inverse of unit_economics - solves for price from a target margin. Use\nwhen the margin is the fixed requirement. Not when the price is already\nset. Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"target_margin_pct must be between 0 and 100\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "target_margin_pct": { "description": "Desired gross margin percentage, strictly between 0 and 100, e.g. 60 for a 60% margin.", "exclusiveMaximum": 100, "exclusiveMinimum": 0, "type": "number" }, "unit_cost": { "description": "Variable cost per unit; must be 0 or greater, e.g. 12.0.", "minimum": 0, "type": "number" } }, "required": [ "unit_cost", "target_margin_pct" ], "type": "object" }, "name": "target_price", "outputSchema": { "additionalProperties": true, "type": "object" } }, { "description": "Calculate unit economics: margin, break-even, LTV:CAC, and a plain reading. FREE.\n\nTypical input {\"price\": 49, \"unit_cost\": 12, \"fixed_costs_monthly\": 8000}\nreturns {\"unit_margin\": 37.0, \"margin_pct\": 75.5, \"markup_pct\": 308.3,\n\"breakeven_units_per_month\": 216.2, \"reading\": [\"...\"]}. LTV fields\nappear when cac is provided.\n\nUse when price, variable cost, and fixed costs are known and margin or\nbreak-even is the question. Not for cash position over time (cash_runway)\nand not for solving backward from a target margin (target_price). Errors: on invalid, missing, or malformed input this tool never raises a protocol error — it returns {\"error\": \"<what is wrong and how to fix it>\"} (for example {\"error\": \"price must be > 0\"}). Every call is read-only and idempotent, so after correcting the input it is always safe to retry.", "inputSchema": { "additionalProperties": false, "properties": { "cac": { "default": 0, "description": "Customer acquisition cost; a value greater than 0 enables LTV and LTV:CAC. Default 0 (skipped).", "type": "number" }, "fixed_costs_monthly": { "default": 0, "description": "Fixed monthly costs; a value greater than 0 enables the break-even calculation. Default 0 (skipped).", "type": "number" }, "price": { "description": "Selling price per unit; must be greater than 0, e.g. 49.0.", "exclusiveMinimum": 0, "type": "number" }, "purchases_per_customer": { "default": 1, "description": "Average lifetime purchases per customer used for LTV. Default 1.", "type": "number" }, "unit_cost": { "description": "Variable cost per unit, in the same currency as price, e.g. 12.0.", "type": "number" }, "units_per_month": { "default": 0, "description": "Expected sales volume per month; a value greater than 0 enables the monthly profit projection. Default 0 (skipped).", "type": "number" } }, "required": [ "price", "unit_cost" ], "type": "object" }, "name": "unit_economics", "outputSchema": { "additionalProperties": true, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:c3edfb5563804de0df8e289b42122a2808b991012e688956ba2406c8a4d6ced9 | sha256sum