wizardee/sse-mcp-server-demo
3.1
If you are the rightful owner of sse-mcp-server-demo and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
This is a demo application showcasing the use of Spring AI's Model Context Protocol (MCP) server with Server-Sent Events (SSE) for real-time communication with AI tools.
Tools
2
Resources
0
Prompts
0
SSE MCP Server Demo
Spring AI MCP (Model Context Protocol) 서버의 Server-Sent Events (SSE) 기반 데모 애플리케이션입니다.
개요
이 프로젝트는 Spring AI의 MCP 서버 기능을 활용하여 SSE를 통해 실시간으로 AI 툴과 통신할 수 있는 데모 애플리케이션입니다. 기본적인 수학 연산 툴(덧셈, 곱셈)을 제공하며, MCP 프로토콜을 통해 AI 모델과 상호작용할 수 있습니다.
기술 스택
- Java: 17
- Spring Boot: 3.5.5
- Spring AI: 1.0.1
- Build Tool: Maven
- Protocol: Model Context Protocol (MCP)
- Communication: Server-Sent Events (SSE)
- Security: HTTPS/SSL 지원
주요 기능
1. MCP 서버 기능
- MCP 프로토콜을 통한 AI 모델과의 통신
- SSE 기반 실시간 메시징
- 툴, 리소스, 프롬프트 변경 알림 지원
2. 수학 툴
- 덧셈: 두 정수의 합계 계산
- 곱셈: 두 정수의 곱셈 계산
3. SSE 엔드포인트
/api/v1/sse: SSE 연결 엔드포인트/api/v1/mcp/message: MCP 메시지 처리 엔드포인트
프로젝트 구조
src/
├── main/
│ ├── java/ai/mcp/server/remote/sse_demo/
│ │ ├── SseDemoApplication.java # 메인 애플리케이션 클래스
│ │ └── MathTools.java # 수학 연산 툴 구현
│ └── resources/
│ └── application.yml # 애플리케이션 설정
└── test/
└── java/ai/mcp/server/remote/sse_demo/
└── SseDemoApplicationTests.java
설정
서버 설정
- 포트: 48088
- 프로토콜: HTTP/HTTPS (프로파일로 선택 가능)
- SSL: 자체 서명 인증서 (개발용, HTTPS 프로파일 사용 시)
- 최대 업로드 크기: 2MB
MCP 설정
- 서버 이름: sse-mcp-server-demo
- 버전: 0.0.1
- SSE 활성화: true
- 변경 알림: 툴, 리소스, 프롬프트 변경 시 알림 제공
실행 방법
1. 사전 요구사항
- Java 17 이상
- Maven 3.6 이상
2. 애플리케이션 실행
HTTP 모드로 실행 (기본값)
# Maven을 사용한 실행
./mvnw spring-boot:run -Dspring-boot.run.profiles=http
# 또는 JAR 빌드 후 실행
./mvnw clean package
java -jar target/sse-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=http
HTTPS 모드로 실행
# Maven을 사용한 실행
./mvnw spring-boot:run -Dspring-boot.run.profiles=https
# 또는 JAR 빌드 후 실행
./mvnw clean package
java -jar target/sse-demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=https
환경 변수를 통한 SSL 설정
# SSL 활성화
export SSL_ENABLED=true
export SSL_KEYSTORE=classpath:keystore.p12
export SSL_KEYSTORE_PASSWORD=changeit
export SSL_KEYSTORE_TYPE=PKCS12
./mvnw spring-boot:run
3. 애플리케이션 확인
- HTTP 모드:
http://localhost:48088에서 접근 가능 - HTTPS 모드:
https://localhost:48088에서 접근 가능 (자체 서명 인증서)
API 사용법
SSE 연결
# HTTP 연결
curl -N http://localhost:48088/api/v1/sse
# HTTPS 연결 (자체 서명 인증서이므로 -k 옵션 필요)
curl -N -k https://localhost:48088/api/v1/sse
MCP 메시지 전송
MCP 프로토콜을 따르는 클라이언트를 통해 수학 툴 호출이 가능합니다.
개발 및 테스트
테스트 실행
./mvnw test
빌드
./mvnw clean package
로깅
개발 중 디버깅을 위해 다음 로그 레벨이 설정되어 있습니다:
io.modelcontextprotocol: TRACEorg.springframework.ai.mcp: TRACE
라이센스
이 프로젝트는 데모 목적으로 작성되었습니다.
기여
버그 리포트나 기능 요청은 이슈를 통해 제출해 주세요.