MCP 서버 구현이 복잡한가?
MySQL MCP 서버의 예시 코드를 보면, 구현이 매우 간단하고 직관적입니다.
구성 요소는 다음과 같습니다:
get_db_config(): DB 접속 설정list_resources(): DB 테이블 목록 조회read_resource(): 테이블 데이터 조회 (최대 100개 행, CSV 형식 반환)list_tools(): 사용 가능한 도구 정의 (여기서는 SQL 실행 도구 하나만 제공)call_tool(): 실제 도구 실행 (SQL 실행, 결과 반환)
서버 실행 방식은 표준화된 입출력으로 매우 간단합니다.
MCP 서버 직접 구축하기 with GIA Admin(Spring-AI)
MCP 서버를 직접 구축하는 과정입니다.
- 스프링 버전 업데이트 (
3.1.6→3.3.3) Spring-AI의존성 추가- 서비스 클래스에
@Tool,@ToolParam어노테이션을 사용해 MCP 도구 등록 - 컨트롤러 클래스에서 MCP 도구를 Bean으로 등록하고 실행 가능
질문
- 현재 진행 중인 배너 조회 ("현재 진행중인 배너 뭐 있어?")

- 배너 기간 연장 ("banner_250417182954 배너의 기간 2031년까지 늘려줘")

MCP 활용의 미래 방향성
MCP가 널리 보급되면, 모든 서비스 기업에서 MCP 서버 구축이 필수로 자리잡을 가능성이 큽니다.
곧 모든 회사(특히 서비스 회사)에서 MCP 서버를 구축할 것이다. (챗봇과의 결합 등)
이렇게 된다면 아래의 형태로 애플리케이션이 나올 수 있다 생각한다.
예시
- 은행 앱도 아래 flow 대신 대화창 하나로 송금이 가능할 것이다.


스프링 - AI
자바 진영에서는 서버 개발 시 스프링(Spring) 의 사용 비율이 매우 높습니다.
따라서 MCP 서버 구축 시 Spring-AI 프로젝트를 필수적으로 활용하게 될 것으로 예상됩니다.
실제로, 이번에 GIA MCP 서버를 구축하면서 Spring-AI의 MCP 내부 코드를 살펴보던 중,
몇 가지 메서드명이 어색한 부분과 잘못된 타입 반환 오류를 발견하여 PR을 제출했고,
결과적으로 merge되어 Spring-AI의 공식 컨트리뷰터(contributor) 가 되었습니다!
- 어색한 메소드 명 수정

- 반환 타입 수정 및 테스트코드

향후 사내 적용 시
사내 맞춤형 MCP 클라이언트 구축
- 현재 딥시크의 tool 버전에서 MCP 연동 가능하지만, 딥시크가 회사 정책에 의해 사용 불가능
- 곧 향후 대부분의 AI 모델이 MCP를 지원하게 될 것입니다.
그렇게 된다면, 모든 직무에서 MCP 서버 활용이 가능합니다.
기획자, QA
- 간단한 관리 작업은 별도의 어드민 화면 개발 없이 MCP로 처리 가능
- 데이터 수정, 조회가 별도 API 없이 바로 가능
유저 친화적 UI/UX
게임, 금융, 커머스 등 다양한 서비스에서 MCP를 활용하면 복잡했던 작업들을 간단한 대화형 인터페이스로 쉽게 처리할 수 있습니다.
특히, 유저의 UI/UX를 고려하여 진입장벽을 낮추는 방식으로 널리 활용될 것으로 보입니다.
예를 들어, 게임 앱에서 유저가 굳이 복잡한 화면을 확인하지 않아도,
"지금 내 챌린지 점수랑 순위 알려줘" 같은 질문만으로 원하는 정보를 빠르게 얻을 수 있습니다.
(기존 UI로도 제공되지만, 이런 것들이 MCP 기반의 대화형 UX로 대체될 수 있다.)
또한, 콘텐츠 참여에 어려움을 느끼는 유저들도 MCP를 통해 간편히 원하는 정보를 얻고 참여할 수 있습니다.
예시:
- "지금 내가 참여 가능한 콘텐츠 추천해줘"
- "아무 도시의 길드에 자동으로 가입시켜줘"
- "챌린지 매칭 상대 바로 찾아줘"
이처럼 MCP를 활용하면 유저 경험을 혁신적으로 개선하고 서비스 접근성을 크게 높일 수 있다고 생각합니다.
MCP 서버 검색 및 참조 링크
'개발자로서 살아남기' 카테고리의 다른 글
| 서버개발자로서 살아남기 - Rag & Vector search 정확도 높이기 (0) | 2025.12.10 |
|---|---|
| 서버개발자로서 살아남기- spring json 라이브러리 어노테이션 부수기 (1) | 2025.08.18 |
| 서버개발자로서 살아남기 - MCP 실무에서 활용하기 with 옵시디언, mysql, 파일시스템 (1) (9) | 2025.08.01 |
| 챌린지 배틀 회고 근데 이제 OOP와 도메인 주도 설계를 곁들인 (0) | 2025.08.01 |
| 개발자로서 살아남기 - 루아스크립트를 실무에서 사용한 이유 (0) | 2025.08.01 |