Skip to content

enable linking branch via mcp #2720

@rvaldomir

Description

@rvaldomir

###Describe the feature or problem you'd like to solve

When working with GitHub issues in an agentic workflow, creating a branch that is properly linked to an issue via the Development section requires either the GraphQL createLinkedBranch mutation or the REST endpoint POST /repos/{owner}/{repo}/issues/{issue_number}/branches. The current create_branch tool only accepts branch, from_branch, owner, and repo — with no way to associate the branch with an issue.

As a result, branches created by AI agents appear unlinked in the GitHub UI, breaking the issue → branch → PR traceability chain that teams rely on for project tracking.

Proposed solution

Add an optional issue_number parameter to the existing create_branch tool (or expose a new create_linked_branch tool) that calls POST /repos/{owner}/{repo}/issues/{issue_number}/branches. When provided, the created branch automatically appears in the issue's Development section, closing the gap in the issue lifecycle.

This mirrors the behavior of gh issue develop #N --branch-name my-branch in the GitHub CLI.

Example prompts or workflows (for tools/toolsets only)

Agentic development loop — "Fix issue #42" → agent creates issue, calls create_branch with issue_number: 42, pushes commits, opens PR with Closes #42. The full issue lifecycle is traceable in the GitHub UI without any manual steps.

Project board automation — Teams using GitHub Projects can see the branch linked directly on the issue card, giving PMs visibility into which issues are actively being worked on before the PR is opened.

Multi-agent workflows — A planning agent creates the issue and the linked branch, then hands off to a coding agent. The Development section link makes it unambiguous which branch belongs to which issue across agents.

QA-to-dev handoff — A QA agent files a bug report (issue), a dev agent immediately creates a linked branch. The Development link is visible to the QA agent when it checks the issue status later to verify the fix.

Additional context
The GitHub REST API already supports this via POST /repos/{owner}/{repo}/issues/{issue_number}/branches (documented at https://docs.github.com/en/rest/issues/issues#create-a-branch-for-an-issue). This is a thin wrapper — no new authentication scope is required beyond what create_branch already uses. The only addition needed is passing issue_number in the request body.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions