AI 기반 앱을 더욱 스마트하게 만들 준비가 되셨나요? 오늘은 Claude나 Cursor와 같은 AI 모델이 모델 컨텍스트 프로토콜(MCP)을 통해 데이터와 상호 작용할 수 있게 해주는 환상적인 도구인 SpringBoot MCP 서버에 대해 자세히 알아보겠습니다. 가벼운 Spring Boot 앱으로 구동되는 AI가 몇 가지 명령만으로 과정 정보를 가져오거나 특정 데이터를 검색한다고 상상해 보세요. 이 대화형 가이드에서는 SpringBoot MCP 서버를 설정하고 사용하는 방법을 단계별로 안내하며, 실제로 작동하는지 확인하는 테스트도 포함되어 있습니다. 코딩을 시작해 봅시다!
최대 생산성으로 개발팀이 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하시나요?
Apidog는 당신의 모든 요구사항을 충족하며, Postman을 훨씬 저렴한 가격으로 대체합니다!
SpringBoot MCP 서버란 무엇인가요?
SpringBoot MCP 서버는 Spring AI MCP 프레임워크를 사용하여 AI 모델을 위한 도구로 데이터를 노출하는 Spring Boot 애플리케이션입니다. 표준화된 MCP 도구를 통해 AI에 앱의 데이터(예: 과정 세부 정보)에 대한 직접적인 연결을 제공하는 것과 같습니다. 이 튜토리얼에서는 두 가지 주요 도구를 제공하는 서버에 중점을 둘 것입니다:
- 모든 게임 가져오기: 사용 가능한 모든 게임 목록을 검색합니다.
- 제목으로 게임 검색: 제목으로 특정 게임을 찾습니다.
이 설정은 외부 데이터를 AI 모델과 통합하거나 자체 MCP 서버를 구축하는 데 완벽합니다. 또한 Spring Boot로 구축되어 개발자 친화적이며 확장이 용이합니다. 기대되시나요? 설정해 봅시다!

SpringBoot MCP 서버 사용 방법
사전 요구 사항
시작하기 전에 다음을 준비하세요:
- Java 24: oracle.com에서 다운로드하세요.
- Maven 3.8 이상: maven.apache.org에서 설치하세요.
- IntelliJ IDEA: jetbrains.com에서 다운로드하세요 (또는 선호하는 IDE를 사용하세요).
- Claude Desktop 또는 Cursor: AI 클라이언트 테스트용 (anthropic.com & cursor.com).
- 기본 Spring Boot 지식: Spring Boot 기본 사항에 익숙하면 도움이 됩니다.
1단계: 새 Spring Boot 프로젝트 생성
Spring Initializr 방문:
- start.spring.io로 이동하세요.
- 프로젝트를 설정하세요:
- 프로젝트: Maven
- 언어: Java
- Spring Boot: 3.5.4 (2025년 7월 기준 최신 안정 버전)
- 패키징: Jar
- Java 버전: 24 (또는 설치된 버전)
- Spring AI MCP 서버 의존성을 추가하세요:

- 생성(Generate)을 클릭하고 프로젝트를 다운로드하세요.
IntelliJ IDEA에서 열기:
- 다운로드한 프로젝트의 압축을 풀고 IntelliJ IDEA에서 새 프로젝트로 여세요.
2단계: 프로젝트 구조 이해하기
SpringBoot MCP 서버는 다음과 같은 주요 구성 요소를 포함합니다:
- Game.java: 과정 데이터(예: 제목 및 URL)를 위한 레코드입니다.
- GameService.java: `@Tool` 어노테이션이 있는 MCP 도구를 포함합니다.
- TestMcpServerApplication.java: 도구를 등록하는 메인 앱 클래스입니다.
- application.properties: STDIO 전송을 위한 MCP 서버를 구성합니다.

다음은 `application.properties` 설정 예시입니다:
spring.application.name=test-mcp-server
spring.main.web-application-type=none
spring.ai.mcp.server.name=game-demo-mcp
spring.ai.mcp.server.version=0.0.1
spring.main.banner-mode=off
logging.pattern.console=
이것은 앱을 STDIO 전송을 사용하는 비웹 서버로 구성하며, MCP 통신에 완벽합니다.
3단계: 데이터 모델 정의하기
과정 데이터를 나타내는 간단한 `Game.java` 레코드를 생성하세요:
package com.example.testmcpserver;
public record Game(String title, String url){
}
이 불변 레코드는 제목과 URL 같은 과정 세부 정보를 담고 있어 AI 모델이 처리하기 쉽습니다.
4단계: MCP 도구 구현하기
`GameService.java`에서 `@Tool` 어노테이션을 사용하여 도구를 정의하세요. 다음은 예시입니다:
package com.example.testmcpserver;
import jakarta.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.ai.tool.annotation.Tool;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GameService {
private static final Logger log = LoggerFactory.getLogger(GameService.class);
private List<Game> games = new ArrayList<>();
@Tool(name = "get_games", description = "Get a list of games from the collection")
public List<Game> getGames() {
return games;
}
@Tool(name = "get_game", description = "Get a single game from from the collection by title")
public Game getGame(String title) {
return games.stream().filter(course -> course.title().equals(title)).findFirst().orElse(null);
}
@PostConstruct
public void init() {
games.addAll(List.of(
new Game("GTA 6", "https://www.rockstargames.com/VI"),
new Game("FC 26","https://www.ea.com/en/games/ea-sports-fc/fc-26"),
new Game("Call of Duty: Black Ops 7","https://www.callofduty.com/blackops7")
));
}
}
이 도구들을 통해 AI 모델은 모든 과정을 검색하거나 제목으로 특정 과정을 찾을 수 있습니다.
5단계: MCP 프레임워크에 도구 등록하기
`TestMcpServerApplication.java`에서 도구를 등록하세요:
package com.example.testmcpserver;
import org.springframework.ai.support.ToolCallbacks;
import org.springframework.ai.tool.ToolCallback;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.List;
@SpringBootApplication
public class TestMcpServerApplication {
public static void main(String[] args) {
SpringApplication.run(TestMcpServerApplication.class, args);
}
@Bean
public List<ToolCallback> danTools(GameService gameService) {
return List.of(ToolCallbacks.from(gameService));
}
}
`ToolCallbacks.from()` 메서드는 `GameService`에서 `@Tool` 어노테이션을 스캔하고 SpringBoot MCP 서버에 등록합니다.
6단계: SpringBoot MCP 서버 실행하기
빌드 및 실행:
- IntelliJ에서 터미널을 열고 다음을 실행하세요:
mvn spring-boot:run
- 서버는 웹 인터페이스 없이 STDIO 전송을 사용하는 MCP 서버로 시작됩니다.
도구 확인:
- 서버는 두 가지 도구를 등록합니다: `get_games` (모든 게임 나열) 및 `get_game` (제목으로 게임 찾기).
7단계: Cursor 또는 Claude Desktop에 연결하기
Claude Desktop에서 SpringBoot MCP 서버를 사용하려면:
프로젝트 컴파일:
- JAR 파일을 빌드하세요:
mvn clean package
- `target/test-mcp-server-0.0.1-SNAPSHOT.jar`에서 JAR 파일을 찾으세요.

A. Claude Desktop 구성하기:
- `claude_desktop_config.json`을 여세요 (macOS: `~/Library/Application Support/Claude`, Windows: `%APPDATA%\Claude`).
- 추가하세요:
{
"mcpServers": {
"game-demo-mcp": {
"command": "java",
"args": [
"-jar",
"path/to/test-mcp-server-0.0.1-SNAPSHOT.jar"
]
}
}
}
- `path/to/`를 실제 JAR 파일 경로로 바꾸세요 (예: `D:/Apidog_Projects/spring-boot-mcp-server/test-mcp-server/target/test-mcp-server-0.0.1-SNAPSHOT.jar`).

Claude Desktop 다시 시작:
- 설정을 적용하려면 Claude를 닫았다가 다시 여세요.
B. Cursor 구성하기:
- 설정(Settings)으로 이동한 다음, 커서 설정(Cursor Settings)으로 이동하세요.
- 도구 및 통합(Tools and Integrations)을 선택하세요.
- 새 MCP 서버(New MCP server)를 클릭하세요.

8단계: SpringBoot MCP 서버 테스트하기
Claude Desktop으로 서버를 테스트해 봅시다:
Claude Desktop 또는 Cursor를 열고 명령을 내리세요:
- MCP 클라이언트에서 다음을 입력하세요:
MCP 서버를 사용하여 사용 가능한 모든 게임을 가져와.
- Claude (또는 Cursor)는 다음과 같이 응답해야 합니다:
사용 가능한 게임:
- 제목: GTA 6, URL: https://www.rockstargames.com/VI
- 제목: FC 26, URL: https://www.ea.com/en/games/ea-sports-fc/fc-26

특정 게임 시도:
- 다음을 입력하세요:
MCP 서버를 사용하여 제목이 "FC 26"인 게임을 가져와.
- 예상 응답:
게임: FC 26, URL: https://www.ea.com/en/games/ea-sports-fc/fc-26
이것으로 SpringBoot MCP 서버가 작동함을 확인했습니다!
9단계: SpringBoot MCP 서버 확장하기
더 멋지게 만들고 싶으신가요? 몇 가지 아이디어가 있습니다:
- 더 많은 과정 추가: `GameService`의 `init()` 메서드를 업데이트하여 더 많은 `Game` 객체를 포함하세요.
- 새로운 도구: `@Tool` 어노테이션을 사용하여 검색 함수와 같은 메서드를 추가하세요:
@Tool(name = "search_games", description = "Search games containing a keyword")
public List<Game> searchGames(String keyword) {
return games.stream()
.filter(game -> game.title().toLowerCase().contains(keyword.toLowerCase()))
.collect(Collectors.toList());
}
- 데이터베이스 사용: 인메모리 `games` 목록을 데이터베이스 연결로 대체하세요.
- 검색 강화: 유사 일치(fuzzy matching) 또는 카테고리 필터를 추가하세요.
문제 해결 팁
- 서버가 시작되지 않나요? Java 24와 Maven이 설치되었는지 확인하고, `application.properties`의 설정이 올바른지 확인하세요.
- Claude가 연결되지 않나요? `claude_desktop_config.json`의 JAR 경로를 확인하고 Claude를 다시 시작하세요.
- 도구를 찾을 수 없나요? `@Tool` 어노테이션이 올바른지, `ToolCallbacks`가 등록되었는지 확인하세요.
- 출력이 없나요? `mvn spring-boot:run`을 실행하는 터미널에서 오류를 확인하세요.
SpringBoot MCP 서버를 사용하는 이유
SpringBoot MCP 서버는 Spring Boot의 단순함을 좋아하고 데이터를 AI와 통합하려는 개발자들에게 꿈과 같은 존재입니다. 가볍고, 안전한 통신을 위해 STDIO를 사용하며, Claude와 같은 AI 모델이 앱의 데이터에 실시간으로 접근할 수 있도록 합니다. 과정 플랫폼을 구축하든 다른 데이터 기반 앱을 구축하든, 이 서버는 AI 통합을 매우 쉽게 만듭니다.
Claude Desktop 및 Cursor를 사용한 테스트는 게임 데이터를 가져오는 것이 얼마나 쉬운지 보여주었습니다. 이를 복잡한 쿼리를 처리하거나 실제 데이터베이스에 연결하도록 확장한다고 상상해 보세요. 가능성은 무궁무진합니다!
결론
이것으로 끝입니다! 앱에 AI 기반 데이터 접근을 제공하기 위해 SpringBoot MCP 서버를 설정하고 사용하는 방법을 배웠습니다. Spring Boot 프로젝트 생성부터 Claude Desktop에 연결하고 과정 쿼리를 테스트하는 것까지, 이제 더 스마트한 AI 통합을 구축할 준비가 되었습니다. 새로운 도구를 추가하거나 데이터베이스를 연결하여 더 발전시켜 보세요.
최대 생산성으로 개발팀이 함께 작업할 수 있는 통합된 올인원 플랫폼을 원하시나요?
Apidog는 당신의 모든 요구사항을 충족하며, Postman을 훨씬 저렴한 가격으로 대체합니다!