Endpoints: 39,967MCP servers: 22,496Payout addresses: 2,533Paid calls: 3,294Letters: 54Defects: 1,976counted 1 min ago
teppi

Server definition

Hash
sha256:0fb0af4867b13db6fbf2c2e13f4f015c7de51c3d8c46086979871ed18829d2fa
What it is
What a remote MCP server returned when asked what it offers: 13 tools

The blob, as servednamed by its sha256

{ "instructions": "Answer only from these tools and quote the URLs they return; if the site does not cover a point, say so first. Take the specialized tool that fits, otherwise chercher, then read the page or section with lire_page before stating a detail missing from an excerpt. Every price total (a team, or one user over a year) comes from devis, other figures from citer_chiffre or a page read: never compute, round or invent one. The person books a demo and confirms the slot in the calendar.", "tools": [ { "description": "Lists the product's published capabilities with their promise and proof page, the problems it solves, what the plan includes and the published comparison pages, ranked by the need given. Use it when the buyer must choose or asks why this product: what does it do best, is it right for our need. To compare with a named tool, use comparer; for one feature, chercher; for prices, voir_offres. Facts about this product only: about other tools, only what the comparison pages publish.", "inputSchema": { "additionalProperties": false, "properties": { "besoin": { "description": "The buyer's need or criteria, in their words (e.g. read tracking, tenders). Ranks the capabilities.", "maxLength": 200, "minLength": 2, "type": "string" }, "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "atouts", "outputSchema": null }, { "description": "Runs the ROI calculator published on the site, with exactly its formulas and bounds. Use it when the buyer asks what the product would bring them: deals won, revenue, time saved. Call it without values to get its inputs (label, bounds, default), ask the buyer for their own figures, then pass x1, x2… Returns each result with its calculation, the inputs used, the published assumptions and the page to quote. For a price, use devis; for a published statistic, citer_chiffre.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "x1": { "description": "Value of input x1, as listed by a call without values. Without it: its default.", "type": "number" }, "x2": { "description": "Value of input x2, as listed by a call without values. Without it: its default.", "type": "number" }, "x3": { "description": "Value of input x3, as listed by a call without values. Without it: its default.", "type": "number" }, "x4": { "description": "Value of input x4, as listed by a call without values. Without it: its default.", "type": "number" }, "x5": { "description": "Value of input x5, as listed by a call without values. Without it: its default.", "type": "number" }, "x6": { "description": "Value of input x6, as listed by a call without values. Without it: its default.", "type": "number" }, "x7": { "description": "Value of input x7, as listed by a call without values. Without it: its default.", "type": "number" }, "x8": { "description": "Value of input x8, as listed by a call without values. Without it: its default.", "type": "number" } }, "required": [ "langue" ], "type": "object" }, "name": "calculer_roi", "outputSchema": { "properties": { "avertissement": { "type": "string" }, "calculateur": { "type": "string" }, "consigne": { "description": "What to do with the result.", "type": "string" }, "entrees": { "items": { "properties": { "bornes": { "items": { "type": "number" }, "type": "array" }, "cle": { "description": "x1, x2…", "type": "string" }, "libelle": { "type": "string" }, "manquante": { "type": "boolean" }, "parDefaut": { "type": "boolean" }, "ramenee": { "description": "Value given, brought back within the bounds.", "type": "number" }, "unite": { "type": "string" }, "valeur": { "description": "Value used; absent when it must be asked.", "type": "number" } }, "required": [ "cle", "libelle" ], "type": "object" }, "type": "array" }, "erreur": { "description": "Why the call was refused and what to fix.", "type": "string" }, "hypotheses": { "items": { "type": "string" }, "type": "array" }, "langue": { "description": "Language of the answer.", "type": "string" }, "resultats": { "items": { "properties": { "calcul": { "type": "string" }, "libelle": { "type": "string" }, "valeur": { "type": "string" } }, "required": [ "libelle", "valeur", "calcul" ], "type": "object" }, "type": "array" }, "url": { "description": "Page of the calculator, to quote.", "type": "string" } }, "required": [ "langue" ], "type": "object" } }, { "description": "Searches the site's pages and returns the passages that answer, each with its URL and section anchor, and a confidence. Use it for facts about the product: can it do X, a feature, integrations, security, GDPR, a sector. Steps in the app: comment_faire; prices: voir_offres or devis; comparison: comparer. Returns excerpts: read the page with lire_page before stating a detail they lack. Confidence moyenne or faible: first say what the site does not cover, then give the closest page.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "limite": { "description": "Maximum number of passages (1 to 10, default 5).", "maximum": 10, "minimum": 1, "type": "integer" }, "requete": { "description": "The buyer's question or its key words, in the language of the answer.", "maxLength": 200, "minLength": 2, "type": "string" } }, "required": [ "requete", "langue" ], "type": "object" }, "name": "chercher", "outputSchema": null }, { "description": "Returns the figures published on the site (statistics, results, market data) with their value, label, source URL, date and the page that publishes them. Use it before quoting any figure that is not a price. Quote the figure exactly as returned, with its source and date; never round or extrapolate it. For prices use voir_offres or devis; for an estimate for the buyer, calculer_roi. Returns only published figures: when none matches, give no figure.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "requete": { "description": "Words to look for in the figure or its label. Without it, all figures.", "maxLength": 200, "minLength": 2, "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "citer_chiffre", "outputSchema": { "properties": { "chiffres": { "items": { "properties": { "date": { "type": "string" }, "detail": { "type": "string" }, "fiche": { "type": "string" }, "libelle": { "type": "string" }, "page": { "description": "Page of the site that publishes it.", "type": "string" }, "source": { "properties": { "nom": { "type": "string" }, "url": { "type": "string" } }, "required": [ "url" ], "type": "object" }, "valeur": { "description": "The figure, to quote exactly.", "type": "string" } }, "required": [ "valeur", "libelle", "source", "date" ], "type": "object" }, "type": "array" }, "consigne": { "description": "What to do with the result.", "type": "string" }, "erreur": { "description": "Why the call was refused and what to fix.", "type": "string" }, "langue": { "description": "Language of the answer.", "type": "string" } }, "required": [ "langue" ], "type": "object" } }, { "description": "Returns the steps from the user documentation for a task in the app, with the app labels as written and the URL of the section to quote. Use it when the buyer asks how to do something in the product: how do I invite a colleague, where do I see why a prospect declined, how do I export a PDF, how do I create an API key. To know whether the product can do something, or what a feature brings, use chercher. Covers the documentation only: no prices, no comparisons.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "question": { "description": "What the person wants to do, in their words (e.g. share a proposal with a decision-maker).", "maxLength": 200, "minLength": 2, "type": "string" } }, "required": [ "question", "langue" ], "type": "object" }, "name": "comment_faire", "outputSchema": null }, { "description": "Returns the passages of the published comparison pages that answer, each with its page to quote, and the tools a page covers. Use it when the buyer compares this product with another tool or a kind of tool: Cuevr or PandaDoc, an alternative to Word, Cuevr or an e-signature tool. To know if it works with a tool already in use (keep Docusign, an integration): chercher; without a named tool: atouts. A tool no page covers is listed in nonCouverts: say nothing about it.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "question": { "description": "The buyer's comparison in their words, with the tools named (e.g. Cuevr or PandaDoc for a team of 10).", "maxLength": 200, "minLength": 2, "type": "string" } }, "required": [ "question", "langue" ], "type": "object" }, "name": "comparer", "outputSchema": null }, { "description": "Returns selling advice published on the site (follow-ups, proposal structure, qualification, pricing, negotiation, tenders), each with its page to quote. Use it for a method question that does not depend on the product: how many follow-ups without being pushy, what goes in a proposal, how to qualify a deal. When the buyer describes their own problem and asks how the product helps, use resoudre_probleme; for a product fact, chercher. Returns advice only, no product features or prices.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "requete": { "description": "Words to look for in the advice.", "maxLength": 200, "minLength": 2, "type": "string" }, "secteur": { "description": "Sector of the buyer, when known (agences, conseil, esn, saas).", "enum": [ "agences", "conseil", "esn", "saas" ], "type": "string" }, "sujet": { "description": "Topic: closing, relances (follow-ups), structure, qualification, prix (pricing), negociation, appels-offres (tenders), cycle.", "enum": [ "closing", "relances", "structure", "qualification", "prix", "negociation", "appels-offres", "cycle" ], "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "conseils", "outputSchema": null }, { "description": "Returns a link to the demo request form, prefilled with the details given. Use it outside the browser when the buyer wants a demo or to talk to the team. Opening the link shows the filled form: the person, or their browser agent, sends it, then the person picks and confirms the time slot in the calendar. Sends nothing by itself. To try the product alone, use demarrer_essai.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "Work email address of the person. Personal mailboxes (Gmail, Outlook, Yahoo…) are refused.", "maxLength": 254, "type": "string" }, "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "nom": { "description": "Last name of the person.", "maxLength": 100, "type": "string" }, "prenom": { "description": "First name of the person.", "maxLength": 100, "type": "string" }, "societe": { "description": "Company of the person.", "maxLength": 200, "type": "string" }, "telephone": { "description": "Phone number of the person (optional).", "maxLength": 40, "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "demander_demo", "outputSchema": null }, { "description": "Returns the sign-up link of the free trial and its conditions. Use it when the buyer wants to start a trial now. Whether a trial exists and its conditions, together with prices, come from voir_offres. Creates no account: the person signs up and accepts the terms.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "demarrer_essai", "outputSchema": null }, { "description": "Prices a number of users (1 or more) from the published prices: unit price, total per period and per year, yearly saving, the calculation and the pricing page. Use it for any total: a team, several users, or one user over a year, even as an example; call it as soon as a team size or period is known. Never compute a total yourself. Unit prices and plans: voir_offres.", "inputSchema": { "additionalProperties": false, "properties": { "facturation": { "description": "Billing: mensuel (monthly) or annuel (yearly). Without it, both.", "enum": [ "mensuel", "annuel" ], "type": "string" }, "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "plan": { "description": "Key or name of the plan, as returned by voir_offres. Without it, every plan.", "maxLength": 100, "minLength": 1, "type": "string" }, "sieges": { "description": "Number of users (seats) to price, as the buyer gave it. Ask for it rather than assume one.", "maximum": 10000, "minimum": 1, "type": "integer" } }, "required": [ "sieges", "langue" ], "type": "object" }, "name": "devis", "outputSchema": { "properties": { "consigne": { "description": "What to do with the result.", "type": "string" }, "erreur": { "description": "Why the call was refused and what to fix.", "type": "string" }, "langue": { "description": "Language of the answer.", "type": "string" }, "plans": { "items": { "properties": { "cle": { "type": "string" }, "economieAnnuelle": { "description": "Saving of yearly billing over twelve monthly payments, for these seats.", "type": "string" }, "inclus": { "items": { "type": "string" }, "type": "array" }, "lignes": { "items": { "properties": { "calcul": { "description": "Unit price × seats = total.", "type": "string" }, "equivalentMensuel": { "type": "string" }, "facturation": { "description": "mensuel or annuel.", "type": "string" }, "periode": { "type": "string" }, "prixUnitaire": { "description": "Unit price as published.", "type": "string" }, "taxesIncluses": { "type": "boolean" }, "totalParPeriode": { "type": "string" }, "totalSurUnAn": { "type": "string" } }, "required": [ "facturation", "prixUnitaire", "periode", "totalParPeriode", "totalSurUnAn", "calcul" ], "type": "object" }, "type": "array" }, "offre": { "type": "string" }, "plan": { "type": "string" }, "surDevis": { "description": "No public price: on quote, offer a demo.", "type": "boolean" } }, "required": [ "plan", "cle", "surDevis", "lignes" ], "type": "object" }, "type": "array" }, "sieges": { "description": "Number of users priced.", "type": "integer" }, "source": { "properties": { "demo": { "type": "string" }, "fiche": { "type": "string" }, "page": { "description": "Pricing page to quote.", "type": "string" } }, "type": "object" } }, "required": [ "langue" ], "type": "object" } }, { "description": "Returns the text of one page of the site, or of one section by its anchor, with its exact URL. Use it before stating a detail that is not in an excerpt returned by another tool: a condition, a limit, a legal point, how a feature works. Give a URL returned by a tool; with its #anchor, only that section is returned, which is shorter. Reads only pages of this site: to find a page, use chercher.", "inputSchema": { "additionalProperties": false, "properties": { "ancre": { "description": "Anchor of one section of the page (without #): returns that section only.", "maxLength": 100, "minLength": 1, "type": "string" }, "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "url": { "description": "URL or path of a page of this site, as returned by a tool. With a #anchor, only that section is returned.", "maxLength": 500, "minLength": 1, "type": "string" } }, "required": [ "url", "langue" ], "type": "object" }, "name": "lire_page", "outputSchema": null }, { "description": "Diagnoses a sales problem of the buyer's team: likely causes, what the product does for each with the page proving it, and the pages to quote (sector page first). Use it when the buyer describes their problem or asks how the product would help their company: we lose to cheaper rivals, clients haggle over our fees, prospects go silent. Pass secteur when known. For selling advice without the product, use conseils. Returns summaries: read a page with lire_page for details.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" }, "secteur": { "description": "Sector of the buyer, when known (agences, conseil, esn, saas).", "enum": [ "agences", "conseil", "esn", "saas" ], "type": "string" }, "symptome": { "description": "The problem in the buyer's words (e.g. our prospects stop replying after the proposal).", "maxLength": 300, "minLength": 2, "type": "string" } }, "required": [ "symptome", "langue" ], "type": "object" }, "name": "resoudre_probleme", "outputSchema": null }, { "description": "Returns the plans, the price per user (amount, currency, period, taxes), what each plan includes, the free trial and its conditions, and the trial and demo links, as the pricing page publishes them. Use it for: how much per user, is yearly billing cheaper, is there a free trial, is a card needed, what is included. For any total (a team, several users, one user over a year), call devis: never multiply a price yourself. Returns no total.", "inputSchema": { "additionalProperties": false, "properties": { "langue": { "description": "Language of the buyer's question (en, fr, es): always pass it, the pages and answers are in this language.", "enum": [ "en", "fr", "es" ], "type": "string" } }, "required": [ "langue" ], "type": "object" }, "name": "voir_offres", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:0fb0af4867b13db6fbf2c2e13f4f015c7de51c3d8c46086979871ed18829d2fa | sha256sum