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.
Primero, crea un agente que declare el servidor MCP de GitHub. La definición del agente contiene la URL del servidor pero ningún token de autenticación:
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: githubLuego 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 refleja en las respuestas de la API.
Montar un repositorio también carga cualquier skill almacenada en su directorio raíz .claude/skills. Las skills se descubren una vez por sesión, a partir del estado del repositorio obtenido al inicio de la sesión. Consulta Cargar skills desde un repositorio de GitHub.
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 |
Monta múltiples repositorios agregando entradas al 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",
},
]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?