Google Driveに保存しているものをMCPから検索と読み込みさせてみる

Google Driveに保存しているものをMCPから検索と読み込みさせてみる

Clock Icon2025.04.18

こんばんは、製造ビジネステクノロジー部の夏目です。

今回はMCPを使ってGoogle Driveを触ってみようと思いますう。

gdrive-mcp-server

https://github.com/felores/gdrive-mcp-server

3rd Party製のGoogle Driveの中を読み取るMCP Server。

OAuthを使ってアクセストークンを取得するので、その人が見れないファイルを見ることはできません。

そのため、認証情報を取得するまでが結構難しくなっております。

使用準備

OAuthで認証するので今回は準備が長くなっています。

  1. Google CloudのProjectを作成する
  2. Google Drive APIを使用可能にする
  3. OAuthの同意画面を設定する
  4. (Googleアカウントの場合) テストユーザーを登録する
  5. OAuthのクライアントIDを作成する
  6. MCPサーバーをCloneしBuildする
  7. 認証する
  8. MCPサーバーをクライアントに登録する

1. Google CloudのProjectを作成する

次のリンクにアクセスして、Google CloudのProjectを作成します。

https://console.cloud.google.com/projectcreate

554f3e50-37ee-4de6-866e-9656ef3d5d13

プロジェクト名に任意の名前を付けます (見分けできる名前であればいい)。
今回は Google Drive MCP という名前でプロジェクトを作ります。

場所は見たいGoogle Driveの組織を選択してください。
今回は個人のGoogleアカウントを使用しているので、 組織なしのままです。

入力したら 作成 をクリックします。

3ed30297-9309-4260-8ca2-c44816ad7e30

左上の黒丸が3つ並んだところをクリックして、先ほど作成したプロジェクトを選びます。
(スクリーンショットではdelete-playlistと書かれているところ。個人のアカウントでGoogle Cloudを過去使ったことがあるので、このように表示されてしまっています)

85d6ae40-8b76-4a40-b9b2-3e828f78c7c4

Google Drive MCPというプロジェクトをクリックします。

プロジェクトの作成と選択が終わりました。

2. Google Drive APIを使用可能にする

d7429a64-685f-484f-b484-e1bf201dae58

左上のハンバーガーメニューをクリックします。

0f8bbd0f-6a84-45e0-aa1f-665e9abb2a30

ソリューションすべてのプロダクト をクリックします。

48b66adb-3c66-4d8c-8b83-2909347259d7

APIとサービス をクリックします。

7572147f-9c3d-48e7-a083-ec4fe4f9b92c

APIとサービスを有効にする をクリックします。

f667f840-6482-47f0-b177-97a622514148

APIとサービスを検索 と書かれた検索窓に Google Drive と書いて検索します。

4197d0a1-5bb5-4326-a61e-8eaf21778679

Google Drive API をクリックします。

168615ff-af57-486b-a6d5-356e649d78c6

有効にする をクリックします。

183f2346-da84-4a97-b12c-7bec0613ac14

Google Drive APIを有効化できました。

3. OAuthの同意画面を設定する

d7fa098d-8cae-4172-bb13-a7972433c9ca

左の OAuth 同意画面 をクリックします。

f39f32e2-0eb5-4db0-84e2-86af423d7c23

開始 をクリックします。

4d704a55-ec99-427a-a563-72a883e5941f

アプリ名 に任意の名前を入力し、 ユーザー サポートメール を選択します。

今回はアプリ名に Google Drive MCP と入力しました。

次へ をクリックします。

655de1f6-72d8-4e62-a329-741c59ea0ec3

対象を選択します。

MCPサーバーのREADME.mdによると、 内部 はGoogle Workspaceを使用している場合に、 外部 は個人のGoogleアカウントを使用している場合に選択すると書いてあります。

今回は個人のGoogleアカウントを使用するので 外部 を選択し、 次へ をクリックします。

811a6d4f-c101-49b1-9a71-1c9adcc010e3

メールアドレス にメールアドレスを入力し、 次へ をクリックします。

edb64f45-98ed-40ac-97f7-efae0cda0509

Google APIサービス:ユーザーデータに関するポリシー を確認し、チェックボックスにチェックを入れます。

続行 をクリックします。

5dd0b135-ad84-4cd7-9532-00e85a38b3e2

作成 をクリックします。

0913b51b-87d9-42ab-a44b-8f03c46cc5e7

同意画面の作成ができました。

4. (Googleアカウントの場合) テストユーザーを登録する

cc146959-7ffb-4825-b7dd-e5763759857a

対象 をクリックします。

a8f5e19d-21b8-43e0-ba34-8705b49df7d5

Add users をクリックします。

b6c5b032-91ab-421e-b7b5-16f828a11fe4

使用するGoogleアカウントのメールアドレスを入力し、 保存 をクリックします。

d8ee4736-6f80-4fb2-ae69-3657e35ac845

ユーザー情報 に追加されていることがわかります。

5. OAuthのクライアントIDを作成する

b4de0dd1-7203-4371-ac1e-825fb9e96cb5

クライアント をクリックします。

578dcbb4-af0e-4419-8a8c-cda2a2e972dc

クライアントを作成 をクリックします。

c932ad5e-a685-4bed-814a-e05639d931f9

アプリケーションの種類デスクトップアプリ を選択します。

d75761a6-3cbf-4d30-bb05-e46894f540c3

名前 に任意の名前を入力します。

今回は Google Drive MCP を入力しました。

入力したら 作成 をクリックします。

a3a2f496-c6ab-4773-8c61-aa6ef2ce3557

クライアントの作成ができました。

後で使うので JSONをダウンロード をクリックしてダウンロードしておきます。

6. MCPサーバーをCloneしBuildする

# MCPサーバーをCloneする
$ git clone https://github.com/felores/gdrive-mcp-server.git
$ gdrive-mcp-server

# 依存ライブラリをインストールする
$ npm install

# Buildする
$ npm run build

7. 認証する

手順5. の最後でダウンロードしたJSONファイルを使用します。

# 認証情報を置くディレクトリを作成する
$ mkdir credentials

# 手順5. の最後でダウンロードしたJSONファイルをコピーする
$ cp "/path/to/download-json-file" credentials/gcp-oauth.keys.json

# 認証
$ node dist/index.js auth

最後のコマンドを実行すると、ブラウザが起動し認証をします。

7188d17c-792f-4b22-849f-726b0cd82984

ブラウザでは仕事のGoogle Workspaceと個人のGoogleアカウント両方でログインしていたので、アカウントの選択画面が出ました。

手順4. で登録したメールアドレスの方のアカウントをクリックします。

6f9da84e-df97-4cf4-bc92-a1ac2752385c

今回のOAuthは外部向けでまだテスト用のものなので、Googleで確認されていません、と表示されます。

続行 をクリックします。

46abc302-3db8-4c25-97f5-3bb3c84b5950

確認画面が出るので 続行 をクリックします。

2d1919f0-45e0-47ab-88c2-d70d11caa5eb

認証が完了しました。

credentialsディレクトリに .gdrive-server-credentials.jsonが作成されているはずです。
このファイルの中にAccess Keyが格納されています。

Access Keyは一時間有効なので、それ以後は node dist/index.js auth を実行する必要があります。

8. MCPサーバーをクライアントに登録する

{
  "mcpServers": {
    "gdrive": {
      "command": "node",
      "args": ["path/to/gdrive-mcp-server/dist/index.js"],
      "env": {
        "GOOGLE_APPLICATION_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/gcp-oauth.keys.json",
        "MCP_GDRIVE_CREDENTIALS": "path/to/gdrive-mcp-server/credentials/.gdrive-server-credentials.json"
      }
    }
  }
}

args には認証するのに使った index.js へのフルパスを書きます。

GOOGLE_APPLICATION_CREDENTIALS にはcredentialsディレクトリの gcp-oauth.keys.json ファイルへのフルパスを書きます。

MCP_GDRIVE_CREDENTIALS にはcredentialsディレクトリの .gdrive-server-credentials.json ファイルへのフルパスを書きます。

これで設定は完了です。

使ってみる

1781e9a5-1de8-4ace-a21d-a90aad2f8cf3

自分のGoogle Driveから過去の登壇資料を探してみました。

探した上で、その中身を見てまとめてくれました。

まとめ

以上、Google Driveを見るMCPサーバーを試してみました。

認証を1時間ごとに試さないといけないのは面倒ではありますが、見える範囲の制御とかできているのはいいですね。
認証情報にはRefresh Tokenが含まれていたので、それを使ってAccess Tokenを更新できるようにしてくれると便利になると思います。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.