Zelfstudie: De GitHub MCP-toegang van een coderingsagent beheren

In deze zelfstudie bepaalt u de toegang van een coderingsagent tot GitHub met behulp van Unity Catalog en AI Gateway. Stel dat uw team gebruikmaakt van een coderingsagent zoals Claude Code of Cursor met de MCP-server van GitHub en dat ontwikkelaars opslagplaatsen moeten lezen en pull-aanvragen via de agent moeten openen, maar nooit geforceerd pushen of verwijderen, waarbij elke aanroep van het hulpprogramma wordt gecontroleerd.

U gebruikt de vooraf gebouwde system.ai.github MCP-service die Azure Databricks biedt, zodat u geen MCP-server host of registreert of een Unity Catalog-verbinding maakt. U voegt een ingebouwd servicebeleid toe om schrijfbewerkingen te blokkeren, uw team toegang te verlenen, een coderingsagent te verbinden en te bevestigen dat elke aanroep van het hulpprogramma is vastgelegd.

Prerequisites

  • Een werkruimte waarvoor Unity Catalog is ingeschakeld. Zie Aan de slag met Unity Catalog.
  • De volgende bevoegdheden voor de ingebouwde service system.ai.github:
    • MANAGEom een servicebeleid toe te voegen.
    • EXECUTEom de service aan te roepen en toegang te verlenen aan anderen.
  • De Azure Databricks CLI, geverifieerd voor uw werkruimte.

Stap 1: Destructieve bewerkingen blokkeren met een ingebouwd beleid

De system.ai.github MCP-service maakt GitHub leeshulpprogramma's beschikbaar en mislukt standaard bij schrijfhulpprogramma's. Als u deze garantie expliciet en beheerd wilt maken, koppelt u het ingebouwde system.ai.github_policy beleid aan de disallow_writes optie. Ingebouwde beleidsregels worden door het platform beheerd: u verwijst naar de handler in plaats van uw eigen functie te schrijven.

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" }
        }
      ]
    }
  }'

Als het beleid is gekoppeld, wordt een tools/call voor elk schrijfhulpprogramma (een hulpprogramma dat niet als alleen-lezen is gemarkeerd) afgewezen, terwijl hulpprogramma's voor lezen en pullrequests blijven werken. Zie voor meer informatie over ingebouwde services en beleidsregels door Databricks geleverde MCP-services en servicebeleid voor AI-beveiligbare items.

Stap 2: de MCP-service delen met uw team

Standaard kunnen alleen principals met EXECUTE de service aanroepen. Uw ontwikkelaarsteam toegang verlenen vanuit de gebruikersinterface:

  1. Ga in de AI-gateway naar het tabblad MCP's en selecteer de MCP-service die u wilt delen, zoals system.ai.github.
  2. Ga naar het tabblad Machtigingen .
  3. Klik op Toestaan.
  4. Geef de principal op waarmee de MCP-service kan worden aangeroepen, zoals dev_team, selecteer de EXECUTE-bevoegdheid en klik op Bevestigen.

Note

Als u toegang wilt verlenen voor een MCP-service in system.ai, moet een metastore-beheerder zichzelf eerst MANAGE verlenen op het schema system.ai.

Stap 3: Uw coderingsagent verbinden

Wijs uw coderingsagent aan op het MCP-eindpunt van de AI Gateway voor de ingebouwde service:

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

Elke ontwikkelaar meldt zich aan bij Azure Databricks en moet beschikken over EXECUTE op de MCP-service. Zie MCPs verbinden met AI-assistenten en coderingsagenten voor agentspecifieke installatiestappen voor Claude Code, Cursor en andere hulpprogramma's. Zie De MCP-service aanroepen voor voorbeelden, waaronder de OpenAI Agents SDK.

Stap 4: Controleren of de activiteit wordt beheerd en geregistreerd

Controleer of het beheer aan beide kanten werkt:

  • Beleidshandhaving: Vanuit de agent slaagt een read- of pull-requesttool, terwijl een writetool wordt geweigerd vanwege een beleidsfout.

  • Gebruikslogboekregistratie: Voer een query uit op de tabel met het gebruikssysteem om te bevestigen dat aanroepen worden vastgelegd:

    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;
    

Zie Gebruik bewaken voor meer informatie over bewaking.

Volgende stappen