MCP Hub
Back to servers

company-mcp

A comprehensive MCP server for integrating Google Workspace tools (Gmail, Drive, Sheets, Docs, and Calendar) with Claude Code, featuring granular permission controls and audit logging.

Tools
39
Updated
Jan 8, 2026
Validated
Jan 9, 2026

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_ENABLEDfalse
Gmailの削除GMAIL_DELETE_ENABLEDfalse
Gmailのラベル変更GMAIL_MODIFY_LABELS_ENABLEDfalse
Driveの変更操作DRIVE_MODIFY_ENABLEDfalse
Driveの削除DRIVE_DELETE_ENABLEDfalse
Calendarの変更操作CALENDAR_MODIFY_ENABLEDfalse

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

Reviews

No reviews yet

Sign in to write a review