Skip to main contentSkip to footer
    Retour au Blog
    Agents IAiOS et AndroidMCP 2026

    MCP pour Applications Mobiles : le Guide 2026 des Agents IA sur iOS et Android

    Le Model Context Protocol est devenu le standard ouvert pour connecter les agents IA aux outils et aux données. Mais le mobile est différent : voici les patterns d'architecture, le code Swift et Kotlin, et le modèle de sécurité pour intégrer le MCP dans une application iOS ou Android.

    30 juillet 2026 28 min de lecture Par Chris Machetto

    L'essentiel

    Le Model Context Protocol (MCP) est le standard ouvert et neutre pour connecter les agents IA aux outils et aux données. Il s'est imposé dans l'écosystème en 2025 et est désormais gouverné par l'Agentic AI Foundation de la Linux Foundation. Mais presque tous les tutoriels ciblent le poste de travail. Le mobile est réellement différent : le bac à sable d'iOS rend les serveurs stdio locaux impraticables, si bien que les téléphones dialoguent avec des serveurs MCP distants via Streamable HTTP, délèguent à un backend, ou confient le client MCP au connecteur de l'API Claude.

    Qu'est-ce que le Model Context Protocol ?

    En une phrase : le MCP est un standard ouvert qui permet à toute application d'IA de se connecter à tout outil ou source de données externe via un protocole unique et uniforme, plutôt que par des intégrations sur mesure.

    Le MCP a été créé et publié en open source par Anthropic en novembre 2024. Il résout le problème d'intégration M×N : avec M applications d'IA et N outils, l'approche naïve exige M×N connecteurs sur mesure. Le MCP transforme cela en M+N : chaque application implémente le protocole une fois (comme client), chaque outil une fois (comme serveur), et ils interopèrent. C'est le « USB-C des applications d'IA ».

    La documentation officielle est explicite : le MCP « se concentre uniquement sur le protocole d'échange de contexte — il ne dicte pas comment les applications utilisent les LLM ». Cette neutralité vis-à-vis du modèle est un atout stratégique : vous standardisez votre couche d'outils une fois et pouvez changer de modèle plus tard sans tout recâbler.

    Comment le MCP est devenu la norme (2024–2026)

    En bref : le MCP est passé de la publication d'une seule entreprise à une infrastructure inter-secteurs en environ un an, et il est désormais gouverné par une fondation neutre — exactement le signal de stabilité dont les entreprises ont besoin.

    Novembre 2024Anthropic publie le MCP en open source.
    Mars 2025OpenAI adopte le MCP dans son Agents SDK, l'API Responses et l'application ChatGPT desktop.
    Avril 2025Google DeepMind confirme la prise en charge du MCP dans les futurs modèles Gemini.
    19 mai 2025Lors de Microsoft Build, GitHub et Microsoft rejoignent le comité de pilotage du MCP.
    Novembre 2025Une mise à jour majeure introduit les opérations asynchrones, l'absence d'état, l'identité de serveur et un registre communautaire officiel.
    Décembre 2025Anthropic fait don du MCP à l'Agentic AI Foundation (Linux Foundation), avec OpenAI et Block comme cofondateurs et AWS, Google, Microsoft, Cloudflare et Bloomberg comme membres.

    En 2026, on compte plus de 10 000 serveurs MCP publics actifs. Pour approfondir la place du MCP parmi les frameworks d'agents, consultez notre guide des plateformes de création d'agents IA.

    L'architecture du MCP : couches et primitives

    Réponse directe : le MCP est un protocole JSON-RPC 2.0 organisé en deux couches — une couche données qui définit les messages et les primitives, et une couche transport qui définit comment ces messages circulent.

    Primitives serveur

    Tools (fonctions exécutables), Resources (sources de contexte) et Prompts (modèles réutilisables). Découverte via tools/list, appel via tools/call.

    Primitives client

    Sampling (le serveur demande une complétion au modèle de l'hôte), Elicitation (le serveur sollicite l'utilisateur — idéal pour une feuille de confirmation native) et Logging.

    Transports

    stdio (processus locaux — pour le bureau) et Streamable HTTP (HTTP POST + SSE optionnel, OAuth — le transport mobile).

    Une session s'ouvre par une négociation des capacités, puis découvre et appelle des outils. Un appel d'outil sur le réseau ressemble à ceci :

    {
      "jsonrpc": "2.0",
      "id": 3,
      "method": "tools/call",
      "params": {
        "name": "weather_current",
        "arguments": { "location": "Los Angeles", "units": "imperial" }
      }
    }

    « MCP pour le mobile » a trois sens différents

    C'est la distinction que la plupart des articles omettent — et s'y tromper mène sur la mauvaise voie :

    SensDescription
    1. MCP dans votre applicationVotre application iOS/Android est un hôte/client MCP. Son agent IA intégré utilise des serveurs MCP pour obtenir outils et données. Le sujet principal de ce guide.
    2. MCP pour l'automatisation/QA mobileDes serveurs MCP (comme mobile-mcp) permettent à un agent de piloter simulateurs et appareils réels pour les tests.
    3. Le connecteur côté serveurLe paramètre mcp_servers de l'API Claude se connecte aux serveurs distants depuis le cloud d'Anthropic ; votre application n'implémente aucun client.

    Les sens 1 et 3 servent le même objectif produit ; le sens 2 est un outil de workflow développeur sans rapport. Ce guide traite en profondeur les sens 1 et 3.

    Pourquoi le mobile est différent

    La contrainte centrale : le modèle mental du bureau — « lancer un serveur local en sous-processus et lui parler via stdio » — ne se transpose pas aux téléphones. Sur iOS, le bac à sable interdit à une application de lancer des serveurs locaux arbitraires. Conséquence directe :

    Sur mobile, les serveurs MCP sont distants, et le transport est Streamable HTTP. Le pattern « serveur stdio local » de Claude Desktop est une commodité de bureau à ne pas reproduire sur un téléphone.

    • Le réseau est instable et coûteux. Les flux SSE longue durée pèsent sur la batterie et les données ; l'absence d'état de 2026 est une aubaine.
    • Les secrets ne peuvent pas vivre dans le binaire. Clés d'API et identifiants doivent rester côté serveur ou derrière OAuth.
    • L'exécution en arrière-plan est limitée. iOS suspend agressivement les applications, ce qui favorise l'orchestration côté serveur ou le pattern Tasks.
    • La latence s'accumule. Chaque appel d'outil est un aller-retour réseau ; privilégiez les serveurs qui regroupent, mettent en cache et renvoient des résultats compacts.

    Quatre patterns d'architecture pour le MCP sur mobile

    A — Connecteur géré par l'API (client léger)

    Votre application appelle l'API Claude et passe les serveurs via mcp_servers. Aucun client MCP à implémenter. Idéal pour la plupart des applications grand public.

    B — Client MCP natif embarqué

    L'application intègre le SDK Swift ou Kotlin et se connecte directement aux serveurs distants. Contrôle maximal, mais vous gérez l'authentification et la boucle d'agent.

    C — Hôte backend-for-frontend (BFF)

    Votre backend est l'hôte MCP : il exécute la boucle d'agent, détient les identifiants et expose une API légère. Le défaut en entreprise.

    D — Pont d'outils appareil (in-process)

    L'application expose des capacités de l'appareil (caméra, localisation, santé) comme outils, en local. Souvent combiné avec A, B ou C.

    La plupart des équipes devraient commencer par A ou C, et réserver B au besoin d'un contrôle sur l'appareil. Une forme de production courante est C + D : un hôte backend pour les outils distants, plus un pont in-process pour les capacités de l'appareil. Voir notre guide des solutions mobiles d'entreprise.

    Implémenter le MCP sur iOS avec Swift

    Réponse directe : utilisez le SDK Swift officiel (pattern B) et le transport HTTPClientTransport (Streamable HTTP) — pas stdio — pour atteindre les serveurs distants. Le SDK implémente la spécification 2025-11-25 et prend en charge iOS 16+, macOS, watchOS, tvOS et visionOS.

    import MCP
    
    // Streamable HTTP est le transport adapté au mobile (serveur distant).
    let transport = HTTPClientTransport(
        endpoint: URL(string: "https://tools.example.com/mcp")!,
        streaming: true
    )
    
    let client = Client(name: "FrenchyDigitalApp", version: "1.0.0")
    try await client.connect(transport: transport)
    
    // Découvrir les outils, puis en appeler un.
    let tools = try await client.listTools()
    let result = try await client.callTool(
        name: "search_orders",
        arguments: ["query": "factures en attente"]
    )

    Sécurité iOS : stockez les jetons OAuth dans le Keychain, jamais dans UserDefaults. Protégez les outils sensibles (caméra, localisation, santé) derrière les invites système et une étape d'elicitation MCP. Consultez notre guide du développement iOS à Los Angeles.

    Implémenter le MCP sur Android avec Kotlin Multiplatform

    Réponse directe : utilisez le SDK Kotlin officiel, maintenu avec JetBrains. Il est Kotlin Multiplatform (JVM, Android, Native, JS, Wasm), avec coroutines et kotlinx.serialization, et publié sur Maven Central. Sur Android, utilisez Streamable HTTP ou WebSocket.

    import io.modelcontextprotocol.kotlin.sdk.client.Client
    import kotlinx.coroutines.runBlocking
    
    runBlocking {
        val client = Client(clientInfo = Implementation(name = "FrenchyApp", version = "1.0.0"))
    
        // Transport Streamable HTTP vers un serveur MCP distant
        val transport = StreamableHttpClientTransport(url = "https://tools.example.com/mcp")
        client.connect(transport)
    
        val tools = client.listTools()
        val result = client.callTool(
            name = "search_orders",
            arguments = mapOf("query" to "factures en attente")
        )
    }

    Sécurité Android : conservez les jetons avec l'Android Keystore / EncryptedSharedPreferences. Utilisez l'épinglage de certificat et une confirmation biométrique pour les outils à fort impact. Voir notre guide du développement Android à Los Angeles.

    MCP pour React Native, Flutter et Expo

    Réponse directe : les applications cross-platform atteignent presque toujours le MCP via un backend-for-frontend (pattern C) ou le connecteur de l'API Claude (pattern A), et non un client MCP natif. Exécutez l'hôte MCP côté serveur avec le SDK TypeScript ou Python (niveau 1) et exposez un endpoint de streaming. C'est l'approche que nous recommandons pour les projets React Native.

    Le connecteur MCP de l'API Claude : le pattern client léger

    Réponse directe : le connecteur MCP attache des serveurs MCP distants à un appel de l'API Messages. Le cloud d'Anthropic se connecte aux serveurs et gère la découverte et l'appel des outils — votre application n'a besoin d'aucun client MCP.

    // POST /v1/messages  (les en-têtes incluent le flag beta du connecteur MCP)
    {
      "model": "claude-...",
      "max_tokens": 1024,
      "messages": [{ "role": "user", "content": "Quelles sont mes factures en attente ?" }],
      "mcp_servers": [
        {
          "type": "url",
          "name": "billing-tools",
          "url": "https://tools.example.com/mcp",
          "authorization_token": "..."   // obtenu via OAuth, injecté côté serveur
        }
      ]
    }

    Les serveurs doivent gérer Streamable HTTP/SSE et être accessibles publiquement. Vous pouvez autoriser ou interdire des outils spécifiques. Le connecteur est en bêta ; épinglez l'en-tête bêta documenté et testez à chaque mise à jour.

    Sécurité et gouvernance du MCP mobile

    Réponse directe : les principaux risques ne sont pas cryptographiques — ce sont l'injection de prompt, le tool poisoning et les erreurs d'autorisation de type deputé confus. Sur mobile s'ajoutent le stockage des jetons et les permissions. Traitez chaque serveur et chaque résultat d'outil comme non fiables.

    • L'injection de prompt est n°1 du Top 10 OWASP pour les applications LLM.
    • Le tool poisoning dissimule des instructions dans les métadonnées ou les réponses d'un outil.
    • Le député confus vient du serveur qui détient les identifiants amont et agit pour le client LLM sans propager l'identité de l'utilisateur.

    Liste de contrôle sécurité mobile

    • Gardez les identifiants hors de l'appareil (pattern A ou C) ; sinon, Keychain / Keystore.
    • Suivez OAuth 2.1 / RFC 9700 : validation d'audience, rejet du passthrough de jeton, correspondance exacte de l'URI de redirection.
    • Établissez une liste d'autorisation de serveurs et d'outils.
    • Confirmation humaine (via elicitation) avant tout outil qui dépense, envoie ou modifie des données.
    • Validez les sorties d'outils comme un contenu non fiable, jamais comme des instructions.

    Ce que la spécification 2026-07-28 change pour le mobile

    Réponse directe : la révision 2026-07-28 (release candidate verrouillée le 21 mai 2026, publication finale le 28 juillet 2026) rend le MCP sans état en son cœur — une excellente nouvelle pour le mobile. La suppression de la poignée de main initialize et de l'en-tête Mcp-Session-Id permet « une requête autonome que toute instance de serveur peut traiter » : pas de session collante à perdre lors d'une coupure réseau, des reconnexions plus simples et moins coûteuses.

    Autres nouveautés : mise en cache (ttlMs/cacheScope), en-têtes de routage, extension Tasks (le travail long survit à la mise en arrière-plan), MCP Apps et durcissement de l'autorisation. Attention : la révision contient des changements incompatibles ; épinglez votre SDK et planifiez une fenêtre de mise à niveau. Voir notre guide sur la maintenance d'applications mobiles sur mesure.

    Votre application mobile devrait-elle utiliser le MCP ?

    Réponse directe : utilisez le MCP si l'IA de votre application doit agir sur des données externes ou de l'appareil, et surtout si vous voulez éviter de réintégrer vos outils à chaque changement de modèle. Pour un unique appel de fonction fixe, le simple function calling peut suffire.

    Pour la plupart des équipes : commencez par le connecteur de l'API Claude ou un hôte backend, ajoutez un pont d'appareil quand une fonctionnalité l'exige vraiment, et réservez le client natif complet aux produits réellement agentiques.

    Foire aux questions

    Une application mobile peut-elle exécuter un serveur MCP local ?

    Pas en pratique sur iOS. Le bac à sable empêche de lancer des sous-processus locaux arbitraires, donc stdio ne s'applique pas. Les applications mobiles se connectent à des serveurs MCP distants via Streamable HTTP, exécutent un hôte sur leur backend, ou délèguent au connecteur de l'API Claude.

    Quelle est la différence entre le MCP et le function calling ?

    Le function calling est une fonctionnalité du modèle : vous définissez des fonctions dans une requête et le modèle demande à les appeler. Le MCP est un protocole et un écosystème : les serveurs annoncent des outils, ressources et prompts que tout client découvre à l'exécution et réutilise entre applications et modèles.

    Le MCP fonctionne-t-il avec d'autres modèles que Claude ?

    Oui. Le MCP est neutre vis-à-vis du modèle. OpenAI l'a adopté en mars 2025, Google a confirmé la prise en charge de Gemini en avril 2025, et Microsoft l'a intégré à Copilot et VS Code. Vous standardisez votre couche d'outils une fois et changez de modèle plus tard.

    Comment stocker les jetons OAuth du MCP de façon sûre ?

    Sur iOS, utilisez le Keychain — jamais UserDefaults. Sur Android, l'Android Keystore avec EncryptedSharedPreferences. Mieux encore, gardez les identifiants hors de l'appareil via un hôte backend ou le connecteur de l'API Claude, et suivez OAuth 2.1 / RFC 9700.

    Le MCP est-il prêt pour la production sur mobile en 2026 ?

    Oui, avec la bonne architecture. Il est soutenu par l'Agentic AI Foundation et adopté par OpenAI, Google et Microsoft. La voie la moins risquée garde les identifiants hors de l'appareil, applique OAuth 2.1, autorise serveurs et outils par liste, et exige une confirmation pour les actions sensibles.

    Conclusion

    En dix-huit mois à peine, le Model Context Protocol est devenu le tissu conjonctif de l'ère agentique — neutre vis-à-vis du modèle, gouverné par une fondation neutre et adopté par tous les grands acteurs de l'IA. Mais transposer le playbook du bureau aux téléphones est une erreur. Le mobile exige sa propre approche : serveurs distants via Streamable HTTP, identifiants hors de l'appareil, capacités de l'appareil exposées délibérément, et une posture de sécurité qui suppose serveurs et sorties d'outils non fiables.

    Depuis nos équipes de Los Angeles, avec nos collègues de Paris et Genève, c'est l'approche que nous recommandons à tout responsable produit qui intègre des agents IA dans une application mobile en 2026.

    Prêt à intégrer des agents IA à votre application ?

    Frenchy Digital est une agence de développement mobile et IA basée à Los Angeles qui conçoit et livre des fonctionnalités d'agents propulsées par le MCP sur iOS natif (Swift), Android (Kotlin) et React Native — avec l'architecture de sécurité qui va avec.

    Chris Machetto - CEO & Founder of Frenchy Digital

    Chris Machetto

    CEO & Founder of Frenchy Digital. Building apps and digital products since 2019 for startups and enterprises across LA, San Francisco, Paris, Geneva, and more globally.