Files
2026-07-13 13:31:35 +08:00

121 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Implémentation Python du Model Context Protocol (MCP)
Ce dépôt contient une implémentation Python du Model Context Protocol (MCP), montrant comment créer à la fois une application serveur et une application cliente qui communiquent en utilisant la norme MCP.
## Vue d'ensemble
Limplémentation MCP se compose de deux composants principaux :
1. **Serveur MCP (`server.py`)** - Un serveur qui expose :
- **Outils** : Fonctions pouvant être appelées à distance
- **Ressources** : Données pouvant être récupérées
- **Prompts** : Modèles pour générer des invites pour les modèles de langage
2. **Client MCP (`client.py`)** - Une application cliente qui se connecte au serveur et utilise ses fonctionnalités
## Fonctionnalités
Cette implémentation illustre plusieurs fonctionnalités clés du MCP :
### Outils
- `completion` - Génère des complétions de texte à partir de modèles IA (simulé)
- `add` - Calculatrice simple qui additionne deux nombres
### Ressources
- `models://` - Renvoie des informations sur les modèles IA disponibles
- `greeting://{name}` - Renvoie un message personnalisé pour un nom donné
### Prompts
- `review_code` - Génère un prompt pour la revue de code
## Installation
Pour utiliser cette implémentation MCP, installez les paquets requis :
```powershell
pip install mcp-server mcp-client
```
## Lancement du Serveur et du Client
### Démarrer le Serveur
Lancez le serveur dans une fenêtre de terminal :
```powershell
python server.py
```
Le serveur peut aussi être lancé en mode développement via la CLI MCP :
```powershell
mcp dev server.py
```
Ou installé dans Claude Desktop (si disponible) :
```powershell
mcp install server.py
```
### Lancer le Client
Lancez le client dans une autre fenêtre de terminal :
```powershell
python client.py
```
Cela connectera au serveur et démontrera toutes les fonctionnalités disponibles.
### Utilisation du Client
Le client (`client.py`) illustre toutes les capacités du MCP :
```powershell
python client.py
```
Cela connectera au serveur et testera toutes les fonctionnalités, y compris les outils, ressources et prompts. La sortie affichera :
1. Résultat de loutil calculatrice (5 + 7 = 12)
2. Réponse de loutil completion à la question « What is the meaning of life? »
3. Liste des modèles IA disponibles
4. Message personnalisé pour « MCP Explorer »
5. Modèle de prompt pour la revue de code
## Détails de limplémentation
Le serveur est implémenté avec lAPI `FastMCP`, qui fournit des abstractions de haut niveau pour définir des services MCP. Voici un exemple simplifié de définition des outils :
```python
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers together
Args:
a: First number
b: Second number
Returns:
The sum of the two numbers
"""
logger.info(f"Adding {a} and {b}")
return a + b
```
Le client utilise la bibliothèque cliente MCP pour se connecter et appeler le serveur :
```python
async with stdio_client(server_params) as (reader, writer):
async with ClientSession(reader, writer) as session:
await session.initialize()
result = await session.call_tool("add", arguments={"a": 5, "b": 7})
```
## En savoir plus
Pour plus dinformations sur MCP, visitez : https://modelcontextprotocol.io/
**Avertissement** :
Ce document a été traduit à laide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforcions dassurer lexactitude, veuillez noter que les traductions automatiques peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue dorigine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle réalisée par un humain est recommandée. Nous déclinons toute responsabilité en cas de malentendus ou de mauvaises interprétations résultant de lutilisation de cette traduction.