LM studio(gpt-oss 20b)でGmail・Googleカレンダー操作用Docker起動MCPサーバーを作成する

LM studio(gpt-oss 20b)でGmail・Googleカレンダー操作用Docker起動MCPサーバーを作成 Docker

LM studio上にインストールしたgpt-oss 20bで、Gmail・Googleカレンダーが操作可能なDockerで起動するMCPサーバーをGPT-5を使って作成します。

ほとんどがGPT-5が作成したコードで、厳密な動作検証までは行っていませんが、個人で使用する範囲では自然言語でGmailやGoogleカレンダーを気軽に使えます。

なお、作業開始時にしたプロンプトは、下記の通りです。

今までのGmailとgoogleカレンダーをLM studioにインストールしたgpt-oss 20bで使用するためのMCPサーバーを作成する作業の手順を最初からまとめてすべて書き出して

MCP サーバー 作成手順

LM Studio(gpt-oss 20b)が Docker起動のMCPサーバー 経由で Gmail と Google Calendar を操作できるようにする。

使用方法

  1. Google Cloud で API と認証を用意(OAuth認証を使用)
  2. Node.js で MCP サーバーを実装(Gmail/Calendar ツール)
  3. Docker イメージ化し、GHCR(ghcr.io)へ公開
  4. LM Studio の mcp.json に登録
  5. 初回 OAuth 同意 → 以後、LM Studio から自然言語でツール呼び出し

参考:動作検証Ver. LM Studio 0.3.22 (Build 2)

ディレクトリ構成

package.json

Node.js設定ファイル

Dockerfile

index.js(MCPサーバー本体)

Gmail の一覧/取得/送信、Calendar の一覧/作成を行う。

scripts/authorize.js(OAuth認証)

使われるタイミング

Google Cloud Console で OAuth クライアント(oauth_client.json)を作成した直後
まだ oauth_tokens.json が存在しない状態では MCP サーバーを立ち上げても認証が通らず、Gmail やカレンダーを操作できません。

scripts/authorize.js を実行

を実行すると、Google のログイン URL が表示されます。
ブラウザでログインすると認可コードが返ってくるので、それを入力します。

oauth_tokens.json が生成される

  • 認証に成功すると、トークンが data/oauth_tokens.json に保存されます。
  • 以降は MCP サーバーを起動するだけで OK になり、再度 authorize.js を実行する必要はありません。

Google Cloud 側の準備

Google Cloudコンソールにログインする。

API 有効化

  • プロジェクトを作成 → 「APIとサービス」→「ライブラリ」
  • Gmail API / Google Calendar API を有効化

3.2 認証方式を選ぶ

「認証情報」 → 「+認証情報を作成」し以下の内容を設定する。

  • OAuth(個人/小規模)
    • 「アクセスするデータの種類」= ユーザー データ
    • アプリケーションの種類ウェブアプリ
    • 承認済みのリダイレクトURIhttp://localhost:5173/oauth2callback
    • ダウンロードした JSON は oauth_client.json にリネーム推奨
    • Windows で *.json:Zone.Identifier が出たら削除してもよい。

Docker ビルド

GHCR に公開

PAT(Personal Access Token)について

GitHubにアクセスするためのパスワードの代わりに使用できるトークン
主に、コマンドラインやGitHub APIを使ってGitHubリポジトリを操作する際の認証に利用。

GitHubのWebサイト → 「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」を選択し、「Generate new token (classic)」をクリックして作成。

OAuth認証

初回の認証

2度目以降の認証

再度認証が必要となった場合は、上記のコマンドを再度実行する。
コマンドの出力結果に表示されたURLをブラウザで開き Google ログインして認証する。
成功すると oauth_tokens.jsondata フォルダに保存される。

LM Studio 連携(mcp.json)

以下のmcp.jsonをLM Studioに追加する。

追加方法は、LM studio gpt-oss 20bでの作業を参照。

動作確認

  • docker.desktopを起動する。
  • LM Studio を再起動し、モデルを gpt-oss 20b に切替
    新規チャットで以下を試す:
    「今日の予定を表示して」 → Calendar 読み取り確認
    「15時に『打ち合わせ』を追加して」 → Calendar 書き込み確認
    test@example.com にメール送信して」 → Gmail 送信確認
    「最近の受信メールを表示して」 → Gmail 読み取り確認 Studio で gpt-oss 20b を選択 → チャットで:
    • 今日の予定を一覧して」→ calendar.listToday
    • ◯◯に件名××でメール送って」→ gmail.send

参考:OAuth認証(Open Authorization)とは

OAuth認証(Open Authorization)は、ユーザーのパスワードを共有することなく、あるアプリケーションが別のアプリケーションのデータに安全にアクセスするための認可の仕組み

参考:LM Studioでgpt-oss-20bを動かす

WindowsでLM Studioを使ってローカルでgpt-oss-20bを動かす
この記事では、Windows環境でLM Studioを使って「gpt-oss-20b」を動かす方法を、初心者でも分かるように解説します。gpt-oss-20b/120bの違いと用途、LM Studioの基本、Windowsでの導入~GPU設...
タイトルとURLをコピーしました