Claude Platform Docs
Managed AgentsGestionar el contexto del agente

Acceso a GitHub

Conecta tu agente a repositorios de GitHub para clonar, leer y crear pull requests.

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.

MCP de GitHub y recursos de sesión

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:

ant apply code-reviewer.md
code-reviewer.md
---
name: Code Reviewer
model: claude-opus-5-5
mcp_servers:
  - type: url
    name: github
    url: https://api.githubcopilot.com/mcp/
tools:
  - type: agent_toolset_20260401
  - type: mcp_toolset
    mcp_server_name: github
---

You are a code review assistant with access to GitHub.

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",
        },
    ],
)

Un recurso github_repository acepta los siguientes campos:

CampoDescripción
typeObligatorio. Debe ser "github_repository".
urlObligatorio. La URL HTTPS del repositorio en la forma https://github.com/<owner>/<repo>, sin un sufijo .git. Otras formas, incluidas las URL SSH, se rechazan con un invalid_request_error.
authorization_tokenObligatorio. El token de GitHub usado para clonar el repositorio. No se muestra en las respuestas de la API. Consulta Permisos de token.
mount_pathOpcional. El directorio bajo /workspace en el que clonar el repositorio. Por defecto es /workspace/<repo-name>.
checkoutOpcional. Una rama ({"type": "branch", "name": "main"}) o commit ({"type": "commit", "sha": "..."}) a revisar. Por defecto es la rama predeterminada del repositorio.

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 revisado al inicio de la sesión. Consulta Cargar skills desde un repositorio de GitHub.

Permisos de token

Al proporcionar un token de GitHub, usa los permisos mínimos requeridos:

AcciónScopes requeridos
Clonar repos privadosrepo
Crear PRsrepo
Leer issuesrepo (privado) o public_repo
Crear issuesrepo (privado) o public_repo

Múltiples repositorios

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

Gestión de repositorios en una sesión en ejecución

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 devuelto en el momento de la creación de la sesión (o a través de resources.list) que usas para las actualizaciones. Los repositorios se adjuntan durante toda la vida de la sesión; para cambiar qué repositorios están montados, crea una nueva sesión.

# List resources on the session
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id)  # "sesrsc_01ABC..."

# Rotate the authorization token
client.beta.sessions.resources.update(
    repo_resource_id,
    session_id=session.id,
    authorization_token="ghp_your_new_github_token",
)

Creación de pull requests

Con el servidor MCP de GitHub, el agente puede crear ramas, confirmar cambios y enviarlos:

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.",
                },
            ],
        },
    ],
)

Próximos pasos

Transmite eventos y dirige al agente mientras abre el pull request

Conecta más servidores MCP para dar al agente herramientas adicionales

Monta archivos en el sandbox junto con tus repositorios

Was this page helpful?