# MCP Server - 독립 실행 가이드
## 변경 사항
이제 MCP 서버는 **완전히 독립적인 HTTP 서버**로 실행됩니다.
### 이전 방식 (Stdio)
- agentic_ai가 필요할 때마다 subprocess로 MCP 서버 실행
- stdin/stdout으로 통신
- 하드코딩된 경로
### 현재 방식 (SSE - Server-Sent Events)
- MCP 서버가 독립적인 HTTP 서버로 실행
- agentic_ai는 HTTP 클라이언트로 연결
- config.json으로 서버 URL 설정
## 실행 방법
### 1. MCP 서버 시작 (먼저 실행)
```bash
cd /Users/swkeum/work/mcp_server
./start_mcp_server.sh
```
서버는 `http://localhost:3000/sse`에서 실행됩니다.
### 2. Agentic AI 서비스 시작
```bash
cd /Users/swkeum/work/agentic_ai
./start_server.sh
```
## 설정 파일
`agentic_ai/src/config/mcp_config.json`:
```json
{
"mcp_server": {
"url": "http://localhost:3000/sse",
"type": "sse",
"enabled": true,
"timeout": 30
},
"fallback": {
"use_dummy_data": true
}
}
```
### 설정 옵션
- **url**: MCP 서버 주소
- **type**: 전송 방식 (현재 "sse")
- **enabled**: MCP 사용 여부
- **timeout**: 연결 타임아웃 (초)
## 서버 변경 방법
다른 서버로 변경하려면 `mcp_config.json`만 수정하면 됩니다:
```json
{
"mcp_server": {
"url": "http://production-server:3000/sse",
...
}
}
```
## 장점
1. **완전한 독립성**: 서버가 별도 프로세스로 실행
2. **설정 기반**: 하드코딩 없이 config.json으로 관리
3. **HTTP 프로토콜**: 표준 HTTP로 통신
4. **원격 서버 지원**: 다른 머신의 MCP 서버도 연결 가능
5. **재사용성**: 여러 클라이언트가 하나의 서버 공유 가능
## 의존성
MCP 서버에 `sse-starlette` 추가 필요:
```bash
cd mcp_server
source .venv/bin/activate
pip install sse-starlette
```
## 테스트
### MCP 서버 상태 확인
```bash
curl http://localhost:3000/sse
```
### Agentic AI에서 MCP 연결 테스트
```bash
curl http://localhost:8000/api/v1/mcp/capabilities
```
## 트러블슈팅
### MCP 서버 연결 실패
```
ConnectionError: MCP 서버에 연결할 수 없습니다
```
해결:
1. MCP 서버가 실행 중인지 확인: `ps aux | grep server_sse`
2. 포트 확인: `lsof -i :3000`
3. 서버 재시작: `cd mcp_server && ./start_mcp_server.sh`
### 설정 파일 오류
```
FileNotFoundError: MCP 설정 파일을 찾을 수 없습니다
```
해결:
- `agentic_ai/src/config/mcp_config.json` 파일 생성
## 기존 server.py
기존 stdio 방식 `server.py`는 그대로 유지되며, 새로운 `server_sse.py`가 추가되었습니다.