Saltar al contenido principal

Apps MCP con Spring Boot

Abrir en ChatGPT

La integración de Spring Boot publica vistas de webforJ enrutadas a través de un servidor Spring AI MCP. Úsalo cuando una aplicación de Spring Boot necesite exponer una vista interactiva a un cliente MCP, la aplicación de IA que se conecta al servidor.

¿No estás usando Spring Boot?

Para una aplicación webforJ basada en servlets, utiliza la configuración estándar de webforJ para ensamblar y registrar el servidor MCP tú mismo.

Agregar las dependencias​

Importa el bill of materials de webforJ para que los módulos de webforJ usen una versión. Luego, añade el iniciador de Spring Boot, el módulo de MCP Apps y el iniciador de servidor Spring AI WebMVC MCP.

<properties>
<maven.compiler.release>21</maven.compiler.release>
<webforj.version>26.02</webforj.version>
<spring-ai.version>2.0.0</spring-ai.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-bom</artifactId>
<version>${webforj.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.webforj</groupId>
<artifactId>webforj-mcp-apps</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
<version>${spring-ai.version}</version>
</dependency>
</dependencies>

Configurar el punto final de MCP​

Configura Spring AI para usar HTTP Streamable en src/main/resources/application.properties:

spring.ai.mcp.server.protocol=STREAMABLE
webforj.origin=http://localhost:8080

Spring AI sirve el transporte en /mcp por defecto. webforJ deja esa ruta y las rutas de descubrimiento de OAuth 2.0 a Spring, en lugar de tratarlas como rutas de interfaz de usuario. El origen local permite que las URL de recursos y componentes generados apunten de regreso a la aplicación en ejecución. Consulta la configuración de la aplicación MCP cuando un proxy o túnel le dé a la aplicación un origen público diferente.

Agregar una aplicación enrutada​

Crea una vista enrutada normal y añade @McpApp. La descripción ayuda a la IA a determinar cuándo la herramienta es útil. El nombre explícito mantiene el nombre de la herramienta estable si la ruta cambia.

package com.example.inventory;

import com.webforj.component.Composite;
import com.webforj.component.html.elements.H1;
import com.webforj.component.layout.flexlayout.FlexLayout;
import com.webforj.mcp.annotation.McpApp;
import com.webforj.router.annotation.Route;

@Route("/inventory")
@McpApp(
name = "inventory",
description = "Muestra el inventario actual de un almacén.",
displayMode = McpAppDisplayMode.INLINE)
public class InventoryView extends Composite<FlexLayout> {

private final FlexLayout self = getBoundComponent();

public InventoryView() {
self.add(new H1("Inventario"));
}
}

La vista aún funciona en /inventory en un navegador. La auto-configuración de Spring publica una herramienta MCP inventory y un recurso de interfaz de usuario que abre esta ruta, e instala los filtros de servlet y la configuración de sesión necesarios para integrar webforJ.

Iniciar el servidor​

Inicia el servidor utilizando el flujo de trabajo normal de ejecución del proyecto. Con el puerto por defecto, el punto final de MCP es:

http://localhost:8080/mcp

Prueba la vista mínima publicada con un cliente local o remoto. Consulta abrir entradas para argumentos estructurados y configuración de la aplicación MCP para orígenes públicos y recursos externos.