Model Context Protocol (MCP) is an open-source protocol that lets LLMs discover and call external tools, query databases, access files, and perform real-world actions — not just generate text. Think of it as USB for AI.
03 — Protocole
MCP : faire parler l'IA à tes outils
Le Model Context Protocol (MCP) est un protocole open source qui permet aux LLMs de découvrir et d'appeler des outils externes, d'interroger des bases de données, d'accéder à des fichiers et d'accomplir des actions dans le monde réel — pas seulement de générer du texte. On peut le voir comme un « USB pour l'IA ».
What Is MCP?
MCP creates a client-server architecture between AI applications and external services. It builds on JSON-RPC 2.0 as its message format and was released as fully open-source by Anthropic in November 2024.
Host
The AI app the user interacts with (e.g. Claude Desktop, Cursor, Gemini CLI)
MCP Client
Built into the host; handles connection and communication with servers
MCP Server
Lightweight process exposing tools, resources, or prompts (GitHub, PostgreSQL, filesystem)
Transport
Two methods: STDIO (local) and HTTP+SSE (remote, over the network)
How a Conversation with MCP Works
1
Initialization
Host app starts, creates MCP clients, exchanges capability info via handshake
2
Discovery
Client asks each server: "What tools, resources, and prompts do you offer?"
3
Registration
Client registers available capabilities so the LLM can use them
4
LLM Decision
During conversation, the model decides to call a tool (e.g. query a database)
5
Request
Client sends a structured JSON request to the appropriate MCP server
6
Execution
Server performs the action (reads file, calls API, queries DB, runs code)
7
Result Return
Server returns structured JSON back to the client
8
Context Integration
LLM receives the result and incorporates it into its response
This entire cycle typically completes in seconds and is invisible to the user.
The Three Types of MCP Server Capabilities
Type
Controlled By
Description
Example
Tools
Model
Functions the LLM can call to perform actions
get_weather("Tunis"), run_sql_query()
Resources
Application
Data sources the LLM can read (no side effects, like GET)
File contents, database schema, logs
Prompts
User
Pre-defined templates for optimal tool/resource usage
"Summarize this repo's README"
Why Engineers Should Care
MCP unlocks agentic workflows — AI that doesn't just answer questions but takes actions:
Query your project's database mid-conversation without copy-pasting SQL results
Let AI monitor your deployment logs and alert on anomalies
Call your course project's REST API and interpret responses automatically
Read, write, and edit local files through Claude Desktop or Cursor
Chain multiple tools in sequence: search → filter → write to Notion — all in one prompt
Build agents that work across tools without writing any glue code
Claude Desktop can connect to multiple MCP servers simultaneously
MCP separates what to do (LLM decision) from how to do it (server execution)
MCP-Compatible Clients
Client
Description
Claude Desktop
Anthropic's native desktop app; the original MCP host
Cursor
VS Code fork; supports MCP servers directly in the IDE
Gemini CLI
Google's command-line AI interface
Windsurf
AI IDE with MCP integration for multi-file agentic coding
VS Code + AI Toolkit
Microsoft's AITK extension adds MCP support with a Visual Agent Builder
Docker Desktop MCP Toolkit
Pre-packages popular MCP servers for easy installation
Any Haystack Agent
Open-source framework with native MCP client support
Popular MCP Servers You Can Use Today
GitHub MCP
Read repos, create issues, open PRs from chat
PostgreSQL / SQLite MCP
Natural language → SQL queries on your database
Filesystem MCP
Read/write files on your local machine
Brave Search MCP
Web search with structured results
YouTube Transcript MCP
Extract and summarize any YouTube video
Obsidian / Notion MCP
Write notes directly into your knowledge base from chat
Docker MCP
Manage containers and images conversationally
Puppeteer MCP
Control a browser: navigate, click, scrape web pages
Slack / Discord MCP
Send messages, read channels, manage workspaces
ArXiv / Wikipedia MCP
Structured research paper and encyclopedia access
! Safety & Permissions
MCP was designed with explicit safety controls from the start:
Tool schemas define exactly what inputs a tool accepts — the LLM cannot call tools outside those schemas
Permission controls let you set read-only vs. read-write access per server
Confirmation prompts can require user approval before destructive actions
Sandboxing keeps server execution isolated from the host system
OAuth support for secure, token-based authentication with remote servers
⚠ Security Note
MCP is powerful but introduces new attack surfaces. Malicious MCP servers could exfiltrate data or execute unwanted actions. Only install MCP servers from trusted sources, and always review what permissions each server requests.
Building MCP Servers
Getting Started
A minimal Python MCP server can be under 20 lines of code using FastMCP
Use the MCP Inspector — built-in dev tool for debugging tool calls
Tools declare their input schema (JSON Schema format)
Resources should be idempotent (no side effects)
Servers can compose — one server can call another's tools
Key Concepts
Servers are language-agnostic — Python, TypeScript, Go, Java
Run servers in Docker for easy deployment and isolation
Mock servers during development to test without real APIs
Tools support required and optional parameters with type validation
Microsoft AI Toolkit includes a Visual Agent Builder
# Minimal Python MCP server using FastMCP (under 20 lines)
from fastmcp import FastMCP
mcp = FastMCP("My Server")
@mcp.tool() defcalculate_bmi(weight_kg: float, height_m: float) -> float: "Calculate Body Mass Index" return weight_kg / (height_m ** 2)
@mcp.tool() defquery_database(sql: str) -> list: "Execute a read-only SQL query" # Your DB logic here return []
MCP vs. Other Approaches
Approach
Pros
Cons
MCP
Model-agnostic, open standard, growing ecosystem
Relatively new (Nov 2024), ecosystem still maturing
Function Calling
Native to OpenAI/Gemini, battle-tested
Model-specific, not portable across providers
Custom Glue Code
Full control, no dependencies
Different implementation per model per tool
ChatGPT Plugins
Early solution to the problem
OpenAI-only, now deprecated
// Good to Know
MCP works alongside function calling — some clients translate MCP tool definitions into native function call formats automatically. LangChain tools and Haystack tools can be wrapped as MCP servers, giving legacy integrations MCP compatibility.
For Students & Engineers
Project Ideas
NotebookLM + Filesystem MCP = AI reads your actual lecture PDFs
GitHub MCP + Claude = code reviews where AI reads your full repo
Build a "personal research assistant" querying your Obsidian vault
MCP server for university course catalog = AI plans your semester
Minecraft mod server — let Claude read mod files and generate Fabric code
Easy Start
Docker Desktop MCP Toolkit = easiest way to get started
VS Code AI Toolkit supports local ONNX/CPU inference + MCP
Fully offline agentic AI development possible
CTF platform MCP = AI assists bug bounty recon with scoped access
Expose custom SQL views as MCP resources for scoped data access
Hundreds of community servers on GitHub and MCPMarket
Security & Best Practices
Do
Apply principle of least privilege — only permissions actually needed
Use OAuth or API keys for remote MCP servers
Log all tool calls for auditability
Require explicit user confirmation per destructive action
Run servers in Docker for isolation
Use schema validation server-side (never trust unvalidated inputs)
Treat MCP servers like microservices — clear boundaries, independently deployable
Don't
Install MCP servers from untrusted sources
Expose write-capable servers without confirmation prompts
Skip logging — know what your agent did and when
Ignore prompt injection via malicious webpages
Skip schema validation even though JSON is structured
Enable writes by default — use read-only mode first
Ignore MCP server permission requests without review
→ The Bigger Picture
MCP is the foundation of the agentic AI paradigm — AI that acts, not just answers. In 2026, MCP is being used in production CI/CD pipelines: AI agents that trigger builds, run tests, and open PRs autonomously. Google Cloud officially supports MCP as a standard for Gemini-powered agent integrations. The next evolution is multi-agent MCP — networks of AI agents, each with their own MCP servers, coordinating through shared tool interfaces.
50 Additional MCP Facts
Core Protocol
MCP was released as fully open-source by Anthropic in November 2024
Builds on JSON-RPC 2.0 as its message format
Google, Microsoft, and major IDE vendors adopted it within months
A server can expose multiple tools, resources, and prompts simultaneously
Language-agnostic — Python, TypeScript, Go, Java, or any language
FastMCP framework makes building servers as simple as @mcp.tool()
Separates what to do (LLM) from how to do it (server)
Supports streaming via SSE — tools send partial results in real-time
Sampling lets servers request LLM completions from client — agentic loops without server API keys
Ecosystem & Future
Protocol versioning — clients and servers negotiate compatible version on handshake
Hundreds of community servers available on GitHub and MCPMarket
Google Cloud officially supports MCP for Gemini agent integrations
Used in production CI/CD — AI agents trigger builds, run tests, open PRs
Multi-agent MCP is the next evolution — coordinated AI agent networks
Red Hat security blog documents attack surfaces: tool poisoning, data exfiltration
MCP servers like microservices — do one thing, clear boundaries
Local servers generally safer than remote — no network exposure
MCPMarket.com has a directory of community-built servers
Quick Reference: MCP Resources
Resource
What It's For
Official Docs
modelcontextprotocol.io — Full spec, SDKs, quickstart
MCP Market
mcpmarket.com — Directory of community servers
FastMCP
gofastmcp.com — Fastest way to build Python servers
Le MCP crée une architecture client‑serveur entre les applications d'IA et des services externes. Il s'appuie sur JSON‑RPC 2.0 comme format de message et a été publié en open source complet par Anthropic en novembre 2024.
Hôte
L'application IA avec laquelle l'utilisateur interagit (par ex. Claude Desktop, Cursor, Gemini CLI)
Client MCP
Intégré à l'hôte ; gère la connexion et la communication avec les serveurs
Serveur MCP
Petit processus léger exposant des outils, ressources ou invites (GitHub, PostgreSQL, filesystem)
Transport
Deux modes possibles : STDIO (local) et HTTP + SSE (distant, en réseau)
Comment une conversation avec MCP fonctionne
1
Initialisation
L'application hôte démarre, crée les clients MCP et échange les capacités via un handshake.
2
Découverte
Le client demande à chaque serveur : « Quels outils, ressources et invites proposez‑vous ? ».
3
Enregistrement
Le client enregistre les capacités disponibles afin que le LLM puisse les utiliser.
4
Décision du LLM
Pendant la conversation, le modèle choisit d'appeler un outil (par ex. interroger une base de données).
5
Requête
Le client envoie une requête JSON structurée au serveur MCP approprié.
6
Exécution
Le serveur réalise l'action : lire un fichier, appeler une API, interroger une base de données.
7
Retour du résultat
Le serveur renvoie un objet JSON structuré au client.
8
Intégration au contexte
Le LLM reçoit le résultat et l'incorpore dans sa réponse.
Ce cycle complet s'exécute typiquement en quelques secondes et reste invisible pour l'utilisateur.
Les trois types de capacités de serveur MCP
Type
Contrôlé par
Description
Exemple
Outils (Tools)
Modèle
Fonctions que le LLM peut appeler pour accomplir des actions
get_weather("Tunis"), run_sql_query()
Ressources
Application
Sources de données que le LLM peut lire (sans effets secondaires, comme des requêtes GET)
Contenu de fichiers, schéma de base de données, logs
Invites (Prompts)
Utilisateur
Modèles pré‑définis pour un usage optimal des outils/ressources
« Résumez le README de ce projet »
Pourquoi les ingénieurs devraient s'y intéresse
Le MCP déverrouille les flux de travail agentiques : l'IA ne se contente plus de répondre, mais agit concrètement.
Interroger la base de données d'un projet en milieu de discussion, sans copier‑coller des résultats SQL
Laisser l'IA surveiller les logs de déploiement et alerter sur les anomalies
Appeler l'API REST de ton projet de cours et interpréter les réponses automatiquement
Lire, écrire et modifier des fichiers locaux via Claude Desktop ou Cursor
Enchaîner plusieurs outils : rechercher → filtrer → écrire dans Notion, le tout dans une seule invite
Construire des agents qui traversent des outils sans écrire de code « glue »
Claude Desktop peut se connecter à plusieurs serveurs MCP simultanément
Le MCP sépare quoi faire (décision du LLM) de comment le faire (exécution côté serveur)
Clients compatibles MCP
Client
Description
Claude Desktop
Application de bureau native d'Anthropic ; hôte MCP original
Cursor
Bifurcation de VS Code avec intégration MCP directe dans l'IDE
Gemini CLI
Interface en ligne de commande d'IA de Google
Windsurf
IDE IA avec intégration MCP pour codage agentic multi‑fichiers
VS Code + AI Toolkit
Extension Microsoft AITK qui ajoute un Visual Agent Builder avec MCP
Docker Desktop MCP Toolkit
Packe des serveurs MCP populaires pour une installation en un clic
Tout agent Haystack
Framework open source avec client MCP intégré
Serveurs MCP populaires utilisables aujourd'hui
GitHub MCP
Lire des dépôts, créer des issues, ouvrir des PR depuis le chat
PostgreSQL / SQLite MCP
Transformer du langage naturel en requêtes SQL sur ta base
Filesystem MCP
Lire/écrire des fichiers locaux
Brave Search MCP
Recherche web avec résultats structurés
YouTube Transcript MCP
Extraire et résumer n'importe quelle vidéo YouTube
Obsidian / Notion MCP
Écrire des notes directement dans ta base de connaissances
Docker MCP
Gérer conteneurs et images en mode conversationnel
Puppeteer MCP
Contrôler un navigateur : navigation, clics, scraping
Slack / Discord MCP
Envoyer des messages, lire des canaux, gérer les espaces de travail
ArXiv / Wikipedia MCP
Accès structuré aux articles de Recherche et à l'encyclopédie
! Sécurité & permissions
Le MCP a été conçu dès le départ avec des contrôles de sécurité explicites :
Schémas d'outil définissent précisément ce que les outils acceptent comme entrées ; le LLM ne peut pas appeler d'outils hors de ces schémas.
Contrôles de permission permettent de définir du read‑only vs read‑write par serveur.
Prompts de confirmation peuvent demander l'approbation de l'utilisateur avant toute action destructive.
Sandboxing isole l'exécution des serveurs du système hôte.
Support OAuth permet une authentification sécurisée, basée sur des tokens, avec des serveurs distants.
⚠ Note de sécurité
Le MCP est puissant, mais il crée de nouvelles surfaces d'attaque. Des serveurs MCP malveillants pourraient exfiltrer des données ou exécuter des actions non voulues. Installe uniquement des serveurs MCP provenant de sources de confiance, et vérifie toujours les permissions demandées.
Construire des serveurs MCP
Démarrage rapide
Un serveur Python minimal MCP peut tenir en moins de 20 lignes avec FastMCP
Utilise MCP Inspector, un outil de dev intégré pour déboguer les appels d'outils
Les outils déclarent leur schéma d'entrée au format JSON Schema
Les ressources doivent être idempotentes (pas d'effets secondaires)
Les serveurs peuvent se composer : un serveur peut appeler les outils d'un autre serveur
Concepts clés
Les serveurs sont agnostiques au langage : Python, TypeScript, Go, Java, etc.
Déployez les serveurs en Docker pour gain de simplicité et d'isolation
Utilisez des serveurs « mockés » en dev pour tester sans API réelles
Les outils supportent des paramètres obligatoires et optionnels, avec validation de type
Le Microsoft AI Toolkit inclut un Visual Agent Builder
# Exemple minimal de serveur MCP en Python avec FastMCP (< 20 lignes)
@mcp.tool() defquery_database(sql: str) -> list: "Exécute une requête SQL en lecture seule" # Logique de base de données ici return []
MCP vs autres approches
Approche
Avantages
Inconvénients
MCP
Standard ouvert, indépendant du modèle, écosystème en croissance
Connu depuis novembre 2024, encore en maturation
Function Calling
Intégré de base à OpenAI/Gemini, très éprouvé
Spécifique à un modèle, non portable
Code glue personnalisé
Contrôle total, aucune dépendance externe
Implémentation différente par modèle et par outil
ChatGPT Plugins
Première solution au problème
Limité à OpenAI, désormais déprécié
// Bon à savoir
Le MCP fonctionne aux côtés du function calling : certains clients traduisent automatiquement les définitions d'outils MCP en format natif de fonction pour le modèle. Les outils LangChain et Haystack peuvent être enveloppés en serveurs MCP, ce qui donne une compatibilité MCP aux anciennes intégrations.
Pour étudiants et ingénieurs
Idées de projets
NotebookLM + Filesystem MCP = IA qui lit tes PDFs de cours réels
GitHub MCP + Claude = revues de code où l'IA lit tout le dépôt
YouTube Transcript + Obsidian MCP = coller un lien YouTube → génération automatique de notes
Construire un « assistant de Recherche personnel » qui interroge ton vault Obsidian
Un serveur MCP pour le catalogue de cours de l'université = IA qui planifie ton semestre
Serveur MCP pour un mod Minecraft : laisser Claude lire les fichiers du mod et générer du code Fabric
Démarrage facile
Docker Desktop MCP Toolkit : la façon la plus simple de commencer
VS Code AI Toolkit : support d'inférence locale (ONNX/CPU) + MCP intégré
Développement d'IA agentique entièrement hors ligne possible
Plateforme CTF MCP : l'IA aide au bug bounty en reconnaissance, avec accès ciblé
Exposer des vues SQL personnalisées comme ressources MCP pour restreindre l'accès aux données
Des centaines de serveurs communautaires disponibles sur GitHub et MCPMarket
Sécurité & meilleures pratiques
À faire
Appliquer le principe du moindre privilège : seulement les permissions réellement nécessaires
Utiliser OAuth ou clés API pour les serveurs MCP distants
Journaliser tous les appels d'outils pour l'auditabilité
Exiger une confirmation explicite de l'utilisateur pour toute action destructive
Exécuter les serveurs en Docker pour l'isolation
Valider les schémas côté serveur (ne jamais faire confiance aux entrées non validées)
Traiter les serveurs MCP comme des microservices : frontières claires, déploiement indépendant
À éviter
Installer des serveurs MCP provenant de sources non fiables
Exposer des serveurs avec droits d'écriture sans prompts de confirmation
Passer à côté des journaux — tu dois savoir ce que ton agent a fait et quand
Ignorer les risques d'injection de prompt via des pages web malveillantes
Contourner la validation de schéma sous prétexte que JSON est structuré
Activer l'écriture par défaut — privilégier d'abord le mode read‑only
Ignorer les demandes de permissions des serveurs MCP sans les examiner
→ L'image d'ensemble
Le MCP est le socle du paradigme IA agentique : une IA qui agit, pas seulement qui répond.
En 2026, le MCP est déjà utilisé dans des pipelines CI/CD en production : agents IA qui déclenchent des builds, exécutent des tests et ouvrent des PR de manière autonome.
Google Cloud prend officiellement en charge le MCP comme standard pour les intégrations d'agents Gemini.
L'évolution suivante est le MCP multi‑agent : des réseaux d'agents IA, chacun avec ses propres serveurs MCP, coordonnés via des interfaces d'outils partagées.
50 faits complémentaires sur le MCP
Cœur du protocole
MCP publié en open source complet par Anthropic, novembre 2024
Construit sur JSON‑RPC 2.0 comme format de message
Adopté en quelques mois par Google, Microsoft et de grands éditeurs d'IDE
Un serveur peut exposer plusieurs outils, ressources et invites simultanément
Agnostique au langage : Python, TypeScript, Go, Java, etc.
La bibliothèque FastMCP permet de créer des serveurs avec @mcp.tool()
Sépare quoi faire (LLM) de comment le faire (serveur)
Supporte le streaming via SSE : les outils peuvent envoyer des résultats partiels en temps réel
La sampling permet aux serveurs de demander des complétions au LLM via le client, créant des boucles agentiques sans clé API côté serveur
Écosystème & avenir
Versionnage du protocole : client et serveur négocient une version compatible au handshake
Des centaines de serveurs communautaires disponibles sur GitHub et MCPMarket
Google Cloud prend officiellement en charge le MCP pour les intégrations Gemini
Déjà utilisé en production dans des pipelines CI/CD (agents IA qui déclenchent builds, tests, PR)
Le MCP multi‑agent est l'étape suivante : réseaux coordonnés d'agents IA
Le blog sécurité de Red Hat documente les surfaces d'attaque (empoisonnement d'outils, exfiltration de données)
Les serveurs MCP se conçoivent comme microservices : un seul but, frontières claires
Les serveurs locaux sont généralement plus sûrs que les serveurs distants (pas d'exposition réseau)
MCPMarket.com propose un répertoire de serveurs communautaires