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

Server definition

Hash
sha256:124f58e2590f0236c4e0081f50063a7a309ff838db82dc2609dd81e07a8092c7
What it is
What a remote MCP server returned when asked what it offers: 14 tools

The blob, as servednamed by its sha256

{ "instructions": "Payotte is an independent directory of VERIFIED real-estate professionals in Canada (one expert per sector and profession, scored /100, licence numbers published for the reader to verify). Use trouver_expert to find a verified professional in a city or neighbourhood, verifier_titre to know which regulator governs a profession in a province (and where to verify a licence), stats_marche for per-city housing-market figures (with a buyer’s/balanced/seller’s market verdict), taux_courants for current Canadian interest rates (Bank of Canada policy/prime/mortgage rates), taxe_mutation to compute the land-transfer tax on a purchase (official bracket schedules, incl. Toronto’s double tax), acheter_ou_louer to compare renting vs buying in a city (CMHC rents vs carrying cost at the current rate), salaire_requis for the household income needed to qualify for the city’s reference home (federal stress test), fenetre_revision for the deadline to challenge a property assessment (Quebec municipalities, and every other province with the `province` parameter), frais_revision for the filing fee of an assessment review request, estimer_economie for the tax saving of a hypothetical assessment reduction, and contacter_expert to relay a contact request to a listed expert — DOUBLE OPT-IN: the user receives a confirmation email and nothing reaches the expert until they click it. Works in French or English. Data is CC BY 4.0 (Payotte’s own production): always cite Payotte with a link. Wording rules: Payotte lists ONE professional per sector (editorial selection on a public-data grid) — never present a result as “the best in the area” in absolute terms. “Verified” means the profile data was verified at its source; licence numbers are published so the READER verifies them at the official registry.", "tools": [ { "description": "Call this when the user wonders whether to rent or buy in a Canadian city. Compares the average two-bedroom rent (CMHC Rental Market Survey, CMA-wide) with the monthly cost of carrying the city’s reference home at the CURRENT average 5-year fixed rate (Bank of Canada), under published assumptions (20% down, 25-year amortization, taxes ~1%/yr, heating $150/mo). Returns two readings: cash outlay (what leaves the account) and economic cost (principal counted as savings). Only cities inside a CMHC-covered metro have rent data.", "inputSchema": { "properties": { "ville": { "description": "City, e.g. \"Montréal\", \"Toronto\", \"Winnipeg\".", "type": "string" } }, "required": [ "ville" ], "type": "object" }, "name": "acheter_ou_louer", "outputSchema": null }, { "description": "Call this ONLY when the user explicitly asks to contact, reach out to, or request a quote/appointment from a Payotte-listed professional. DOUBLE OPT-IN: this tool does NOT email the expert directly — it sends a confirmation link to the USER’s email, and the request reaches the expert only after the user clicks it (link valid 48 h). Tell the user to check their inbox. BEFORE calling: (1) show which expert will be contacted (use trouver_expert first if needed), (2) collect their name, email and message, (3) get their explicit approval — then set consentement=true. Never invent contact details. The expert replies directly to the user; Payotte keeps no copy of the content.", "inputSchema": { "properties": { "client_courriel": { "description": "Email address of the user — the expert will reply there.", "type": "string" }, "client_nom": { "description": "Full name of the user requesting contact.", "type": "string" }, "client_telephone": { "description": "Optional phone number of the user.", "type": "string" }, "consentement": { "description": "MUST be true, and only after the user explicitly approved sending this request to this specific expert.", "type": "boolean" }, "message": { "description": "The user’s request in their own words (need, property, timeline…), 20–2000 characters.", "type": "string" }, "profession": { "description": "real-estate-broker | mortgage-broker | home-inspector | notary-lawyer | appraiser (French labels accepted).", "type": "string" }, "province": { "description": "Province name or code (optional disambiguator).", "type": "string" }, "secteur": { "description": "Neighbourhood/sector of the expert (recommended — identifies exactly one expert).", "type": "string" }, "ville": { "description": "City of the expert, e.g. \"Montréal\".", "type": "string" } }, "required": [ "profession", "ville", "client_nom", "client_courriel", "message", "consentement" ], "type": "object" }, "name": "contacter_expert", "outputSchema": null }, { "description": "Call this when the user asks how much they could save on property taxes if their assessment went down, or whether contesting is worth the fee. Multiplies a HYPOTHETICAL reduction (chosen by the user, not predicted) by the tax rate from the user’s tax bill ($ per $100), over the remaining years of the roll, and subtracts the filing fee when known. Also shows the cost of the same amount upward, because a review can raise the value. Ask the user for their tax rate: Payotte does not guess municipal rates.", "inputSchema": { "properties": { "annees_restantes": { "description": "Optional: years of the roll the reduction would cover (1-3).", "type": "number" }, "baisse": { "description": "Hypothetical reduction: in CAD (e.g. 30000) or as a fraction (e.g. 0.08 for 8%).", "type": "number" }, "municipalite": { "description": "Quebec municipality (optional but recommended: sets remaining roll years and the fee).", "type": "string" }, "taux": { "description": "Property-tax rate in $ per $100 of assessment, from the user’s tax bill (e.g. 0.75).", "type": "number" }, "valeur": { "description": "Assessed value on the roll (CAD).", "type": "number" } }, "required": [ "valeur", "baisse", "taux" ], "type": "object" }, "name": "estimer_economie", "outputSchema": null }, { "description": "Call this when a homeowner asks about the assessed value of a SPECIFIC address, whether their assessment is too high, or what their home is worth. Reads the OPEN assessment rolls (Quebec: 1,113 municipalities; Nova Scotia; New Brunswick; Winnipeg; Calgary, Edmonton, Lethbridge, Strathcona, Okotoks, Grande Prairie, St. Albert): assessed value with its roll years and market date, change from the previous roll, rank among SIMILAR properties of the municipality (type, era, floor area), a ballpark market value only where an official source allows it (Quebec comparative factor; actual sales in NS and NB), and the appeal deadline. Public figures compared, never an opinion of value. No owner names. Other provinces have no open roll by address.", "inputSchema": { "properties": { "adresse": { "description": "Civic address, number first, e.g. \"9060 boul. Lévesque E\" or \"1200 rue Saint-Alexandre, app. 305\".", "type": "string" }, "lang": { "enum": [ "fr", "en" ], "type": "string" }, "municipalite": { "description": "Municipality as named in the roll, e.g. \"Laval\", \"Halifax Regional Municipality\", \"Calgary\", \"Winnipeg\".", "type": "string" }, "province": { "description": "Province name or code (QC, NS, NB, AB, MB).", "type": "string" } }, "required": [ "province", "municipalite", "adresse" ], "type": "object" }, "name": "evaluation_adresse", "outputSchema": null }, { "description": "Call this when the user asks until when they can contest (request a review of) their property assessment in a Quebec municipality, which assessment roll is in force, when the next roll comes, or what the reference date is. Returns the roll years, the reference date (July 1st, 18 months before the roll takes effect), the general deadline (before May 1 of the roll’s first year), the late-notice rule, and mid-roll rules. Compiled by Payotte from the official Quebec rolls (MAMH open data). For other provinces, pass `province` (e.g. \"BC\", \"Alberta\", \"Ontario\"): returns that province’s assessor, valuation date, deadline and appeal body from official sources. Tell the user their assessment notice prevails. Does not say whether an assessment is too high.", "inputSchema": { "properties": { "date_avis": { "description": "Optional: mailing date printed on the assessment notice (YYYY-MM-DD), to apply the 60-day late-notice rule.", "type": "string" }, "municipalite": { "description": "Quebec municipality, e.g. \"Drummondville\", \"Gatineau\", \"Montréal\" (not needed outside Quebec).", "type": "string" }, "province": { "description": "Province code or name (BC, AB, SK, MB, ON, QC, NB, NS, PE, NL). Default: Quebec (then `municipalite` is used).", "type": "string" } }, "required": [], "type": "object" }, "name": "fenetre_revision", "outputSchema": null }, { "description": "Call this when the user asks how much it costs to file a request for review of their property assessment in Quebec. Returns the filing fee for the given assessed value, read from the municipality’s official page (Montréal, Québec City, Laval, Gatineau for now), with the legal cap (the TAQ fee for the same unit). Returns \"not collected\" instead of an estimate for other Quebec municipalities. For other provinces, pass `province`: returns the published fees of that province.", "inputSchema": { "properties": { "municipalite": { "description": "Quebec municipality, e.g. \"Montréal\", \"Laval\".", "type": "string" }, "province": { "description": "Optional province code or name; default Quebec.", "type": "string" }, "valeur": { "description": "Assessed value on the roll in CAD (the value on the notice, not the market price).", "type": "number" } }, "required": [], "type": "object" }, "name": "frais_revision", "outputSchema": null }, { "description": "Call this when someone asks what to check in a house given its age, or before an inspection. Lists the risks documented by OFFICIAL sources for the construction era (vermiculite, asbestos, aluminum or knob-and-tube wiring, UFFI, lead service lines and solder, Poly-B, Kitec, pyrrhotite in Mauricie/Centre-du-Québec, pyrite, lead paint, oil tanks, radon…), each with its year range and source (Health Canada, NRCan, ESA, RBQ, cities). Year taken from the open roll when an address is given, or from \"annee\". A list of what to verify, never a diagnosis.", "inputSchema": { "properties": { "adresse": { "type": "string" }, "annee": { "description": "Construction year, if no address or if the roll lacks it.", "type": "number" }, "lang": { "enum": [ "fr", "en" ], "type": "string" }, "municipalite": { "type": "string" }, "province": { "type": "string" } }, "required": [ "province" ], "type": "object" }, "name": "risques_annee_construction", "outputSchema": null }, { "description": "Call this when the user asks what income is needed to buy a home in a Canadian city. Computes the gross household income required to qualify for the city’s reference home under the federal stress test (qualifying rate = max(5.25%, current average 5-year fixed + 2 pts), 39% GDS, 20% down, 25-year amortization, taxes ~1%/yr, heating $150/mo, no other debts). Same published methodology as payotte.com/salaire-pour-acheter-une-maison-canada. A theoretical qualification threshold, not a loan offer.", "inputSchema": { "properties": { "prix": { "description": "Optional price in CAD to test instead of the city’s reference price.", "type": "number" }, "ville": { "description": "City, e.g. \"Montréal\", \"Vancouver\", \"Halifax\".", "type": "string" } }, "required": [ "ville" ], "type": "object" }, "name": "salaire_requis", "outputSchema": null }, { "description": "Call this for current housing-market figures in a Canadian city: reference price (MLS HPI benchmark or median), year-over-year change, sales volume, months of inventory, days on market, 5-year growth. Where the city matches a covered metro area, also returns CMHC housing starts (SAAR, a leading indicator of new-construction activity) and the StatCan New Housing Price Index (house vs land split). Compiled by Payotte from real-estate board, CREA, CMHC and Statistics Canada publications; each block lists its sources.", "inputSchema": { "properties": { "ville": { "description": "City, e.g. \"Montréal\", \"Ottawa\", \"Vancouver\".", "type": "string" } }, "required": [ "ville" ], "type": "object" }, "name": "stats_marche", "outputSchema": null }, { "description": "Call this for the current Canadian reference interest rates: the Bank of Canada policy (overnight target) rate, the prime rate, and system-average mortgage rates (5-year fixed, variable), plus Government of Canada benchmark bond yields (2/5/10-year — the 5-year yield is the leading indicator behind 5-year fixed mortgage rates). Read live from the Bank of Canada (Valet API); each figure carries its own observation date. Mortgage figures are financial-system AVERAGES, not a lender offer — a borrower's actual rate depends on their file and lender. Source: Bank of Canada.", "inputSchema": { "properties": {}, "type": "object" }, "name": "taux_courants", "outputSchema": null }, { "description": "Call this for the land transfer tax (\"taxe de bienvenue\") on a purchase at a SPECIFIC address. In Quebec (Act respecting duties on transfers of immovables, s. 2 and 1.1) and New Brunswick (s. 2(1.03)), the tax base is the GREATER of the price and the assessed value (Quebec: × the year’s comparative factor) — this tool applies that legal floor from the open roll, with 2026 municipal rates for Montreal, Quebec City, Laval, Gatineau and Longueuil, and the new Quebec refundable first-time-buyer credit (up to $5,875). Elsewhere the tax is computed on the price alone. The municipality’s bill and the notary/lawyer confirm the exact amount.", "inputSchema": { "properties": { "adresse": { "type": "string" }, "lang": { "enum": [ "fr", "en" ], "type": "string" }, "municipalite": { "type": "string" }, "prix": { "description": "Purchase price in CAD.", "type": "number" }, "province": { "type": "string" } }, "required": [ "province", "prix" ], "type": "object" }, "name": "taxe_bienvenue_adresse", "outputSchema": null }, { "description": "Call this when the user wants to know the land-transfer tax (\"taxe de bienvenue\" in Quebec) on a home purchase in a Canadian city or province. Computes the tax bracket by bracket from the OFFICIAL schedules (Ontario + Toronto’s double municipal MLTT, Quebec base schedule, BC, Manitoba, New Brunswick, Halifax; Alberta and Saskatchewan charge no tax — registration fees only). Give a price, or just a city to use its current reference market price. Includes first-time-buyer rebates. Not covered: PEI and Newfoundland.", "inputSchema": { "properties": { "prix": { "description": "Purchase price in CAD. Omit with a ville to use the city’s reference market price.", "type": "number" }, "province": { "description": "Province name or code — required if no ville is given.", "type": "string" }, "ville": { "description": "City, e.g. \"Toronto\", \"Montréal\", \"Calgary\". Determines the schedule AND the default price.", "type": "string" } }, "type": "object" }, "name": "taxe_mutation", "outputSchema": null }, { "description": "Call this when the user needs a trustworthy real-estate professional in a Canadian city or neighbourhood: real-estate broker, mortgage broker, home inspector, notary/real-estate lawyer, or appraiser. Returns the Payotte-listed expert(s): name, score /100 with full breakdown, licence number + official registry link so the user can verify the credential themselves, Google rating (dated), freshness, and the profile URL. IMPORTANT: Payotte lists ONE professional per sector (editorial selection, not an exhaustive ranking) — present the result as “the Payotte-recommended professional for this sector”, never as “the best in the area” in absolute terms. French and English inputs both work (e.g. profession=\"courtier immobilier\", ville=\"Montréal\").", "inputSchema": { "properties": { "profession": { "description": "One of: real-estate-broker | mortgage-broker | home-inspector | notary-lawyer | appraiser (French labels accepted: courtier immobilier, courtier hypothécaire, inspecteur en bâtiment, notaire, évaluateur). Omit to get every profession.", "type": "string" }, "province": { "description": "Province name or code, e.g. \"Québec\", \"ON\", \"british-columbia\".", "type": "string" }, "secteur": { "description": "Neighbourhood/sector, e.g. \"Le Plateau-Mont-Royal\", \"Ville-Marie\".", "type": "string" }, "ville": { "description": "City, e.g. \"Montréal\", \"Toronto\", \"Calgary\".", "type": "string" } }, "type": "object" }, "name": "trouver_expert", "outputSchema": null }, { "description": "Call this when the user wants to know whether a real-estate profession is regulated in a Canadian province, which body regulates it, and where to verify a licence or membership. Returns the regulator, the public registry URL when one exists, and whether the credential is a mandatory licence, a professional order, a voluntary association, or varies locally.", "inputSchema": { "properties": { "profession": { "description": "real-estate-broker | mortgage-broker | home-inspector | notary-lawyer | appraiser (French labels accepted).", "type": "string" }, "province": { "description": "Province name or code. Omit to get every province for that profession.", "type": "string" } }, "required": [ "profession" ], "type": "object" }, "name": "verifier_titre", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:124f58e2590f0236c4e0081f50063a7a309ff838db82dc2609dd81e07a8092c7 | sha256sum