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.

Réponse sous 24 h Diagnostic gratuit Sans engagement

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.

Platform : une interface commune aux fournisseurs de modèles
Agent : le modèle appelle vos méthodes PHP comme des outils
Store : stockage vectoriel et recherche pour le RAG
Chat : l'historique des conversations
Mate : des outils pour votre agent de code, en développement
AI Bundle : la configuration Symfony de l'ensemble
MCP Bundle : votre application en serveur ou client MCP
À côté : mcp/sdk, le SDK MCP officiel en PHP

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.

Platform Sortie structurée Streaming

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.

Agent Toolbox Validation humaine

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.

Store pgvector Embeddings

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 Bundle mcp/sdk OAuth

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

Construire dans une application Symfony

Cadrer un projet RAG

Choisir un modèle, coder avec l'IA

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.

24h
Temps de réponse
50+
Projets livrés
100%
Projets maintenus
2
Agences en France

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.

600 à 900 EUR
tarif journalier
Diagnostic offert avant tout devis
Le diagnostic part du cas d'usage : les données que le modèle lira et les actions qu'il pourra lancer
Application sous une version de Symfony antérieure à la 7.4 : la montée de version entre dans le chiffrage
Les appels au modèle s'ajoutent au développement : le fournisseur les facture au token, sauf modèle hébergé chez vous
Ce coût récurrent s'estime à partir des tarifs publics des modèles, que nous relevons tous les mois
Ce que coûte un projet d'intégration IA, poste par poste

Questions fréquentes

Symfony AI est-il prêt pour la production ?
Oui, pour une fonctionnalité bien délimitée et une équipe qui suit les versions. Avant la 1.0, rien n'empêche la 0.14 de modifier une API de la 0.13 ; UPGRADE.md indique alors comment migrer. Comptez du temps de développement à chaque montée de version.
Quelle version de Symfony et de PHP faut-il pour Symfony AI ?
PHP 8.2 au minimum, et des composants Symfony en 7.3 ou 8.x. La 7.3 n'étant plus maintenue depuis janvier 2026, visez la 7.4 LTS ou la branche 8. Une application en 6.4 ou en 7.2 doit d'abord monter de version pour utiliser les composants et les bundles. Le calendrier des versions de Symfony
Quelle différence entre Symfony AI, le MCP Bundle et mcp/sdk ?
Symfony AI regroupe les composants qui parlent aux modèles (Platform, Agent, Store, Chat), l'outil de développement Mate et l'AI Bundle qui configure l'ensemble. mcp/sdk est le SDK PHP officiel du Model Context Protocol, indépendant de tout framework, développé par la PHP Foundation et le projet Symfony. Le MCP Bundle, publié dans le même dépôt que Symfony AI, intègre ce SDK à une application Symfony pour en faire un serveur ou un client MCP.
Peut-on transformer une application Symfony existante en serveur MCP ?
Oui. Avec le MCP Bundle, il faut Symfony 7.3 ou plus : il expose les méthodes que vous marquez avec #[McpTool], #[McpResource] ou #[McpPrompt], en STDIO ou en HTTP. Sur une 6.4, le SDK mcp/sdk s'utilise seul, sans le bundle. Avec API Platform 4.3 et Symfony 7.4 au minimum, le paquet api-platform/mcp vous laisse déclarer des outils MCP sur vos classes, avec votre validation et votre sérialisation. Reste l'autorisation d'un serveur exposé en HTTP, plus longue à construire que les outils : Symfony Security valide les jetons OAuth, et un serveur OAuth à part les émet.
Quels fournisseurs de modèles Symfony AI prend-il en charge ?
OpenAI, Anthropic, Google Gemini et Vertex AI, Azure, AWS Bedrock, Mistral, Ollama pour les modèles locaux, et d'autres encore : la documentation du composant Platform tient la liste à jour. Changer de fournisseur revient à changer la configuration et le nom du modèle, sans réécrire vos services.
Faut-il Symfony AI pour faire du RAG en PHP ?
Non. On peut stocker des vecteurs dans PostgreSQL avec pgvector et écrire les requêtes à la main. Le composant Store apporte une interface commune à plus de vingt bases vectorielles, ce qui évite de réécrire l'indexation le jour où vous changez de base. Avant de choisir l'outil, vérifiez que le RAG est la bonne réponse : notre guide sur l'assistant IA interne détaille les cas où il ne l'est pas. Lire le guide du RAG en entreprise
Combien coûte l'intégration d'un LLM dans une application Symfony ?
Deux postes s'additionnent : le développement, facturé à la journée, et les appels au modèle, que le fournisseur facture au token. Le nombre de jours dépend surtout des outils et des sources de données à relier ; la facture de tokens, du modèle choisi et du volume d'appels. Les jours se chiffrent après le diagnostic offert. Voir les postes de coût d'un projet IA

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.

Réponse sous 24 h ouvrées Devis & diagnostic gratuits Sans engagement