Skip to main content
Glama
hawkxdev

google-workspace-mcp

by hawkxdev

google-workspace-mcp

Google Workspace(Gmail、Google Calendar、Google Drive、Google Sheets、Google Docs)向けに5つの独立したリモートMCPサーバーを構築するためのプロジェクトです。

ステータス: プレアルファ版。 MCPサーバーはまだ動作しません。このリポジトリには現在、パッケージのスケルトン、5つのプレースホルダーエントリポイント、下流のOAuth状態コア、および不変のサービス別設定が含まれています。

現在のステータス

実装済み:

  • 5つのコンソールエントリポイントを持つPythonパッケージ

  • SQLiteバックアップによる下流OAuth状態

  • OAuthクライアント登録とPKCE

  • 正規のresourceへのトークンバインディング

  • リフレッシュトークンのローテーション、リプレイ検出、ファミリー失効

  • サービスとリソースの不変の状態所有権メタデータ

  • 厳格なポートとトークンTTL検証を備えた不変のサービス別設定

5つのコンソールエントリポイントはすべてプレースホルダーであり、サービスが構築されていない旨のメッセージを表示して終了します。HTTP/MCPトランスポート、Google API統合、サービスのツール、およびデプロイ設定はまだ実装されていません。

Related MCP server: google-workspace-mcp-advanced

計画中のサービス

以下の表は対象範囲を説明しています。これらの機能はまだ利用できません。

サービス

対象機能

gmail

メッセージとスレッドの検索・読み取り、ラベル、添付ファイル、下書き、送信、返信

calendar

カレンダー、イベントの検索と取得、空き状況、イベントの作成と更新

drive

ファイル検索、メタデータ、フォルダ内容、ダウンロード、エクスポート

sheets

スプレッドシートのメタデータ、範囲の読み取りと書き込み、バッチ操作

docs

ドキュメントの作成、構造とテキストの取得、挿入、置換

対象アーキテクチャでは、各サービスは独自のMCPエンドポイント、ツールレジストリ、Google OAuthスコープ、Google認証情報、および下流OAuth状態を持つ別々のプロセスとして実行されます。

対象の認可アーキテクチャ

この設計は2つの独立したレイヤーを使用します:

クライアントからサービスへ。 MCPクライアントはPKCE付きのOAuth 2.1を使用します。各アクセストークンは1つのresourceにバインドされ、リフレッシュトークンはリプレイ検出付きでローテーションされます。

サービスからGoogleへ。 各サービスは別々のGoogle認証情報と必要最小限のOAuthスコープを使用します。GoogleリフレッシュトークンがMCPクライアントに返されることはありません。

最初のレイヤーの状態コアのみが現在存在します。HTTPエンドポイントと2番目の認可レイヤーは実装されていません。

テクノロジー

開発の前提条件

  • Git

  • Python 3.14

  • uv

Google API統合が実装された後、Google CloudプロジェクトとOAuthクライアントが必要になります。現在のバージョンではこれらを使用しません。

開発環境のセットアップ

git clone https://github.com/hawkxdev/google-workspace-mcp.git
cd google-workspace-mcp
uv sync --dev

仮想環境をアクティベートする必要はありません。uv runを通じてコマンドを実行してください。

チェック

uv run --no-sync pytest -q
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync mypy src

インストール済みの依存関係バージョンを確認する場合は--no-syncフラグが必要です。通常のuv runはロックファイルから環境を再同期する場合があります。

構造

パス

目的

src/google_workspace_mcp/auth/state.py

下流OAuth状態のライフサイクル

src/google_workspace_mcp/common/config.py

不変のサービス別環境設定

src/google_workspace_mcp/cli/

5つのプレースホルダーエントリポイント

tests/core/

OAuthコアとパッケージエントリポイントの回帰テスト

pyproject.toml

パッケージメタデータ、依存関係、ツール設定

NOTICE

適応コードの出所

コントリビューション

このプロジェクトは初期開発段階にあります。重要な変更を行う前に、提案する動作を説明するissueを開いてください。変更は、5つのサービスを1つのプロセスに統合したり、サービス間で認証情報を共有したり、OAuthバイパスを導入したりしてはなりません。

出所

このプロジェクトは、MITライセンスの下でjimprosser/obsidian-web-mcpからOAuth 2.1コアを適応しています。詳細はNOTICEを参照してください。

下流のOAuth 2.1コアは、リビジョン7e6a52d791a50e3bd533df1060217973ab5be1c8に基づいています。クライアントとトークンのライフサイクル、リフレッシュトークンのローテーション、リプレイ検出、resourceの正規化に関する追加の修正が含まれています。

元のプロジェクトのObsidianストレージとGit同期機能はコピーされていません。

このプロジェクトはmcp>=2,<3を使用します。MCP 2.0で削除されたmcp.server.fastmcpパッケージは不要です。将来の構成ではmcp.server.mcpserverを使用します。

作者

Sergey Sokolkin (@hawkxdev)

ライセンス

MIT、LICENSEを参照してください。

Related MCP Connectors

Related MCP Servers