Symfony AI et MCP : brancher un LLM dans votre application Symfony
Symfony AI regroupe les composants PHP que le projet Symfony consacre à l'IA : appels aux modèles, agents, RAG, serveur MCP. Le projet est encore en 0.x ; cette page fait le point sur ce qu'il vaut en production en septembre 2026 et sur la façon dont on l'intègre à une application existante.
Qu'est-ce que Symfony AI ?
Symfony AI est un ensemble de composants et de bundles PHP, annoncé sur le blog de Symfony le 11 juillet 2025 et développé dans un dépôt à part, symfony/ai. Il donne à votre application une interface unique vers les fournisseurs de modèles (OpenAI, Anthropic, Gemini, Mistral, Ollama et d'autres) et un cadre pour écrire des agents qui appellent vos services ; sa couche de stockage vectoriel sert au RAG. On lit parfois « Symfony IA » : c'est le même projet, dont le nom officiel reste Symfony AI.
Où en est Symfony AI en septembre 2026
Le premier tag, v0.1.0, a été annoncé le 24 décembre 2025. Au 24 septembre 2026, la dernière version publiée est la 0.13.0, du 30 août 2026, et le fichier UPGRADE.md du dépôt décrit déjà le passage à la 0.14. Chaque brique s'installe séparément avec Composer (symfony/ai-platform, symfony/ai-agent, symfony/ai-store, symfony/ai-bundle, symfony/mcp-bundle) : rien n'arrive avec le framework lui-même.
Le guide de contribution du projet le dit sans détour : tant que la 1.0 n'est pas sortie, Symfony AI ne porte pas la promesse de rétrocompatibilité de Symfony, et une version mineure peut casser une API. Chaque rupture est décrite dans UPGRADE.md. En pratique, on fige la version mineure dans composer.json et on lit ce fichier avant chaque montée ; les tests tournent sans appeler le fournisseur, grâce à l'InMemoryPlatform du composant Platform.
Côté prérequis, Platform, Agent, Store, Chat et les deux bundles demandent PHP 8.2 et des composants Symfony en 7.3 ou 8.x ; l'outil Mate et le SDK mcp/sdk acceptent aussi une 6.4. Or la 7.3 n'est plus maintenue depuis janvier 2026. Une application encore en 6.4 ou en 7.2 passe donc d'abord par une montée de version, vers la 7.4 LTS ou vers la branche 8. C'est un chantier à part entière : les dates de support de chaque version et notre ordre de marche sont sur notre page agence Symfony, section migration.
Mate, livré depuis la v0.1.0 et mis en avant sur le blog Symfony le 14 septembre 2026, ne va pas en production. Il s'installe en dépendance de développement et donne à votre agent de code (Claude Code, Cursor, GitHub Copilot) un accès au conteneur compilé, au profiler et aux logs de l'application.
Notre lecture : Symfony AI convient déjà à une fonctionnalité bien délimitée (un assistant, une recherche sémantique, un serveur MCP), dans une équipe qui accepte de suivre les versions mineures. Pour les autres cas, la comparaison avec le SDK du fournisseur se trouve plus bas.
Ce qu'on construit avec Symfony AI et MCP
Brancher un modèle dans votre application
Résumer un document, classer un ticket, extraire les champs d'un PDF vers une entité Doctrine : on appelle le modèle depuis vos services, avec une sortie structurée en objets PHP.
Agents avec outils
Un agent qui interroge votre base, prépare un devis ou relance un client en appelant vos propres méthodes PHP, déclarées avec #[AsTool]. Les outils qui modifient des données peuvent exiger une confirmation humaine avant de s'exécuter.
RAG sur une base vectorielle
Vos documents découpés, vectorisés, rangés dans PostgreSQL (pgvector), MariaDB, Meilisearch, Qdrant ou ChromaDB, puis retrouvés au moment de répondre. On part de la base que vous hébergez déjà quand elle fait l'affaire.
Serveur MCP depuis Symfony
Vos services métier exposés comme outils MCP, en STDIO pour un usage local ou en HTTP derrière Symfony Security. Un assistant comme Claude ou un agent interne les appelle alors sans connecteur écrit à la main.
MCP et Symfony : exposer votre application à un agent
Le Model Context Protocol est un protocole ouvert publié par Anthropic le 25 novembre 2024. Il décrit comment une application d'IA (Claude, Cursor, un agent interne) découvre les outils d'un serveur, lit ses ressources et récupère ses prompts. Pour une application Symfony, être serveur MCP veut dire annoncer à l'agent ce qu'il a le droit de faire chez vous, et avec quels paramètres.
En PHP, le SDK officiel s'appelle mcp/sdk. Symfony l'a annoncé le 5 septembre 2025 avec la PHP Foundation et l'équipe MCP d'Anthropic ; le dépôt vit dans l'organisation modelcontextprotocol sur GitHub, et son README le présente comme une collaboration entre la PHP Foundation et le projet Symfony. Il reste expérimental jusqu'à sa première version majeure (au 24 septembre 2026, la dernière est la 0.8.1, du 29 août) et prend en charge les deux générations du protocole, y compris la révision sans état 2026-07-28.
Le MCP Bundle intègre ce SDK à Symfony, dans les deux sens. Côté serveur, vous posez un attribut (#[McpTool], #[McpResource] ou #[McpPrompt]) sur une méthode de service, et l'application l'expose en STDIO pour un client local ou en HTTP sur une route comme /mcp. Côté client, votre application peut se connecter à des serveurs MCP distants ; pour confier leurs outils directement à un agent Symfony AI, il faudra un nouveau paquet, symfony/ai-mcp-tool, qui n'a pas encore de version taguée au 24 septembre 2026. Si votre API tourne sous API Platform (4.3 ou plus, avec Symfony 7.4 au minimum), le paquet api-platform/mcp vous laisse déclarer des outils MCP sur vos classes ; il est marqué expérimental, lui aussi.
Déclarer un outil tient en quelques lignes. Décider qui a le droit de l'appeler demande plus de travail : pour un serveur exposé en HTTP, les clients comme Claude ou Cursor attendent un serveur conforme à MCP Authorization, donc à OAuth. Le SDK et le bundle s'arrêtent volontairement au rôle de serveur de ressources ; Symfony Security valide le jeton, un serveur OAuth dédié l'émet. Le consentement de l'utilisateur avant chaque appel d'outil, lui, revient à l'application hôte, comme le demande la spécification. En STDIO, sur le poste du développeur, cette partie OAuth ne s'applique pas : les identifiants viennent de l'environnement.
Notre tutoriel MCP avec Symfony détaille les trois primitives (outils, ressources, prompts) avec du code. Il date de juillet 2025 et s'appuie sur un bundle communautaire, antérieur au SDK officiel : pour un nouveau projet, partez de symfony/mcp-bundle.
Symfony AI, SDK du fournisseur ou code maison ?
Symfony AI n'est pas le seul chemin pour parler à un modèle depuis PHP. Anthropic publie un SDK PHP officiel, tout comme AWS pour Bedrock et Google Cloud pour Vertex AI ; pour OpenAI, le client le plus téléchargé sur Packagist, openai-php/client, est communautaire. Pour un appel isolé, un client HTTP fait aussi l'affaire. L'assistant de qualification de ce site en est un exemple : il appelle l'API de Claude avec le SDK d'Anthropic (anthropic-ai/sdk), un seul outil déclaré, sans recherche documentaire. Pour ce périmètre, l'appel direct suffit.
Symfony AI prend l'avantage quand plusieurs besoins se cumulent : changer de fournisseur sans toucher à vos services, ajouter un RAG, voir les appels et les tokens dans le profiler Symfony, tester un agent sans payer d'appel à l'API. Pour un seul appel vers un seul fournisseur, le SDK du fournisseur reste une option sérieuse, avec moins de code tiers à suivre, même si celui d'Anthropic, qu'utilise ce site, est lui aussi en 0.x. Dans une application antérieure à Symfony 7.3, c'est même la voie la plus directe, puisque Symfony AI ne s'y installe pas sans montée de version.
Notre article sur la factory de clients Anthropic et Gemini en PHP montre la version maison de cette abstraction. Écrit en juillet 2025, avant le premier tag de Symfony AI, il reste utile pour voir ce que le composant Platform fait à votre place.
Symfony et IA : nos articles, rangés par besoin
Ces articles datent de juillet 2025 à septembre 2026. Ceux sur le MCP (juillet 2025) et sur ChromaDB (décembre 2025) précèdent les versions actuelles de Symfony AI et du SDK MCP : pour les numéros de version et l'état du projet, fiez-vous à cette page.
Comprendre Symfony AI et le MCP
- L'annonce de juillet 2025 : ce que l'initiative promettait et ce qui s'est passé jusqu'au deuxième trimestre 2026.
- Le protocole MCP expliqué avec Symfony : les rôles d'hôte, de client et de serveur, les trois primitives, puis un serveur MCP écrit en Symfony.
Construire dans une application Symfony
- Moteur de recherche sémantique avec ChromaDB : un moteur complet, de l'indexation jusqu'au scoring hybride qui mêle similarité et filtres sur les métadonnées.
- Cas client ranksource : une marketplace B2B en Symfony, avec un garde-fou qui passe par Symfony AI.
- Factory de clients Anthropic et Gemini : deux fournisseurs derrière une interface commune, avec une commande console pour tester un prompt.
Cadrer un projet RAG
- Assistant IA sur vos documents internes : pourquoi ces projets échouent et la question à se poser avant de coder un RAG.
Choisir un modèle, coder avec l'IA
- Prix des modèles d'IA : les tarifs officiels de GPT, Claude, Gemini et d'autres, avec leur score Terminal-Bench relevé par Artificial Analysis, mis à jour tous les mois.
- Claude, GPT ou Gemini pour générer du code : le comparatif qualité/prix, en assistance au quotidien et sur les tâches longues.
- Cursor Rules pour Symfony et API Platform : des règles pour que le code généré respecte les conventions de votre projet.
Le reste de votre application (montée de version, développement, maintenance) se traite sur notre page agence Symfony. Et si vous dirigez une PME sans équipe technique et cherchez d'abord où l'IA vous ferait gagner du temps, notre agence IA à Toulouse part de vos process plutôt que du code.
Prêt à lancer votre prochain projet ?
Racontez-nous votre idée. On vous répond sous 24h avec une première analyse et des pistes concrètes — sans engagement.
Pourquoi choisir EpickOne ?
Des développeurs Symfony
Une intégration IA reste du code Symfony : des services, de la configuration et des tests, puis quelqu'un pour les faire évoluer après la mise en production. Ce code, nos développeurs backend l'écrivent et le maintiennent.
Le bon outil, même si ce n'est pas Symfony AI
Si le SDK de votre fournisseur couvre votre besoin, on vous le dit au diagnostic, avant d'ajouter Symfony AI et ses montées de version à votre projet.
Ce que le modèle voit de vos données
Choix du fournisseur et de la région d'hébergement, modèle local via Ollama quand les documents ne doivent pas sortir, outils MCP limités aux actions que vous autorisez : ces questions se tranchent avant le premier prompt.
Deux projets IA de notre portfolio
Kleinblue
Recherche sémantique RAG (ChromaDB)
Enchères VO
Automatisation de workflow par agent IA
Le reste du portfolio est sur notre page d'accueil.
Combien coûte une intégration Symfony AI ?
Le développement se facture à la journée, et sa durée dépend de la version de Symfony de départ, du nombre d'outils ou de sources de données à relier et de ce que l'agent pourra faire sans validation humaine.
Questions fréquentes
Symfony AI est-il prêt pour la production ?
Quelle version de Symfony et de PHP faut-il pour Symfony AI ?
Quelle différence entre Symfony AI, le MCP Bundle et mcp/sdk ?
Peut-on transformer une application Symfony existante en serveur MCP ?
Quels fournisseurs de modèles Symfony AI prend-il en charge ?
Faut-il Symfony AI pour faire du RAG en PHP ?
Combien coûte l'intégration d'un LLM dans une application Symfony ?
Parlons de votre projet
Vous avez un projet en tête ? Discutons ensemble de la façon dont nous pouvons vous aider à le concrétiser.