Gmail MCP サーバー
Gmail API 統合用のモデル コンテキスト プロトコル (MCP) サーバー実装。AI アシスタントが Gmail サービスと対話できるようになります。
特徴
コア機能
メール操作
高度なフィルタリングでメールをリストする
特定のメールを全文で読む
新しいメールを作成して送信する
ドラフト管理
新しい下書きを作成する
既存の下書きを一覧表示する
下書きコンテンツを読む
下書きコンテンツと受信者を更新する
下書きを削除する
カレンダー操作
今後のカレンダーイベントを一覧表示する
詳細なイベント情報を読む
新しいカレンダーイベントを作成する
イベントのフィルタリングと検索
タイムゾーンのサポート
iOSカレンダー同期のサポート
検索とフィルタリング
Gmail 検索クエリのサポート
ラベルベースのフィルタリング
カスタマイズ可能な結果制限
カレンダーイベント検索機能
安全
Google OAuth2.0統合
安全な資格情報管理
リフレッシュトークンの処理
マルチスコープ認証のサポート
Related MCP server: Enhanced Gmail MCP Server
クイックスタート
前提条件
Node.js (v14以上)
npm (v6以上)
Gmail とカレンダー API が有効になっている Google Cloud Platform アカウント
適切なスコープを持つ OAuth 2.0 認証情報
インストール
依存関係をクローンしてインストールします。
git clone [repository-url] cd gmail-mcp-server npm install環境を構成する:
# 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"ビルドして実行:
npm run build npm start
発達
利用可能なスクリプト
npm run dev- ウォッチモードでビルドして実行する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 ライセンス - 詳細についてはライセンスを参照してください。