Gmail MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables comprehensive email operations including listing, reading, and sending emails, as well as draft management with creation, reading, updating, and deletion capabilities

  • Provides calendar functionality for listing, reading, and creating events with support for filtering, timezone handling, and attendee management

  • Supports calendar synchronization with iOS devices, allowing events created or modified through the MCP to appear on Apple mobile devices

Gmail MCP 서버

Gmail API 통합을 위한 MCP(Model Context Protocol) 서버 구현으로 AI 어시스턴트가 Gmail 서비스와 상호 작용할 수 있습니다.

특징

핵심 기능

  • 이메일 운영
    • 고급 필터링으로 이메일 나열
    • 전체 내용이 포함된 특정 이메일을 읽어보세요
    • 새로운 이메일을 만들고 보내세요
  • 초안 관리
    • 새로운 초안 만들기
    • 기존 초안 나열
    • 초안 내용 읽기
    • 초안 내용 및 수신자 업데이트
    • 초안 삭제
  • 캘린더 작업
    • 예정된 캘린더 이벤트 나열
    • 자세한 이벤트 정보를 읽어보세요
    • 새 캘린더 이벤트 만들기
    • 이벤트 필터링 및 검색
    • 시간대 지원
    • iOS 캘린더 동기화 지원

검색 및 필터링

  • Gmail 검색어 지원
  • 레이블 기반 필터링
  • 사용자 정의 가능한 결과 제한
  • 캘린더 이벤트 검색 기능

보안

  • Google OAuth2.0 통합
  • 보안 자격 증명 관리
  • 토큰 처리 새로 고침
  • 다중 범위 권한 지원

빠른 시작

필수 조건

  • Node.js(v14 이상)
  • npm(v6 이상)
  • Gmail 및 캘린더 API가 활성화된 Google Cloud Platform 계정
  • 적절한 범위를 갖춘 OAuth 2.0 자격 증명

설치

  1. 종속성을 복제하고 설치합니다.지엑스피1
  2. 환경 구성:
    # Create .env file cp .env.example .env # Add your credentials: GOOGLE_CLIENT_ID="your_client_id" GOOGLE_CLIENT_SECRET="your_client_secret" REDIRECT_URI="http://localhost:4100/code" GOOGLE_REFRESH_TOKEN="your_refresh_token"
  3. 빌드하고 실행:
    npm run build npm start

개발

사용 가능한 스크립트

  • npm run dev - watch 모드로 빌드하고 실행
  • npm run build - 프로젝트 빌드
  • npm run clean - 빌드 아티팩트 정리
  • npm run watch - 변경 사항 확인

프로젝트 구조

gmail-mcp-server/ ├── src/ │ ├── config/ # Configuration and setup │ ├── services/ # Core business logic │ │ ├── gmail/ # Gmail services │ │ └── calendar/ # Calendar services │ ├── tools/ # MCP tool implementations │ │ ├── calendar/ # Calendar tools │ │ ├── drafts/ # Draft management tools │ │ └── messages/ # Email tools │ ├── types/ # TypeScript definitions │ └── index.ts # Server entry point ├── dist/ # Compiled JavaScript └── tests/ # Test files (pending)

API 인터페이스

메시지 목록

listEmails({ maxResults?: number, // Default: 10 query?: string, // Gmail search query labelIds?: string[], // Filter by labels verbose?: boolean // Include details })

메시지 읽기

readEmail({ messageId: string // Message ID to fetch })

초안 작업

// List Drafts listDrafts({ maxResults?: number, // Default: 10 query?: string, // Search query verbose?: boolean // Include details }) // Read Draft readDraft({ draftId: string // Draft ID to fetch }) // Create Draft draftEmail({ to: string[], subject: string, body: string, cc?: string[], bcc?: string[], isHtml?: boolean }) // Update Draft updateDraft({ draftId: string, // Draft ID to update to?: string[], // New recipients cc?: string[], // New CC recipients bcc?: string[], // New BCC recipients subject?: string, // New subject body?: string, // New body content isHtml?: boolean // Content type flag }) // Delete Draft deleteDraft({ draftId: string // Draft ID to delete })

이메일 보내기

sendEmail({ to: string[], subject: string, body: string, cc?: string[], bcc?: string[], isHtml?: boolean, draftId?: string // Optional: send existing draft })

캘린더 작업

// List Events listEvents({ maxResults?: number, // Default: 25 timeMin?: string, // Start time (ISO 8601) timeMax?: string, // End time (ISO 8601) query?: string, // Text search term timeZone?: string // Default: Australia/Brisbane }) // Read Event Details readEvent({ eventId: string, // Event ID to fetch details timeZone?: string // Default: Australia/Brisbane }) // Create Event createEvent({ summary: string, // Event title start: { dateTime: string, // ISO 8601 start time timeZone?: string // Start time timezone }, end: { dateTime: string, // ISO 8601 end time timeZone?: string // End time timezone }, description?: string, // Optional event description location?: string, // Optional event location attendees?: Array<{ // Optional attendees email: string, displayName?: string, optional?: boolean }>, status?: 'confirmed' | 'tentative' | 'cancelled', sendNotifications?: boolean })

오류 처리

서버는 다음에 대한 포괄적인 오류 처리를 구현합니다.

  • 인증 실패
  • API 속도 제한
  • 잘못된 요청
  • 네트워크 문제
  • 캘린더 동기화 문제
  • 이벤트 ID 검증
  • 시간대 검증

기여하다

자세한 내용은 CONTRIBUTING.md를 참조하세요.

변경 사항

버전 기록과 업데이트는 CHANGELOG.md에서 확인하세요.

로드맵

계획된 기능과 개선 사항은 Backlog.md를 참조하세요.

특허

MIT 라이센스 - 자세한 내용은 라이센스를 참조하세요.

-
security - not tested
F
license - not found
-
quality - not tested

Google API 통합을 통해 이메일 작업, 초안 관리, 캘린더 기능을 지원하여 AI 어시스턴트가 Gmail 서비스와 상호 작용할 수 있도록 하는 모델 컨텍스트 프로토콜 서버입니다.

  1. Features
    1. Core Functionality
    2. Search & Filtering
    3. Security
  2. Quick Start
    1. Prerequisites
    2. Installation
  3. Development
    1. Available Scripts
    2. Project Structure
    3. API Interface
  4. Error Handling
    1. Contributing
      1. Changelog
        1. Roadmap
          1. License
            ID: y8y96hd64p