Shaun Smith a créé Fast Agent, le premier framework d’agents conçu de zéro pour MCP. Il a aussi développé le serveur MCP de Hugging Face, et lors d’un récent entretien, il nous a montré comment les combiner en déployant un sous-agent comme serveur MCP distant.

Cet article est adapté d’un entretien avec Shaun Smith, Open Source/MCP chez Hugging Face.


Avant l’arrivée de MCP, les frameworks d’agents développaient leurs propres patterns d’intégration d’outils et d’adaptateurs. Quand MCP est apparu, ils l’ont ajouté comme une fonctionnalité sans repenser leurs systèmes sous-jacents. Pour Shaun Smith, le problème de cette approche en patchwork, c’est que MCP est en réalité tout ce dont vous avez besoin.

Shaun travaille chez Hugging Face sur l’open source et MCP. Il contribue activement à la spécification MCP au sein du groupe de travail sur les transports, en examinant des contributions comme la contribution Elicitations d’Arcade, alias SEP-1036!). Il a créé Fast Agent, le premier framework d’agents architecturé de zéro autour du Model Context Protocol, ainsi que le serveur MCP de Hugging Face, qui donne à tout client MCP un accès dynamique aux milliers de modèles IA hébergés sur la plateforme.

Lors d’un échange avec RL Nabors pour la série MCP MVP d’Arcade, Shaun a démontré à quoi ressemble un workflow natif MCP : d’un simple prompt qui génère un site d’actualités sur les chats, jusqu’à un sous-agent déployé comme serveur MCP distant en moins de dix minutes.

Le serveur MCP de Hugging Face : un outil, des centaines de modèles

Quand la plupart des développeurs pensent à Hugging Face, ils pensent aux fiches de modèles et aux articles de recherche. Mais le Hub héberge aussi des milliers d’applications IA exécutables via les Spaces : générateurs d’images, générateurs de vidéos, modèles OCR, synthèse vocale, traduction, et bien plus.

Le serveur MCP de Hugging Face rend tout cela accessible depuis n’importe quel client MCP. Vous configurez les capacités souhaitées dans vos paramètres MCP, et le serveur les expose sous forme d’outils. Une fonctionnalité appelée Dynamic Spaces regroupe des dizaines de modèles spécialisés en un seul outil. Votre agent n’a plus qu’un appel d’outil à faire, et le serveur détermine vers quel modèle router selon la tâche.

“Si vous voulez générer des images, faire de l’OCR ou de la synthèse vocale, vous pouvez tout embarquer dans votre serveur MCP”, explique Shaun. “Et il choisit le bon modèle dynamiquement.”

Vous pouvez ainsi calibrer votre IA au bon niveau plutôt que de tout faire transiter par un seul modèle frontier coûteux. Votre agent peut déléguer des tâches spécialisées à des modèles dédiés, souvent plus rapides, plus précis et moins chers. L’agent local gère le raisonnement et l’orchestration ; les modèles Hugging Face s’occupent de la génération d’images, du traitement audio, de l’analyse de documents, ou de ce dont vous avez besoin. Comme l’a dit RL : “Les modèles frontier sont souvent surdimensionnés. C’est comme avoir le Walmart des modèles à votre disposition.”

Pour illustrer, Shaun a lancé un seul prompt : récupère les derniers titres d’actualité, génère une image de diorama de chats pour les trois premiers, et crée une page d’accueil style journal pour les présenter. Fast Agent a parcouru le web, sélectionné un générateur d’images sur Hugging Face, produit trois illustrations en parallèle sur le thème des chats, assemblé une page HTML complète et publié le tout. Résultat : “The Daily Paws”, un site d’actualités filtré par les chats avec des titres comme “CES Tech : That’s the Cat’s Meow” et “Olympic Overture Gets Feline Finale”.

“On pourrait programmer ça pour tourner chaque matin”, a noté Shaun. RL était convaincu : “J’adorerais recevoir mes news en version chat tous les matins.”

Pourquoi Fast Agent existe

Chaque framework d’agents promet l’intégration d’outils. Le pari de Fast Agent : construire autour de MCP dès le départ, plutôt que de le greffer après coup, simplifie tout le reste.

Fast Agent est un framework Python avec une syntaxe déclarative qui permet de définir des agents, de les connecter à des serveurs MCP et de les assembler en workflows via des décorateurs. Il supporte l’ensemble des fonctionnalités MCP : outils, ressources, prompts, sampling, elicitations et roots. La plupart des autres frameworks n’en implémentent qu’une partie ; Fast Agent est testé de bout en bout contre la spécification complète.

Ce qui le distingue concrètement de frameworks comme LangChain ou Mastra :

  • Support multi-fournisseurs. Fast Agent intègre nativement Anthropic, OpenAI, Google, Azure, Ollama, DeepSeek, et des dizaines d’autres via TensorZero. Vous pouvez planifier avec Opus, développer avec Codex et rechercher avec un modèle open-weight, le tout dans un même workflow, en mixant les fournisseurs.
  • Implémentation MCP client complète. Fast Agent supporte le sampling, les elicitations, les ressources, les roots et OAuth. Shaun souligne que Fast Agent a “souvent été en avance sur l’implémentation MCP”, car il développe les fonctionnalités du protocole dès leur phase de rédaction, pas des mois plus tard.
  • Visibilité au niveau transport. Fast Agent expose ce qui se passe au niveau transport (connexions HTTP, flux SSE, routage des appels d’outils), là où la plupart des frameworks masquent tout. Quand vous déboguez pourquoi un serveur MCP distant ne répond pas, voir la couche transport change tout.
  • Support des skills. Fast Agent inclut un système de skills pour encoder des comportements réutilisables. Un skill intégré, le “tool builder”, apprend au LLM à naviguer dans la spec OpenAPI de Hugging Face et à créer des outils CLI personnalisés pour automatiser davantage.

Les agents comme outils : le pattern MCP sous-exploité

Vient ensuite le déploiement de l’agent “catifier d’actualités” comme outil MCP.

MCP permet d’exposer des agents comme outils sur un serveur. Bien que ce pattern soit dans la spec MCP depuis 2024, il n’a pas encore retenu beaucoup d’attention. Shaun en a fait une démonstration concrète.

Il a d’abord montré un sous-agent tournant en local. Ce sous-agent était un agent de recherche Hugging Face léger, porté par un modèle open-weight rapide. Il savait utiliser la CLI Hugging Face pour répondre à des questions sur les modèles et datasets tendances. L’agent principal lui déléguait des requêtes, gardant le contexte multi-tours du sous-agent isolé du sien. Résultat : le contexte de l’agent orchestrateur restait propre pendant que le sous-agent bouclait et interrogeait.

Shaun a ensuite déployé ce même sous-agent comme serveur MCP distant sur Hugging Face Spaces. Une fois en ligne, n’importe quel client MCP pouvait s’y connecter et utiliser l’agent de recherche, l’inférence tournant sur l’infrastructure de Hugging Face, pas sur la machine de l’appelant.

L’ensemble du processus a pris moins de 10 minutes, de l’agent local au serveur MCP distant déployé.

Les agents et sous-agents utilisent des LLMs. “Hugging Face dispose de centaines de LLMs. Déployer de cette façon permet aux gens d’utiliser leur compte Hugging Face pour accéder à ces outils de type sous-agent”, a expliqué Shaun.

Skills, mode code, et la question de la sécurité

RL a soulevé un pattern qu’ils suivent dans toute la série MCP MVP : les skills apprennent à l’agent à raisonner sur une tâche, le mode code lui permet d’écrire des scripts pour exécuter efficacement, mais les outils restent le moyen le plus sécurisé d’accéder aux ressources externes. Vous ne confieriez pas vos clés API à un LLM. Les outils MCP, surtout avec OAuth via l’elicitation par URL, maintiennent une couche entre le modèle et les opérations sensibles.

Shaun est allé plus loin. Sécuriser les outils individuellement ne suffit pas. Il faut aussi faire attention au mélange d’outils avec des périmètres d’autorisation différents. Si vous accordez des privilèges élevés à un ensemble d’outils et que vous les utilisez aux côtés d’outils ou de skills avec des autorisations moindres, vous aggravez le problème de sécurité. L’agent pourrait faire transiter des données privilégiées par un canal non privilégié sans que personne ne le remarque.

“Chaque fois que j’invite quelque chose avec un niveau de privilège élevé”, a dit Shaun, “je mélange potentiellement des données que je ne voudrais peut-être pas mélanger.”

RL a proposé une analogie : c’est comme une conversation entre amis proches, et quelqu’un fait entrer un inconnu dans la pièce. La discussion ne change pas, mais l’audience, si. Shaun a précisé : “Ou quelqu’un a laissé un téléphone ouvert sur la table !”

Cela pointe vers un pattern sur lequel la communauté MCP travaille activement : considérer l’environnement agent comme l’unité de sécurité, et non les outils individuels. Un ensemble de modèles, outils, skills et données dédié à une tâche, avec des frontières bien définies sur ce qui peut circuler et où.

Les transports comptent plus que vous ne le pensez

Shaun fait partie du groupe de travail MCP sur les transports, alors aucune conversation ne serait complète sans en parler !

MCP supporte actuellement deux transports : stdio pour les serveurs locaux (un processus tournant sur votre machine) et HTTP pour les serveurs distants. À mesure que les outils MCP migrent des machines de développement vers des services hébergés, les transports HTTP avec une authentification adéquate deviennent essentiels. Le support OAuth permet au serveur de savoir qui fait la demande, de personnaliser les réponses par compte et de journaliser les accès.

“Ce qui est vraiment important avec le transport distant, c’est d’avoir une bonne gestion de l’authentification”, a dit Shaun. “On peut se connecter avec OAuth, le serveur MCP sait qui vous êtes et ce que vous demandez.”

Le groupe de travail s’attache à rendre les transports distants plus efficaces à l’échelle. RL a fait le lien avec une tendance plus large observée dans la série MCP MVP : le passage des serveurs MCP en local à leur consommation comme services hébergés.

Essayez par vous-même

Démarrer avec Fast Agent :

uv pip install fast-agent-mcp
fast-agent setup

Documentation et exemples sur fast-agent.ai. Code source sur github.com/evalstate/fast-agent.

Pour vous connecter au serveur MCP de Hugging Face, rendez-vous dans vos paramètres MCP pour configurer les outils et Spaces, puis ajoutez le serveur à votre client MCP. Pour le serveur Spaces communautaire, installez via npm :

npx -y @llmindset/mcp-hfspace

Documentation sur huggingface.co/docs/hub/en/agents-mcp. Le serveur est open source.

Suivez Shaun sur GitHub sous le nom evalstate. Son blog est sur llmindset.co.uk.


MCP MVP est une série vidéo d’Arcade avec RL Nabors qui met en lumière les builders qui façonnent l’écosystème agentique. Regardez l’entretien complet avec Shaun Smith →