¡Hola, entusiastas de Java! ¿Te gustaría potenciar tus proyectos de IA con un **Servidor MCP de Java** personalizado? El Protocolo de Contexto del Modelo (MCP) permite que modelos de IA como Claude o Cursor accedan a tus datos con facilidad, y con el SDK de Java, puedes construir un servidor ligero para lograrlo. En este tutorial, crearemos un **Servidor MCP de Java** para compartir datos de presentación con asistentes de IA. Lo mantendremos divertido, conversacional y apto para principiantes, guiándote a través de la configuración, las pruebas y la extensión de tu servidor. ¡Vamos a sumergirnos!
¿Quieres una plataforma integrada y todo en uno para que tu equipo de desarrolladores trabaje con máxima productividad?
Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!
¿Qué es un Servidor MCP de Java?
Un **Servidor MCP de Java** es una elegante aplicación de Java que utiliza el Protocolo de Contexto del Modelo (MCP) para exponer datos a modelos de IA. Es como darle a tu IA un pase VIP a la información de tu aplicación; el nuestro compartirá datos de juegos, pero puedes personalizarlo para cualquier cosa. El servidor utiliza el SDK de Java de MCP para crear herramientas que los asistentes de IA pueden invocar, como obtener una lista de juegos o buscar uno por título. Es perfecto para integrar tus datos con clientes de IA, y es súper fácil de configurar con Spring Boot y Maven.

Guía Paso a Paso para Crear un Servidor MCP de Java
Requisitos Previos
Antes de empezar, asegúrate de tener:
- Java 24: Descargar desde oracle.com.
- Maven 3.8+: Instalar desde maven.apache.org.
- IntelliJ IDEA: Obtenerlo desde jetbrains.com (o tu IDE preferido).
- Node.js: Para pruebas con MCP Inspector (nodejs.org).
- Claude Desktop o Cursor: Opcional, para integración de IA (anthropic.com o cursor.sh).
Paso 1: Crear o Clonar el Proyecto
Puedes clonar un repositorio existente o crear un proyecto desde cero.
Opción 1: Clonar el Repositorio (Recomendado)
1. En una nueva terminal, ejecuta:
git clone https://github.com/danvega/javaone-mcp.git
cd javaone-mcp
2. Compila el Proyecto:
- Usa Maven para crear un JAR ejecutable:
mvn clean package
- Encuentra el JAR en
target/javaone-mcp-0.0.2.jar
.

Opción 2: Crear desde Cero
1. Abre IntelliJ IDEA:
- Selecciona Nuevo Proyecto.
- Elige Maven como sistema de construcción.
- Establece el nombre del proyecto (ej.,
java-mcp-server
) y haz clic en Crear.

2. Añade Dependencias:
- Abre
pom.xml
y añade:
<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>
Paso 2: Entender la Estructura del Proyecto
El **Servidor MCP de Java** que acabamos de clonar incluye:
- Application.java: El punto de entrada principal que inicia el servidor MCP.
- Presentation.java: Un modelo de datos para datos de juegos (lo personalizaremos para juegos).
- PresentationTools.java: Define herramientas MCP para acceder a datos de juegos.
- Configuración: Utiliza transporte STDIO para la comunicación con la IA.

Paso 3: Definir el Modelo de Datos
Crea Presentation.java
para representar datos de juegos:
public record Presentation(String title, String url) { }
Este registro contiene detalles del juego como el título (ej., “GTA 6”) y la URL.
Paso 4: Implementar Herramientas MCP
En PresentationTools.java
, define herramientas usando el SDK de 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);
}
}
Estas herramientas permiten que los modelos de IA obtengan todos los juegos o un juego específico por título.
Paso 5: Configurar e Iniciar el Servidor MCP
En Application.java
, configura el **Servidor MCP de Java**:
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();
}
}
Esto configura el servidor para usar el transporte STDIO y registra la herramienta get_presentations
.
Paso 6: Ejecutar el Servidor MCP de Java
1. Compila el Proyecto:
- Ejecuta:
mvn clean package

2. Inicia el Servidor:
- Ejecuta el JAR:
java -jar target/javaone-mcp-0.0.2.jar
- El servidor se ejecuta con transporte STDIO, listo para la integración con IA.
Paso 7: Probar con el Inspector MCP
Usa el Inspector MCP para depurar tu **Servidor MCP de Java**:
Instala Node.js: Descarga desde nodejs.org si es necesario.
Obtén la Ruta del 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
Ejecuta el Inspector MCP:
- Usa:
npx @modelcontextprotocol/inspector java -jar $FULL_PATH
- En el Inspector:
- Verifica la conexión en el panel de Conexión.
- Ve a la pestaña Herramientas, selecciona
get_presentations
y visualiza la respuesta (ej., “GTA 6, FC 26, Call of Duty: Black Ops 7”). - Monitoriza los registros en el panel de Notificaciones.
Paso 8: Integrar con Claude Desktop o Cursor
Conecta tu **Servidor MCP de Java** a un cliente de IA:
Obtén la Ruta del JAR: Usa el mismo comando que el anterior.
a. Configura Claude Desktop:
- Abre
claude_desktop_config.json
(macOS:~/Library/Application Support/Claude
, Windows:%APPDATA%\Claude
). - Añade:
{
"mcpServers": {
"javaone-mcp": {
"command": "java",
"args": ["-jar", "FULL_PATH"]
}
}
}
- Reemplaza
FULL_PATH
con la ruta de tu JAR.
b. Configura Cursor:
- Ve a Configuración > Configuración de Cursor > Herramientas e Integraciones > Nuevo Servidor MCP.
- Añade la misma configuración y guarda.
Reinicia el Cliente: Cierra y vuelve a abrir Claude o Cursor.
Paso 9: Probar el Servidor MCP de Java
Prueba con Claude Desktop o Cursor:
Inicia el Servidor:
- Ejecuta:
java -jar target/javaone-mcp-0.0.2.jar
Emite un Comando:
- En Claude o Cursor, introduce:
Usando el servidor MCP, obtén todos los juegos disponibles.
- Respuesta esperada:
Los juegos disponibles son GTA 6, FC 26 y Call of Duty: Black Ops 7.

Paso 10: Extender el Servidor MCP de Java
Haz tu servidor aún más genial:
1. Añade Más Presentaciones:
- En
PresentationTools.java
, añade al constructor:
presentations.add(new Presentation("Spring Boot 3.5 Deep Dive", "https://example.com/spring-boot", 2025));
2. Crea una Herramienta de Búsqueda:
- Añade a
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());
}
- Registra en
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();
Personalicé mi servidor MCP para que funcionara con datos de juegos. Y aquí están mis resultados:

Prueba una Búsqueda:
- Añadí una herramienta
search_games
(ver abajo) y probé el siguiente prompt:
Busca un juego titulado "FC".
- Respuesta esperada:
Tienes un juego titulado FC 26.

3. Características Avanzadas:
- Añade suscripciones de recursos para actualizaciones en tiempo real.
- Implementa herramientas asíncronas para tareas complejas.
- Añade autenticación para acceso seguro.
Consejos para la Resolución de Problemas
- ¿Servidor no se inicia? Verifica que Java 24 y Maven estén instalados, y revisa
pom.xml
para las dependencias correctas. - ¿Problemas con el Inspector MCP? Asegúrate de que Node.js esté instalado y la ruta del JAR sea correcta.
- ¿Cliente no se conecta? Confirma la ruta del JAR en la configuración del cliente y reinicia el cliente.
- ¿No se devuelven datos? Revisa
PresentationTools
para las anotaciones de herramientas correctas y la inicialización de datos.
¿Por Qué Usar el Servidor MCP de Java?
El **Servidor MCP de Java** es una forma fantástica de conectar tu aplicación Java a modelos de IA, permitiéndoles acceder a tus datos en tiempo real. Nuestro servidor temático de juegos demostró lo fácil que es compartir datos como “GTA 6” o “FC 26” con Claude o Cursor. El SDK de Java de MCP simplifica la definición de herramientas, y el transporte STDIO mantiene las cosas ligeras. Ya sea que estés construyendo para juegos, cursos o cualquier otra cosa, este servidor es tu boleto para la integración de IA.
Conclusión
¡Ahora eres un profesional del **Servidor MCP de Java**! Has construido un servidor desde cero, lo has probado con datos de juegos y has aprendido a extenderlo con nuevas herramientas. El SDK de Java de MCP facilita enormemente la conexión de tu aplicación a asistentes de IA, y nuestra prueba demostró que funciona. Intenta añadir más datos o herramientas para hacer tu servidor aún más potente.
¿Quieres una plataforma integrada y todo en uno para que tu equipo de desarrolladores trabaje con máxima productividad?
Apidog satisface todas tus demandas y reemplaza a Postman a un precio mucho más asequible!