Skip to main content
Glama

github_push

Push a branch from this run's checkout.

Requires the org's agent-writes switch. A non-default branch pushes when the switch is on. Pushing the default branch follows the org's review settings for destructive actions (a person's approval by default). Force-push is refused. The token is the acting user's, or a one-repo installation token minted for this call.

Input Schema

NameRequiredDescriptionDefault
forceNoRefused. A force-push does not run
branchYesBranch to push. The run's bound repository only. A leading + is refused
githubNoowner/repo. Omit to use the run's bound github=. Any other repo is refused

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and does so well: it states the permission gate, that default-branch pushes are treated as destructive and require review approval, that force-push is refused, and whose token is used (acting user's or a one-repo installation token). These are exactly the operational facts an agent needs before calling a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded in one short sentence, followed by only the constraints that change behavior (switch, review gate, force-push ban, token identity). No filler or restatement of the name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations, the description covers permission gating, destructive-action review, and refusal cases; an output schema exists so return values need not be explained. It is slightly thin on what a refusal looks like at call time, but otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so branch/github/force are already documented in the schema itself, and the description adds little parameter-specific detail beyond reinforcing that force-push is refused. Baseline 3 is appropriate where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening line names a specific verb and resource plus scope: "Push a branch from this run's checkout." This clearly separates it from sibling write tools like github_merge, github_open_pr, and github_delete, which operate on PRs or repos rather than pushing a run's checkout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description spells out the enabling conditions (org's agent-writes switch), the escalation path for the default branch (org review settings, human approval by default), and an explicit exclusion (force-push refused). It stops short of naming sibling alternatives such as opening a PR instead of pushing directly, so it lands at 4 rather than 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.