Tutorial: Controlar el acceso MCP de GitHub de un agente de programación

En este tutorial, controlará el acceso de un agente de codificación a GitHub mediante unity Catalog y AI Gateway. Supongamos que tu equipo utiliza un agente de programación como Claude Code o Cursor con el servidor MCP de GitHub, y quieres que los desarrolladores lean repositorios y abran solicitudes de incorporación de cambios a través del agente, pero sin que nunca puedan realizar envíos forzados ni eliminaciones, y que se audite cada llamada a la herramienta.

Utiliza el system.ai.github servicio MCP predefinido que proporciona Azure Databricks, por lo que no tiene que alojar ni registrar un servidor MCP ni crear una conexión de Unity Catalog. Adjunte una directiva de servicio integrada para bloquear las operaciones de escritura, conceder acceso al equipo, conectar un agente de codificación y confirmar que se registra cada llamada de herramienta.

Prerequisites

  • Un área de trabajo habilitada para el catálogo de Unity. Consulte Introducción al catálogo de Unity.
  • Los siguientes privilegios del servicio integrado system.ai.github:
    • MANAGE, para adjuntar una directiva de servicio.
    • EXECUTE, para invocar el servicio y para conceder acceso a otros usuarios.
  • La CLI de Databricks de Azure, autenticada para tu área de trabajo.

Paso 1: Bloquear operaciones destructivas con una directiva integrada

El servicio MCP system.ai.github expone las herramientas de lectura de GitHub y, de forma predeterminada, rechaza las herramientas de escritura. Para que esa garantía sea explícita y esté sujeta a control, asocie la directiva integrada system.ai.github_policy con la opción disallow_writes. Las directivas integradas son administradas por la plataforma: se hace referencia al controlador en lugar de escribir su propia función.

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

Con la directiva asociada, cualquier tools/call para una herramienta de escritura (una herramienta no marcada como de solo lectura) se rechaza, mientras que las herramientas de lectura y de solicitud de incorporación de cambios siguen funcionando. Para obtener más información sobre los servicios y directivas integrados, consulte Servicios MCP proporcionados por Databricks y Directivas de servicio para elementos protegibles de IA.

Paso 2: Compartir el servicio MCP con el equipo

De forma predeterminada, solo los principales con EXECUTE pueden invocar el servicio. Para conceder acceso al equipo de desarrolladores desde la interfaz de usuario:

  1. En ai Gateway, vaya a la pestaña MCP y seleccione el servicio MCP que se va a compartir, como system.ai.github.
  2. Vaya a la pestaña Permisos.
  3. Haga clic en Permitir.
  4. Especifique el principal al que desea permitir invocar el MCP Service, por ejemplo, dev_team; seleccione el privilegio EXECUTE y haga clic en Confirmar.

Note

Para conceder acceso a un servicio MCP en system.ai, un administrador del metastore debe primero concederse a sí mismo MANAGE en el esquema system.ai.

Paso 3: Conexión del agente de codificación

Dirija su agente de código al punto de conexión MCP de AI Gateway para el servicio integrado:

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

Cada desarrollador se autentica en Azure Databricks y debe tener EXECUTE en el servicio MCP. Para conocer los pasos de configuración específicos del agente para Claude Code, Cursor y otras herramientas, consulte Conexión de MCP a asistentes de IA y agentes de codificación. Para obtener ejemplos de invocación, incluido el SDK de agentes de OpenAI, consulte Invocación del servicio MCP.

Paso 4: Confirmar que la actividad está sujeta a control y se registra

Compruebe que la gobernanza funciona desde ambos extremos:

  • Aplicación de la directiva: desde el agente, una herramienta de lectura o de solicitud de extracción se ejecuta correctamente, mientras que una herramienta de escritura se rechaza con un error de directiva.

  • Registro de uso: consulte la tabla del sistema de uso para confirmar que las llamadas se registran:

    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;
    

Para más información sobre la supervisión, consulte Supervisión del uso.

Pasos siguientes