Aller au contenu principal

Comment utiliser les serveurs MCP (l'URL SSE)

Les serveurs Model Context Protocol (MCP) sont une fonctionnalité puissante de Cursor qui permet d'améliorer les capacités d'IA grâce à des serveurs spécialisés. Ce guide vous expliquera comment comprendre et utiliser les serveurs MCP avec les URL Server-Sent Events (SSE) pour étendre les fonctionnalités de Cursor.

Introduction aux serveurs MCP et SSE

Les serveurs MCP (Model Context Protocol) agissent comme des middlewares spécialisés entre Cursor et divers modèles ou services d'IA. Ils fournissent du contexte, des outils et des capacités supplémentaires qui améliorent les fonctionnalités d'IA de Cursor. Server-Sent Events (SSE) est une technologie qui permet aux serveurs d'envoyer des mises à jour aux clients via des connexions HTTP, permettant une communication en temps réel.

Que sont les serveurs MCP ?

Les serveurs MCP sont des serveurs spécialisés qui implémentent le Model Context Protocol, permettant à Cursor de :

  • Accéder à des outils et ressources supplémentaires
  • Se connecter à des API et services externes
  • Traiter et transformer les données avant de les envoyer aux modèles d'IA
  • Étendre les capacités de Cursor avec des fonctionnalités personnalisées

Pourquoi utiliser les URL SSE ?

Les URL SSE (Server-Sent Events) fournissent un moyen standardisé d'établir des connexions entre Cursor et les serveurs MCP, offrant :

  • Des mises à jour en temps réel et des réponses en streaming
  • Une communication unidirectionnelle efficace du serveur vers le client
  • Une gestion automatique de la reconnexion
  • Une compatibilité avec l'infrastructure HTTP standard

Comprendre la structure des URL SSE

Une URL SSE pour les serveurs MCP suit généralement cette structure :

http(s)://<hostname>:<port>/sse?token=<auth_token>

Composants expliqués :

  • Protocole : Soit http:// ou https:// (sécurisé, recommandé)
  • Nom d'hôte : Adresse du serveur (ex : localhost, mcp.example.com)
  • Port : Le numéro de port sur lequel le serveur MCP écoute (ex : 3000)
  • Chemin : Généralement /sse pour le point de terminaison Server-Sent Events
  • Token : Jeton d'authentification pour un accès sécurisé

Étapes de configuration

La configuration et l'utilisation des serveurs MCP avec des URL SSE impliquent plusieurs étapes :

1. Installer les dépendances requises

Tout d'abord, assurez-vous d'avoir installé les dépendances nécessaires :

npm install @modelcontextprotocol/sdk

2. Créer la configuration du serveur MCP

Créez un fichier de configuration pour votre serveur MCP. Il peut être placé dans le répertoire de configuration de Cursor :

{
"mcpServers": {
"example-server": {
"command": "node",
"args": ["/path/to/your/mcp-server.js"],
"env": {
"API_KEY": "your-api-key-here",
"OTHER_ENV_VAR": "value"
},
"disabled": false,
"autoApprove": ["tool1", "tool2"]
}
}
}

3. Configurer la connexion SSE

Dans votre implémentation de serveur MCP, configurez le point de terminaison SSE :

import express from 'express';
import cors from 'cors';

const app = express();
app.use(cors());

app.get('/sse', (req, res) => {
// Valider le token
const token = req.query.token;
if (!validateToken(token)) {
return res.status(401).send('Non autorisé');
}

// Définir les en-têtes pour SSE
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
res.setHeader('Connection', 'keep-alive');

// Envoyer un message de connexion initial
res.write('event: connected\ndata: {"status": "connected"}\n\n');

// Gérer la déconnexion du client
req.on('close', () => {
console.log('Client déconnecté');
});

// Configurer des messages périodiques ou des réponses aux événements
// ...
});

app.listen(3000, () => {
console.log('Serveur MCP à l\'écoute sur le port 3000');
});

4. Configurer Cursor pour utiliser votre serveur MCP

Ajoutez la configuration de votre serveur MCP aux paramètres de Cursor :

  1. Ouvrez Cursor
  2. Allez dans Paramètres (⚙️)
  3. Recherchez "MCP"
  4. Ajoutez votre configuration de serveur
  5. Enregistrez les modifications

Exemples d'utilisation

Voici quelques exemples pratiques d'utilisation des serveurs MCP avec des URL SSE :

Exemple 1 : Implémentation d'outil de base

// Dans votre implémentation de serveur MCP
server.setRequestHandler(ListToolsRequestSchema, async () => ({
tools: [
{
name: 'weather_lookup',
description: 'Obtenir la météo actuelle pour un lieu',
inputSchema: {
type: 'object',
properties: {
location: {
type: 'string',
description: 'Nom de ville ou code postal'
}
},
required: ['location']
}
}
]
}));

server.setRequestHandler(CallToolRequestSchema, async (request) => {
if (request.params.name === 'weather_lookup') {
const location = request.params.arguments.location;
const weatherData = await fetchWeatherData(location);

return {
content: [
{
type: 'text',
text: JSON.stringify(weatherData, null, 2)
}
]
};
}
});

Exemple 2 : Implémentation de ressource

server.setRequestHandler(ListResourcesRequestSchema, async () => ({
resources: [
{
uri: 'docs://api/reference',
name: 'Documentation de référence API',
mimeType: 'text/markdown',
description: 'Référence API complète pour le projet'
}
]
}));

server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
if (request.params.uri === 'docs://api/reference') {
return {
contents: [
{
uri: request.params.uri,
mimeType: 'text/markdown',
text: await fs.readFile('path/to/api-docs.md', 'utf-8')
}
]
};
}
});

Résolution des problèmes courants

Connexion refusée

Problème : Cursor ne peut pas se connecter au serveur MCP.

Solutions :

  • Vérifiez que le serveur est en cours d'exécution
  • Vérifiez les paramètres du pare-feu
  • Assurez-vous que le port est correct et accessible
  • Validez que le nom d'hôte se résout correctement

Échecs d'authentification

Problème : Erreurs "Non autorisé" lors de la connexion.

Solutions :

  • Vérifiez que le token est correctement configuré
  • Vérifiez la logique de validation du token
  • Assurez-vous que les variables d'environnement sont correctement définies

Plantages du serveur

Problème : Le serveur MCP plante de façon inattendue.

Solutions :

  • Implémentez une gestion d'erreurs appropriée
  • Ajoutez des journaux pour identifier les problèmes
  • Vérifiez les fuites de mémoire
  • Validez les données d'entrée avant le traitement

Réponses lentes

Problème : Les réponses du serveur MCP sont lentes.

Solutions :

  • Optimisez le code du serveur
  • Implémentez la mise en cache lorsque c'est approprié
  • Envisagez d'augmenter les ressources
  • Vérifiez les opérations bloquantes

Meilleures pratiques

Sécurité

  • Utilisez toujours HTTPS pour les serveurs MCP en production
  • Implémentez une authentification et une autorisation appropriées
  • Validez toutes les entrées pour prévenir les attaques par injection
  • Limitez les fonctionnalités exposées à ce qui est strictement nécessaire

Performance

  • Implémentez la mise en cache pour les ressources fréquemment accédées
  • Utilisez des structures de données et des algorithmes efficaces
  • Envisagez des réponses en streaming pour les données volumineuses
  • Surveillez les performances du serveur et optimisez les goulots d'étranglement

Fiabilité

  • Implémentez une gestion d'erreurs appropriée
  • Ajoutez des journaux pour le débogage
  • Mettez en place des vérifications de santé
  • Implémentez des redémarrages automatiques pour les serveurs plantés

Flux de développement

  • Utilisez un environnement de développement local pour les tests
  • Implémentez le versionnement pour vos serveurs MCP
  • Documentez les capacités et les exigences de votre serveur
  • Créez des tests automatisés pour les fonctionnalités de votre serveur

Conclusion

Les serveurs MCP avec des URL SSE offrent un moyen puissant d'étendre les capacités de Cursor avec des fonctionnalités personnalisées et des services externes. En suivant les étapes de configuration et les meilleures pratiques décrites dans ce guide, vous pouvez créer des serveurs MCP robustes, sécurisés et efficaces qui améliorent votre flux de travail de développement.

Que vous vous connectiez à des API externes, que vous implémentiez des outils personnalisés ou que vous fournissiez un contexte supplémentaire aux modèles d'IA, les serveurs MCP offrent une approche flexible et standardisée pour étendre les fonctionnalités de Cursor.

Ressources supplémentaires