PokeBOT MCP Server — Claude Code 개발 프롬프트

프로젝트 개요

목적: Ray-Ban Meta 스마트 글래스(Gen2 Headliner)와 Poke AI를 연동하는 MCP(Model Context Protocol) 서버. 사용자가 안경으로 사진을 찍거나 음성 명령을 내리면, Poke가 이 MCP 서버를 호출하여 Claude AI + 실시간 웹검색으로 처리 후 iMessage로 응답한다.

실제 사용 시나리오:

인프라:


기술 스택

Runtime:     Node.js 22 + TypeScript (strict mode)
MCP SDK:     @modelcontextprotocol/sdk (최신 버전)
AI:          @anthropic-ai/sdk (claude-sonnet-4-6 모델)
Search:      Brave Search API (무료 2,000회/월)
Web:         Express.js (SSE transport용)
Validation:  zod
Process:     dotenv
DevTools:    tsx (dev), eslint + prettier
Deploy:      Docker + docker-compose + nginx
CI/CD:       GitHub Actions

디렉토리 구조 (정확히 이 구조로 생성)

~/pokebot/
├── .github/
│   └── workflows/
│       ├── deploy.yml          # main 브랜치 push 시 Oracle 자동 배포
│       └── ci.yml              # PR 시 lint + build 검증
├── src/
│   ├── index.ts                # Express 서버 + MCP SSE 엔드포인트
│   ├── server.ts               # MCP Server 인스턴스 + 도구 등록
│   ├── tools/
│   │   ├── index.ts            # 모든 tool export
│   │   ├── search.ts           # 웹검색 (Brave API)
│   │   ├── vision.ts           # 이미지 분석 (Claude Vision)
│   │   ├── events.ts           # 행사/이벤트 검색
│   │   ├── translate.ts        # 번역 (Claude)
│   │   └── navigate.ts         # 길안내 정보
│   ├── utils/
│   │   ├── claude.ts           # Anthropic SDK 래퍼
│   │   ├── logger.ts           # 구조화된 로깅
│   │   └── errors.ts           # 커스텀 에러 클래스
│   └── types/
│       └── index.ts            # 공유 타입 정의
├── scripts/
│   ├── setup.sh                # Oracle 초기 환경 설정 스크립트
│   └── health-check.sh         # 헬스체크 + 알림 스크립트
├── nginx/
│   └── pokebot.conf            # nginx 리버스 프록시 설정 (SSL 포함)
├── .env.example                # 모든 환경변수 명세 (주석 포함)
├── .gitignore
├── .eslintrc.json
├── .prettierrc
├── docker-compose.yml
├── docker-compose.prod.yml     # 프로덕션용 (resource limits 포함)
├── Dockerfile
├── package.json
├── tsconfig.json
└── README.md