Claude Media
Claude Garoon連携の設定手順 — 公式MCPサーバーの使い方

Claude Garoon連携の設定手順 — 公式MCPサーバーの使い方

サイボウズ公式のGaroon MCPサーバーをClaude Code / Claude Desktopに接続する手順を、インストール方法別にまとめます。

Claude Garoon連携とは何か

Claude Garoon連携は、サイボウズが公式に配布する「Garoon MCP Server」で実現します。Garoonのスケジュール・施設・組織・掲示板をClaudeから操作できる仕組みです。MCPクライアントがGaroonのREST APIを呼ぶ形なので、Claude側に連携コードを書く必要はありません。

接続先はClaude DesktopとClaude Codeです。Claude Desktopは.mcpbファイルを開くだけで入り、Claude Codeはclaude mcp addでnpmパッケージかDockerイメージを登録します。コードはサイボウズがOSSとして公開しているgaroon/garoon-mcp-serverです。

READMEが前提にしているのは、Garoonのログイン名とパスワードだけです。ただしGaroon上でそのアカウントが持つ権限を超える操作はできません。

どのインストール方法を選ぶか

選択肢は3つあり、Claude Codeから使うならMCPBは選べません。READMEが、MCPBは「Claude for desktopのみがサポートしている」方式だと明記しているためです。

選び方

3つのインストール方法

  • MCPB

    Claude Desktop専用です。.mcpbファイルをClaude Desktopで開くだけで入ります。設定は画面のダイアログで入れます。

  • npmパッケージ

    Node.jsが入っていれば足ります。npx @garoon/mcp-serverで起動でき、Claude Code・Cursor・VS Codeで使えます。

  • Dockerイメージ

    Dockerが必要です。ghcr.io/garoon/mcp-server:latestを使います。クライアント証明書を使う場合は、証明書ファイルをコンテナにマウントする手間が加わります。

READMEが並べているツール一覧は、3方式で共通です。方式による機能差は書かれていません。違いは入れ方と、設定をどこに書くかに出ます。

Claude Desktopに接続する(MCPB方式)

ターミナルは使いません。リリース一覧からgaroon-mcp-server.mcpbを取得し、Claude Desktopで開きます。

手順

MCPBで入れる6ステップ

  1. 1

    リリース一覧を開く

    GitHubのgaroon/garoon-mcp-serverのReleasesを開きます。

  2. 2

    mcpbファイルをダウンロードする

    Assetsにあるgaroon-mcp-server.mcpbを保存します。

  3. 3

    Claude Desktopで開く

    ダウンロードしたファイルをClaude Desktopで開きます。

  4. 4

    インストールを選ぶ

    確認ダイアログが出るので、インストールを選びます。

  5. 5

    接続情報を入れて保存する

    設定ダイアログで、ベースURL・ユーザー名・パスワードを入力します。

  6. 6

    トグルを有効にする

    Garoon MCP Serverのトグルスイッチが無効なら、有効に切り替えます。

MCPBの設定ダイアログの項目名(Garoon Base URLなど)は、Docker・npm方式の環境変数と1対1で対応します。対応表は後述の設定項目の節にあります。

Claude Codeに接続する(npm / Docker方式)

Claude Codeではclaude mcp addで登録します。v2.1.286でヘルプを確認したところ、環境変数は-e, --env <env...>で指定します。スコープは-s, --scope <scope>で、local・user・projectの3種から選び、既定はlocalです。

npmパッケージ方式が最も軽い登録です。

claude mcp add garoon \
  --env GAROON_BASE_URL=https://example.cybozu.com/g \
  --env GAROON_USERNAME=your-username \
  --env GAROON_PASSWORD=your-password \
  -- npx @garoon/mcp-server

--envは複数の値を受け取る書式なので、サーバーのコマンドとの間には--を置きます。この区切りがないと、コマンド側の語まで環境変数として読まれかねません。

Dockerイメージ方式は、先にdocker pull ghcr.io/garoon/mcp-server:latestでイメージを取得してから登録します。

claude mcp add garoon \
  --env GAROON_BASE_URL=https://example.cybozu.com/g \
  --env GAROON_USERNAME=your-username \
  --env GAROON_PASSWORD=your-password \
  -- docker run --rm -i \
  -e GAROON_BASE_URL -e GAROON_USERNAME -e GAROON_PASSWORD \
  ghcr.io/garoon/mcp-server:latest

docker run側の-e GAROON_BASE_URLは値を書かない形です。Claude Codeがサーバープロセスに渡した環境変数を、そのままコンテナへ引き継ぎます。

登録した設定の中身

スコープを付けずに登録すると、設定は~/.claude.json側のローカルスコープに入ります。--scope projectを付けると、作業ディレクトリの.mcp.jsonに書かれます。空のディレクトリで--scope project付きのnpm方式を登録してみると、次の出力とファイルになりました(v2.1.286で確認。パスは省略しています)。

Added stdio MCP server garoon with command: npx @garoon/mcp-server to project config
{
  "mcpServers": {
    "garoon": {
      "type": "stdio",
      "command": "npx",
      "args": ["@garoon/mcp-server"],
      "env": {
        "GAROON_BASE_URL": "https://example.cybozu.com/g",
        "GAROON_USERNAME": "your-username",
        "GAROON_PASSWORD": "your-password"
      }
    }
  }
}

パスワードが平文で入ることが分かります。READMEも、ログイン情報を含む設定ファイルを保存するのはセキュリティ上のリスクがあり、自己責任での利用になると警告しています。チームで.mcp.jsonを共有するなら、値を直接書かず環境変数の参照に置き換える手があります。.mcp.jsonではenvの値にも${VAR}と${VAR:-default}が展開されます。

"env": {
  "GAROON_BASE_URL": "${GAROON_BASE_URL}",
  "GAROON_USERNAME": "${GAROON_USERNAME}",
  "GAROON_PASSWORD": "${GAROON_PASSWORD}"
}
くらべる

共有する.mcp.jsonの書き方

避けたい形

値を直書きする

パスワードがリポジトリの履歴に残ります。個人のGaroonアカウントの認証情報が、チーム全員とGit履歴に渡ります。

共有向き

${VAR}で参照する

ファイルには変数名だけが入ります。値は各自のシェルの環境変数で渡します。未設定の変数があると、claude mcp listが変数名つきで警告します。

プロジェクトスコープのサーバーは、登録しただけでは使えません。ヘルプに無い挙動ですが、公式ドキュメントによると、初回はclaudeを対話で起動して承認する必要があり、それまでは⏸ Pending approvalと表示されます。ほかのメンバーがリポジトリを取得したときも同じ承認が要ります。

登録後はclaude mcp get garoonで状態を確認します。claude mcp addのオプションやスコープの使い分けは、claude mcp addの構文からスコープ・認証までをまとめた記事で詳しく扱っています。

グローバルインストールするとPATHで詰まることがある

READMEのnpm方式は、npm install -g @garoon/mcp-serverでグローバルに入れ、設定ファイルからgaroon-mcp-serverコマンドを呼ぶ流れも示しています。ただし環境によっては、このコマンドのPATHが解決されません。READMEは、コマンドを絶対パスで指定するかnpxを試すよう案内しています。この記事のコマンド例がnpxなのは、そのためです。

設定項目と入れ方の落とし穴

設定項目は必須3つ・任意6つの計9つです。MCPBではダイアログのラベル、Docker・npmでは環境変数名になります。

MCPBのラベル環境変数説明必須
Garoon Base URL環境変数GAROON_BASE_URL説明Garoon環境のベースURL必須✓
Garoon Username環境変数GAROON_USERNAME説明ログイン名必須✓
Garoon Password環境変数GAROON_PASSWORD説明ログインパスワード必須✓
HTTPS Proxy環境変数https_proxy説明HTTPSプロキシのURL必須-
PFX File Path環境変数GAROON_PFX_FILE_PATH説明クライアント証明書(*.pfx)の絶対パス必須-
PFX File Password環境変数GAROON_PFX_FILE_PASSWORD説明クライアント証明書のパスワード必須-
Basic Auth Username環境変数GAROON_BASIC_AUTH_USERNAME説明Basic認証のユーザー名必須-
Basic Auth Password環境変数GAROON_BASIC_AUTH_PASSWORD説明Basic認証のパスワード必須-
Public Only Mode環境変数GAROON_PUBLIC_ONLY説明非公開予定を除外するモード(既定false)必須-

ベースURLの書き方は、クラウド版とパッケージ版で形が違います。READMEの例は、クラウド版がhttps://example.cybozu.com/g、パッケージ版がhttps://example.com/cgi-bin/cbgrn/grn.cgiです。自社のGaroonのログインURLから、ここに当たる部分を取り出します。

クライアント証明書を使う場合、ドメインは.s.cybozu.comになります(例: https://example.s.cybozu.com)。Docker方式では、もう一段階の手間があります。READMEのDocker用の設定例は、docker runの--mount type=bind,src=<ホスト上の.pfx>,dst=/cert.pfxでファイルをコンテナに渡します。GAROON_PFX_FILE_PATHには/cert.pfxというコンテナ内のパスを入れています。ホスト側のパスを入れても、コンテナからは見えません。

GAROON_PUBLIC_ONLYをtrueにすると、予定取得系のツールがレスポンスから非公開予定を除きます。予定の中身をClaudeに渡したくない場合の安全弁になります。ただし対象は「予定取得ツール」と説明されているので、予定の作成には作用しません。

接続後に使える13ツール

READMEのツール一覧は13個です。動詞で分けると、書き込みはCreate Schedule Eventの1つだけで、ほかは取得と検索です。

一覧

13ツールの内訳

  • 予定(3)

    Create Schedule Eventで作成、Get Schedule Eventsでユーザー・組織・施設を指定して取得、Search Available Timesで空き時間を検索します。

  • 施設(3)

    Get Facilitiesで施設名から施設IDを引きます。Garoon Get Facility Groupsで施設グループの一覧、Get Facilities In Groupでグループ所属の施設を取得します。

  • ユーザーと組織(3)

    Get Garoon Usersは名前からユーザーID・表示名・ログイン名を検索します。「私」「自分」にも対応します。Get Organizationsで組織ID、Get Users In Organizationで所属ユーザーを取得します。

  • 掲示板(3)

    Garoon Get Bulletin Categoriesでカテゴリー一覧、Garoon Get Bulletin Topicsでカテゴリー内の掲示一覧を取得します。Garoon Get Bulletin Topic Detailでは本文・添付ファイル・公開期間などを取得できます。

  • 日時(1)

    Get Current Datetimeが現在の日時を返します。

名前を引くだけのツールが多いのは、予定の取得や作成がIDを要求するからだと考えられます。READMEは理由を書いていませんが、ツール説明には「施設名から施設IDを検索」「名前からユーザーIDを検索」とあり、IDを解決する前段のツールとして置かれていることがうかがえます。「明日の午後に空いている会議室」のような依頼では、施設の検索と空き時間の確認を組み合わせる余地があります。

一覧にあるのはスケジュール・施設・組織・ユーザー・掲示板です。メッセージやワークフローを扱うツールは、一覧にありません。サイボウズの解説ページ(cybozu.dev)によると、利用できるGaroonの操作は順次追加される予定です。最新の対応範囲はREADMEのツール一覧で確認できます。Garoonの予定の使い方は、GaroonのスケジュールをClaudeで一括確認・調整する方法で扱っています。

最初の接続確認には、Get Current Datetimeで済む「今の日時を教えて」が手軽です。これはGaroonのデータを読まないツールなので、返ってきても認証が通ったとは限りません。認証とネットワーク経路まで確かめるなら、「私の今日の予定を教えて」のようにGaroonのデータを読む依頼を選びます。Garoonのユーザー情報と予定を読む依頼なので、ログイン情報が通っていれば予定が返ります。

つまずきの原因を切り分ける

接続や応答がおかしいときは、症状から原因を絞ると速く済みます。READMEとサイボウズの解説ページ、Claude Codeのドキュメントから確認できる原因は、次のとおりです。

  • サーバーがConnectedにならない: まずclaude mcp get garoonで状態を見ます。プロジェクトスコープなら⏸ Pending approval、つまり未承認の可能性があります。それ以外の接続失敗は、MCPサーバーに接続できないときの切り分け手順で原因を絞れます。
  • ツールは見えるが、パッケージ版でエラーになる: ツールが内部で呼ぶREST APIが、パッケージ版のバージョンによっては存在しません。対応バージョンはGaroon APIドキュメントで確認します。
  • 自社環境ではまったく動かない: DB分割構成はREADMEが「対応していません」と明記しています。
  • 細かい予定設定が反映されない: すべてのリクエスト・レスポンスパラメーターに対応しているとは限りません。入力や挙動が画面操作と一部異なる場合もあります。
  • 証明書認証で弾かれる: ドメインが.s.cybozu.comか、DockerならPFXファイルをマウントしたかを確認します。

Garoonのパスワードを変更したときは、登録済みの設定に書いた値も自分で直す必要があります。設定ファイルに入っているのは登録時の文字列なので、新しいパスワードは自動では反映されません。claude mcp remove garoon --scope projectで消し、同じスコープで登録し直すのが確実な手順です。環境変数の参照(${GAROON_PASSWORD})で渡している場合は、シェル側の値を更新すれば足ります。スコープを付けずに登録したなら、--scopeは不要です。

同じ名前のサーバーを複数のスコープに置くと、Claude Codeは優先度の高いスコープ(local、project、userの順)の定義だけを使います。フィールドは混ざりません。コマンドが異なる場合はclaude mcp listと/mcpが衝突を警告しますが、同じコマンドなら警告は出ません。localで試したあとにprojectへ移すときは、claude mcp remove garoon --scope localで片方を消しておくと、どちらの値が使われているか迷いません。

Googleカレンダーを使っている組織なら、標準搭載のコネクタが読み書き両対応で予定の作成・変更・削除・RSVPまで扱えます。比較はClaude Googleカレンダー連携 — 予定調整から招待までにあります。

よくある質問

Garoon MCP Serverのサポート窓口はありますか

ありません。READMEは、Garoon側のサポート窓口の対象外とし、バグ報告や機能要望はGitHubのIssuesで受け付けると書いています。ライセンスはApache License 2.0です。

追加費用はかかりますか

Garoon MCP Server自体は無料のOSSです。利用にはGaroonの契約とログインアカウントが前提になります。Claude側の利用条件は、契約しているClaudeのプランに従います。

CursorやVS Codeでも使えますか

使えます。READMEには、Cursorの.cursor/mcp.jsonとVS Codeの.vscode/mcp.json向けの設定例があります。設定の形はクライアントごとに違い、たとえばVS Codeの例は最上位のキーがserversで、"type": "stdio"が付きます。

まとめ

Claude Codeから使うなら選べるのはnpmかDockerで、チーム共有の.mcp.jsonにはパスワードを直書きせず${VAR}で渡す形が現実的です。接続確認は日時の問い合わせで終わらせず、予定の取得まで通して確かめてください。

この記事を共有:XはてブLinkedIn