Salut les passionnés de Java ! Souhaitez-vous dynamiser vos projets d'IA avec un serveur Java MCP personnalisé ? Le Protocole de Contexte de Modèle (MCP) permet aux modèles d'IA comme Claude ou Cursor d'accéder facilement à vos données, et avec le SDK Java, vous pouvez construire un serveur léger pour y parvenir. Dans ce tutoriel, nous allons créer un serveur Java MCP pour partager des données de présentation avec des assistants IA. Nous le rendrons amusant, conversationnel et adapté aux débutants, en vous guidant à travers la configuration, les tests et l'extension de votre serveur. Plongeons-y !
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos exigences et remplace Postman à un prix beaucoup plus abordable !
Qu'est-ce qu'un serveur Java MCP ?
Un serveur Java MCP est une application Java élégante qui utilise le Protocole de Contexte de Modèle (MCP) pour exposer des données aux modèles d'IA. C'est comme donner à votre IA un accès VIP aux informations de votre application — le nôtre partagera des données de jeu, mais vous pouvez le personnaliser pour n'importe quoi. Le serveur utilise le SDK Java MCP pour créer des outils que les assistants IA peuvent appeler, comme récupérer une liste de jeux ou en rechercher un par titre. C'est parfait pour intégrer vos données avec des clients IA, et c'est super facile à configurer avec Spring Boot et Maven.

Guide étape par étape pour créer un serveur Java MCP
Prérequis
Avant de commencer, assurez-vous d'avoir :
- Java 24 : Téléchargez depuis oracle.com.
- Maven 3.8+ : Installez depuis maven.apache.org.
- IntelliJ IDEA : Obtenez-le depuis jetbrains.com (ou votre IDE préféré).
- Node.js : Pour les tests avec MCP Inspector (nodejs.org).
- Claude Desktop ou Cursor : Facultatif, pour l'intégration de l'IA (anthropic.com ou cursor.sh).
Étape 1 : Créer ou cloner le projet
Vous pouvez soit cloner un dépôt existant, soit créer un projet à partir de zéro.
Option 1 : Cloner le dépôt (recommandé)
1. Dans un nouveau terminal, exécutez :
git clone https://github.com/danvega/javaone-mcp.git
cd javaone-mcp
2. Compiler le projet :
- Utilisez Maven pour créer un JAR exécutable :
mvn clean package
- Trouvez le JAR dans
target/javaone-mcp-0.0.2.jar
.

Option 2 : Créer à partir de zéro
1. Ouvrez IntelliJ IDEA :
- Sélectionnez Nouveau projet.
- Choisissez Maven comme système de build.
- Définissez le nom du projet (par exemple,
java-mcp-server
) et cliquez sur Créer.

2. Ajouter les dépendances :
- Ouvrez
pom.xml
et ajoutez :
<dependencies>
<!-- MCP SDK -->
<dependency>
<groupId>io.modelcontextprotocol.sdk</groupId>
<artifactId>mcp</artifactId>
<version>0.9.0</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.16</version>
</dependency>
</dependencies>
Étape 2 : Comprendre la structure du projet
Le serveur Java MCP que nous venons de cloner inclut :
- Application.java : Le point d'entrée principal qui démarre le serveur MCP.
- Presentation.java : Un modèle de données pour les données de jeu (nous le personnaliserons pour les jeux).
- PresentationTools.java : Définit les outils MCP pour accéder aux données de jeu.
- Configuration : Utilise le transport STDIO pour la communication IA.

Étape 3 : Définir le modèle de données
Créez Presentation.java
pour représenter les données de jeu :
public record Presentation(String title, String url) { }
Cet enregistrement contient les détails du jeu comme le titre (par exemple, « GTA 6 ») et l'URL.
Étape 4 : Implémenter les outils MCP
Dans PresentationTools.java
, définissez les outils à l'aide du SDK MCP :
import io.modelcontextprotocol.sdk.McpSchema;
import java.util.ArrayList;
import java.util.List;
public class PresentationTools {
private final List<Presentation> presentations = new ArrayList<>();
public PresentationTools() {
presentations.add(new Presentation("GTA 6", "https://example.com/gta6"));
presentations.add(new Presentation("FC 26", "https://example.com/fc26"));
presentations.add(new Presentation("Call of Duty: Black Ops 7", "https://example.com/codbo7"));
}
@McpSchema.Tool(name = "get_presentations", description = "Returns a list of all available games")
public List<Presentation> getPresentations() {
return presentations;
}
@McpSchema.Tool(name = "get_game", description = "Returns a specific game by title")
public Presentation getGame(String title) {
return presentations.stream()
.filter(p -> p.title().equalsIgnoreCase(title))
.findFirst()
.orElse(null);
}
}
Ces outils permettent aux modèles d'IA de récupérer tous les jeux ou un jeu spécifique par titre.
Étape 5 : Configurer et démarrer le serveur MCP
Dans Application.java
, configurez le serveur Java MCP :
import io.modelcontextprotocol.sdk.McpServer;
import io.modelcontextprotocol.sdk.McpSchema;
import io.modelcontextprotocol.sdk.McpSyncServer;
public class Application {
public static void main(String[] args) {
PresentationTools tools = new PresentationTools();
var syncToolSpecification = new McpServerFeatures.SyncToolSpecification(
new McpSchema.Tool("get_presentations", "Returns a list of all available games", null),
(exchange, arguments) -> tools.getPresentations()
);
McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
.serverInfo("javaone-mcp-server", "0.0.1")
.capabilities(McpSchema.ServerCapabilities.builder()
.tools(true)
.logging()
.build())
.tools(syncToolSpecification)
.build();
syncServer.start();
}
}
Ceci configure le serveur pour utiliser le transport STDIO et enregistre l'outil get_presentations
.
Étape 6 : Exécuter le serveur Java MCP
1. Compiler le projet :
- Exécutez :
mvn clean package

2. Démarrer le serveur :
- Exécutez le JAR :
java -jar target/javaone-mcp-0.0.2.jar
- Le serveur fonctionne avec le transport STDIO, prêt pour l'intégration de l'IA.
Étape 7 : Tester avec MCP Inspector
Utilisez MCP Inspector pour déboguer votre serveur Java MCP :
Installer Node.js : Téléchargez depuis nodejs.org si nécessaire.
Obtenir le chemin du JAR :
- Linux/macOS :
FULL_PATH=$(pwd)/target/javaone-mcp-0.0.2.jar
echo $FULL_PATH
- Windows PowerShell :
$FULL_PATH="$(Get-Location)\target\javaone-mcp-0.0.2.jar"
echo $FULL_PATH
Exécuter MCP Inspector :
- Utilisez :
npx @modelcontextprotocol/inspector java -jar $FULL_PATH
- Dans l'Inspecteur :
- Vérifiez la connexion dans le panneau Connexion.
- Allez à l'onglet Outils, sélectionnez
get_presentations
, et visualisez la réponse (par exemple, « GTA 6, FC 26, Call of Duty: Black Ops 7 »). - Surveillez les journaux dans le panneau Notifications.
Étape 8 : Intégrer avec Claude Desktop ou Cursor
Connectez votre serveur Java MCP à un client IA :
Obtenir le chemin du JAR : Utilisez la même commande que ci-dessus.
a. Configurer Claude Desktop :
- Ouvrez
claude_desktop_config.json
(macOS :~/Library/Application Support/Claude
, Windows :%APPDATA%\Claude
). - Ajoutez :
{
"mcpServers": {
"javaone-mcp": {
"command": "java",
"args": ["-jar", "FULL_PATH"]
}
}
}
- Remplacez
FULL_PATH
par le chemin de votre JAR.
b. Configurer Cursor :
- Allez dans Paramètres > Paramètres du curseur > Outils et intégrations > Nouveau serveur MCP.
- Ajoutez la même configuration et enregistrez.
Redémarrer le client : Fermez et rouvrez Claude ou Cursor.
Étape 9 : Tester le serveur Java MCP
Testez avec Claude Desktop ou Cursor :
Démarrer le serveur :
- Exécutez :
java -jar target/javaone-mcp-0.0.2.jar
Émettre une commande :
- Dans Claude ou Cursor, entrez :
En utilisant le serveur MCP, obtenez tous les jeux disponibles.
- Réponse attendue :
Les jeux disponibles sont GTA 6, FC 26, et Call of Duty: Black Ops 7.

Étape 10 : Étendre le serveur Java MCP
Rendez votre serveur encore plus performant :
1. Ajouter plus de présentations :
- Dans
PresentationTools.java
, ajoutez au constructeur :
presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));
2. Créer un outil de recherche :
- Ajoutez à
PresentationTools.java
:
@McpSchema.Tool(name = "search_presentations", description = "Search presentations by title")
public List<Presentation> searchPresentations(String query) {
return presentations.stream()
.filter(p -> p.title().toLowerCase().contains(query.toLowerCase()))
.collect(Collectors.toList());
}
- Enregistrez dans
Application.java
:
var searchToolSpec = new McpServerFeatures.SyncToolSpecification(
new McpSchema.Tool("search_presentations", "Search presentations by title", null),
(exchange, arguments) -> {
String query = arguments.get("query").asText();
return tools.searchPresentations(query);
}
);
McpSyncServer syncServer = McpServer.sync(new StdioTransportProvider())
.serverInfo("javaone-mcp-server", "0.0.1")
.capabilities(McpSchema.ServerCapabilities.builder().tools(true).logging().build())
.tools(syncToolSpecification, searchToolSpec)
.build();
J'ai personnalisé mon serveur MCP pour qu'il fonctionne avec des données de jeu. Et voici mes résultats :

Essayer une recherche :
- J'ai ajouté un outil
search_games
(voir ci-dessous), et j'ai essayé l'invite suivante :
Recherchez un jeu intitulé "FC".
- Réponse attendue :
Vous avez un jeu intitulé FC 26.

3. Fonctionnalités avancées :
- Ajoutez des abonnements aux ressources pour des mises à jour en temps réel.
- Implémentez des outils asynchrones pour des tâches complexes.
- Ajoutez l'authentification pour un accès sécurisé.
Conseils de dépannage
- Le serveur ne démarre pas ? Vérifiez que Java 24 et Maven sont installés, et vérifiez
pom.xml
pour les dépendances correctes. - Problèmes avec MCP Inspector ? Assurez-vous que Node.js est installé et que le chemin du JAR est correct.
- Le client ne se connecte pas ? Confirmez le chemin du JAR dans la configuration du client et redémarrez le client.
- Aucune donnée retournée ? Vérifiez
PresentationTools
pour les annotations d'outils correctes et l'initialisation des données.
Pourquoi utiliser le serveur Java MCP ?
Le serveur Java MCP est un moyen fantastique de connecter votre application Java aux modèles d'IA, leur permettant d'accéder à vos données en temps réel. Notre serveur à thème de jeu a montré à quel point il est facile de partager des données comme « GTA 6 » ou « FC 26 » avec Claude ou Cursor. Le SDK Java MCP simplifie la définition des outils, et le transport STDIO maintient les choses légères. Que vous développiez pour des jeux, des cours ou autre chose, ce serveur est votre passeport pour l'intégration de l'IA.
Conclusion
Vous êtes maintenant un pro du serveur Java MCP ! Vous avez construit un serveur à partir de zéro, l'avez testé avec des données de jeu et avez appris à l'étendre avec de nouveaux outils. Le SDK Java MCP facilite la connexion de votre application aux assistants IA, et notre test a montré qu'il est performant. Essayez d'ajouter plus de données ou d'outils pour rendre votre serveur encore plus puissant.
Vous voulez une plateforme intégrée et tout-en-un pour que votre équipe de développeurs travaille ensemble avec une productivité maximale ?
Apidog répond à toutes vos exigences et remplace Postman à un prix beaucoup plus abordable !