Google-Drive-MCP-Server

pghoya2956/Google-Drive-MCP-Server

3.2

If you are the rightful owner of Google-Drive-MCP-Server 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.

The MCP Google Drive Server provides secure and scoped access to Google Drive files and Google Sheets within a specified folder range, enabling AI assistants to interact with Google Drive content.

Tools
  1. gdrive_search

    Search for Google Drive files.

  2. gdrive_read_file

    Read the contents of a file.

  3. gdrive_read_large_file

    Read large files in parts.

  4. gdrive_folder_structure

    Explore folder structure.

  5. gdrive_analyze_image

    Analyze images in Google Drive.

  6. gsheets_read

    Read data from Google Sheets.

  7. gsheets_update_cell

    Update a cell in Google Sheets.

MCP Google Drive μ„œλ²„

μ§€μ •λœ 폴더 λ²”μœ„ λ‚΄μ—μ„œ Google Drive 파일과 Google Sheets에 λŒ€ν•œ μ•ˆμ „ν•˜κ³  λ²”μœ„κ°€ μ§€μ •λœ μ•‘μ„ΈμŠ€λ₯Ό μ œκ³΅ν•˜λŠ” Model Context Protocol (MCP) μ„œλ²„μž…λ‹ˆλ‹€. 이 μ„œλ²„λ₯Ό 톡해 AI μ–΄μ‹œμŠ€ν„΄νŠΈκ°€ Google Drive μ½˜ν…μΈ μ™€ μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ“œλΌμ΄λΈŒ μ ‘κ·Ό λ²”μœ„

이 μ„œλ²„λŠ” λ‚΄ λ“œλΌμ΄λΈŒμ™€ 곡유 λ“œλΌμ΄λΈŒ λͺ¨λ‘ μ§€μ›ν•©λ‹ˆλ‹€. GDRIVE_ROOT_FOLDER_ID둜 μ§€μ •λœ 폴더와 κ·Έ ν•˜μœ„ ν΄λ”μ—λ§Œ μ ‘κ·Όν•©λ‹ˆλ‹€.

  • λ‚΄ λ“œλΌμ΄λΈŒ: νŠΉμ • 폴더 IDλ₯Ό μ„€μ •ν•˜λ©΄ ν•΄λ‹Ή 폴더 μ΄ν•˜λ§Œ μ ‘κ·Ό
  • 곡유 λ“œλΌμ΄λΈŒ: 곡유 λ“œλΌμ΄λΈŒ λ‚΄ 폴더 IDλ₯Ό μ„€μ •ν•˜λ©΄ ν•΄λ‹Ή λ²”μœ„λ§Œ μ ‘κ·Ό
  • API μ„€μ •: supportsAllDrives: true둜 λͺ¨λ“  λ“œλΌμ΄λΈŒ μœ ν˜• 지원

κΈ°λŠ₯

  • 파일 μž‘μ—…: Google Docs, Sheets, PDF 및 일반 파일 읽기
  • 검색 κΈ°λŠ₯: ν—ˆμš©λœ λ²”μœ„ λ‚΄μ—μ„œ 파일 검색
  • Sheets 톡합: Google Sheets μ…€ 읽기 및 μ—…λ°μ΄νŠΈ
  • PDF 지원: PDF νŒŒμΌμ—μ„œ ν…μŠ€νŠΈ μΆ”μΆœ 및 메타데이터 뢄석 (캐싱 지원)
  • λ³΄μ•ˆ: Google APIλ₯Ό μ‚¬μš©ν•œ OAuth2 인증
  • 였λ₯˜ 처리: μ§€μ›λ˜μ§€ μ•ŠλŠ” 파일 μœ ν˜•μ— λŒ€ν•œ μš°μ•„ν•œ 처리

μ‚¬μš© κ°€λŠ₯ν•œ 도ꡬ

파일 관리

  • gdrive_search: Google Drive 파일 검색 (query, pageToken, pageSize)
  • gdrive_read_file: 파일 λ‚΄μš© 읽기 (fileId)
  • gdrive_read_large_file: λŒ€μš©λŸ‰ 파일 읽기 (fileId, startLine, endLine)
  • gdrive_folder_structure: 폴더 ꡬ쑰 탐색 (folderId)
  • gdrive_analyze_image: 이미지 뢄석 (fileId, prompt)

μŠ€ν”„λ ˆλ“œμ‹œνŠΈ

  • gsheets_read: μ‹œνŠΈ 데이터 읽기 (spreadsheetId, ranges, sheetId)
  • gsheets_update_cell: μ…€ μ—…λ°μ΄νŠΈ (fileId, range, value)

지원 파일 μœ ν˜•

  • Google Docs β†’ Markdown
  • Google Sheets β†’ CSV
  • Google Slides β†’ ν…μŠ€νŠΈ
  • Google Drawings β†’ PNG
  • PDF 파일 β†’ ν…μŠ€νŠΈ μΆ”μΆœ (메타데이터 포함)
  • 일반 파일 (ν…μŠ€νŠΈ/λ°”μ΄λ„ˆλ¦¬)

μ„€μΉ˜

npm install @pghoya2956/google-drive-mcp-server

ꡬ성

ν™˜κ²½ λ³€μˆ˜

ν”„λ‘œμ νŠΈ λ£¨νŠΈμ— λ‹€μŒ λ³€μˆ˜λ₯Ό ν¬ν•¨ν•œ .env νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€:

CLIENT_ID=your-oauth-client-id
CLIENT_SECRET=your-oauth-client-secret
GDRIVE_CREDS_DIR=/path/to/credentials/directory
GDRIVE_ROOT_FOLDER_ID=your-root-folder-id

ν™˜κ²½ λ³€μˆ˜ μ—­ν• :

  • CLIENT_ID, CLIENT_SECRET: 토큰 κ°±μ‹  μ‹œ μ‚¬μš© (gcp-oauth.keys.json의 κ°’κ³Ό 동일)
  • GDRIVE_CREDS_DIR: 인증 νŒŒμΌλ“€μ΄ μ €μž₯λ˜λŠ” 디렉토리 경둜
  • GDRIVE_ROOT_FOLDER_ID: 접근을 μ œν•œν•  루트 폴더 ID

Google Cloud μ‹œμž‘ν•˜κΈ°

  1. μƒˆ Google Cloud ν”„λ‘œμ νŠΈ 생성

  2. ν•„μš”ν•œ API ν™œμ„±ν™”:

  3. OAuth λ™μ˜ ν™”λ©΄ ꡬ성

    • 쑰직 λ‚΄μ—μ„œ ν…ŒμŠ€νŠΈν•˜λ €λ©΄ "λ‚΄λΆ€"λ₯Ό 선택
    • λ‹€μŒ OAuth λ²”μœ„λ₯Ό μΆ”κ°€:
      • https://www.googleapis.com/auth/drive.readonly
      • https://www.googleapis.com/auth/spreadsheets
  4. OAuth ν΄λΌμ΄μ–ΈνŠΈ ID 생성

    • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μœ ν˜•: "λ°μŠ€ν¬ν†± μ•±"
    • ν΄λΌμ΄μ–ΈνŠΈμ˜ OAuth ν‚€ JSON 파일 λ‹€μš΄λ‘œλ“œ
  5. 자격 증λͺ… μ„€μ •:

    • λ‹€μš΄λ‘œλ“œν•œ ν‚€ 파일의 이름을 gcp-oauth.keys.json으둜 λ³€κ²½
    • GDRIVE_CREDS_DIR 디렉토리에 배치 (예: /Users/username/.config/gdrive-mcp-server)
    • 이 νŒŒμΌμ€ 졜초 인증 μ‹œμ—λ§Œ μ‚¬μš©λ˜λ©°, λΈŒλΌμš°μ € 인증 흐름을 μ‹œμž‘ν•©λ‹ˆλ‹€
  6. ν™˜κ²½ λ³€μˆ˜ μ„€μ •:

    • gcp-oauth.keys.jsonμ—μ„œ client_id와 client_secret 값을 확인
    • 이 값듀을 ν™˜κ²½ λ³€μˆ˜ CLIENT_ID, CLIENT_SECRET에 μ„€μ •
    • 토큰 μžλ™ 갱신에 ν•„μš”ν•©λ‹ˆλ‹€
  7. 루트 폴더 ID μ°ΎκΈ°:

    • 루트둜 μ‚¬μš©ν•  Google Drive 폴더 μ—΄κΈ°
    • 폴더 IDλŠ” URL에 μžˆμŠ΅λ‹ˆλ‹€: https://drive.google.com/drive/folders/[FOLDER_ID]

MCP ν΄λΌμ΄μ–ΈνŠΈ ꡬ성

Claude Desktop

claude_desktop_config.json에 μΆ”κ°€:

{
  "mcpServers": {
    "gdrive": {
      "command": "npx",
      "args": ["@pghoya2956/gdrive-mcp-server"],
      "env": {
        "CLIENT_ID": "your-oauth-client-id",
        "CLIENT_SECRET": "your-oauth-client-secret",
        "GDRIVE_CREDS_DIR": "/path/to/credentials/directory",
        "GDRIVE_ROOT_FOLDER_ID": "your-root-folder-id"
      }
    }
  }
}

인증 흐름

  1. 졜초 μ‹€ν–‰: λΈŒλΌμš°μ €κ°€ 열리며 Google 계정 인증
  2. 토큰 μ €μž₯: .gdrive-server-credentials.json에 μžλ™ μ €μž₯
  3. μžλ™ κ°±μ‹ : 토큰 만료 μ‹œ μžλ™μœΌλ‘œ κ°±μ‹ 

μ‚¬μš© μ˜ˆμ‹œ

ꡬ성이 μ™„λ£Œλ˜λ©΄ μžμ—°μ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ Google Drive와 μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

  • "ν”„λ‘œμ νŠΈ μ œμ•ˆμ„œκ°€ ν¬ν•¨λœ λ¬Έμ„œ 검색"
  • "뢄기별 λ³΄κ³ μ„œμ˜ λ‚΄μš© 읽기"
  • "μ˜ˆμ‚° μŠ€ν”„λ ˆλ“œμ‹œνŠΈμ˜ A1 셀을 5000으둜 μ—…λ°μ΄νŠΈ"
  • "λ‚΄ λ“œλΌμ΄λΈŒμ˜ λͺ¨λ“  μŠ€ν”„λ ˆλ“œμ‹œνŠΈ 보기"
  • "κ³„μ•½μ„œ PDF 파일 μ½μ–΄μ„œ 메타데이터 ν™•μΈν•˜κΈ°"
  • "μ—°κ°„ λ³΄κ³ μ„œ PDF의 λ‚΄μš©κ³Ό νŽ˜μ΄μ§€ 수 확인"

PDF 파일 지원

PDF 읽기 κΈ°λŠ₯

  • ν…μŠ€νŠΈ μΆ”μΆœ: PDF νŒŒμΌμ—μ„œ ν…μŠ€νŠΈ λ‚΄μš© μΆ”μΆœ
  • 메타데이터: νŽ˜μ΄μ§€ 수, 파일 크기, 제λͺ©, μž‘μ„±μž, 생성일 λ“± 정보 제곡
  • κ΅¬μ‘°ν™”λœ 응닡: JSON ν˜•μ‹μœΌλ‘œ ν…μŠ€νŠΈμ™€ 메타데이터λ₯Ό λΆ„λ¦¬ν•˜μ—¬ 제곡
  • ν…Œμ΄λΈ” μΆ”μΆœ: PDF λ‚΄ ν…Œμ΄λΈ” μžλ™ 감지 및 ꡬ쑰화 (Markdown/JSON ν˜•μ‹)
  • 캐싱 지원: LRU μΊμ‹œλ‘œ 반볡 μš”μ²­ μ‹œ μ„±λŠ₯ ν–₯상
    • μΊμ‹œ 크기: 100MB
    • μΊμ‹œ 유효 μ‹œκ°„: 30λΆ„
    • 파일 μˆ˜μ • μ‹œ μžλ™ κ°±μ‹ 

PDF μ œν•œμ‚¬ν•­

  • 파일 크기: μ΅œλŒ€ 20MBκΉŒμ§€ 지원
  • μ•”ν˜Έν™”λœ PDF: λΉ„λ°€λ²ˆν˜Έ 보호 PDFλŠ” μ§€μ›ν•˜μ§€ μ•ŠμŒ
  • μŠ€μΊ” λ¬Έμ„œ: μŠ€μΊ”λœ μ΄λ―Έμ§€λ‘œλ§Œ κ΅¬μ„±λœ PDFλŠ” ν…μŠ€νŠΈ μΆ”μΆœ λΆˆκ°€
  • OCR 미지원: μ΄λ―Έμ§€μ—μ„œ ν…μŠ€νŠΈ 인식(OCR) κΈ°λŠ₯ μ—†μŒ

PDF μ˜ˆμ‹œ 응닡

{
  "text": "PDF λ¬Έμ„œμ˜ ν…μŠ€νŠΈ λ‚΄μš©...",
  "metadata": {
    "pages": 15,
    "fileSize": 2097152,
    "title": "μ—°κ°„ λ³΄κ³ μ„œ 2024",
    "author": "John Doe",
    "createdAt": "2024-01-15T10:30:00Z"
  },
  "version": "PDF-1.4",
  "tables": [
    {
      "index": 1,
      "headers": ["ν•­λͺ©", "2023λ…„", "2024λ…„", "λ³€ν™”μœ¨"],
      "rows": [
        ["맀좜", "100μ–΅", "120μ–΅", "+20%"],
        ["μ˜μ—…μ΄μ΅", "20μ–΅", "25μ–΅", "+25%"]
      ],
      "markdown": "| ν•­λͺ© | 2023λ…„ | 2024λ…„ | λ³€ν™”μœ¨ |\n|---|---|---|---|\n| 맀좜 | 100μ–΅ | 120μ–΅ | +20% |\n| μ˜μ—…μ΄μ΅ | 20μ–΅ | 25μ–΅ | +25% |"
    }
  ]
}

λ³΄μ•ˆ 고렀사항

  • μ„œλ²„λŠ” μ§€μ •λœ 루트 폴더와 ν•˜μœ„ 폴더 λ‚΄μ˜ νŒŒμΌμ—λ§Œ μ•‘μ„ΈμŠ€ν•  수 μžˆμŠ΅λ‹ˆλ‹€
  • Drive νŒŒμΌμ— λŒ€ν•΄ 읽기 μ „μš© μ•‘μ„ΈμŠ€ μ‚¬μš© (μ—…λ°μ΄νŠΈλ₯Ό ν—ˆμš©ν•˜λŠ” Sheets μ œμ™Έ)
  • OAuth 토큰은 자격 증λͺ… 디렉토리에 둜컬둜 μ €μž₯λ©λ‹ˆλ‹€
  • 자격 증λͺ…μ΄λ‚˜ 토큰을 버전 관리에 μ»€λ°‹ν•˜μ§€ λ§ˆμ„Έμš”

문제 ν•΄κ²°

일반적인 문제

  1. "GDRIVE_ROOT_FOLDER_ID ν™˜κ²½ λ³€μˆ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€"

    • ν™˜κ²½μ΄λ‚˜ κ΅¬μ„±μ—μ„œ GDRIVE_ROOT_FOLDER_IDλ₯Ό μ„€μ •ν–ˆλŠ”μ§€ ν™•μΈν•˜μ„Έμš”
  2. "이 μœ ν˜•μ˜ Google Apps νŒŒμΌμ„ 읽을 수 μ—†μŠ΅λ‹ˆλ‹€"

    • 일뢀 Google Apps 파일(Forms, Sites λ“±)은 내보낼 수 μ—†μŠ΅λ‹ˆλ‹€
    • Docs, Sheets, Slides, Drawings만 μ§€μ›λ©λ‹ˆλ‹€
  3. 인증 였λ₯˜

    • .gdrive-server-credentials.json을 μ‚­μ œν•˜κ³  λ‹€μ‹œ μΈμ¦ν•˜μ„Έμš”
    • OAuth ν΄λΌμ΄μ–ΈνŠΈκ°€ μ˜¬λ°”λ₯΄κ²Œ κ΅¬μ„±λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜μ„Έμš”
  4. "파일이 ν—ˆμš©λœ 폴더 λ²”μœ„λ₯Ό λ²—μ–΄λ‚¬μŠ΅λ‹ˆλ‹€"

    • 파일이 κ΅¬μ„±λœ 루트 폴더 내에 μ—†μŠ΅λ‹ˆλ‹€
    • 파일이 μ˜¬λ°”λ₯Έ 폴더 계측 ꡬ쑰에 μžˆλŠ”μ§€ ν™•μΈν•˜μ„Έμš”

PDF κ΄€λ ¨ 문제

  1. "PDF 파일이 20MBλ₯Ό μ΄ˆκ³Όν•©λ‹ˆλ‹€"

    • PDFλ₯Ό μ••μΆ•ν•˜κ±°λ‚˜ λΆ„ν• ν•˜μ—¬ 20MB μ΄ν•˜λ‘œ λ§Œλ“œμ„Έμš”
    • Google Drive API의 파일 크기 μ œν•œμž…λ‹ˆλ‹€
  2. "이 PDFλŠ” μ•”ν˜Έλ‘œ λ³΄ν˜Έλ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€"

    • PDF 파일의 λΉ„λ°€λ²ˆν˜Έλ₯Ό μ œκ±°ν•œ ν›„ λ‹€μ‹œ μ‹œλ„ν•˜μ„Έμš”
    • μ•”ν˜Έν™”λœ PDFλŠ” ν˜„μž¬ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€
  3. "이 PDFλŠ” μŠ€μΊ”λœ μ΄λ―Έμ§€λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆμ–΄ ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•  수 μ—†μŠ΅λ‹ˆλ‹€"

    • OCR κΈ°λŠ₯을 μ‚¬μš©ν•΄ ν…μŠ€νŠΈλ₯Ό μΆ”μΆœν•œ PDFλ₯Ό μƒμ„±ν•˜μ„Έμš”
    • ν˜„μž¬ OCR κΈ°λŠ₯은 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

개발

μ†ŒμŠ€μ—μ„œ λΉŒλ“œ

# μ €μž₯μ†Œ 볡제
git clone https://github.com/pghoya2956/Google-Drive-MCP-Server.git
cd gdrive-mcp-server

# 쒅속성 μ„€μΉ˜
npm install

# TypeScript λΉŒλ“œ
npm run build

# 개발 λͺ¨λ“œλ‘œ μ‹€ν–‰
npm run watch

λΌμ΄μ„ΌμŠ€

이 ν”„λ‘œμ νŠΈλŠ” 이 μ €μž₯μ†Œμ—μ„œ MIT λΌμ΄μ„ΌμŠ€λ‘œ 배포된 Anthropic, PBCκ°€ μ›λž˜ κ°œλ°œν•œ μ½”λ“œλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€.

κΈ°μ—¬

κΈ°μ—¬λ₯Ό ν™˜μ˜ν•©λ‹ˆλ‹€! Pull Requestλ₯Ό 자유둭게 μ œμΆœν•΄ μ£Όμ„Έμš”.