Créer un Serveur MCP avec le SDK Java

Ashley Goolam

Ashley Goolam

4 August 2025

Créer un Serveur MCP avec le SDK Java

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 un excellent outil de test d'API qui génère de la belle documentation d'API ?

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 !
bouton

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.

connexion client-serveur mcp

Guide étape par étape pour créer un serveur Java MCP

Prérequis

Avant de commencer, assurez-vous d'avoir :

É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 :

mvn clean package
cloner le dépôt github

Option 2 : Créer à partir de zéro

1. Ouvrez IntelliJ IDEA :

créer un nouveau projet

2. Ajouter les dépendances :

<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 :

structure du projet

É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 :

mvn clean package
exécuter le serveur

2. Démarrer le serveur :

java -jar target/javaone-mcp-0.0.2.jar

É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 :

FULL_PATH=$(pwd)/target/javaone-mcp-0.0.2.jar
echo $FULL_PATH
$FULL_PATH="$(Get-Location)\target\javaone-mcp-0.0.2.jar"
echo $FULL_PATH

Exécuter MCP Inspector :

npx @modelcontextprotocol/inspector java -jar $FULL_PATH

É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 :

{
  "mcpServers": {
    "javaone-mcp": {
      "command": "java",
      "args": ["-jar", "FULL_PATH"]
    }
  }
}

b. Configurer Cursor :

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 :

java -jar target/javaone-mcp-0.0.2.jar

Émettre une commande :

En utilisant le serveur MCP, obtenez tous les jeux disponibles.
Les jeux disponibles sont GTA 6, FC 26, et Call of Duty: Black Ops 7.
jeux disponibles sur mon serveur mcp

Étape 10 : Étendre le serveur Java MCP

Rendez votre serveur encore plus performant :

1. Ajouter plus de présentations :

presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));

2. Créer un outil de recherche :

@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());
}
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 :

nouvel outil ajouté au serveur java mcp

Essayer une recherche :

Recherchez un jeu intitulé "FC".
Vous avez un jeu intitulé FC 26.
résultats du nouvel outil

3. Fonctionnalités avancées :

Conseils de dépannage

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 un excellent outil de test d'API qui génère de la belle documentation d'API ?

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 !
bouton

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API