wookja-0/naver-search-mcp
If you are the rightful owner of naver-search-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This guide provides instructions for setting up a Naver Search MCP server and exposing it as an SSE endpoint on Kubernetes.
Naver Search MCP (K8s + SSE Proxy)
Author: Jung Wookjin
네이버 검색/DataLab API를 MCP 서버로 제공하고, Kubernetes에서 SSE(HTTP) 엔드포인트로 노출하는 가이드입니다.
백엔드는 transport="sse"로 /sse에 연결합니다.
0) Clone
git clone https://github.com/wookja-0/naver-search-mcp.git
cd naver-search-mcp
1) 환경 변수
# 컨테이너 레지스트리 (예: ghcr.io/org, harbor.example.com/team 등)
export REGISTRY="__YOUR_REGISTRY__/__YOUR_PROJECT__"
# 이미지 태그 (원하면 변경)
export IMAGE_BASE="$REGISTRY/mcp-server:v1.0"
export IMAGE_SSE="$REGISTRY/mcp-server:sse-proxy"
2) Docker 이미지 빌드 & 푸시
2-1. MCP 서버 베이스 이미지 (v1.0)
docker build -t "$IMAGE_BASE" . --network host
docker push "$IMAGE_BASE"
2-2. SSE 프록시 이미지 (stdio ↔ SSE 변환 포함)
Dockerfile.sse Base Image 부분에 실제 IMAGE_BASE 이미지로 변경
docker build -f Dockerfile.sse -t "$IMAGE_SSE" . --network host
docker push "$IMAGE_SSE"
Dockerfile.sse는 컨테이너에mcp-proxy를 설치하고docker-entrypoint.sh로 /sse, /status를 노출합니다.
3) Kubernetes 배포
아래 예시는 네임스페이스를
dmp-poc로 가정합니다. 환경에 맞게 변경하세요.
3-1. (선택) 로그 PVC
kubectl -n dmp-poc apply -f manifest/pvc.yaml
3-2. 서버용 Secret (Naver Developers 키)
kubectl -n dmp-poc create secret generic naver-api-keys --from-literal=NAVER_CLIENT_ID='<your-client-id>' --from-literal=NAVER_CLIENT_SECRET='<your-client-secret>'
3-3. Deployment / Service
kubectl -n dmp-poc apply -f manifest/deployment.yaml
kubectl -n dmp-poc apply -f manifest/service.yaml
# 배포 후 실제 이미지로 교체(컨테이너 이름: sse-proxy)
kubectl -n dmp-poc set image deploy/mcp-server sse-proxy="$IMAGE_SSE"
kubectl -n dmp-poc rollout status deploy/mcp-server
매니페스트의 리소스 이름이
mcp-server인지 확인하세요. (Deployment/Service 메타데이터 name)
4) 동작 확인
# 상태 확인
kubectl -n dmp-poc port-forward svc/mcp-server 8080:8080
curl http://127.0.0.1:8080/status # JSON 응답이면 OK
로그:
# 프록시 표준로그
kubectl -n dmp-poc logs deploy/mcp-server -f
# 앱 로그(PVC 사용 시)
# 예) NFS 경로에 app.log 생성/증가
5) 백엔드(클라이언트) 연결 예시
from langchain_mcp_adapters.client import MultiServerMCPClient
mcp_client = MultiServerMCPClient(
{
"naver-search-mcp": {
"transport": "sse",
"url": "http://mcp-server.dmp-poc.svc.cluster.local:8080/sse"
}
}
)
Smithery 전용 경로(
/@org/server/mcp?...)는 사용하지 않습니다.
서버 컨테이너에는NAVER_CLIENT_ID/SECRET(K8s Secret)이 주입되어 네이버 API를 호출합니다.
6) 트러블슈팅(짧게)
- /status 200 아님 →
kubectl logs로 프록시/앱 로그 확인 - 연결됐는데 결과 없음 →
transport="sse"& URL/sse확인 - 로그 파일 안 쌓임 → PVC 권한(fsGroup)·마운트 경로 점검
License: MIT