Gemini

Integrates with
Google Gemini API, YouTube

MCP Gemini API 서버

Cursor와 Claude를 위한 Google Gemini API 서버입니다. 텍스트 생성, 이미지 분석, 비디오 분석 등 Gemini의 다양한 기능을 제공합니다.

주요 기능

  • 텍스트 생성 (gemini-2.0-flash 모델 사용)
  • 이미지 생성 및 분석
  • YouTube 비디오 분석
  • 웹 검색

시작하기

필수 요구사항

  • Node.js 18.0.0 이상
  • npm 또는 yarn
  • Google API 키 (Gemini API 접근용)

설치

## 저장소 클론
git clone https://github.com/techkwon/mcp-gemini.git
cd mcp-gemini

## 의존성 설치
npm install

환경 설정

  1. config.ts 파일에 Google API 키 설정:
export default {
  googleApiKey: "your_api_key_here",
  // 기타 설정...
};

빌드 및 실행

## TypeScript 빌드
npm run build

## 서버 시작 (PM2 사용)
npm start

## 개발 모드로 실행
npm run dev

PM2 서버 관리

서버는 PM2를 통해 자동으로 관리됩니다. 다음 명령어로 서버를 관리할 수 있습니다:

## 서버 상태 확인
npm run status

## 서버 로그 확인
npm run logs

## 서버 중지
npm run stop

## 서버 재시작
npm run restart

## 시스템 재시작 시 자동 실행 설정
pm2 startup
pm2 save

Cursor/Claude 연동

MCP 설정

~/.cursor/mcp.json 파일에 다음 설정을 추가하세요:

{
  "github.com/techkwon/mcp-gemini": {
    "command": "npm",
    "args": ["start"],
    "cwd": "<프로젝트_경로>",
    "env": {
      "NODE_ENV": "production"
    },
    "disabled": false,
    "autoStart": true,
    "autoApprove": [
      "gem-generate",
      "gem-generate-image",
      "gem-analyze-video",
      "gem-search"
    ]
  }
}

API 엔드포인트

  • /gem-generate: 텍스트 생성
  • /gem-generate-image: 이미지 생성/분석
  • /gem-analyze-video: YouTube 비디오 분석
  • /gem-search: 웹 검색

주요 업데이트

최신 버전 (2024-03)

  • PM2를 통한 서버 자동화 구현
  • gemini-2.0-flash 모델로 통일
  • 자동 재시작 및 오류 복구 기능 추가
  • 환경 설정 개선

이전 버전

  • YouTube 비디오 분석 기능 추가
  • 이미지 생성/분석 기능 개선
  • 웹 검색 기능 추가

문제 해결

일반적인 문제

  1. 서버가 시작되지 않는 경우

    # PM2 로그 확인
    npm run logs
    
    # PM2 프로세스 상태 확인
    npm run status
    
  2. API 키 오류

    • config.ts 파일에서 API 키가 올바르게 설정되었는지 확인
    • Gemini API 할당량 및 권한 확인
  3. 메모리 사용량 문제

    • ecosystem.config.js에서 메모리 제한 설정 확인
    • PM2 모니터링으로 메모리 사용량 추적

기여하기

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

라이선스

이 프로젝트는 MIT 라이선스를 따릅니다. 자세한 내용은 LICENSE 파일을 참조하세요.

연락처

프로젝트 관리자: techkwon 이메일: techkwon@example.com 프로젝트 링크: https://github.com/techkwon/mcp-gemini

주요 의존성

  • @google/generative-ai: ^0.1.3 (Gemini API SDK)
  • @fastify/cors: ^8.5.0 (CORS 지원)
  • fastify: ^4.29.0 (웹 서버 프레임워크)
  • googleapis: ^148.0.0 (Google API 지원)
  • typescript: ^5.0.0
  • zod: ^3.24.2 (데이터 검증)
  • pino: ^8.21.0 (로깅)

Claude 데스크톱 앱 통합 가이드

설정 파일 위치

Claude 데스크톱 앱의 설정 파일은 다음 경로에 위치합니다:

  • Windows: %APPDATA%/Claude/config.json
  • macOS: ~/Library/Application Support/Claude/config.json

JSON 설정 예시

{
  "apis": [
    {
      "name": "MCP Gemini",
      "url": "http://localhost:8000",
      "methods": [
        {
          "name": "텍스트 생성",
          "method": "gem-generate",
          "template": {
            "jsonrpc": "2.0",
            "id": "{uuid}",
            "method": "gem-generate",
            "params": {
              "prompt": "{input}"
            }
          }
        },
        {
          "name": "이미지 생성",
          "method": "gem-generate-image",
          "template": {
            "jsonrpc": "2.0",
            "id": "{uuid}",
            "method": "gem-generate-image",
            "params": {
              "prompt": "{input}"
            }
          }
        },
        {
          "name": "비디오 분석",
          "method": "gem-analyze-video",
          "template": {
            "jsonrpc": "2.0",
            "id": "{uuid}",
            "method": "gem-analyze-video",
            "params": {
              "videoUrl": "{input}",
              "query": "이 영상의 주요 내용을 요약해주세요"
            }
          }
        },
        {
          "name": "웹 검색",
          "method": "gem-search",
          "template": {
            "jsonrpc": "2.0",
            "id": "{uuid}",
            "method": "gem-search",
            "params": {
              "query": "{input}"
            }
          }
        }
      ]
    }
  ]
}

변수 설명

  • {uuid}: 자동으로 생성되는 고유 요청 ID
  • {input}: Claude 채팅창에 입력한 텍스트

사용 방법

  1. Claude 데스크톱 앱의 설정 파일을 엽니다.
  2. 위의 JSON 설정을 기존 설정에 추가합니다.
  3. Claude 데스크톱 앱을 재시작합니다.
  4. 채팅창에서 다음과 같이 사용할 수 있습니다:
@MCP Gemini.텍스트 생성 한국의 전통 음식에 대해 설명해주세요
@MCP Gemini.이미지 생성 한옥마을의 아름다운 풍경
@MCP Gemini.비디오 분석 https://youtube.com/watch?v=VIDEO_ID
@MCP Gemini.웹 검색 최신 인공지능 기술 동향

응답 형식

모든 API 응답은 다음 형식을 따릅니다:

{
  "jsonrpc": "2.0",
  "id": "요청에서 보낸 ID",
  "result": {
    "content": "응답 내용"
  }
}

오류 응답

오류가 발생한 경우 다음 형식으로 응답합니다:

{
  "jsonrpc": "2.0",
  "id": "요청에서 보낸 ID",
  "error": {
    "code": 오류코드,
    "message": "오류 메시지",
    "data": {
      "details": "상세 오류 정보"
    }
  }
}

오류 처리

서버는 다음과 같은 상황에서 적절한 오류 응답을 반환합니다:

  • 400: 잘못된 요청 형식
  • 401: 인증 오류 (API 키 관련)
  • 500: 서버 내부 오류

보안 고려사항

  • API 키는 반드시 환경 변수로 관리하세요
  • 프로덕션 환경에서는 적절한 보안 설정을 추가하세요
  • 민감한 정보는 로그에 기록하지 않도록 주의하세요

문제 해결

포트 충돌

이미 8000번 포트가 사용 중인 경우:

## 기존 Node.js 프로세스 종료
pkill -f "node"

서버 안정성

서버가 예기치 않게 종료되는 경우:

  • PM2나 다른 프로세스 관리자 사용을 고려하세요
  • 로그를 확인하여 종료 원인을 파악하세요

개발 가이드

로깅

  • Pino 로거를 사용하여 구조화된 로깅을 구현했습니다
  • 개발 환경에서는 pino-pretty를 통해 가독성 있는 로그가 출력됩니다

타입 안정성

  • TypeScript와 Zod를 사용하여 런타임 타입 안정성을 보장합니다
  • API 요청/응답에 대한 스키마 검증이 구현되어 있습니다

CLINE MCP 마켓플레이스 등록 가이드

사전 준비사항

  1. GitHub 저장소가 공개되어 있어야 합니다
  2. README.md 파일에 명확한 설치 및 설정 방법이 포함되어 있어야 합니다
  3. (선택사항) llms-install.md 파일을 통해 AI 에이전트를 위한 추가 설치 가이드를 제공할 수 있습니다

등록 절차

  1. CLINE MCP 마켓플레이스 저장소에 새로운 이슈를 생성합니다

  2. 이슈에 다음 정보를 포함합니다:

    • GitHub 저장소 URL: https://github.com/techkwon/mcp-gemini
    • 로고 이미지: 400×400 크기의 PNG 파일
    • 추가 이유: 이 MCP 서버가 CLINE 사용자들에게 제공할 수 있는 가치 예시:
    ## MCP Gemini 서버 등록 요청
    
    ### GitHub 저장소
    https://github.com/techkwon/mcp-gemini
    
    ### 주요 기능
    - Gemini API를 활용한 텍스트 생성
    - 이미지 생성 및 편집 (gemini-2.0-flash-exp 모델 사용)
    - YouTube 비디오 콘텐츠 분석
    - 웹 검색 기능
    
    ### 사용자 이점
    - 최신 Gemini 모델을 MCP 프로토콜을 통해 쉽게 활용
    - 다양한 미디어 형식(텍스트, 이미지, 비디오) 처리 가능
    - 명확한 JSON-RPC 인터페이스로 쉬운 통합
    - 상세한 문서화와 예제 제공
    
  3. CLINE이 README.md만으로 서버를 성공적으로 설치할 수 있는지 테스트합니다

승인 절차

  1. CLINE 팀이 제출된 MCP 서버를 검토합니다
  2. 보안 및 안정성 검증을 진행합니다
  3. 승인되면 마켓플레이스에 등록되어 모든 CLINE 사용자가 접근할 수 있게 됩니다

설치 가이드 최적화

llms-install.md 파일을 생성하여 AI 에이전트를 위한 추가 설치 가이드를 제공할 수 있습니다:

## MCP Gemini 서버 설치 가이드 (AI 에이전트용)

### 환경 요구사항
- Node.js 18.0.0 이상
- npm 또는 yarn
- Google AI Studio API 키

### 설치 단계
1. 저장소 클론
2. 의존성 설치: `npm install`
3. 환경 변수 설정: GOOGLE_API_KEY 추가
4. 빌드: `npm run build`
5. 서버 실행: `npm run start`

### 설정 검증
- 8000번 포트 사용 가능 여부 확인
- API 키 유효성 검증
- CORS 설정 확인

### 문제 해결
- 포트 충돌 시 해결 방법
- API 키 오류 해결 방법
- 일반적인 설치 문제 해결 가이드