Puedes montar un repositorio de GitHub en el sandbox de tu sesión y conectarte al MCP de GitHub para crear pull requests.
Los repositorios de GitHub se almacenan en caché, por lo que las sesiones futuras que usen el mismo repositorio se inician más rápido.
Todas las solicitudes a la Managed Agents API requieren el encabezado beta managed-agents-2026-04-01. El SDK establece el encabezado beta automáticamente.
Primero, crea un agente que declare el servidor MCP de GitHub. La definición del agente contiene la URL del servidor, pero no el token de autenticación:
AGENT_ID=$(ant beta:agents create \
--name "Code Reviewer" \
--model '{id: claude-opus-4-8}' \
--system "You are a code review assistant with access to GitHub." \
--mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)Luego crea una sesión que monte el repositorio de 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",
},
],
)El resources[].authorization_token autentica la operación de clonación del repositorio y no se devuelve en las respuestas de la API.
Al proporcionar un token de GitHub, usa los permisos mínimos requeridos:
| Acción | Scopes requeridos |
|---|---|
| Clonar repositorios privados | repo |
| Crear PRs | repo |
| Leer issues | repo (privado) o public_repo |
| Crear issues | repo (privado) o public_repo |
Usa tokens de acceso personal de granularidad fina (fine-grained personal access tokens) con los permisos mínimos requeridos. Evita usar tokens con acceso amplio a tu cuenta de GitHub.
Monta múltiples repositorios agregando entradas al arreglo 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",
},
]Después de crear una sesión, puedes listar sus recursos de repositorio y rotar sus tokens de autorización. Cada recurso tiene un id que se devuelve al momento de crear la sesión (o a través de resources.list) y que usas para las actualizaciones. Los repositorios permanecen adjuntos durante toda la vida de la sesión; para cambiar qué repositorios están montados, crea una nueva sesión.
# Listar recursos en la sesión
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# Rotar el token de autorización
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)Con el servidor MCP de GitHub, el agente puede crear ramas, hacer commit de los cambios y enviarlos mediante 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.",
},
],
},
],
)Transmite eventos y dirige al agente mientras abre el pull request
Conecta más servidores MCP para darle al agente herramientas adicionales
Monta archivos en el sandbox junto con tus repositorios
Was this page helpful?