Loading...
    • Erstellen
    • Admin
    • Modelle & Preise
    • Client SDKs
    • API-Referenz
    Search...
    ⌘K
    Erste Schritte
    Einführung in ClaudeSchnellstart
    Entwickeln mit Claude
    FunktionsübersichtVerwendung der Messages APIStoppgründe behandeln
    Modellfähigkeiten
    Erweitertes DenkenAdaptives DenkenAufwandSchnellmodus (Beta: Forschungsvorschau)Strukturierte AusgabenZitateStreaming-NachrichtenStapelverarbeitungSuchergebnisseStreaming-AblehnungenMehrsprachige UnterstützungEmbeddings
    Tools
    ÜbersichtWie Tool-Nutzung funktioniertWeb-SuchtoolWeb-AbruftoolCode-AusführungstoolSpeichertoolBash-ToolComputer-Use-ToolTexteditor-Tool
    Tool-Infrastruktur
    Tool-SucheProgrammatisches Tool-AufrufenFeingranulares Tool-Streaming
    Kontextverwaltung
    KontextfensterKomprimierungKontextbearbeitungPrompt-CachingToken-Zählung
    Mit Dateien arbeiten
    Files APIPDF-UnterstützungBilder und Vision
    Skills
    ÜbersichtSchnellstartBest PracticesSkills für UnternehmenSkills in der API
    MCP
    Remote-MCP-ServerMCP-Connector
    Prompt-Engineering
    ÜbersichtBest Practices für PromptsConsole-Prompting-Tools
    Testen und Evaluieren
    Erfolg definieren und Evaluierungen erstellenDas Evaluierungstool in der Console verwendenLatenz reduzieren
    Leitplanken stärken
    Halluzinationen reduzierenAusgabekonsistenz erhöhenJailbreaks abmildernPrompt-Lecks reduzieren
    Ressourcen
    Glossar
    Versionshinweise
    Claude Platform
    Console
    Log in
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...
    Loading...

    Solutions

    • AI agents
    • Code modernization
    • Coding
    • Customer support
    • Education
    • Financial services
    • Government
    • Life sciences

    Partners

    • Amazon Bedrock
    • Google Cloud's Vertex AI

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Company

    • Anthropic
    • Careers
    • Economic Futures
    • Research
    • News
    • Responsible Scaling Policy
    • Security and compliance
    • Transparency

    Learn

    • Blog
    • Catalog
    • Courses
    • Use cases
    • Connectors
    • Customer stories
    • Engineering at Anthropic
    • Events
    • Powered by Claude
    • Service partners
    • Startups program

    Help and security

    • Availability
    • Status
    • Support
    • Discord

    Terms and policies

    • Privacy policy
    • Responsible disclosure policy
    • Terms of service: Commercial
    • Terms of service: Consumer
    • Usage policy
    Arbeit an Agenten delegieren

    Auf GitHub zugreifen

    Verbinden Sie Ihren Agenten mit GitHub-Repositories zum Klonen, Lesen und Erstellen von Pull Requests.

    Was this page helpful?

    • GitHub MCP und Session-Ressourcen
    • Token-Berechtigungen
    • Mehrere Repositories
    • Repositories in einer laufenden Session verwalten
    • Pull Requests erstellen

    Sie können ein GitHub-Repository in Ihren Session-Container einbinden und eine Verbindung zum GitHub MCP herstellen, um Pull Requests zu erstellen.

    GitHub-Repositories werden zwischengespeichert, sodass zukünftige Sessions, die dasselbe Repository verwenden, schneller starten.

    Alle Managed Agents API-Anfragen erfordern den managed-agents-2026-04-01 Beta-Header. Das SDK setzt den Beta-Header automatisch.

    GitHub MCP und Session-Ressourcen

    Erstellen Sie zunächst einen Agenten, der den GitHub MCP-Server deklariert. Die Agentendefinition enthält die Server-URL, aber kein Auth-Token:

    agent_id=$(curl -fsS https://api.anthropic.com/v1/agents \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" \
      --data @- <<JSON | jq -r '.id'
    {
      "name": "Code Reviewer",
      "model": "claude-sonnet-4-6",
      "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": "github"
        }
      ]
    }
    JSON
    )

    Erstellen Sie dann eine Session, die das GitHub-Repository einbindet:

    Das resources[].authorization_token authentifiziert den Repository-Klonvorgang und wird in API-Antworten nicht zurückgegeben.

    Token-Berechtigungen

    Verwenden Sie beim Bereitstellen eines GitHub-Tokens die minimal erforderlichen Berechtigungen:

    AktionErforderliche Scopes
    Private Repos klonenrepo
    PRs erstellenrepo
    Issues lesenrepo (privat) oder public_repo
    Issues erstellenrepo (privat) oder public_repo

    Verwenden Sie fein abgestufte persönliche Zugriffstoken mit minimal erforderlichen Berechtigungen. Vermeiden Sie die Verwendung von Token mit umfassendem Zugriff auf Ihr GitHub-Konto.

    Mehrere Repositories

    Binden Sie mehrere Repositories ein, indem Sie Einträge zum resources-Array hinzufügen:

    Repositories in einer laufenden Session verwalten

    Nachdem eine Session erstellt wurde, können Sie ihre Repository-Ressourcen auflisten und deren Autorisierungstoken rotieren. Jede Ressource hat eine id, die zum Zeitpunkt der Session-Erstellung zurückgegeben wird (oder über resources.list), die Sie für Aktualisierungen verwenden. Repositories sind für die Lebensdauer der Session eingebunden; um zu ändern, welche Repositories eingebunden sind, erstellen Sie eine neue Session.

    Pull Requests erstellen

    Mit dem GitHub MCP-Server kann der Agent Branches erstellen, Änderungen committen und diese pushen:

    session_id=$(curl -fsS https://api.anthropic.com/v1/sessions \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" \
      --data @- <<JSON | jq -r '.id'
    {
      "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"
        }
      ]
    }
    JSON
    )
    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"
      }
    ]'
    # List resources on the session
    repo_resource_id=$(curl -fsS "https://api.anthropic.com/v1/sessions/$session_id/resources" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" | jq -r '.data[0].id')
    echo "$repo_resource_id"  # "sesrsc_01ABC..."
    
    # Rotate the authorization token
    curl -fsS "https://api.anthropic.com/v1/sessions/$session_id/resources/$repo_resource_id" \
    # ...
      -o /dev/null \
      --data @- <<JSON
    {
      "authorization_token": "ghp_your_new_github_token"
    }
    JSON
    curl -fsS "https://api.anthropic.com/v1/sessions/$session_id/events" \
      -H "x-api-key: $ANTHROPIC_API_KEY" \
      -H "anthropic-version: 2023-06-01" \
      -H "anthropic-beta: managed-agents-2026-04-01" \
      -H "content-type: application/json" \
      -o /dev/null \
      --data @- <<JSON
    {
      "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."
            }
          ]
        }
      ]
    }
    JSON