
Google Driveに保存しているものをMCPから検索と読み込みさせてみる
こんばんは、製造ビジネステクノロジー部の夏目です。
今回はMCPを使ってGoogle Driveを触ってみようと思いますう。
gdrive-mcp-server
3rd Party製のGoogle Driveの中を読み取るMCP Server。
OAuthを使ってアクセストークンを取得するので、その人が見れないファイルを見ることはできません。
そのため、認証情報を取得するまでが結構難しくなっております。
使用準備
OAuthで認証するので今回は準備が長くなっています。
- Google CloudのProjectを作成する
- Google Drive APIを使用可能にする
- OAuthの同意画面を設定する
- (Googleアカウントの場合) テストユーザーを登録する
- OAuthのクライアントIDを作成する
- MCPサーバーをCloneしBuildする
- 認証する
- MCPサーバーをクライアントに登録する
1. Google CloudのProjectを作成する
次のリンクにアクセスして、Google CloudのProjectを作成します。
https://console.cloud.google.com/projectcreate
プロジェクト名に任意の名前を付けます (見分けできる名前であればいい)。
今回は Google Drive MCP
という名前でプロジェクトを作ります。
場所は見たいGoogle Driveの組織を選択してください。
今回は個人のGoogleアカウントを使用しているので、 組織なし
のままです。
入力したら 作成
をクリックします。
左上の黒丸が3つ並んだところをクリックして、先ほど作成したプロジェクトを選びます。
(スクリーンショットではdelete-playlist
と書かれているところ。個人のアカウントでGoogle Cloudを過去使ったことがあるので、このように表示されてしまっています)
Google Drive MCP
というプロジェクトをクリックします。
プロジェクトの作成と選択が終わりました。
2. Google Drive APIを使用可能にする
左上のハンバーガーメニューをクリックします。
ソリューション
に すべてのプロダクト
をクリックします。
APIとサービス
をクリックします。
APIとサービスを有効にする
をクリックします。
APIとサービスを検索
と書かれた検索窓に Google Drive
と書いて検索します。
Google Drive API
をクリックします。
有効にする
をクリックします。
Google Drive APIを有効化できました。
3. OAuthの同意画面を設定する
左の OAuth 同意画面
をクリックします。
開始
をクリックします。
アプリ名
に任意の名前を入力し、 ユーザー サポートメール
を選択します。
今回はアプリ名に Google Drive MCP
と入力しました。
次へ
をクリックします。
対象を選択します。
MCPサーバーのREADME.mdによると、 内部
はGoogle Workspaceを使用している場合に、 外部
は個人のGoogleアカウントを使用している場合に選択すると書いてあります。
今回は個人のGoogleアカウントを使用するので 外部
を選択し、 次へ
をクリックします。
メールアドレス
にメールアドレスを入力し、 次へ
をクリックします。
Google APIサービス:ユーザーデータに関するポリシー
を確認し、チェックボックスにチェックを入れます。
続行
をクリックします。
作成
をクリックします。
同意画面の作成ができました。
4. (Googleアカウントの場合) テストユーザーを登録する
対象
をクリックします。
Add users
をクリックします。
使用するGoogleアカウントのメールアドレスを入力し、 保存
をクリックします。
ユーザー情報
に追加されていることがわかります。
5. OAuthのクライアントIDを作成する
クライアント
をクリックします。
クライアントを作成
をクリックします。
アプリケーションの種類
で デスクトップアプリ
を選択します。
名前
に任意の名前を入力します。
今回は Google Drive MCP
を入力しました。
入力したら 作成
をクリックします。
クライアントの作成ができました。
後で使うので 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
最後のコマンドを実行すると、ブラウザが起動し認証をします。
ブラウザでは仕事のGoogle Workspaceと個人のGoogleアカウント両方でログインしていたので、アカウントの選択画面が出ました。
手順4. で登録したメールアドレスの方のアカウントをクリックします。
今回のOAuthは外部向けでまだテスト用のものなので、Googleで確認されていません、と表示されます。
続行
をクリックします。
確認画面が出るので 続行
をクリックします。
認証が完了しました。
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
ファイルへのフルパスを書きます。
これで設定は完了です。
使ってみる
自分のGoogle Driveから過去の登壇資料を探してみました。
探した上で、その中身を見てまとめてくれました。
まとめ
以上、Google Driveを見るMCPサーバーを試してみました。
認証を1時間ごとに試さないといけないのは面倒ではありますが、見える範囲の制御とかできているのはいいですね。
認証情報にはRefresh Tokenが含まれていたので、それを使ってAccess Tokenを更新できるようにしてくれると便利になると思います。