payotte-mcp
OfficialSummary: An MCP server exposing Payotte's Canadian real-estate data, verified-professional directory and calculators to AI assistants — with (per the README) 75 tools spanning 10 countries.
Find verified experts (
trouver_expert): brokers, mortgage brokers, inspectors, notaries/lawyers, appraisers by city/sector, with score /100, licence number + official registry link, Google rating and profile URL.Verify credentials (
verifier_titre): which regulator governs a title in a Canadian province, whether it's a mandatory licence or voluntary association, plus the public registry URL.Market stats (
stats_marche): per-city reference price, YoY change, sales, inventory, days on market, plus CMHC starts and StatCan NHPI where covered.Current rates (
taux_courants): BoC policy/prime rate, average 5-year fixed & variable mortgage rates, GoC bond yields, each with observation dates.Land transfer tax (
taxe_mutation): bracket-by-bracket "taxe de bienvenue" for ON/Toronto, QC, BC, MB, NB, Halifax, with first-time-buyer rebates.Rent vs buy (
acheter_ou_louer): CMHC rent vs carrying cost of the reference home at current rates.Income needed (
salaire_requis): gross household income to qualify under the federal stress test for a city.Contact an expert (
contacter_expert): double opt-in relay that emails a confirmation link to the user, then forwards their request to the expert.Beyond Canada (README): 61 more tools covering France, US, UK, Australia, India, Brazil, Mexico, Spain and Belgium — purchase taxes, prices, mortgages, guides, comparisons and professional checks (75 tools total).
Operational: stateless Streamable HTTP JSON-RPC on
/mcp, hosted on Cloudflare Workers, reads live payotte.com feeds, no state or maintenance, CC BY 4.0 attribution.
Provides email sending capabilities through Resend, used to relay contact requests from AI assistants to verified real estate professionals.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@payotte-mcpCalculate land transfer tax for a $700k home in Toronto"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
payotte-mcp
Serveur MCP (Model Context Protocol) de Payotte — l'annuaire immobilier canadien de professionnels vérifiés branché dans les IA, et les données immobilières de 10 pays (Canada, France, États-Unis, Royaume-Uni, Australie, Inde, Brésil, Mexique, Espagne, Belgique).
Hébergement : Cloudflare Workers, palier gratuit (100 000 requêtes/jour).
Zéro état, zéro maintenance : le worker lit en direct les feeds statiques de payotte.com (
/api/experts.json,/api/regulators.json,/api/market.json), régénérés à chaque déploiement normal du site. Rien à mettre à jour ici quand les fiches changent.Transport : Streamable HTTP sans état (POST JSON-RPC sur
/mcp). Aucune dépendance.
Les 75 outils
Liste générée depuis tools/list (version 1.14.0). Le Canada porte les fiches d'experts ; les autres pays exposent les règles, taxes, frais et prix de leurs sections sur payotte.com.
Canada (14)
Outil | Titre |
| Évaluation foncière à une adresse / Property assessment at an address |
| Taxe de bienvenue à une adresse / Land transfer tax at an address |
| Risques selon l’année de construction / Risks by construction year |
| Trouver un expert immobilier vérifié / Find a verified real-estate expert |
| Vérifier un titre professionnel / Which regulator governs this title |
| Statistiques du marché immobilier par ville / Per-city housing-market stats |
| Taux d'intérêt canadiens courants / Current Canadian interest rates |
| Calculer la taxe de mutation / Compute the land transfer tax |
| Acheter ou louer ? / Rent vs buy in a city |
| Salaire requis pour acheter / Income needed to buy in a city |
| Contacter l'expert vérifié / Contact the verified expert |
| Échéance pour contester son évaluation foncière / Property-assessment appeal deadline (Canada) |
| Frais d'une demande de révision / Assessment review filing fee (Canada) |
| Économie de taxes d'une baisse d'évaluation / Tax saving of an assessment reduction (Quebec) |
France (4)
Outil | Titre |
| Frais de notaire en France / French notary fees |
| Prix immobiliers DVF en France / French property prices (DVF) |
| Trouver un professionnel en France / Find a French real-estate firm |
| Vérifier le titre d’un professionnel en France / Check a French professional’s credential |
États-Unis / United States (16)
Outil | Titre |
| US real estate transfer tax by state |
| US property tax by state |
| US property tax appeal deadline by state |
| Is an attorney required at closing? (US, by state) |
| US foreclosure process by state |
| US seller disclosure law by state |
| US closing costs by state (items set by law) |
| US first-time home buyer programs by state |
| US median home value by state and main city |
| US community property states |
| US title insurance rates by state |
| US natural hazards and home insurance by state |
| Verify a US real estate professional’s license |
| Compare the 50 US states on one rule |
| Buying a home in a US state: key facts |
| US federal home-buying guides |
Royaume-Uni / United Kingdom (5)
Outil | Titre |
| UK purchase tax on a home: SDLT, LBTT or LTT |
| UK average house prices (UK House Price Index) |
| UK property rules compared across the four nations |
| Payotte UK guides: buying, renting and owning a home |
| Who regulates a UK property professional, and where to check one |
Australie / Australia (5)
Outil | Titre |
| Australian transfer (stamp) duty on a home, by state |
| Australian dwelling prices (ABS) |
| Australian property rules compared across the states |
| Payotte Australia guides: buying, renting and owning a home |
| Who regulates an Australian property professional, and where to check one |
Inde / India (6)
Outil | Titre |
| Indian stamp duty and registration on a home, by state |
| Indian home loan EMI |
| Indian house price indices (RBI, NHB RESIDEX) |
| Indian property rules compared across the states |
| Payotte India guides: buying, NRIs, renting and owning a home |
| Who regulates an Indian property professional, and where to check one |
Brésil / Brazil (6)
Outil | Titre |
| Brazilian home purchase costs: ITBI, notary deed, registration |
| Brazilian mortgage payment, SAC and Price |
| Brazilian capital gains tax on selling a home |
| Brazilian property costs and figures compared across the states |
| Payotte Brazil guides: foreign buyers, buying, financing, selling, renting, owning |
| Who regulates a Brazilian property professional, and where to check one |
Mexique / Mexico (6)
Outil | Titre |
| Mexican property acquisition tax and recording fee, by municipality |
| Mexican fixed-rate mortgage payment |
| Mexican home appraisal values and price index (SHF) |
| Mexican property rules and figures compared across the states |
| Payotte Mexico guides: foreign buyers, buying, selling, renting |
| Who regulates a Mexican property professional, and where to check one |
Espagne / Spain (7)
Outil | Titre |
| Spanish purchase taxes and fees on a home, by region |
| Spanish mortgage monthly payment |
| Spanish non-resident tax on a home that is not let |
| Spanish home values by city and region |
| Spanish property rules compared across the regions |
| Payotte Spain guides: buying as a foreigner, taxes, renting and owning |
| Who regulates a Spanish property professional, and where to check one |
Belgique / Belgium (6)
Outil | Titre |
| Belgian home purchase costs: registration duty, notary, other costs |
| Belgian borrowing capacity and maximum home price |
| Belgian house and apartment prices (Statbel medians) |
| Belgian purchase costs and prices compared across the three Regions |
| Payotte Belgium guides: buying, financing, selling, renting and owning (FR, NL, EN) |
| Who regulates a Belgian property professional, and where to check one |
Chaque réponse porte l'attribution CC BY 4.0 (citer + lier payotte.com).
Related MCP server: UK Property Data
Prérequis (une fois, ~10 min)
Compte Cloudflare gratuit : https://dash.cloudflare.com/sign-up (obligatoire pour déployer).
Compte GitHub gratuit (recommandé, pour lister le serveur dans les registres MCP → backlinks).
Déployer
cd ~/Desktop/payotte-mcp
npm install # une fois
npx wrangler login # ouvre le navigateur, se connecter au compte Cloudflare
npm run deploy # → https://payotte-mcp.<sous-domaine>.workers.dev⚠️ Déployer d'abord le site payotte.com (build du 23 juillet ou plus récent) : les feeds
/api/regulators.json et /api/market.json dont dépendent verifier_titre et stats_marche
sont dans ce build. (/api/experts.json est déjà en ligne.)
L'URL MCP à donner aux clients (Claude, etc.) : https://payotte-mcp.<sous-domaine>.workers.dev/mcp
Tester en local (sans compte)
npm run dev # http://localhost:8787
curl -s localhost:8787/ # carte de visite du serveur
curl -s localhost:8787/mcp -H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"trouver_expert","arguments":{"profession":"courtier immobilier","ville":"Montréal"}}}'Brancher dans Claude
Claude Code :
claude mcp add --transport http payotte https://payotte-mcp.<sous-domaine>.workers.dev/mcpclaude.ai (Connecteurs) : Paramètres → Connecteurs → Ajouter un connecteur personnalisé → coller l'URL
/mcp.
Activer le relais de contact (contacter_expert)
Sans configuration, l'outil tourne en mode répétition (réponse simulée, aucun envoi). Pour l'activer :
Côté site : le fichier privé
/api/cx/{jeton}.jsondoit être déployé (jeton danspayotte-astro/src/lib/contactsToken.ts— NE JAMAIS lier cette URL). Secret Cloudflare correspondant :CONTACTS_TOKEN(déjà posé).Compte Resend gratuit (100 courriels/jour) : https://resend.com → ajouter le domaine
payotte.com→ poser les enregistrements DNS proposés (chez GoDaddy) → créer une clé API.printf 'LA_CLE' | npx wrangler secret put RESEND_API_KEYpuis c'est actif — aucun redéploiement requis.
Adresse d'expédition : MAIL_FROM dans wrangler.toml (défaut Payotte <relais@payotte.com>).
Après le déploiement (l'antenne)
Lister le serveur dans le registre MCP officiel (via GitHub) + annuaires communautaires → backlinks tech + découvrabilité par les agents.
Angle RP : « premier annuaire immobilier canadien branché dans les IA ».
Available Tools
8 toolsacheter_ou_louerAcheter ou louer ? / Rent vs buy in a cityAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ville | Yes | City, e.g. "Montréal", "Toronto", "Winnipeg". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It thoroughly discloses data sources (CMHC, Bank of Canada), assumptions (20% down, 25-year amortization, etc.), and return values (cash outlay vs economic cost). There is no contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded paragraph of four sentences. It efficiently conveys the tool's purpose, inputs, assumptions, and outputs without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's single parameter and no output schema, the description fully covers what the agent needs: when to use, what data is used, assumptions, and what the tool returns. It also addresses the limitation about CMHC coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'ville', and the schema provides a basic example. The tool description does not add additional semantics beyond what the schema already provides, so it earns the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states that the tool compares renting vs buying in a Canadian city, using specific metrics (average rent and carrying cost). It uniquely addresses the rent vs buy question, distinguishing it from sibling tools like taux_courants or contacter_expert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to call the tool ('when the user wonders whether to rent or buy in a Canadian city') and notes a limitation ('Only cities inside a CMHC-covered metro have rent data'). It implies when not to use (if city is not covered), but does not provide explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contacter_expertContacter l'expert vérifié / Contact the verified expertAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ville | Yes | City of the expert, e.g. "Montréal". | |
| message | Yes | The user’s request in their own words (need, property, timeline…), 20–2000 characters. | |
| secteur | No | Neighbourhood/sector of the expert (recommended — identifies exactly one expert). | |
| province | No | Province name or code (optional disambiguator). | |
| client_nom | Yes | Full name of the user requesting contact. | |
| profession | Yes | real-estate-broker | mortgage-broker | home-inspector | notary-lawyer | appraiser (French labels accepted). | |
| consentement | Yes | MUST be true, and only after the user explicitly approved sending this request to this specific expert. | |
| client_courriel | Yes | Email address of the user — the expert will reply there. | |
| client_telephone | No | Optional phone number of the user. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the critical double opt-in behavior: the tool sends a confirmation link to the user's email, the expert is only contacted after the user clicks it, and the link is valid for 48 hours. It also details prerequisite steps, the need for explicit approval, and that Payotte keeps no copy of the content—far exceeding typical transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is densely packed with essential safety and workflow information, each sentence serving a purpose. It uses clear headings and a numbered list, making it easy to parse despite its length. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity—9 parameters, 6 required, no output schema, and no annotations—the description is exceptionally complete. It covers the full user journey, consent mechanics, privacy aspects, and potential pitfalls, leaving no critical operational detail unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaningful parameter context: it explicitly instructs setting 'consentement' to true only after explicit approval, references collecting client name/email/message, and warns against inventing contact details. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: contacting a Payotte-listed professional when the user explicitly asks to reach out or request a quote/appointment. It distinguishes itself from the sibling 'trouver_expert' by noting when to call this tool instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this ONLY when the user explicitly asks to contact, reach out to, or request a quote/appointment'. It also instructs to use 'trouver_expert' first if needed, providing clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
salaire_requisSalaire requis pour acheter / Income needed to buy in a cityAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prix | No | Optional price in CAD to test instead of the city’s reference price. | |
| ville | Yes | City, e.g. "Montréal", "Vancouver", "Halifax". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses the tool's behavior. It details the calculation methodology (stress test, GDS ratio, down payment, amortization, taxes, heating), cites a public source for methodology, and clarifies it is a theoretical threshold, not a loan offer. All relevant behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (around 4 lines) and front-loaded with the usage trigger. Every sentence adds value: trigger, methodology summary, source reference, and caveat. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple assumptions) and lack of an output schema, the description explains what is computed and the methodology. It does not explicitly state the output format (likely a number), but from context it is clear. The completeness is high but could be slightly improved by specifying the return type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds some context (e.g., 'prix' is optional to test an alternative price), but the schema already documents both parameters adequately. No additional semantic meaning beyond what the schema provides is present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to compute the income needed to buy a home in a Canadian city. It uses a specific verb ('computes') and a specific resource ('reference home'). It distinguishes from sibling tools like acheter_ou_louer (buy vs. rent) and taux_courants (current rates), as this tool is solely for income qualification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Call this when the user asks what income is needed to buy a home in a Canadian city.' It provides clear context but does not mention when not to use it or suggest alternatives, though sibling tool names offer some implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stats_marcheStatistiques du marché immobilier par ville / Per-city housing-market statsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ville | Yes | City, e.g. "Montréal", "Ottawa", "Vancouver". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It thoroughly describes what data will be returned, including the conditional inclusion of CMHC housing starts and StatCan New Housing Price Index for covered metro areas. It also discloses data sources and that each block lists its sources, providing transparency about the tool's data provenance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and metric list, followed by conditional details and source attribution. Every sentence adds value, with no wasted words, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates all key return metrics (reference price, yoy change, sales volume, months of inventory, days on market, 5-year growth) and explains the conditional extra data. It also clarifies the geographic scope and data sources, providing a complete picture for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'ville' parameter, providing examples. The description adds meaningful context by specifying the tool is for Canadian cities and that metro-area coverage affects additional outputs, which goes beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving current housing-market statistics for a Canadian city, listing specific metrics (reference price, yoy change, sales volume, inventory, days on market, 5-year growth). It distinguishes itself from sibling tools by focusing on market data rather than buying/renting advice, rates, taxes, or expert contact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this for current housing-market figures' which provides clear context for when to use it. However, it does not explicitly state when not to use it or name alternative tools for other types of queries, though the specificity implies alternatives exist for other purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taux_courantsTaux d'intérêt canadiens courants / Current Canadian interest ratesAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that data is read live from Bank of Canada API, each figure has its own observation date, and mortgage figures are system averages, not offers. This gives essential interpretation context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adding substantive information: content enumeration, data source, caveat, attribution. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool, the description covers content, source, freshness, and interpretation caveat. No output schema needed since values are standard interest rates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so schema coverage is complete. Baseline 4 applies; description adds no parameter-specific info needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies the tool returns current Canadian reference interest rates, listing exact instruments (policy rate, prime, mortgage averages, bond yields). The verb 'Call this for' and specific list distinguish it from sibling real-estate tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description begins with 'Call this for...' and enumerates the exact use case. No alternatives are mentioned, but sibling tools cover other real-estate topics, so the context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
taxe_mutationCalculer la taxe de mutation / Compute the land transfer taxAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prix | No | Purchase price in CAD. Omit with a ville to use the city’s reference market price. | |
| ville | No | City, e.g. "Toronto", "Montréal", "Calgary". Determines the schedule AND the default price. | |
| province | No | Province name or code — required if no ville is given. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses key behaviors: bracket-by-bracket computation from official schedules, inclusion of first-time-buyer rebates, and coverage of specific provinces and cities. It notes that Alberta and Saskatchewan charge no tax. Missing detail on output format, but overall transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three focused sentences: first gives purpose and trigger, second details computation and coverage, third explains parameter usage. No wordiness, each sentence earns its place. Front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description effectively covers what the tool does, what inputs it expects, and its geographic scope. However, it omits any hint about return values (since no output schema exists), such as whether it returns total tax only or a breakdown. A brief output description would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining parameter interaction: 'Give a price, or just a city to use its current reference market price' and clarifies 'province required if no ville is given.' This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes land-transfer tax (taxe de bienvenue) for home purchases in Canadian provinces/cities, using official schedules. It distinguishes itself from sibling tools like 'acheter_ou_louer' (buy vs rent) and 'salaire_requis' (required salary) by focusing solely on tax calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Call this when the user wants to know the land-transfer tax,' giving a clear trigger. It also lists covered provinces and exclusions (PEI and Newfoundland), but doesn't directly compare to siblings or specify when not to use it. Still, it provides solid context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trouver_expertTrouver un expert immobilier vérifié / Find a verified real-estate expertAInspect
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").
| Name | Required | Description | Default |
|---|---|---|---|
| ville | No | City, e.g. "Montréal", "Toronto", "Calgary". | |
| secteur | No | Neighbourhood/sector, e.g. "Le Plateau-Mont-Royal", "Ville-Marie". | |
| province | No | Province name or code, e.g. "Québec", "ON", "british-columbia". | |
| profession | No | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does so thoroughly. It lists the exact return contents (name, score, licence number, registry link, Google rating, freshness, profile URL), discloses the one-per-sector editorial policy, and even instructs on the correct language to present results. It also notes bilingual input support, which goes well beyond typical descriptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is substantial but every sentence serves a purpose: trigger, output details, a critical caveat, and an example. The 'IMPORTANT' note is clearly delineated. It is slightly dense, but the structure makes it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return values are described in detail, and the editorial limitation is explicitly addressed. However, with required parameters set to 0, the behavior when omitting 'ville' or 'province' is unclear, and there is no mention of empty results or error handling. These gaps prevent a perfect score, but the overall context is well covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all 4 parameters with 100% description coverage, including the acceptable values and the option to omit 'profession'. The description adds a bilingual example and re-emphasizes input language flexibility, but this is largely redundant with the schema. The additional framing about the Payotte listing is behavioral, not parameter-specific, so the marginal semantic value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific trigger ('Call this when the user needs a trustworthy real-estate professional in a Canadian city or neighbourhood') and enumerates the exact professional categories covered (broker, mortgage broker, home inspector, notary/lawyer, appraiser). It clearly distinguishes this from sibling tools like 'contacter_expert' or 'stats_marche' by mentioning the Payotte listing and the verification-focused return fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear 'when to use' statement and includes an explicit caveat about the editorial selection (one professional per sector) and how to phrase results. However, it does not mention when not to use this tool or reference alternative sibling tools, so it stops short of full alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verifier_titreVérifier un titre professionnel / Which regulator governs this titleAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| province | No | Province name or code. Omit to get every province for that profession. | |
| profession | Yes | real-estate-broker | mortgage-broker | home-inspector | notary-lawyer | appraiser (French labels accepted). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It transparently discloses the output: regulator, public registry URL when it exists, and the credential type classification. This goes beyond a vague 'returns information' and gives the agent a clear sense of the tool's behavior, though it does not highlight potential limitations or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the trigger condition, and every clause adds meaningful information. There is no repetition of the tool name or title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description enumerates the key return elements (regulator, public registry URL, credential type) and explains the optional province behavior. This is sufficient for an agent to understand the tool's scope and output without additional structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description adds value by explaining what the tool does with those parameters (e.g., returning per-province results), but it does not add new parameter-level syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Call this when the user wants to know whether...') and clearly identifies the resource: real-estate profession regulation in Canadian provinces. It distinguishes itself from sibling tools like trouver_expert by focusing on regulation, licensing bodies, and verification rather than finding or contacting experts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description opens with explicit usage guidance ('Call this when...') and outlines exactly what the tool returns. It does not mention when not to use it or name alternative sibling tools, so it falls slightly short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
acheter_ou_louer - First observed
contacter_expert - First observed
salaire_requis - First observed
stats_marche - First observed
taux_courants - First observed
taxe_mutation - First observed
trouver_expert - First observed
verifier_titre
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: finding an expert, verifying a professional title, fetching market stats, rates, transfer tax, rent-vs-buy analysis, required salary, and contacting an expert. The two expert-related tools (trouver_expert and contacter_expert) are separated by discovery vs. action, so misselection risk is low.
All names are snake_case and in French, which is consistent, but the pattern mixes verb-led names (trouver_expert, verifier_titre, contacter_expert) with noun-led names (stats_marche, taux_courants, taxe_mutation, salaire_requis) and a verb phrase (acheter_ou_louer). This is a minor deviation from a strict verb_noun convention but remains readable and predictable.
Eight tools is well within the ideal 3–15 range for a domain-specific real-estate information server. Each tool covers a distinct user need without redundancy, so every tool earns its place.
The surface covers expert discovery, credential verification, market statistics, interest rates, transfer taxes, rent-vs-buy, required income, and expert contact—a strong lifecycle for real-estate decision support. However, it lacks property listing/search and neighbourhood-level data, and transfer tax is not available for PEI and Newfoundland, leaving minor gaps.
Maintenance
Related MCP Connectors
MCP server for real-estate agents: listings, CRM, German market data and AI media tools.
Agent-native MCP server over 49M+ US public and government records, privacy-first, always current.
MCP server giving Claude AI access to 22+ NYC public-record databases for real estate due diligence
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides comprehensive Australian planning property reports, including zoning, overlays, land size, and utility information for AI assistants. This high-performance MCP server is built for Cloudflare Workers and enables real-time property data retrieval through an HTTP-based interface.-
- AlicenseAqualityAmaintenanceUK property data MCP server — Land Registry comps, EPC, Rightmove, rental yields, stamp duty, Companies House. 13 tools.1318MIT
- AlicenseAqualityBmaintenanceMCP server giving AI agents structured access to Canadian federal, provincial, and municipal government data.45161 PyPI61MIT
- FlicenseNot gradedqualityDmaintenanceA production-grade MCP server enabling Claude to perform comprehensive NJ real estate workflows including property search, valuation, neighborhood intelligence, investment analysis, and agent tools via 20 tools and 15+ data sources.-