MapleStatsMCP

Un serveur de données canadiennes pour les gouverner tous.

Les données canadiennes se trouvent en des dizaines d'endroits. MapleStats en réunit 175 derrière une seule connexion, pour que votre agent IA trouve, récupère et cite les chiffres pendant que vous vous concentrez sur ce qu'ils signifient.

Une seule connexion

MapleStats réunit les organismes et portails canadiens derrière une seule connexion, en français ou en anglais, avec la source de chaque chiffre.

Des scripts à relancer

La plupart des appels de données peuvent revenir sous forme de script R, Python, Stata ou Julia (ou une requête Power Query pour Excel) qui va chercher les mêmes chiffres à la source : l'analyse tourne sans l'agent.

Le plus simple : demandez à votre agent Une seule requête connecte MapleStats au serveur hébergé : rien à installer, ni compte ni clé. L'agent lit les étapes dans le dépôt et s'occupe du reste.

Connectez le serveur MCP MapleStats à cet agent. Suivez les étapes de https://github.com/dsanchezp18/maplestats-mcp
  1. Copiez la requête.
  2. Collez-la dans Claude Code, Codex, Cursor ou tout agent qui peut exécuter des commandes sur votre ordinateur.
  3. Redémarrez l'agent quand il vous le dit, puis demandez des données.
  • Version sur PyPI
  • Versions de Python prises en charge
  • Licence MIT
  • Téléchargements PyPI par mois
  • Version au registre MCP officiel
  • Note de qualité et d'entretien sur Glama
  • Répertorié sur Smithery
  • Répertorié sur Mcprush
  • Répertorié sur LobeHub
  • Paquets pour Raspberry Pi sur piwheels
  • Note de confiance sur M8ven
  • Indice de confiance sur MCPLookup

3

MCP pour les statisticiens, gardiens des poids et des marges,

7

pour les démographes, qui comptent ceux qui viennent s'établir,

9

pour les analystes financiers, condamnés à expliquer le taux…

Mais MapleStats est le MCP unique pour les gouverner tous.

Trop d'endroits où chercher, trop d'interfaces à apprendre.

Les MCP ont facilité la connexion des agents IA aux données, et l'on s'est mis à construire des serveurs étroits pour des pans étroits de l'écosystème canadien : un pour Statistique Canada, un autre pour la Banque du Canada, d'autres pour les portails de données ouvertes. Chacun peut être utile. Ensemble, ils recréent un vieux problème canadien : trop de choix avant de poser une question pourtant simple. J'ai conçu MapleStats pour prendre le chemin inverse : un seul MCP pour les données ouvertes canadiennes.

MapleStats MCP

Centraliser l'interface, pas les données.

Le serveur ne garde aucun jeu de données, seulement des caches de courte durée. Il interroge chaque source directement ; chaque chiffre vient de son éditeur.

Une couche de découverte, de nombreux adaptateurs.

Chaque organisme garde son adaptateur. L'agent ne voit qu'une recherche commune à tous.

Partir de la question, pas du portail.

L'agent n'a pas à savoir si la réponse est un tableau de StatCan, une série Valet, un jeu de données de la SCHL ou une ressource CKAN.

Démos

Ce que vous pouvez en faire

Neuf questions de neuf métiers différents, chacune résolue par des appels aux outils de MapleStats. En voici une : celle d'un macroéconomiste qui lit la courbe des taux.

Macroéconomistes

Ce qu'attendent les marchés obligataires, en une ligne

L'écart entre les rendements des obligations du gouvernement du Canada à 10 ans et à 2 ans, chaque jour ouvrable depuis 2001. Quand il passe sous zéro, les marchés s'attendent à une baisse des taux, le plus souvent parce qu'ils prévoient un ralentissement. La courbe s'est inversée en 2007, 2019 à 2020 et 2022 à 2024.

La courbe des taux : rendement des obligations de référence du gouvernement du Canada à 10 ans moins celui à 2 ans, moyenne mensuelle des valeurs quotidiennes, mois inversés ombrés−200 pb−100 pb0 pb100 pb200 pb300 pbInversée20052010201520202025janvier 2001 : 41 pbfévrier 2001 : 50 pbmars 2001 : 63 pbavril 2001 : 82 pbmai 2001 : 98 pbjuin 2001 : 92 pbjuillet 2001 : 98 pbaoût 2001 : 107 pbseptembre 2001 : 163 pboctobre 2001 : 187 pbnovembre 2001 : 207 pbdécembre 2001 : 213 pbjanvier 2002 : 225 pbfévrier 2002 : 207 pbmars 2002 : 161 pbavril 2002 : 139 pbmai 2002 : 144 pbjuin 2002 : 141 pbjuillet 2002 : 171 pbaoût 2002 : 183 pbseptembre 2002 : 150 pboctobre 2002 : 165 pbnovembre 2002 : 176 pbdécembre 2002 : 170 pbjanvier 2003 : 166 pbfévrier 2003 : 153 pbmars 2003 : 132 pbavril 2003 : 131 pbmai 2003 : 124 pbjuin 2003 : 131 pbjuillet 2003 : 170 pbaoût 2003 : 188 pbseptembre 2003 : 172 pboctobre 2003 : 169 pbnovembre 2003 : 161 pbdécembre 2003 : 165 pbjanvier 2004 : 183 pbfévrier 2004 : 199 pbmars 2004 : 195 pbavril 2004 : 188 pbmai 2004 : 181 pbjuin 2004 : 163 pbjuillet 2004 : 160 pbaoût 2004 : 165 pbseptembre 2004 : 147 pboctobre 2004 : 133 pbnovembre 2004 : 126 pbdécembre 2004 : 138 pbjanvier 2005 : 131 pbfévrier 2005 : 129 pbmars 2005 : 122 pbavril 2005 : 109 pbmai 2005 : 103 pbjuin 2005 : 98 pbjuillet 2005 : 88 pbaoût 2005 : 81 pbseptembre 2005 : 74 pboctobre 2005 : 59 pbnovembre 2005 : 40 pbdécembre 2005 : 23 pbjanvier 2006 : 24 pbfévrier 2006 : 22 pbmars 2006 : 26 pbavril 2006 : 32 pbmai 2006 : 29 pbjuin 2006 : 17 pbjuillet 2006 : 21 pbaoût 2006 : 16 pbseptembre 2006 : 12 pboctobre 2006 : 9 pbnovembre 2006 : 6 pbdécembre 2006 : 6 pbjanvier 2007 : 7 pbfévrier 2007 : 4 pbmars 2007 : 10 pbavril 2007 : 7 pbmai 2007 : −3 pbjuin 2007 : −5 pbjuillet 2007 : −5 pbaoût 2007 : 8 pbseptembre 2007 : 15 pboctobre 2007 : 16 pbnovembre 2007 : 32 pbdécembre 2007 : 27 pbjanvier 2008 : 54 pbfévrier 2008 : 77 pbmars 2008 : 93 pbavril 2008 : 84 pbmai 2008 : 75 pbjuin 2008 : 58 pbjuillet 2008 : 62 pbaoût 2008 : 80 pbseptembre 2008 : 82 pboctobre 2008 : 145 pbnovembre 2008 : 171 pbdécembre 2008 : 157 pbjanvier 2009 : 167 pbfévrier 2009 : 175 pbmars 2009 : 186 pbavril 2009 : 189 pbmai 2009 : 208 pbjuin 2009 : 217 pbjuillet 2009 : 218 pbaoût 2009 : 213 pbseptembre 2009 : 211 pboctobre 2009 : 196 pbnovembre 2009 : 209 pbdécembre 2009 : 213 pbjanvier 2010 : 221 pbfévrier 2010 : 210 pbmars 2010 : 192 pbavril 2010 : 177 pbmai 2010 : 165 pbjuin 2010 : 163 pbjuillet 2010 : 162 pbaoût 2010 : 160 pbseptembre 2010 : 147 pboctobre 2010 : 139 pbnovembre 2010 : 145 pbdécembre 2010 : 154 pbjanvier 2011 : 153 pbfévrier 2011 : 158 pbmars 2011 : 152 pbavril 2011 : 152 pbmai 2011 : 151 pbjuin 2011 : 152 pbjuillet 2011 : 145 pbaoût 2011 : 146 pbseptembre 2011 : 128 pboctobre 2011 : 129 pbnovembre 2011 : 119 pbdécembre 2011 : 110 pbjanvier 2012 : 100 pbfévrier 2012 : 96 pbmars 2012 : 91 pbavril 2012 : 77 pbmai 2012 : 71 pbjuin 2012 : 74 pbjuillet 2012 : 66 pbaoût 2012 : 67 pbseptembre 2012 : 69 pboctobre 2012 : 71 pbnovembre 2012 : 65 pbdécembre 2012 : 67 pbjanvier 2013 : 76 pbfévrier 2013 : 86 pbmars 2013 : 88 pbavril 2013 : 79 pbmai 2013 : 89 pbjuin 2013 : 110 pbjuillet 2013 : 129 pbaoût 2013 : 143 pbseptembre 2013 : 145 pboctobre 2013 : 136 pbnovembre 2013 : 145 pbdécembre 2013 : 157 pbjanvier 2014 : 150 pbfévrier 2014 : 142 pbmars 2014 : 141 pbavril 2014 : 138 pbmai 2014 : 126 pbjuin 2014 : 121 pbjuillet 2014 : 110 pbaoût 2014 : 98 pbseptembre 2014 : 104 pboctobre 2014 : 99 pbnovembre 2014 : 100 pbdécembre 2014 : 84 pbjanvier 2015 : 77 pbfévrier 2015 : 94 pbmars 2015 : 89 pbavril 2015 : 83 pbmai 2015 : 107 pbjuin 2015 : 117 pbjuillet 2015 : 113 pbaoût 2015 : 99 pbseptembre 2015 : 100 pboctobre 2015 : 93 pbnovembre 2015 : 101 pbdécembre 2015 : 92 pbjanvier 2016 : 87 pbfévrier 2016 : 70 pbmars 2016 : 72 pbavril 2016 : 73 pbmai 2016 : 75 pbjuin 2016 : 64 pbjuillet 2016 : 51 pbaoût 2016 : 49 pbseptembre 2016 : 53 pboctobre 2016 : 60 pbnovembre 2016 : 81 pbdécembre 2016 : 96 pbjanvier 2017 : 95 pbfévrier 2017 : 94 pbmars 2017 : 93 pbavril 2017 : 79 pbmai 2017 : 82 pbjuin 2017 : 64 pbjuillet 2017 : 69 pbaoût 2017 : 64 pbseptembre 2017 : 52 pboctobre 2017 : 55 pbnovembre 2017 : 48 pbdécembre 2017 : 34 pbjanvier 2018 : 42 pbfévrier 2018 : 51 pbmars 2018 : 39 pbavril 2018 : 39 pbmai 2018 : 41 pbjuin 2018 : 34 pbjuillet 2018 : 22 pbaoût 2018 : 19 pbseptembre 2018 : 21 pboctobre 2018 : 20 pbnovembre 2018 : 14 pbdécembre 2018 : 8 pbjanvier 2019 : 8 pbfévrier 2019 : 12 pbmars 2019 : 10 pbavril 2019 : 14 pbmai 2019 : 8 pbjuin 2019 : 5 pbjuillet 2019 : 0 pbaoût 2019 : −16 pbseptembre 2019 : −18 pboctobre 2019 : −13 pbnovembre 2019 : −7 pbdécembre 2019 : −6 pbjanvier 2020 : −9 pbfévrier 2020 : −12 pbmars 2020 : 20 pbavril 2020 : 29 pbmai 2020 : 26 pbjuin 2020 : 26 pbjuillet 2020 : 24 pbaoût 2020 : 28 pbseptembre 2020 : 30 pboctobre 2020 : 36 pbnovembre 2020 : 42 pbdécembre 2020 : 49 pbjanvier 2021 : 64 pbfévrier 2021 : 89 pbmars 2021 : 124 pbavril 2021 : 124 pbmai 2021 : 121 pbjuin 2021 : 105 pbjuillet 2021 : 79 pbaoût 2021 : 74 pbseptembre 2021 : 82 pboctobre 2021 : 82 pbnovembre 2021 : 69 pbdécembre 2021 : 47 pbjanvier 2022 : 58 pbfévrier 2022 : 44 pbmars 2022 : 29 pbavril 2022 : 24 pbmai 2022 : 27 pbjuin 2022 : 16 pbjuillet 2022 : −13 pbaoût 2022 : −50 pbseptembre 2022 : −58 pboctobre 2022 : −63 pbnovembre 2022 : −79 pbdécembre 2022 : −87 pbjanvier 2023 : −80 pbfévrier 2023 : −88 pbmars 2023 : −83 pbavril 2023 : −81 pbmai 2023 : −88 pbjuin 2023 : −119 pbjuillet 2023 : −123 pbaoût 2023 : −105 pbseptembre 2023 : −97 pboctobre 2023 : −72 pbnovembre 2023 : −71 pbdécembre 2023 : −78 pbjanvier 2024 : −66 pbfévrier 2024 : −68 pbmars 2024 : −69 pbavril 2024 : −56 pbmai 2024 : −58 pbjuin 2024 : −55 pbjuillet 2024 : −37 pbaoût 2024 : −21 pbseptembre 2024 : −4 pboctobre 2024 : 11 pbnovembre 2024 : 10 pbdécembre 2024 : 17 pbjanvier 2025 : 36 pbfévrier 2025 : 37 pbmars 2025 : 47 pbavril 2025 : 58 pbmai 2025 : 63 pbjuin 2025 : 66 pbjuillet 2025 : 72 pbaoût 2025 : 73 pbseptembre 2025 : 72 pboctobre 2025 : 71 pbnovembre 2025 : 73 pbdécembre 2025 : 81 pbjanvier 2026 : 84 pbfévrier 2026 : 80 pbmars 2026 : 68 pbavril 2026 : 65 pbmai 2026 : 61 pbjuin 2026 : 63 pbjuillet 2026 : 71 pbaoût 2026 : 72 pbseptembre 2026 : 62 pb62 pbLa courbe des taux : rendement des obligations de référence du gouvernement du Canada à 10 ans moins celui à 2 ans, moyenne mensuelle des valeurs quotidiennes, mois inversés ombrés−200 pb−100 pb0 pb100 pb200 pb300 pbInversée20052010201520202025janvier 2001 : 41 pbfévrier 2001 : 50 pbmars 2001 : 63 pbavril 2001 : 82 pbmai 2001 : 98 pbjuin 2001 : 92 pbjuillet 2001 : 98 pbaoût 2001 : 107 pbseptembre 2001 : 163 pboctobre 2001 : 187 pbnovembre 2001 : 207 pbdécembre 2001 : 213 pbjanvier 2002 : 225 pbfévrier 2002 : 207 pbmars 2002 : 161 pbavril 2002 : 139 pbmai 2002 : 144 pbjuin 2002 : 141 pbjuillet 2002 : 171 pbaoût 2002 : 183 pbseptembre 2002 : 150 pboctobre 2002 : 165 pbnovembre 2002 : 176 pbdécembre 2002 : 170 pbjanvier 2003 : 166 pbfévrier 2003 : 153 pbmars 2003 : 132 pbavril 2003 : 131 pbmai 2003 : 124 pbjuin 2003 : 131 pbjuillet 2003 : 170 pbaoût 2003 : 188 pbseptembre 2003 : 172 pboctobre 2003 : 169 pbnovembre 2003 : 161 pbdécembre 2003 : 165 pbjanvier 2004 : 183 pbfévrier 2004 : 199 pbmars 2004 : 195 pbavril 2004 : 188 pbmai 2004 : 181 pbjuin 2004 : 163 pbjuillet 2004 : 160 pbaoût 2004 : 165 pbseptembre 2004 : 147 pboctobre 2004 : 133 pbnovembre 2004 : 126 pbdécembre 2004 : 138 pbjanvier 2005 : 131 pbfévrier 2005 : 129 pbmars 2005 : 122 pbavril 2005 : 109 pbmai 2005 : 103 pbjuin 2005 : 98 pbjuillet 2005 : 88 pbaoût 2005 : 81 pbseptembre 2005 : 74 pboctobre 2005 : 59 pbnovembre 2005 : 40 pbdécembre 2005 : 23 pbjanvier 2006 : 24 pbfévrier 2006 : 22 pbmars 2006 : 26 pbavril 2006 : 32 pbmai 2006 : 29 pbjuin 2006 : 17 pbjuillet 2006 : 21 pbaoût 2006 : 16 pbseptembre 2006 : 12 pboctobre 2006 : 9 pbnovembre 2006 : 6 pbdécembre 2006 : 6 pbjanvier 2007 : 7 pbfévrier 2007 : 4 pbmars 2007 : 10 pbavril 2007 : 7 pbmai 2007 : −3 pbjuin 2007 : −5 pbjuillet 2007 : −5 pbaoût 2007 : 8 pbseptembre 2007 : 15 pboctobre 2007 : 16 pbnovembre 2007 : 32 pbdécembre 2007 : 27 pbjanvier 2008 : 54 pbfévrier 2008 : 77 pbmars 2008 : 93 pbavril 2008 : 84 pbmai 2008 : 75 pbjuin 2008 : 58 pbjuillet 2008 : 62 pbaoût 2008 : 80 pbseptembre 2008 : 82 pboctobre 2008 : 145 pbnovembre 2008 : 171 pbdécembre 2008 : 157 pbjanvier 2009 : 167 pbfévrier 2009 : 175 pbmars 2009 : 186 pbavril 2009 : 189 pbmai 2009 : 208 pbjuin 2009 : 217 pbjuillet 2009 : 218 pbaoût 2009 : 213 pbseptembre 2009 : 211 pboctobre 2009 : 196 pbnovembre 2009 : 209 pbdécembre 2009 : 213 pbjanvier 2010 : 221 pbfévrier 2010 : 210 pbmars 2010 : 192 pbavril 2010 : 177 pbmai 2010 : 165 pbjuin 2010 : 163 pbjuillet 2010 : 162 pbaoût 2010 : 160 pbseptembre 2010 : 147 pboctobre 2010 : 139 pbnovembre 2010 : 145 pbdécembre 2010 : 154 pbjanvier 2011 : 153 pbfévrier 2011 : 158 pbmars 2011 : 152 pbavril 2011 : 152 pbmai 2011 : 151 pbjuin 2011 : 152 pbjuillet 2011 : 145 pbaoût 2011 : 146 pbseptembre 2011 : 128 pboctobre 2011 : 129 pbnovembre 2011 : 119 pbdécembre 2011 : 110 pbjanvier 2012 : 100 pbfévrier 2012 : 96 pbmars 2012 : 91 pbavril 2012 : 77 pbmai 2012 : 71 pbjuin 2012 : 74 pbjuillet 2012 : 66 pbaoût 2012 : 67 pbseptembre 2012 : 69 pboctobre 2012 : 71 pbnovembre 2012 : 65 pbdécembre 2012 : 67 pbjanvier 2013 : 76 pbfévrier 2013 : 86 pbmars 2013 : 88 pbavril 2013 : 79 pbmai 2013 : 89 pbjuin 2013 : 110 pbjuillet 2013 : 129 pbaoût 2013 : 143 pbseptembre 2013 : 145 pboctobre 2013 : 136 pbnovembre 2013 : 145 pbdécembre 2013 : 157 pbjanvier 2014 : 150 pbfévrier 2014 : 142 pbmars 2014 : 141 pbavril 2014 : 138 pbmai 2014 : 126 pbjuin 2014 : 121 pbjuillet 2014 : 110 pbaoût 2014 : 98 pbseptembre 2014 : 104 pboctobre 2014 : 99 pbnovembre 2014 : 100 pbdécembre 2014 : 84 pbjanvier 2015 : 77 pbfévrier 2015 : 94 pbmars 2015 : 89 pbavril 2015 : 83 pbmai 2015 : 107 pbjuin 2015 : 117 pbjuillet 2015 : 113 pbaoût 2015 : 99 pbseptembre 2015 : 100 pboctobre 2015 : 93 pbnovembre 2015 : 101 pbdécembre 2015 : 92 pbjanvier 2016 : 87 pbfévrier 2016 : 70 pbmars 2016 : 72 pbavril 2016 : 73 pbmai 2016 : 75 pbjuin 2016 : 64 pbjuillet 2016 : 51 pbaoût 2016 : 49 pbseptembre 2016 : 53 pboctobre 2016 : 60 pbnovembre 2016 : 81 pbdécembre 2016 : 96 pbjanvier 2017 : 95 pbfévrier 2017 : 94 pbmars 2017 : 93 pbavril 2017 : 79 pbmai 2017 : 82 pbjuin 2017 : 64 pbjuillet 2017 : 69 pbaoût 2017 : 64 pbseptembre 2017 : 52 pboctobre 2017 : 55 pbnovembre 2017 : 48 pbdécembre 2017 : 34 pbjanvier 2018 : 42 pbfévrier 2018 : 51 pbmars 2018 : 39 pbavril 2018 : 39 pbmai 2018 : 41 pbjuin 2018 : 34 pbjuillet 2018 : 22 pbaoût 2018 : 19 pbseptembre 2018 : 21 pboctobre 2018 : 20 pbnovembre 2018 : 14 pbdécembre 2018 : 8 pbjanvier 2019 : 8 pbfévrier 2019 : 12 pbmars 2019 : 10 pbavril 2019 : 14 pbmai 2019 : 8 pbjuin 2019 : 5 pbjuillet 2019 : 0 pbaoût 2019 : −16 pbseptembre 2019 : −18 pboctobre 2019 : −13 pbnovembre 2019 : −7 pbdécembre 2019 : −6 pbjanvier 2020 : −9 pbfévrier 2020 : −12 pbmars 2020 : 20 pbavril 2020 : 29 pbmai 2020 : 26 pbjuin 2020 : 26 pbjuillet 2020 : 24 pbaoût 2020 : 28 pbseptembre 2020 : 30 pboctobre 2020 : 36 pbnovembre 2020 : 42 pbdécembre 2020 : 49 pbjanvier 2021 : 64 pbfévrier 2021 : 89 pbmars 2021 : 124 pbavril 2021 : 124 pbmai 2021 : 121 pbjuin 2021 : 105 pbjuillet 2021 : 79 pbaoût 2021 : 74 pbseptembre 2021 : 82 pboctobre 2021 : 82 pbnovembre 2021 : 69 pbdécembre 2021 : 47 pbjanvier 2022 : 58 pbfévrier 2022 : 44 pbmars 2022 : 29 pbavril 2022 : 24 pbmai 2022 : 27 pbjuin 2022 : 16 pbjuillet 2022 : −13 pbaoût 2022 : −50 pbseptembre 2022 : −58 pboctobre 2022 : −63 pbnovembre 2022 : −79 pbdécembre 2022 : −87 pbjanvier 2023 : −80 pbfévrier 2023 : −88 pbmars 2023 : −83 pbavril 2023 : −81 pbmai 2023 : −88 pbjuin 2023 : −119 pbjuillet 2023 : −123 pbaoût 2023 : −105 pbseptembre 2023 : −97 pboctobre 2023 : −72 pbnovembre 2023 : −71 pbdécembre 2023 : −78 pbjanvier 2024 : −66 pbfévrier 2024 : −68 pbmars 2024 : −69 pbavril 2024 : −56 pbmai 2024 : −58 pbjuin 2024 : −55 pbjuillet 2024 : −37 pbaoût 2024 : −21 pbseptembre 2024 : −4 pboctobre 2024 : 11 pbnovembre 2024 : 10 pbdécembre 2024 : 17 pbjanvier 2025 : 36 pbfévrier 2025 : 37 pbmars 2025 : 47 pbavril 2025 : 58 pbmai 2025 : 63 pbjuin 2025 : 66 pbjuillet 2025 : 72 pbaoût 2025 : 73 pbseptembre 2025 : 72 pboctobre 2025 : 71 pbnovembre 2025 : 73 pbdécembre 2025 : 81 pbjanvier 2026 : 84 pbfévrier 2026 : 80 pbmars 2026 : 68 pbavril 2026 : 65 pbmai 2026 : 61 pbjuin 2026 : 63 pbjuillet 2026 : 71 pbaoût 2026 : 72 pbseptembre 2026 : 62 pb62 pb
Voir les données
L'écart de rendement entre 10 ans et 2 ans par année : moyenne, minimum et maximum des moyennes mensuelles de l'année
AnnéeMoyenneMois le plus basMois le plus haut
2001117 pb41 pb213 pb
2002169 pb139 pb225 pb
2003155 pb124 pb188 pb
2004165 pb126 pb199 pb
200588 pb23 pb131 pb
200618 pb6 pb32 pb
20079 pb−5 pb32 pb
200895 pb54 pb171 pb
2009200 pb167 pb218 pb
2010169 pb139 pb221 pb
2011141 pb110 pb158 pb
201276 pb65 pb100 pb
2013115 pb76 pb157 pb
2014118 pb84 pb150 pb
201597 pb77 pb117 pb
201669 pb49 pb96 pb
201769 pb34 pb95 pb
201829 pb8 pb51 pb
20190 pb−18 pb14 pb
202024 pb−12 pb49 pb
202188 pb47 pb124 pb
2022−13 pb−87 pb58 pb
2023−91 pb−123 pb−71 pb
2024−33 pb−69 pb17 pb
202563 pb36 pb81 pb
202670 pb61 pb84 pb
Source : Banque du Canada, rendements des obligations canadiennes, interrogée le 27 septembre 2026

Les huit autres

Sources

D'où viennent les données

Les organismes fédéraux répondent à la plupart des questions nationales ; les organismes provinciaux et les catalogues de données ouvertes ajoutent le détail local. Chaque résultat vient directement de son éditeur.

42
sources fédérales et nationales
133
sources provinciales, territoriales et municipales
12/13
provinces et territoires avec des données locales
175
sources, une seule connexion

Statistique Canada en détail Chaque tableau, série et fichier de microdonnées qu'un agent peut atteindre, et les difficultés que MapleStats règle pour vous.

Fonctionnement

D'une question à un chiffre sourcé

Un agent connecté voit trois outils : plan_query, search_tools et call_tool. Les 357 autres restent hors de son contexte jusqu'à ce qu'une recherche les trouve. Tous les résultats ci-dessous sont réels. Le serveur a produit le plan, la recherche et les scripts lors de la construction de cette page ; l'appel de données a été enregistré le 27 septembre 2026.

  1. 01

    Planifierplan_query

    Le planificateur lit la question et énumère les organismes à interroger, dans l'ordre, avec les précautions à prendre pour combiner leurs résultats. Les lieux qu'il reconnaît ajoutent leurs portails locaux. Le planificateur rédige pour l'instant son plan en anglais.

    plan_queryExécuté à la construction de la page

    Question

    Comment les loyers et les taux d'intérêt ont-ils évolué à Calgary depuis 2020 ?

    Plan

    Logement : mises en chantier, loyers, prix, prêts hypothécaires

    1. cmhc_list_categoriesMises en chantier, achèvements, loyers et inoccupation de la SCHL : category_level_1 et _2
    2. cmhc_get_table_optionsoptions column_field et row_field pour cette catégorie et cette géographie
    3. cmhc_get_table_datale tableau : category_level_1, category_level_2, column_field et row_field (row_field='TIMESERIES' pour une série), geography_type et geography_id
    4. cmhc_dt_list_tablestableaux Excel publiés par la SCHL : category='rental-market' ou 'household-characteristics'
    5. wds_search_cubesIndice des prix des logements neufs et permis de bâtir de Statistique Canada
    6. boc_search_seriestaux hypothécaires et taux directeur de la Banque du Canada
    7. crea_get_hpi_linksIndice des prix des propriétés MLS® de l'ACI (prix de revente) : lien de téléchargement, attribution et conditions seulement ; aucune valeur, car les conditions de l'ACI en interdisent la publication
    8. statcan_census_profile_get_datafrais de logement et mode d'occupation au recensement : level, geography_codes (DGUID tirés de statcan_census_profile_search_geography) et characteristic_codes

    Mise en garde La SCHL publie par région métropolitaine de recensement et par centre ; les indices de prix de Statistique Canada sont aussi par RMR, mais les deux sources délimitent certaines régions différemment : nommez la géographie de chaque chiffre.

    Taux d'intérêt, taux de change et marchés

    1. boc_search_seriestrouver la série Valet (p. ex. FXUSDCAD, V39079)
    2. boc_get_observationsextraire la série pour la période

    Calgary (ville)

    1. socrata_search_datasetsrecherche avec portal='calgary'
  2. 02

    Trouversearch_tools

    La recherche classe le catalogue selon une requête en langage courant et renvoie les 5 premiers outils. Le français fonctionne, car chaque outil porte des mots-clés français, même si sa description est en anglais. Le panneau exécute l'index du serveur dans votre navigateur : essayez votre propre requête.

  3. 03

    Récupérercall_tool

    L'agent appelle l'outil par son nom. Le résultat est un objet typé, et son bloc de provenance, mis en évidence ici, donne l'URL exacte de la source et l'heure de la requête.

    call_toolEnregistré le 27 septembre 2026

    Demande

    Quel est le taux cible du financement à un jour de la Banque du Canada ?

    Résultat

    Target for the overnight rate (business daily) V39079
    DateValeur
    24 septembre 20262,25
    23 septembre 20262,25
    22 septembre 20262,25

    Provenance

    Interrogée le
    27 septembre 2026, 17 h 00 UTC
    Type de résultat
    boc.ObservationsResult
    Afficher la réponse complète en JSON
    {
      "series": {
        "V39079": {"name": "V39079", "label": "Target for the overnight rate (business daily)", "description": "Also called the policy interest rate, the average rate that the Bank of Canada wants to see in the market for overnight money market financing. (V39079)"}
      },
      "observations": [
        {"ref_date": "2026-09-24", "values": {"V39079": 2.25}},
        {"ref_date": "2026-09-23", "values": {"V39079": 2.25}},
        {"ref_date": "2026-09-22", "values": {"V39079": 2.25}}
      ],
      "provenance": {
        "source": "boc",
        "url": "https://www.bankofcanada.ca/valet/observations/V39079/json",
        "queried_at": "2026-09-27T17:00:48.227537Z",
        "as_of": null,
        "freshness": null,
        "coverage": null,
        "limits": null,
        "cached": false,
        "schema_name": "boc.ObservationsResult",
        "reproduce": "For R, Python, Stata and Julia scripts that fetch and clean this data, call reproduce_code with this tool's name and arguments."
      }}
  4. 04

    Reproduirereproduce_code

    Le même appel devient un script R, Python, Stata ou Julia, ou une requête Power Query pour Excel, qui télécharge, vérifie et nettoie les données, pour que l'analyse ne dépende pas de l'agent.

    reproduce_codeExécuté à la construction de la page

    Demande

    Écrivez-moi un script qui va chercher ces données, pour que je puisse le relancer moi-même.

    R

    # ============================================================
    # Bank of Canada Valet: V39079
    # Purpose: Fetch the data behind MapleStats MCP's boc_get_observations
    #          (exact: Valet request rebuilt from the tool's arguments)
    # Inputs:  https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3
    # Outputs: data/raw/valet_observations.json; the prepared table as `data`
    # ============================================================
    
    # 0. Setup ----
    
    library(dplyr)
    library(httr2)
    library(janitor)
    library(jsonlite)
    library(lubridate)
    library(readr)
    library(stringr)
    library(tibble)
    library(tidyr)
    
    dir.create("data/raw", recursive = TRUE, showWarnings = FALSE)
    
    # 1. Read inputs ----
    
    response <- request("https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3") |>
      req_perform()
    
    writeLines(resp_body_string(response), "data/raw/valet_observations.json")
    
    payload <- fromJSON("data/raw/valet_observations.json", flatten = TRUE)
    data <- as_tibble(payload[["observations"]])
    
    # 2. Check inputs ----
    
    stopifnot("https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3 returned no rows" = nrow(data) > 0)
    
    # 3. Prepare data ----
    
    data <- data |>
      clean_names()
    
    # Valet nests each series as <series>.v; make one row per date and series.
    
    data <- data |>
      pivot_longer(-d, names_to = "series", values_to = "value") |>
      mutate(
        series = str_remove(series, "_v$") |> str_to_upper(),
        value = as.numeric(value),
        date = ymd(d)
      ) |>
      select(date, series, value)
    
    # Standard cleaning: trimmed text, empty strings as missing, and numbers
    # stored as text converted to numbers.
    
    data <- data |>
      mutate(across(where(is.character), \(x) na_if(str_trim(x), ""))) |>
      type_convert()

    Python

    # ============================================================
    # Bank of Canada Valet: V39079
    # Purpose: Fetch the data behind MapleStats MCP's boc_get_observations
    #          (exact: Valet request rebuilt from the tool's arguments)
    # Inputs:  https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3
    # Outputs: data/raw/valet_observations.json; the prepared table as `data`
    # ============================================================
    
    # %% 0. Setup
    
    import json
    import re
    import unicodedata
    from pathlib import Path
    
    import httpx
    import polars as pl
    
    RAW_DIR = Path("data/raw")
    RAW_DIR.mkdir(parents=True, exist_ok=True)
    raw_path = RAW_DIR / "valet_observations.json"
    
    # %% 1. Read inputs
    
    with httpx.Client(
        http2=True,
        follow_redirects=True,
        timeout=300,
        headers={"User-Agent": "Mozilla/5.0 (compatible; research script)"},
    ) as client:
        response = client.get('https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3')
    response.raise_for_status()
    raw_path.write_bytes(response.content)
    
    payload = json.loads(raw_path.read_text(encoding="utf-8"))
    records = payload['observations']
    data = pl.json_normalize(records, strict=False)
    
    # %% 2. Check inputs
    
    assert data.height > 0, "https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3 returned no rows"
    
    # %% 3. Prepare data
    
    # Valet nests each series as <series>.v; make one row per date and series.
    
    data = data.unpivot(index="d", variable_name="series", value_name="value")
    data = data.with_columns(
        pl.col("d").str.to_date().alias("date"),
        pl.col("series").str.replace(r"\.v$", ""),
        pl.col("value").cast(pl.Float64, strict=False),
    ).select("date", "series", "value")
    
    # Standard cleaning: snake_case names without accents (PÉRIODE -> periode,
    # referenceNumber -> reference_number, as janitor does in R), trimmed text,
    # empty strings as missing. Names that clean alike are numbered as janitor
    # numbers them (Indicator, indicator -> indicator, indicator_2).
    
    clean_names = [
        re.sub(
            r"[^0-9a-z]+",
            "_",
            re.sub(
                r"([a-z0-9])([A-Z])",
                r"\1_\2",
                unicodedata.normalize("NFKD", column).encode("ascii", "ignore").decode(),
            ).lower(),
        ).strip("_")
        for column in data.columns
    ]
    while len(set(clean_names)) < len(clean_names):
        name_counts = {}
        numbered = []
        for name in clean_names:
            name_counts[name] = name_counts.get(name, 0) + 1
            count = name_counts[name]
            numbered.append(name if count == 1 else f"{name}_{count}")
        clean_names = numbered
    data = data.rename(dict(zip(data.columns, clean_names)))
    data = data.with_columns(pl.col(pl.Utf8).str.strip_chars().replace("", None))

    Stata

    * ============================================================
    * Bank of Canada Valet: V39079
    * Purpose: Fetch the data behind MapleStats MCP's boc_get_observations
    *          (exact: Valet request rebuilt from the tool's arguments)
    * Inputs:  https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3
    * Outputs: data/raw/valet_observations.json; the prepared table as `data`
    * ============================================================
    
    version 18
    clear all
    set more off
    
    * 0. Setup
    
    capture mkdir "logs"
    capture log close
    log using "logs/boc_get_observations.log", replace
    capture mkdir "data"
    capture mkdir "data/raw"
    
    * 1. Read inputs
    
    * Stata reads no JSON or HTML and truncates long column names, so its
    * built-in Python (Stata 16+) fetches, filters and writes a CSV. Point
    * Stata at a Python with these packages first: python set exec <path>.
    
    python:
    import json
    from pathlib import Path
    import httpx
    import polars as pl
    RAW_DIR = Path("data/raw")
    RAW_DIR.mkdir(parents=True, exist_ok=True)
    raw_path = RAW_DIR / "valet_observations.json"
    with httpx.Client(http2=True, follow_redirects=True, timeout=300, headers={"User-Agent": "Mozilla/5.0 (compatible; research script)"}) as client: response = client.get('https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3')
    response.raise_for_status()
    raw_path.write_bytes(response.content)
    payload = json.loads(raw_path.read_text(encoding="utf-8"))
    records = payload['observations']
    data = pl.json_normalize(records, strict=False)
    nested = [name for name, dtype in data.schema.items() if dtype.is_nested()]
    data = data.with_columns(pl.col(name).map_elements(lambda value: json.dumps(value.to_list() if isinstance(value, pl.Series) else value, default=str), return_dtype=pl.Utf8) for name in nested)
    data.write_csv(RAW_DIR / "valet_observations_prepared.csv")
    end
    
    import delimited "data/raw/valet_observations_prepared.csv", clear varnames(1) encoding("utf-8")
    
    * 2. Check inputs
    
    assert _N > 0
    
    * 3. Prepare data
    
    * One column per series (<series>_v), one row per date.
    
    generate date = date(d, "YMD")
    format date %td
    drop d
    
    * Standard cleaning: lower-case names, trimmed text, and numbers stored as
    * text converted (destring leaves genuinely non-numeric text alone).
    * rename *, lower stops at a clash (Indicator next to indicator), so names
    * that lower-case alike are numbered as janitor numbers them (indicator,
    * indicator_2), then renamed in one group rename, which allows swaps.
    
    local names
    foreach var of varlist _all {
        local names `names' `=strlower("`var'")'
    }
    local dups : list dups names
    while "`dups'" != "" {
        local numbered
        local before
        foreach name of local names {
            local count 1
            foreach earlier of local before {
                if "`earlier'" == "`name'" local ++count
            }
            local before `before' `name'
            if `count' > 1 {
                local name = substr("`name'", 1, 32 - strlen("_`count'")) + "_`count'"
            }
            local numbered `numbered' `name'
        }
        local names `numbered'
        local dups : list dups names
    }
    local old_names
    local new_names
    local i 0
    foreach var of varlist _all {
        local ++i
        local name : word `i' of `names'
        if "`name'" != "`var'" {
            local old_names `old_names' `var'
            local new_names `new_names' `name'
        }
    }
    if "`old_names'" != "" {
        rename (`old_names') (`new_names')
    }
    quietly ds, has(type string)
    local text_vars `r(varlist)'
    foreach var of local text_vars {
        replace `var' = strtrim(`var')
    }
    destring, replace
    
    log close

    Julia

    # ============================================================
    # Bank of Canada Valet: V39079
    # Purpose: Fetch the data behind MapleStats MCP's boc_get_observations
    #          (exact: Valet request rebuilt from the tool's arguments)
    # Inputs:  https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3
    # Outputs: data/raw/valet_observations.json; the prepared table as `data`
    # ============================================================
    
    # 0. Setup
    
    using DataFrames
    using Downloads
    using JSON3
    using Tables
    using TidierData
    
    mkpath("data/raw")
    
    # 1. Read inputs
    
    Downloads.download("https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3", "data/raw/valet_observations.json")
    payload = JSON3.read(read("data/raw/valet_observations.json", String))
    records = payload["observations"]
    data = DataFrame(Tables.dictrowtable(records))
    
    # 2. Check inputs
    
    @assert nrow(data) > 0 "https://www.bankofcanada.ca/valet/observations/V39079/json?recent=3 returned no rows"
    
    # 3. Prepare data
    
    # Standard cleaning: snake_case names, trimmed text, empty strings as missing.
    
    data = @chain data begin
        @clean_names
    end
    data = mapcols(
        col -> eltype(col) <: Union{Missing, AbstractString} ?
            [ismissing(x) || isempty(strip(x)) ? missing : strip(x) for x in col] : col,
        data,
    )

Installation

Ajoutez-le à votre client

Votre client lance le serveur avec uv au besoin. Il n'y a rien à héberger ni aucun port à ouvrir.

Installation complète, hébergement et dépannage

Claude Code

Exécutez cette commande une fois dans un terminal. --scope user rend le serveur accessible dans tous les projets ; sans cette option, il n'est ajouté qu'au projet courant.

Terminal
claude mcp add --scope user maplestats -- uvx maplestats-mcp

Claude Desktop

Dans Claude Desktop, ouvrez Réglages, puis Développeur, puis Modifier la configuration. Ajoutez le serveur au fichier qui s'ouvre, enregistrez et redémarrez Claude.

claude_desktop_config.json
{
  "mcpServers": {
    "maplestats": {
      "command": "uvx",
      "args": ["maplestats-mcp"]
    }
  }
}

Le fichier se trouve dans ~/Library/Application Support/Claude/claude_desktop_config.json sous macOS et dans %APPDATA%\Claude\claude_desktop_config.json sous Windows.

Cursor

Le lien ouvre Cursor avec l'entrée déjà remplie. Pour l'ajouter à la main, placez-la dans ~/.cursor/mcp.json pour tous les projets, ou dans .cursor/mcp.json pour un seul projet.

~/.cursor/mcp.json
{
  "mcpServers": {
    "maplestats": {
      "command": "uvx",
      "args": ["maplestats-mcp"]
    }
  }
}

VS Code

Pour l'ajouter à la main, notez que VS Code utilise la clé servers, et non mcpServers. Placez ceci dans .vscode/mcp.json d'un espace de travail, ou lancez la commande MCP: Open User Configuration dans la palette de commandes pour l'ajouter à tous vos espaces de travail.

.vscode/mcp.json
{
  "servers": {
    "maplestats": {
      "type": "stdio",
      "command": "uvx",
      "args": ["maplestats-mcp"]
    }
  }
}

Codex CLI

Ajoutez-le depuis le terminal, ou écrivez vous-même la même entrée dans ~/.codex/config.toml.

Terminal
codex mcp add maplestats -- uvx maplestats-mcp
~/.codex/config.toml
[mcp_servers.maplestats]
command = "uvx"
args = ["maplestats-mcp"]

Gemini CLI

Ajoutez-le depuis le terminal (-s user pour tous les projets), ou écrivez l'entrée dans ~/.gemini/settings.json, à côté des réglages qui s'y trouvent déjà.

Terminal
gemini mcp add -s user maplestats uvx maplestats-mcp
~/.gemini/settings.json
{
  "mcpServers": {
    "maplestats": {
      "command": "uvx",
      "args": ["maplestats-mcp"]
    }
  }
}

Autres clients

La plupart des clients MCP acceptent cette entrée mcpServers. Si vous avez installé la commande avec uv tool install ou pip, utilisez "command": "maplestats-mcp" et retirez args.

JSON
{
  "mcpServers": {
    "maplestats": {
      "command": "uvx",
      "args": ["maplestats-mcp"]
    }
  }
}

Toutes les sources. Un seul serveur.

Le carré : 42 éditeurs fédéraux à l'extérieur, les provinces et les villes dotées de sources locales à l'intérieur, et 358 outils en segments par sujetACFC · ACI · ACIA · ARC · ARLA · ASFC · Banque du Canada · Banque mondiale (WDI) · Base nationale de données forestières · Borealis · Bureau de la concurrence · Catalogue de données d'ECCC · CCG · CCL · CEPMB · Chambre des communes · DPB · ECCC · Élections Canada · Élections Canada ; Borealis et Harvard Dataverse (historique) · Finances Canada · Gazette du Canada · ICIS · Infobase de la santé (ASPC) · InfoBase du GC · IRCC · ISDE · Marées du MPO · Rappels · Régie de l'énergie · Represent · RNCan énergie · RNCan feux de végétation · RNCan minéraux · RNCan toponymes · RNCan zones brûlées · Santé Canada · SCHL · Séismes Canada · Sénat · StatCan · Transports Canada · ACFC · ACI · ACIA · ARC · ARLA · ASFC · Banque du Canada · Banque mondiale (WDI) · Base nationale de données forestières · Borealis · Bureau de la concurrence · Catalogue de données d'ECCC · CCG · CCL · CEPMB · Chambre des communes · DPB · ECCC · Élections Canada · Élections Canada ; Borealis et Harvard Dataverse (historique) · Finances Canada · Gazette du Canada · ICIS · Infobase de la santé (ASPC) · InfoBase du GC · IRCC · ISDE · Marées du MPO · Rappels · Régie de l'énergie · Represent · RNCan énergie · RNCan feux de végétation · RNCan minéraux · RNCan toponymes · RNCan zones brûlées · Santé Canada · SCHL · Séismes Canada · Sénat · StatCan · Transports Canada · Colombie-Britannique · Abbotsford · Burnaby OpenData · Coquitlam · Delta · Kamloops · Kelowna · Maple Ridge · Penticton · Port Moody · Prince George · Saanich · Surrey · Transit schedules · Vancouver · Victoria · White Rock · Alberta · Airdrie · Calgary · Canmore · Cochrane · Edmonton · Grande Prairie · Lethbridge · Medicine Hat · Okotoks · Parkland · Red Deer · St. Albert · Strathcona · Sturgeon · Transit schedules · Saskatchewan · Regina · Saskatoon · Transit schedules · Manitoba · Transit schedules · Winnipeg · Ontario · Aurora · Barrie · Brampton · Burlington · Cambridge · Central Lake Ontario Conservation Authority · Conservation Halton · Credit Valley Conservation · Data Kingston · Durham · Greater Sudbury · Guelph · Hamilton Conservation Authority · Kitchener · London · Markham · Milton · Mississauga · Newmarket · Niagara · Oakville · Orangeville · Oshawa · Ottawa · Peel · Peterborough · Pickering · Quinte Conservation Authority · Sarnia · St Catharines · Thunder Bay · Toronto · Transit schedules · Waterloo · Whitby · Windsor · York · Québec · Montréal · Transit schedules · Nouveau-Brunswick · Fredericton · Moncton · Saint John · Transit schedules · Nouvelle-Écosse · Halifax · Transit schedules · Île-du-Prince-Édouard · Transit schedules · Terre-Neuve-et-Labrador · Transit schedules · Yukon · Transit schedules · Territoires du Nord-Ouest · Transit schedules · Yellowknife · Colombie-Britannique · Abbotsford · Burnaby OpenData · Coquitlam · Delta · Kamloops · Kelowna · Maple Ridge · Penticton · Port Moody · Prince George · Saanich · Surrey · Transit schedules · Vancouver · Victoria · White Rock · Alberta · Airdrie · Calgary · Canmore · Cochrane · Edmonton · Grande Prairie · Lethbridge · Medicine Hat · Okotoks · Parkland · Red Deer · St. Albert · Strathcona · Sturgeon · Transit schedules · Saskatchewan · Regina · Saskatoon · Transit schedules · Manitoba · Transit schedules · Winnipeg · Ontario · Aurora · Barrie · Brampton · Burlington · Cambridge · Central Lake Ontario Conservation Authority · Conservation Halton · Credit Valley Conservation · Data Kingston · Durham · Greater Sudbury · Guelph · Hamilton Conservation Authority · Kitchener · London · Markham · Milton · Mississauga · Newmarket · Niagara · Oakville · Orangeville · Oshawa · Ottawa · Peel · Peterborough · Pickering · Quinte Conservation Authority · Sarnia · St Catharines · Thunder Bay · Toronto · Transit schedules · Waterloo · Whitby · Windsor · York · Québec · Montréal · Transit schedules · Nouveau-Brunswick · Fredericton · Moncton · Saint John · Transit schedules · Nouvelle-Écosse · Halifax · Transit schedules · Île-du-Prince-Édouard · Transit schedules · Terre-Neuve-et-Labrador · Transit schedules · Yukon · Transit schedules · Territoires du Nord-Ouest · Transit schedules · Yellowknife · Provinces et villes : catalogues de données ouvertes, provincial, municipal (117)Statistique : statistiques et recensement (92)Terre et énergie : agriculture et alimentation, environnement et risques naturels, énergie et mines, géographie, transport et sécurité (55)Population : santé, logement, immigration (40)Argent et affaires : monnaie, prix et finances publiques, entreprises, PI et concurrence (30)Parlement : parlement, droit et élections (21)Provinces et villes 117Statistique 92Terre et énergie 55Population 403021175sources,une connexion
Voir les données
Les 358 outils par sujet (les segments) ; les outils propres à MapleStats ne comptent que dans le total
SujetOutils
Provinces et villes : catalogues de données ouvertes, provincial, municipal117
Statistique : statistiques et recensement92
Terre et énergie : agriculture et alimentation, environnement et risques naturels, énergie et mines, géographie, transport et sécurité55
Population : santé, logement, immigration40
Argent et affaires : monnaie, prix et finances publiques, entreprises, PI et concurrence30
Parlement : parlement, droit et élections21