Token导航 LogoToken导航TokenDH.com
Restaurante MCP logo
数据服务未说明官方级别未说明来源级核验

Restaurante MCP

MCP Server

基于微服务架构的餐厅管理系统,使用Java Spring Boot后端和MySQL数据库,通过Docker Compose进行容器编排。

工具数

5

提示词数

0

GitHub Stars

0

资源数

0
微服务API集成JavaClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

cfernandom

提供方

cfernandom

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Restaurante MCP

Proyecto de gestión de un restaurante implementado con arquitectura de microservicios básica, utilizando Java con Spring Boot para el backend y MySQL como base de datos, todo orquestado con Docker Compose.

Tecnologías del Stack

ComponenteTecnologíaDescripción
BackendJava 17, Spring Boot 3.xImplementación de la API REST.
Base de DatosMySQL 9Almacenamiento persistente del esquema relacional.
OrquestaciónDocker ComposeEntorno de desarrollo aislado y reproducible.
Lenguaje de EstructuraSQLScript de inicialización del esquema de la base de datos.

Dependencias del Backend

El backend utiliza las siguientes dependencias principales organizadas por categoría:

Framework Principal

DependenciaVersiónDescripción
Spring Boot Starter Web3.5.6Framework web que incluye Tomcat, Spring MVC y validación
Spring Boot Starter Data JPA3.5.6Acceso a datos con JPA/Hibernate y Spring Data

Base de Datos

DependenciaVersiónDescripción
MySQL Connector Java8.0.33Driver JDBC para conectividad con MySQL

MCP (Model Context Protocol)

DependenciaVersiónDescripción
Spring AI MCP Server Starter1.0.3Implementación del servidor MCP para Spring Boot

Testing

DependenciaVersiónDescripción
Spring Boot Starter Test3.5.6Suite de testing que incluye JUnit, Mockito, AssertJ
JUnit BOM5.10.0Bill of Materials para gestión de versiones JUnit
JUnit Jupiter5.10.0Motor de testing moderno para JUnit 5
JUnit Platform Launcher-Launcher para ejecutar tests en runtime

Herramientas de Build

HerramientaVersiónDescripción
GradleWrapperSistema de build y gestión de dependencias
Java Toolchain17Versión de Java utilizada para compilación y ejecución

Estructura del Proyecto

El proyecto está organizado en módulos que separan las responsabilidades:

  • backend/: Contiene el código fuente de la aplicación Spring Boot.
  • db/: Contiene los scripts SQL para la inicialización de la base de datos (e.g., init.sql).
  • infra/: Contiene los archivos de configuración de infraestructura (.env.dev.example, compose.dev.yml).

Arquitectura del sistema

El siguiente diagrama ilustra la arquitectura de la solución, mostrando cómo Docker Compose orquesta los servicios clave y el flujo de datos.

El Usuario/Host accede a la API REST del Backend a través del puerto expuesto (BACKEND_PORT). Una vez dentro de la orquestación, el Backend se conecta al Servicio DB mediante el protocolo JDBC, completando el ciclo de petición y respuesta.

graph TD
    A[Usuario/Host]
    
    subgraph DOCKER_COMPOSE[Orquestación Docker Compose]
        style DOCKER_COMPOSE stroke:#00BCD4,stroke-width:2px
        C("**servicio backend** 
 Spring Boot 
 puerto 8080")
        D("**servicio db** 
 MySQL 9 
 puerto 3306")
        
        C -->|"[JDBC]"| D
    end

    A -->|"[JSON/HTTP] 
  puerto BACKEND_PORT "| C

Variables de entorno

El archivo infra/.env.dev.example define las siguientes variables utilizadas por Docker Compose y la aplicación backend. Deben ser copiadas y configuradas en infra/.env.dev antes de la ejecución.

VariableServicioDescripciónValor Ejemplo
MYSQL_ROOT_PASSWORDDBContraseña del usuario root de MySQL.root
MYSQL_DATABASEDBNombre de la base de datos de la aplicación.restaurante
MYSQL_USERDB / BackendUsuario para la conexión del backend a la DB.restaurante_user
MYSQL_PASSWORDDB / BackendContraseña del usuario de conexión.restaurante_pass
MYSQL_PORTDBPuerto que se expone para acceder a MySQL desde el host.21911
BACKEND_PORTBackendPuerto que se expone para acceder al servicio Spring Boot.21921
SPRING_JPA_HIBERNATE_DDL_AUTOBackendEstrategia de gestión del esquema de la DB por Hibernate.update
SPRING_JPA_SHOW_SQLBackendMuestra las sentencias SQL generadas en la consola.true

Ejecutar el entorno de desarrollo

  1. Copiar y Configurar Variables de Entorno:

Copiar el archivo de ejemplo para crear la configuración local de desarrollo.

    cp infra/.env.dev.example infra/.env.dev

Editar el archivo infra/.env.dev para ajustar las variables de entorno, como puertos y credenciales de la base de datos, si es necesario.

  1. Levantar Servicios:

Para construir y levantar ambos servicios (db y backend) en modo *detached* (segundo plano), utilizar el siguiente comando:

    docker compose -f infra/compose.dev.yml --env-file infra/.env.dev up --build -d
  1. Verificar Servicios:

Para verificar que los servicios están corriendo correctamente, utilizar:

    docker compose -f infra/compose.dev.yml --env-file infra/.env.dev ps
  1. Acceder a la API REST:

La API REST del backend estará disponible en *http://localhost:*, donde ` es el puerto configurado en el archivo .env.dev`.

  1. Detener Servicios:

Para detener y eliminar los contenedores (manteniendo los volúmenes), utilizar:

    docker compose -f infra/compose.dev.yml --env-file infra/.env.dev down

Para detener y eliminar los contenedores, redes y volúmenes creados por Docker Compose, utilizar:

    docker compose -f infra/compose.dev.yml --env-file infra/.env.dev down -v

Base de datos

El servicio de base de datos se inicializa automáticamente en el primer arranque a partir del script db/init.sql.

Diagrama Entidad-Relación (ERD)

erDiagram

    PLATOS {
        BIGINT plato_id PK
        VARCHAR tipo
        VARCHAR nombre
        TEXT descripcion
    }

    MENUS {
        BIGINT menu_id PK
        TEXT descripcion
        DATE fecha
    }

    PLATOS_MENU {
        BIGINT menu_id PK, FK
        BIGINT plato_id PK, FK
        DECIMAL precio "DECIMAL(10,2)"
    }

    VENTAS {
        BIGINT venta_id PK
        DATE fecha
    }

    VENTAS_MENU {
        BIGINT menu_id PK, FK
        BIGINT venta_id PK, FK
        INT cantidad
    }

    %% Relaciones
    PLATOS ||--o{ PLATOS_MENU : "contiene"
    MENUS ||--o{ PLATOS_MENU : "incluye"

    MENUS ||--o{ VENTAS_MENU : "se vende en"
    VENTAS ||--o{ VENTAS_MENU : "registra"

Modo MCP con Claude Desktop

Este proyecto implementa un servidor MCP (Model Context Protocol) que permite a Claude Desktop interactuar directamente con la base de datos del restaurante a través de herramientas especializadas.

Herramientas MCP disponibles

HerramientaDescripciónParámetros
list_dishesLista todos los platos disponibles-
get_dish_by_idObtiene un plato específico por IDid: Long
create_dishCrea un nuevo platoname: String, description: String, type: String
update_dishActualiza un plato existenteid: Long, name: String, description: String, type: String
delete_dishElimina un plato por IDid: Long

Instalación de Claude Desktop en Arch Linux

Opción 1: Usando AUR

# Instalar claude-desktop-native (más estable)
yay -S claude-desktop-native

# O alternativamente
yay -S claude-desktop-bin

Compilación standalone

Para usar el servidor MCP, necesitas compilar un JAR standalone:

# Navegar al directorio del backend
cd backend

# Compilar el JAR standalone
./gradlew bootJar

# Verificar que se generó el archivo
ls -la build/libs/backend-1.0-SNAPSHOT.jar

Configuración claude_desktop_config.json

  1. Crear el directorio de configuración de Claude Desktop:
  mkdir -p ~/.config/Claude
  1. Crear el archivo de configuración:
  nano ~/.config/Claude/claude_desktop_config.json
  1. Contenido del archivo de configuración:

Remplaza /ruta/absoluta/a/tu/proyecto con la ruta real del proyecto en tu sistema y ajusta las variables de entorno según tu configuración.

{
  "mcpServers": {
    "restaurant-mcp": {
      "command": "java",
      "args": [
        "-Dspring.profiles.active=mcp",
        "-jar",
        "/ruta/absoluta/a/tu/proyecto/backend/build/libs/backend-1.0-SNAPSHOT.jar"
      ],
      "env": {
        "SPRING_DATASOURCE_URL": "jdbc:mysql://localhost:21911/restaurante",
        "SPRING_DATASOURCE_USERNAME": "restaurante_user",
        "SPRING_DATASOURCE_PASSWORD": "restaurante_pass",
        "SPRING_JPA_HIBERNATE_DDL_AUTO": "update",
        "SPRING_JPA_SHOW_SQL": "false"
      }
    }
  }
}
  1. Ajustar la ruta del JAR en la configuración JSON para que coincida con la ubicación real de tu proyecto.
  1. Reiniciar Claude Desktop para cargar la nueva configuración.

Uso con Claude Desktop

Una vez configurado, puedes usar comandos naturales en Claude Desktop como:

  • *"Lista todos los platos del restaurante"*
  • *"Crea un nuevo plato llamado 'Paella Valenciana' de tipo 'Plato Principal' con descripción 'Arroz con mariscos y pollo'"*
  • *"Busca el plato con ID 2"*
  • *"Actualiza el plato con ID 3 cambiando su nombre a 'Tiramisú Clásico'"*
  • *"Elimina el plato con ID 1"*

Profiles de Spring Boot

El proyecto utiliza profiles para separar las configuraciones:

  • Profile por defecto (application.properties): Modo servlet web con logs normales
  • Profile mcp (application-mcp.properties): Modo STDIO sin servidor web, logs silenciados para comunicación JSON limpia con Claude Desktop

Solución de problemas

  1. Verificar que MySQL esté corriendo:
   docker ps | grep restaurante_db_dev
  1. Verificar logs de Claude Desktop:
   claude-desktop-native

目录标签

目录标签

微服务API集成JavaClaude本地部署SpringBootMySQLDockerComposeRESTAPI

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

5

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP