チュートリアル:コーディング エージェントの GitHub MCP アクセスを制御する
このチュートリアルでは、Unity Catalog と AI Gateway を使用して、コーディングエージェントの GitHub へのアクセスを管理する方法について説明します。チームが Claude Code や Cursor などのコーディングエージェントを使用してリポジトリやプルリクエストを読み取る一方で、書き込み操作をブロックし、すべてのツール呼び出しを監査したいとします。
Databricks が提供する system.ai.github MCPサービス を使用するため、MCPサーバーをホストまたは登録したり、Unity Catalogコネクションを作成したりする必要はありません。組み込みのサービスポリシーをアタッチして書き込み操作をブロックし、チームにアクセス権を付与し、コーディングエージェントを接続して、すべてのツールコールがログに記録されることを確認します。
前提条件
- Unity Catalog が有効になっているワークスペース。Unity Catalog の概要を参照してください。
- アカウントで有効になっている Unity Gateway ベータ版機能。アカウント管理者は、アカウント コンソールの [プレビュー] ページから有効にできます。詳細については、Databricks プレビューの管理を参照してください。
system.ai.githubの呼び出しと共有およびポリシーのアタッチの権限。- ステップ 1 で REST API を使用するには、ワークスペースに対して Databricks CLI の認証を行います。
- If your ワークスペース uses a restricted Serverless network policy, an アカウント admin must allow the destinations required by the GitHub MCP Service.
ステップ1:組み込みポリシーで書き込み操作をブロックする
組み込みの GitHub サービスポリシーをアタッチし、 [Disallow writes] を有効にします。これにより、読み取り専用ツールを許可しながら、GitHub上のデータを作成、変更、または削除するツールがブロックされます。このポリシーはプラットフォームで管理されるため、ポリシー関数を記述する必要はありません。
- UI
- REST API
- In the ワークスペース sidebar, click AI Gateway .
- MCPs tab で
system.ai.githubを選択します。 - [ ポリシー ] タブ を開き、[ 新しいポリシー ] をクリックします。
block_github_writesなどのポリシー名を入力します。- ガードレールタイプ で、 GitHub を選択します。
- 書き込み不可 を選択し、 ポリシーの作成 をクリックします。
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: コーディングエージェントを接続する
Install an MCP-capable coding agent if you don't already have one.Use the Unity Gateway CLI (ug) to configure the gateway connection and launch the agent on your device.For example, ug claude opens Claude Code with that configuration.To configure a client yourself, follow the manual setup below.
-
ugがインストールされていない場合は、インストールしてバージョンを確認してください。Python 3.12 以降とuvが必要です。インストールの詳細については、コーディングエージェントのクイックスタートを参照してください。Bashuv tool install git+https://github.com/databricks/unity-gateway
ug --version -
ワークスペース用のコーディングエージェントを設定し、プロンプトが表示されたらサインインします。デバイスがすでに構成されている場合は、このステップをスキップします。
Bashug configure --workspace https://<workspace-hostname> -
設定されたエージェントに GitHub MCP サービスを追加します。管理者の公開済み構成によってすでに追加されている場合は、このステップをスキップします。
Bashug mcp add --names system.ai.github -
サービスが構成済みの接続に表示されていることを確認します。
Bashug mcp list -
エージェントを起動または再起動してサービスを使用します。たとえば、Claude Codeを起動します。
Bashug claudeClaude Codeで接続ステータスを確認するには、
/mcpを入力します。その他の起動コマンドおよびMCPのセットアップオプションについては、ツールの追加とスキルおよびug CLIリファレンスを参照してください。
手動でセットアップするには、サポートされているコーディングエージェントでクライアントを選択します。組み込みサービスにはこのMCP Endpointを使用します:
https://<workspace-url>/ai-gateway/mcp-services/system.ai.github
OpenAI Agents SDK などの呼び出し例については、Python エージェントでの MCP ツールの使用を参照してください。
ステップ 4:アクティビティが管理およびログに記録されていることを確認します。
ガバナンスが両端から機能していることを確認します:
-
ポリシーの適用 : エージェントからは、読み取り専用ツールは成功し、プルリクエストを作成するような書き込みツールはポリシーエラーで拒否されます。
-
使用状況ロギング :使用状況システムテーブルにクエリを実行して、呼び出しが記録されていることを確認します。
SQLSELECT 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;
モニタリングの詳細については、使用状況を監視するを参照してください。