diff --git a/cs25-service/Dockerfile b/cs25-service/Dockerfile index f61197f1..b134928b 100644 --- a/cs25-service/Dockerfile +++ b/cs25-service/Dockerfile @@ -11,7 +11,12 @@ COPY cs25-entity cs25-entity/ COPY cs25-common cs25-common/ # 테스트 생략하여 빌드 안정화 -RUN ./gradlew :cs25-service:bootJar --stacktrace --no-daemon +# (빌드 시 MCP 비활성화 + gradlew 실행 권한 + 테스트 스킵) +ENV SPRING_AI_MCP_CLIENT_ENABLED=false \ + SPRING_AI_MCP_CLIENT_INITIALIZED=false +RUN chmod +x ./gradlew +RUN ./gradlew :cs25-service:bootJar --stacktrace --no-daemon -x test + FROM eclipse-temurin:17-jre-jammy # 메타 정보 diff --git a/cs25-service/src/main/java/com/example/cs25service/domain/ai/service/BraveSearchMcpService.java b/cs25-service/src/main/java/com/example/cs25service/domain/ai/service/BraveSearchMcpService.java index ae595d61..7a31cce3 100644 --- a/cs25-service/src/main/java/com/example/cs25service/domain/ai/service/BraveSearchMcpService.java +++ b/cs25-service/src/main/java/com/example/cs25service/domain/ai/service/BraveSearchMcpService.java @@ -35,7 +35,7 @@ public JsonNode search(String query, int count, int offset) { JsonNode content = objectMapper.valueToTree(result.content()); log.info("[Brave MCP Response Raw content]: {}", content.toPrettyString()); - + if (content != null && content.isArray()) { var root = objectMapper.createObjectNode(); root.set("results", content); @@ -59,4 +59,4 @@ private McpSyncClient resolveBraveClient() { throw new IllegalStateException("Brave MCP 서버에서 brave_web_search 툴을 찾을 수 없습니다."); } -} +} \ No newline at end of file diff --git a/cs25-service/src/main/resources/application.properties b/cs25-service/src/main/resources/application.properties index 0ad81543..b96ef567 100644 --- a/cs25-service/src/main/resources/application.properties +++ b/cs25-service/src/main/resources/application.properties @@ -65,14 +65,12 @@ spring.ai.chat.client.enabled=false # MCP spring.ai.mcp.client.enabled=true spring.ai.mcp.client.type=SYNC -spring.ai.mcp.client.request-timeout=45s +spring.ai.mcp.client.request-timeout=60s spring.ai.mcp.client.root-change-notification=false # STDIO Connect: Brave Search -spring.ai.mcp.client.stdio.connections.brave.command=server-brave-search +spring.ai.mcp.client.stdio.connections.brave.command=/usr/local/bin/server-brave-search spring.ai.mcp.client.stdio.connections.brave.args[0]=--stdio spring.ai.mcp.client.stdio.connections.brave.env.BRAVE_API_KEY=${BRAVE_API_KEY} -spring.ai.mcp.client.initialized=false -spring.autoconfigure.exclude=org.springframework.ai.model.tool.autoconfigure.ToolCallingAutoConfiguration #MAIL spring.mail.host=smtp.gmail.com spring.mail.port=587