Tutorial: Governe o acesso de um agente de codificação ao MCP do GitHub
Beta
Este recurso está em Beta. Os administradores de conta podem gerenciar o acesso a esse recurso na página **Prévias** do console da conta. Consulte Gerenciar prévias do Databricks.
Neste tutorial, você governa o acesso de um agente de codificação ao GitHub usando o Unity Catalog e o AI Gateway. Suponha que sua equipe use um agente de codificação, como Claude Code ou Cursor, com o servidor MCP do GitHub, e você queira que os desenvolvedores leiam repositórios e abram pull requests através do agente, mas nunca façam um 'force-push' ou excluam, com cada chamada de ferramenta auditada.
Você usa o serviço MCPsystem.ai.github pré-criado que a Databricks oferece, para não precisar hospedar ou fazer o registro de um servidor MCP nem criar uma conexão do Unity Catalog. Você anexa uma policy de serviço integrada para bloquear operações de gravação, conceder acesso à sua equipe, conectar um agente de codificação e confirmar que cada chamada de ferramenta tem um log.
Pré-requisitos
-
Um workspace habilitado para Unity Catalog. Consulte Começar a usar o Unity Catalog.
-
A prévia do Unity AI Gateway e a prévia dos Serviços MCP fornecidos pelo Databricks ativadas para sua account. Consulte Gerenciar prévias do Databricks.
-
Os seguintes privilégios no serviço integrado
system.ai.github:MANAGE, para anexar uma política de serviço.EXECUTE, para invocar o serviço e conceder acesso a outras pessoas.
-
A CLI do Databricks, autenticada em seu workspace.
O passo 1: Bloquear operações destrutivas com uma política integrada.
O system.ai.github serviço MCP expõe as ferramentas de leitura do GitHub e, por default, falha fechado em ferramentas de gravação. Para tornar essa garantia explícita e governada, anexe a política integrada system.ai.github_policy com a opção disallow_writes. Políticas integradas são gerenciadas pela plataforma: você referencia o manipulador em vez de escrever sua própria função.
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" }
}
]
}
}'
Com a política anexada, um tools/call para qualquer ferramenta de gravação (uma ferramenta não marcada como somente leitura) é rejeitado, enquanto as ferramentas de leitura e pull request continuam funcionando. Para saber mais sobre serviços e políticas integradas, consulte Serviços MCP fornecidos pela Databricks e Políticas de serviço para objetos protegíveis de AI.
O passo 2: Compartilhe o serviço MCP com sua equipe
Por default, somente os principais com EXECUTE podem invocar o serviço. Para conceder acesso à sua equipe de desenvolvedores da IU:
- No AI Gateway , vá para a tab MCPs e selecione o serviço MCP a ser compartilhado, como
system.ai.github. - Acesse a tab Permissões.
- Clique em Conceder .
- Especifique o service principal para permitir invocar o serviço MCP, como
dev_team, selecione o privilégio EXECUTE e clique em Confirmar .
Para conceder acesso em um serviço MCP em system.ai, um administrador de metastore deve primeiro conceder a si mesmo MANAGE no esquema system.ai.
O passo 3: Conecte seu agente de codificação
Aponte seu agente de codificação para o endpoint MCP do AI Gateway para o serviço integrado:
https://<workspace-url>/ai-gateway/mcp-services/system.ai.github
Cada desenvolvedor se autentica no Databricks e deve ter EXECUTE no Serviço MCP. Para os passos de configuração específicos do agente para Claude Code, Cursor e outras ferramentas, consulte Conectar MCPs a assistentes de AI e agentes de codificação. Para exemplos de invocação, incluindo o SDK de Agentes OpenAI, consulte Invocar o Serviço MCP.
O passo 4: Confirme se a atividade é governada e registrada como log.
Verifique se a governança está funcionando de ambas as extremidades:
-
Aplicação de políticas : Do agente, uma ferramenta de leitura ou pull request é bem-sucedida, enquanto uma ferramenta de escrita é rejeitada com um erro de política.
-
Registro de uso : consulte a tabela do sistema de uso para confirmar se as chamadas são registradas:
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;
Para saber mais sobre o monitoramento, consulte Monitorar o uso.