Google Workspace MCP Server

Google Workspace MCP Server

Yulikepython

Cloud Platforms
Visit Server

README

Google Workspace MCP Server

このプロジェクトは以下のリポジトリをベースに作成しています: epaproditus/google-workspace-mcp-server

Google Workspace の機能(カレンダー、メール)を MCP サーバーとして提供するアプリケーション

機能

Gmail 機能

  • list_emails: 受信トレイから最近のメールをフィルタリング付きで一覧表示
  • search_emails: Gmail クエリ構文を使用した高度なメール検索
  • send_email: CC、BCC 対応のメール送信
  • modify_email: メールラベルの管理(アーカイブ、ゴミ箱、既読/未読)

カレンダー機能

  • list_events: 日付範囲指定付きの予定一覧表示
  • create_event: 参加者付きの予定作成
  • update_event: 既存予定の更新
  • delete_event: 予定の削除

必要条件

  1. Node.js: Node.js 20 以上をインストール
  2. Google Cloud Console 設定:
    • Google Cloud Consoleにアクセス
    • 新規プロジェクトの作成または既存プロジェクトの選択
    • Gmail API と Google Calendar API の有効化:
      1. "APIs & Services" > "Library"に移動
      2. "Gmail API"を検索して有効化
      3. "Google Calendar API"を検索して有効化
    • OAuth 2.0 認証情報の設定:
      1. "APIs & Services" > "Credentials"に移動
      2. "Create Credentials" > "OAuth client ID"をクリック
      3. "Desktop application"を選択
      4. "Authorized redirect URIs"にhttp://localhost:4100/codeを追加
      5. Client ID と Client Secret をメモ

セットアップ手順

  1. リポジトリのクローンとインストール:

    git clone https://github.com/Yulikepython/gogole-workspace-mcp-server-by-itc.git
    cd google-workspace-mcp-server-by-itc
    npm install
    
  2. 認証情報の設定:

    # credentials.json.exampleをコピー
    cp credentials.json.example credentials.json
    

    credentials.jsonを以下のように編集:

    {
      "web": {
        "client_id": "YOUR_CLIENT_ID",
        "client_secret": "YOUR_CLIENT_SECRET",
        "redirect_uris": ["http://localhost:4100/code"],
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token"
      }
    }
    
  3. リフレッシュトークンの取得:

    node get-refresh-token.js
    

    これにより:

    • ブラウザが開き、Google OAuth 認証が実行されます
    • 以下の権限が要求されます:
      • https://www.googleapis.com/auth/gmail.modify
      • https://www.googleapis.com/auth/calendar
      • https://www.googleapis.com/auth/gmail.send
    • 認証情報がtoken.jsonに保存されます
    • コンソールにリフレッシュトークンが表示されます
  4. MCP 設定の構成: MCP 設定ファイルにサーバー設定を追加:

    • VSCode Claude 拡張機能: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    • Claude デスクトップアプリ: ~/Library/Application Support/Claude/claude_desktop_config.json

    mcpServersオブジェクトに以下を追加:

    {
      "mcpServers": {
        "google-workspace": {
          "command": "node",
          "args": ["/path/to/google-workspace-server/build/index.js"],
          "env": {
            "GOOGLE_CLIENT_ID": "your_client_id",
            "GOOGLE_CLIENT_SECRET": "your_client_secret",
            "GOOGLE_REFRESH_TOKEN": "your_refresh_token"
          }
        }
      }
    }
    
  5. ビルドと実行:

    npm run build
    
  6. デプロイ設定の追加 (.env):

    deploy スクリプトを使用するには .env ファイルが必要です。

    cp .env.example .env
    

    .env に以下の環境変数を設定してください:

    SSH_USER=your_ssh_user
    SSH_HOST=your.ssh.host
    SSH_PATH=/your/deploy/path
    

npm scripts

コマンド 説明
npm run build バンドルを作成し、実行可能権限を付与
npm run start ローカルでビルド&実行
npm run clean ビルド成果物を削除
npm run deploy ビルド後、本番環境にファイルをデプロイ
npm run logs 本番環境のアプリケーションログをリアルタイムで表示

使用例

Gmail 操作

  1. 最近のメール一覧:

    {
      "maxResults": 5,
      "query": "is:unread"
    }
    
  2. メール検索:

    {
      "query": "from:example@gmail.com has:attachment",
      "maxResults": 10
    }
    
  3. メール送信:

    {
      "to": "recipient@example.com",
      "subject": "Hello",
      "body": "Message content",
      "cc": "cc@example.com",
      "bcc": "bcc@example.com"
    }
    
  4. メールラベルの変更:

    {
      "id": "message_id",
      "addLabels": ["UNREAD"],
      "removeLabels": ["INBOX"]
    }
    

カレンダー操作

  1. 予定一覧:

    {
      "maxResults": 10,
      "timeMin": "2024-01-01T00:00:00Z",
      "timeMax": "2024-12-31T23:59:59Z"
    }
    
  2. 予定作成:

    {
      "summary": "Team Meeting",
      "location": "Conference Room",
      "description": "Weekly sync-up",
      "start": "2024-01-24T10:00:00Z",
      "end": "2024-01-24T11:00:00Z",
      "attendees": ["colleague@example.com"]
    }
    
  3. 予定更新:

    {
      "eventId": "event_id",
      "summary": "Updated Meeting Title",
      "location": "Virtual",
      "start": "2024-01-24T11:00:00Z",
      "end": "2024-01-24T12:00:00Z"
    }
    
  4. 予定削除:

    {
      "eventId": "event_id"
    }
    

トラブルシューティング

  1. 認証の問題:

    • 必要な OAuth スコープが付与されているか確認
    • Client ID と Secret が正しいか確認
    • リフレッシュトークンが有効か確認
  2. API エラー:

    • Google Cloud Console で API クォータと制限を確認
    • プロジェクトで API が有効化されているか確認
    • リクエストパラメータが正しい形式か確認

ライセンス

MIT

Recommended Servers

contentful-mcp

contentful-mcp

Update, create, delete content, content-models and assets in your Contentful Space

Featured
TypeScript
Supabase MCP Server

Supabase MCP Server

A Model Context Protocol (MCP) server that provides programmatic access to the Supabase Management API. This server allows AI models and other clients to manage Supabase projects and organizations through a standardized interface.

Featured
JavaScript
Azure MCP Server

Azure MCP Server

Enables natural language interaction with Azure services through Claude Desktop, supporting resource management, subscription handling, and tenant selection with secure authentication.

Official
Local
TypeScript
SettleMint

SettleMint

Leverage SettleMint's Model Context Protocol server to seamlessly interact with enterprise blockchain infrastructure. Build, deploy, and manage smart contracts through AI-powered assistants, streamlining your blockchain development workflow for maximum efficiency.

Official
Local
TypeScript
Brev

Brev

Run, build, train, and deploy ML models on the cloud.

Official
Local
Python
Story SDK MCP Server

Story SDK MCP Server

This server provides MCP (Model Context Protocol) tools for interacting with Story's Python SDK. Features Get license terms Mint and register IP Asset with PIL Terms Mint license tokens Send $IP to a wallet Upload image to ipfs via Pinata [External] Upload ip and nft metadata via Pinata [External]

Official
Python
Tembo MCP Server

Tembo MCP Server

An MCP server that enables Claude to interact with Tembo Cloud platform API, allowing users to manage Tembo Cloud resources through natural language.

Official
TypeScript
Workers MCP

Workers MCP

A package that connects Claude Desktop and other MCP clients to Cloudflare Workers, enabling custom functionality to be accessed via natural language through the Model Context Protocol.

Official
TypeScript
Appwrite MCP Server

Appwrite MCP Server

A Model Context Protocol server that allows AI assistants to interact with Appwrite's API, providing tools to manage databases, users, functions, teams, and other resources within Appwrite projects.

Official
Python
MCP2Lambda

MCP2Lambda

Enables AI models to interact with AWS Lambda functions via the MCP protocol, allowing access to private resources, real-time data, and custom computation in a secure environment.

Official
Python