Skip to main content
Glama
Michibiku

Company MCP Server - Google Workspace Integration

by Michibiku

Company MCP Server - Google Workspace Integration

社内共通の MCP (Model Context Protocol) サーバー。Google Workspace (Gmail / Drive / Sheets / Docs / Calendar) をClaude Codeから操作できます。

概要

このリポジトリは以下を提供します:

  • MCP Server (apps/mcp-server-google): Google Workspace連携のMCPサーバー

  • Core Library (packages/core): 共通ユーティリティ(logger, config, validation, auth)

  • Skills (packages/skills): Claude Codeでの活用方法・プロンプト集

  • Documentation (docs/): セットアップ手順、セキュリティガイド、トラブルシューティング

できること

Gmail

ツール

説明

要有効化

gmail_search_messages

メール検索

-

gmail_get_message

メール詳細取得

-

gmail_list_labels

ラベル一覧取得

-

gmail_modify_labels

ラベル変更

GMAIL_MODIFY_LABELS_ENABLED

gmail_send_message

メール送信

GMAIL_SEND_ENABLED

gmail_reply_message

メール返信

GMAIL_SEND_ENABLED

gmail_delete_message

メール削除

GMAIL_DELETE_ENABLED

gmail_create_draft

下書き作成

GMAIL_SEND_ENABLED

gmail_get_attachment

添付ファイル取得

-

Drive

ツール

説明

要有効化

drive_search_files

ファイル検索

-

drive_get_file

ファイル情報取得

-

drive_create_folder

フォルダ作成

DRIVE_MODIFY_ENABLED

drive_set_permission

共有設定

DRIVE_MODIFY_ENABLED

drive_copy_file

ファイルコピー

DRIVE_MODIFY_ENABLED

drive_upload_file

ファイルアップロード

DRIVE_MODIFY_ENABLED

drive_download_file

ファイルダウンロード

-

drive_delete_file

ファイル削除

DRIVE_DELETE_ENABLED

drive_move_file

ファイル移動

DRIVE_MODIFY_ENABLED

Sheets

ツール

説明

sheets_create_spreadsheet

スプレッドシート作成

sheets_get_values

セル値取得

sheets_update_values

セル値更新

sheets_append_values

行追加

sheets_batch_get_values

一括取得

sheets_batch_update_values

一括更新

sheets_add_sheet

シート追加

sheets_delete_sheet

シート削除

sheets_format_cells

セル書式設定

Docs

ツール

説明

docs_create_document

ドキュメント作成

docs_get_document

ドキュメント取得

docs_insert_text

テキスト挿入

docs_replace_text

テキスト置換

docs_format_text

テキスト書式設定

docs_insert_image

画像挿入

docs_batch_update

一括更新

Calendar

ツール

説明

要有効化

calendar_list_events

イベント一覧

-

calendar_create_event

イベント作成(dry-run対応)

CALENDAR_MODIFY_ENABLED

calendar_update_event

イベント更新(dry-run対応)

CALENDAR_MODIFY_ENABLED

calendar_delete_event

イベント削除

CALENDAR_MODIFY_ENABLED

calendar_get_free_busy

空き時間検索

-

クイックスタート

1. 依存関係のインストール

cd company-mcp pnpm install

2. Google Cloud プロジェクトの設定

詳細は docs/setup/oauth.md または docs/setup/service-account.md を参照。

簡易手順(OAuth):

  1. Google Cloud Console でプロジェクト作成

  2. APIs & Services > Enable APIs で以下を有効化:

    • Gmail API

    • Google Drive API

    • Google Sheets API

    • Google Docs API

    • Google Calendar API

  3. APIs & Services > Credentials で OAuth 2.0 Client ID を作成(Desktop App)

  4. クレデンシャルJSONをダウンロードし .secrets/credentials.json に配置

3. 環境変数の設定

cd apps/mcp-server-google cp .env.example .env # .env を編集

4. OAuth認証(初回のみ)

# 読み取り専用 pnpm auth:oauth # 送信機能も有効化する場合 GMAIL_SEND_ENABLED=true pnpm auth:oauth

5. ビルド

pnpm build

Claude Code から使う

設定ファイルの追加

~/.claude.json に追加:

{ "mcpServers": { "google": { "command": "node", "args": ["/path/to/company-mcp/apps/mcp-server-google/dist/index.js"], "env": { "AUTH_MODE": "oauth", "OAUTH_TOKEN_PATH": "/path/to/company-mcp/.secrets/token.json", "GMAIL_SEND_ENABLED": "true" } } } }

使用例

Claude: Gmail で未読メールを検索して → gmail_search_messages({"query": "is:unread", "maxResults": 10})
Claude: 今週のカレンダーイベントを教えて → calendar_list_events({ "timeMinISO": "2024-01-15T00:00:00Z", "timeMaxISO": "2024-01-21T23:59:59Z" })
Claude: kai@example.com に「会議の件」という件名でメールを送って → gmail_send_message({ "to": ["kai@example.com"], "subject": "会議の件", "body": "メール本文..." })

安全設計

デフォルトで無効な操作

以下の操作はデフォルトで無効です。.env で明示的に有効化してください:

操作

環境変数

デフォルト

Gmailの送信/返信/下書き

GMAIL_SEND_ENABLED

false

Gmailの削除

GMAIL_DELETE_ENABLED

false

Gmailのラベル変更

GMAIL_MODIFY_LABELS_ENABLED

false

Driveの変更操作

DRIVE_MODIFY_ENABLED

false

Driveの削除

DRIVE_DELETE_ENABLED

false

Calendarの変更操作

CALENDAR_MODIFY_ENABLED

false

Dry-Run モード

Calendar の作成・更新はデフォルトで dry-run モードです。実際に作成するには dryRun: false を明示的に指定するか、CALENDAR_DRY_RUN_DEFAULT=false を設定してください。

フォルダ制限

DRIVE_ALLOWLIST_FOLDERS で操作可能なフォルダIDを制限できます。Service Account 運用時は必ず設定してください。

日本語対応

メールの件名・本文は自動的にRFC 2047 / Base64エンコードされるため、日本語が正しく表示されます。

監査ログ

全ての操作は logs/audit-YYYY-MM-DD.jsonl に記録されます:

{"timestamp":"2024-01-15T10:30:00.000Z","level":"info","tool":"gmail_search_messages","action":"search","args":{"query":"is:unread"},"result":"success","duration_ms":234}

よくあるエラー

"No OAuth token found"

pnpm auth:oauth

で認証してください。

"Token has expired"

refresh_token がない場合は再認証が必要です:

rm .secrets/token.json pnpm auth:oauth

"Folder not in allowlist"

DRIVE_ALLOWLIST_FOLDERS にフォルダIDを追加してください。

Rate Limit (429)

Google API のレート制限に達しました。しばらく待ってから再試行してください。

開発

ビルド

pnpm build

型チェック

pnpm typecheck

Lint

pnpm lint

テスト

pnpm test

ディレクトリ構成

company-mcp/ ├── apps/ │ └── mcp-server-google/ # MCPサーバー本体 │ ├── src/ │ │ ├── auth/ # 認証モジュール │ │ ├── tools/ # ツール実装 │ │ │ ├── gmail.ts │ │ │ ├── drive.ts │ │ │ ├── sheets.ts │ │ │ ├── docs.ts │ │ │ └── calendar.ts │ │ └── index.ts # エントリーポイント │ └── .env.example # 環境変数テンプレート ├── packages/ │ ├── core/ # 共通ライブラリ │ │ └── src/ │ │ ├── config.ts # 設定管理 │ │ ├── logger.ts # ロガー │ │ ├── validation.ts # バリデーションスキーマ │ │ └── auth.ts # 認証ユーティリティ │ └── skills/ # プロンプト・ワークフロー集 ├── docs/ │ ├── setup/ # セットアップ手順 │ ├── security/ # セキュリティガイド │ ├── workflows/ # ワークフロー例 │ └── troubleshooting/ # トラブルシューティング ├── scripts/ # ユーティリティスクリプト └── .github/workflows/ # CI設定

コントリビューション

CONTRIBUTING.md を参照してください。

ライセンス

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Michibiku/company-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server