Você pode montar um repositório do GitHub no sandbox da sua sessão e conectar-se ao MCP do GitHub para criar pull requests.
Os repositórios do GitHub são armazenados em cache, então sessões futuras que usam o mesmo repositório iniciam mais rapidamente.
Primeiro, crie um agente que declare o servidor MCP do GitHub. A definição do agente contém a URL do servidor, mas nenhum token de autenticação:
AGENT_ID=$(ant beta:agents create --transform id --raw-output < code-reviewer.agent.yaml)name: Code Reviewer
model:
id: claude-opus-5
system: You are a code review assistant with access to GitHub.
mcp_servers:
- type: url
name: github
url: https://api.githubcopilot.com/mcp/
tools:
- type: agent_toolset_20260401
- type: mcp_toolset
mcp_server_name: githubEm seguida, crie uma sessão que monte o repositório do GitHub:
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "github_repository",
"url": "https://github.com/org/repo",
"mount_path": "/workspace/repo",
"authorization_token": "ghp_your_github_token",
},
],
)O resources[].authorization_token autentica a operação de clonagem do repositório e não é retornado nas respostas da API.
Montar um repositório também carrega quaisquer skills armazenadas no diretório .claude/skills da raiz do repositório. As skills são descobertas uma vez por sessão, a partir do estado do repositório obtido no checkout no início da sessão. Consulte Carregar skills de um repositório do GitHub.
Ao fornecer um token do GitHub, use as permissões mínimas necessárias:
| Ação | Escopos necessários |
|---|---|
| Clonar repositórios privados | repo |
| Criar PRs | repo |
| Ler issues | repo (privado) ou public_repo |
| Criar issues | repo (privado) ou public_repo |
Monte múltiplos repositórios adicionando entradas ao array resources:
resources = [
{
"type": "github_repository",
"url": "https://github.com/org/frontend",
"mount_path": "/workspace/frontend",
"authorization_token": "ghp_your_github_token",
},
{
"type": "github_repository",
"url": "https://github.com/org/backend",
"mount_path": "/workspace/backend",
"authorization_token": "ghp_your_github_token",
},
]Depois que uma sessão é criada, você pode listar seus recursos de repositório e rotacionar seus tokens de autorização. Cada recurso tem um id retornado no momento da criação da sessão (ou através de resources.list) que você usa para atualizações. Os repositórios ficam anexados durante todo o tempo de vida da sessão; para alterar quais repositórios estão montados, crie uma nova sessão.
# Listar recursos na sessão
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotacionar o token de autorização
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Com o servidor MCP do GitHub, o agente pode criar branches, fazer commit de alterações e enviá-las via push:
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Fix the type error in src/utils.ts, commit it to a new branch, and push it.",
},
],
},
],
)Faça streaming de eventos e direcione o agente enquanto ele abre o pull request
Conecte mais servidores MCP para dar ao agente ferramentas adicionais
Monte arquivos no sandbox junto com seus repositórios
Was this page helpful?