Вы можете подключить репозиторий GitHub к контейнеру сеанса и подключиться к GitHub MCP для создания запросов на слияние.
Репозитории GitHub кэшируются, поэтому будущие сеансы, использующие один и тот же репозиторий, запускаются быстрее.
Все запросы Managed Agents API требуют заголовка бета-версии managed-agents-2026-04-01. SDK автоматически устанавливает заголовок бета-версии.
Сначала создайте агента, который объявляет сервер GitHub MCP. Определение агента содержит URL сервера, но не содержит токена аутентификации:
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
)Затем создайте сеанс, который подключает репозиторий GitHub:
resources[].authorization_token аутентифицирует операцию клонирования репозитория и не отражается в ответах API.
При предоставлении токена GitHub используйте минимально необходимые разрешения:
| Действие | Требуемые области |
|---|---|
| Клонирование приватных репозиториев | repo |
| Создание PR | repo |
| Чтение проблем | repo (приватный) или public_repo |
| Создание проблем | repo (приватный) или public_repo |
Используйте детализированные личные токены доступа с минимально необходимыми разрешениями. Избегайте использования токенов с широким доступом к вашей учетной записи GitHub.
Подключите несколько репозиториев, добавив записи в массив resources:
После создания сеанса вы можете перечислить его ресурсы репозитория и ротировать их токены авторизации. Каждый ресурс имеет id, возвращаемый во время создания сеанса (или через resources.list), который вы используете для обновлений. Репозитории подключены на время жизни сеанса; чтобы изменить, какие репозитории подключены, создайте новый сеанс.
С сервером GitHub MCP агент может создавать ветки, фиксировать изменения и отправлять их:
Was this page helpful?
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"
}
JSONcurl -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