チュートリアル:コーディングエージェントのGitHub MCPアクセスを制御する方法

このチュートリアルでは、Unity カタログと AI Gateway を使用して、GitHubへのコーディング エージェントのアクセスを管理します。 例えば、あなたのチームがClaude CodeやCursorのようなコーディングエージェントを使ってリポジトリやプルリクエストを読み込み、書き込み操作をブロックし、すべてのツール呼び出しを監査したいとします。

Azure Databricksが提供するMCPサービスsystem.ai.github使うので、MCPサーバーをホストしたり登録したり、Unity Catalogの接続を作成したりする必要はありません。 組み込みの サービス ポリシー をアタッチして、書き込み操作をブロックし、チームにアクセス権を付与し、コーディング エージェントを接続して、すべてのツール呼び出しがログに記録されることを確認します。

前提条件

ステップ1:組み込みポリシーで書き込み操作をブロックする

組み込みのGitHubサービスポリシーを付け、書き込み禁止を有効にしてください。 これにより、GitHub上でデータを作成、修正、削除するツールはブロックされ、読み取り専用ツールが許可されます。 ポリシーはプラットフォーム管理されているため、ポリシー関数を書く必要はありません。

UI

  1. ワークスペースのサイドバーで、[ AI Gateway] をクリックします。
  2. MCP タブで、system.ai.github を選択します。
  3. [ポリシー] タブ を 開き、[ 新しいポリシー] をクリックします。
  4. ポリシー名を入力します (例: block_github_writes)。
  5. ガードレールタイプで、GitHubを選択してください。
  6. 書き込みを許可しない を選択し、ポリシーを作成 をクリックします。

REST API

この API ポリシーでは、system.ai.github_policy ハンドラーを使用して、disallow_writes を true に設定しています:

databricks api patch \
  "/api/2.1/unity-catalog/mcp-services/system.ai.github?update_mask=config.service_policies" \
  --json '{
    "config": {
      "service_policies": [
        {
          "name": "block_github_writes",
          "policy_type": "POLICY_TYPE_BUILTIN",
          "handler": "system.ai.github_policy",
          "options": { "disallow_writes": "true" }
        }
      ]
    }
  }'

PATCH は、サービスのポリシー一覧に置き換わります。 サービスにすでにポリシーが存在する場合は、それらを service_policies に含めて、引き続き関連付けられた状態を維持してください。

このポリシーが適用されているため、書き込みツール (プル要求を作成するツールを含む) に対する tools/call は拒否されます。 破壊的な操作をブロックしつつ、特定の書き込みツールを許可するには、代わりにカスタム サービス ポリシーを作成してください。 利用可能なサービスとポリシー制御の詳細については、Databricks が提供する MCP サービスとサービス ポリシーを参照してください。

手順 2: MCP サービスをチームと共有する

MCP を共有することで、自分のチーム (dev_team など) に system.ai.github へのアクセスを付与します。 このガイドはDatabricksが提供するMCPの管理者権限と継承アクセスについて説明しています。

ステップ3: コーディング エージェントを接続する

MCP 対応のコーディング エージェントを導入していない場合は、導入してください。 Unity Gateway CLI (ug) を使用して、ゲートウェイ接続を構成し、デバイス上でエージェントを起動します。 たとえば、ug claude を実行すると、その構成で Claude Code が起動します。 クライアントを自分で構成するには、以下の手動設定手順に従ってください。

  1. ug がインストールされていない場合は、インストールしてバージョンを確認してください。 Python 3.12 以降および uv が必要です。 インストールの詳細については、コーディング エージェントのクイックスタートを参照してください。

    uv tool install git+https://github.com/databricks/unity-gateway
    ug --version
    
  2. ワークスペースに合わせてコーディング エージェントを構成し、プロンプトが表示されたらサインインしてください。 デバイスがすでに構成されている場合は、この手順をスキップしてください。

    ug configure --workspace https://<workspace-hostname>
    
  3. 構成済みのエージェントに GitHub MCP サービスを追加してください。 管理者が公開した構成にすでにそれが追加されている場合は、この手順をスキップしてください。

    ug mcp add --names system.ai.github
    
  4. サービスが設定済みの接続に表示されているか確認してください:

    ug mcp list
    
  5. エージェントを起動または再起動してサービスを利用してください。 たとえば、Claude Code を起動します。

    ug claude
    

    Claude Codeで /mcp を入力して接続状況を確認してください。 他の起動コマンドやMCPの設定オプションについては、「 ツールとスキルの追加 」および ug CLIリファレンスを参照してください。

手動設定の場合は、サポートされているコーディング エージェントでクライアントを選択してください。 このMCPエンドポイントを組み込みサービス用に使用してください:

https://<workspace-url>/ai-gateway/mcp-services/system.ai.github

OpenAIエージェントSDKを含む呼び出しの例については、「PythonエージェントでMCPツールを使う」を参照してください。

手順 4: アクティビティが管理され、ログに記録されていることを確認する

ガバナンスが両方の端から機能していることを確認します。

  • ポリシーの強制:エージェントからは読み取り専用ツールが成功し、プルリクエストを作成する書き込みツールはポリシーエラーで拒否されます。

  • 使用状況ログ: 使用状況システム テーブルにクエリを実行して、呼び出しが記録されていることを確認します。

    SELECT service_name, mcp_metadata.tool_name AS tool_name, status_code, COUNT(*) AS calls
    FROM system.ai_gateway.usage
    WHERE service_type = 'MCP_SERVICE'
      AND service_name = 'system.ai.github'
    GROUP BY service_name, mcp_metadata.tool_name, status_code
    ORDER BY calls DESC;
    

監視の詳細については、「 使用状況の監視」を参照してください。

次のステップ