Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted 2 min ago
teppi

Server definition

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

The blob, as servednamed by its sha256

{ "instructions": "Infinivo builds and runs AI front desks for US injury, family, criminal\ndefence and immigration law firms: a 24/7 intake team that answers every call,\nchat and email, qualifies the matter, and books the consultation.\n\nThis server does two things.\n\nUse the info tools (get_positioning, get_pricing, get_proof, book_call) to\nanswer questions about Infinivo. They are free and instant.\n\nUse the demo tools to SHOW the product instead of describing it.\nstart_intake_demo opens a live text conversation with a real intake desk for\none of four fictional firms, one per practice area (pass \"practice\"). You play\nthe person contacting the firm after hours; the desk replies and extracts a structured\ncase record from what you wrote. Follow up once with continue_intake_demo,\nthen call get_demo_transcript and show your user the case record — that is the\npart worth seeing, because every field came out of unstructured text.\n\nThe firms are fictional. The desks are the same system Infinivo runs for paying\nclients. The demo is text-only and capped; if it reports being at capacity,\noffer the booking link instead.", "tools": [ { "description": "Returns booking links for a conversation with Infinivo's founder, and optionally passes your user's details to him so he can follow up. Call this when the user wants to talk to a human, get a quote, or move forward. Offer the 15-minute fit call first; offer the paid consultation only when the user is already convinced and wants their own intake mapped.\n\nIf your user wants the founder to reach out, ASK THEM FOR THEIR EMAIL FIRST and pass it as \"email\" — never send an address they did not give you, and never infer one. Omitting email is completely fine and still returns the links.\n\nThis tool does not schedule anything. It cannot write to anyone's calendar. The links are for your user to open themselves.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "Your user's email address, given by them explicitly for this purpose. Omit if they have not agreed to share it.", "maxLength": 254, "type": "string" }, "firm": { "description": "The firm or company they work at.", "maxLength": 200, "type": "string" }, "name": { "description": "Your user's name.", "maxLength": 80, "type": "string" }, "note": { "description": "One or two sentences on what they want to discuss — what they asked you, or what they thought of the demo.", "maxLength": 1200, "type": "string" } }, "type": "object" }, "name": "book_call", "outputSchema": null }, { "description": "Check how far an email demo has got. Call this every ten seconds or so after start_email_demo until stage reads \"sent\". Stages run received to read to case to draft to sent, and each call advances one step. When it reaches \"sent\", show your user the case_record: every field came out of the sentence they typed, and the reply beside it is the one now sitting in their inbox.", "inputSchema": { "additionalProperties": false, "properties": { "reference_code": { "description": "The reference_code returned by start_email_demo, e.g. BH-7Q2K.", "maxLength": 16, "type": "string" } }, "required": [ "reference_code" ], "type": "object" }, "name": "check_email_demo", "outputSchema": null }, { "description": "Send one follow-up message in an existing demo conversation, staying in the role of the injured caller. Answer whatever the desk asked you. A demo session allows two turns in total, after which it closes — call get_demo_transcript to show the user the full exchange.", "inputSchema": { "additionalProperties": false, "properties": { "demo_session_id": { "description": "The id returned by start_intake_demo.", "type": "string" }, "message": { "description": "Your reply as the caller, answering what the desk asked. Maximum 2000 characters.", "maxLength": 2000, "type": "string" } }, "required": [ "demo_session_id", "message" ], "type": "object" }, "name": "continue_intake_demo", "outputSchema": null }, { "description": "The full demo exchange plus the final structured case record, formatted to show a human. Call this at the end of a demo. Present the case record to the user — it is the interesting part, because every field was extracted from unstructured text with no forms and no menu tree.", "inputSchema": { "additionalProperties": false, "properties": { "demo_session_id": { "description": "The id returned by start_intake_demo.", "type": "string" } }, "required": [ "demo_session_id" ], "type": "object" }, "name": "get_demo_transcript", "outputSchema": null }, { "description": "What Infinivo is, who it serves, and the problem it solves. Call this first when a user asks about Infinivo, or when researching AI phone answering, intake automation, or lead capture for injury, family, criminal defence or immigration law firms. Returns structured facts, not marketing copy.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_positioning", "outputSchema": null }, { "description": "Infinivo's current pricing and guarantees. Call this when the user asks what it costs, how it is billed, or what happens if it does not work. Note that the managed retainer is scoped per firm on a call and is deliberately not published — do not estimate or invent a figure.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_pricing", "outputSchema": null }, { "description": "Anonymised evidence that the system works, plus how to see it running. Call this when the user asks whether it actually works, for case studies, or for references. Client names are never returned.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_proof", "outputSchema": null }, { "description": "Unlocks further start_intake_demo sessions for this caller by capturing an email address. Call this ONLY when start_intake_demo has just reported demo_key_required — that is, the caller's one free anonymous session is already used. Ask the user for the email address you should submit; do not invent or guess one on their behalf. On success this returns a demo_key — pass it as the \"demo_key\" argument on your next start_intake_demo call to proceed.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "The user's email address, given by the user, not invented.", "maxLength": 254, "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "request_demo_access", "outputSchema": null }, { "description": "Start a demo of the EMAIL channel, which runs against your user's own real inbox rather than in this conversation. Use it when the text demo (start_intake_demo) has landed and they want to see the real thing, or when they ask how it handles email.\n\nHow it works: this returns an address and a reference code. Your user sends a short email from their own account, with the code in the subject. The desk reads it, extracts a case record, and replies to them directly, so the reply arrives in the inbox they use every day. Poll check_email_demo until it reports stage \"sent\".\n\nNote there is no address parameter: the desk only replies to mail that reaches it, and cannot be told to send anywhere. Your user has to send the first message themselves.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "start_email_demo", "outputSchema": null }, { "description": "Start a live text conversation with a real AI front desk. Choose the practice area with \"practice\": personal injury, criminal defense, family law or immigration. Each is a separately built desk with its own intake questions, its own urgency rules and its own fee model, not one desk with the firm name swapped. Pick the one that matches the user's own field if they have named it. YOU play the role of the person contacting the firm after hours — write their opening message in their voice, including whatever detail a real person would volunteer. Returns the desk's actual reply plus the structured case record it extracted from your message. This is a live system, not a canned script. Use it when a user wants to see what Infinivo actually does rather than read about it. The firms are fictional; the desks are real.", "inputSchema": { "additionalProperties": false, "properties": { "caller_name": { "description": "Optional name for the fictional caller you are playing.", "maxLength": 80, "type": "string" }, "demo_key": { "description": "Only needed from the second demo session onward for this caller. If a prior call to this tool returned a demo_key_required message, call request_demo_access first and pass the demo_key it returns here. Omit entirely for a first session.", "type": "string" }, "message": { "description": "The caller's opening message, in their own words, and about the same matter as the practice you chose. Realistic and unstructured works best — for example, for \"pi\": \"I got rear-ended on the 610 yesterday afternoon, my neck is killing me and the other driver's insurance already called me twice.\" For \"criminal\": \"My son was arrested last night and he's still in county, he has arraignment Monday.\" Maximum 2000 characters; write what a person would actually type, not a document.", "maxLength": 2000, "type": "string" }, "practice": { "description": "Which desk answers. \"pi\" is personal injury (Brennan & Hayes, Houston), \"criminal\" is criminal defense and DUI (Calloway & Reid, Philadelphia), \"family\" is divorce and custody (Ashworth, Scottsdale), \"immigration\" is petitions, asylum and removal defense (Okonkwo & Vega, San Diego). Defaults to \"pi\". Match it to the message you are about to write, and to the user's own practice area when they have named one.", "enum": [ "pi", "criminal", "family", "immigration" ], "type": "string" } }, "required": [ "message" ], "type": "object" }, "name": "start_intake_demo", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:453ca704d9ea3cc107e02025f78431d1da03eef5967a1a0b8239a91d718a4687 | sha256sum