Skip to main content
Glama

create_pull_request

Creates a GitHub pull request from an existing head branch to a chosen base branch, with optional title, body, and draft status.

Instructions

Create a pull request for the current or supplied head branch. The branch must already exist on GitHub.

Input Schema

NameRequiredDescriptionDefault
baseNo
bodyNo
headNo
draftNo
titleYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.1.0

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the creation action and one precondition, but it omits permissions/auth requirements, whether the operation is idempotent, what happens if a PR already exists, and what response or side effects to expect.

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 description is two short sentences with no wasted text. It is front-loaded with the core action and follows with the key branch precondition.

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

Completeness2/5

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

For a mutation tool with five parameters, no annotations, no schema descriptions, and no output schema, the definition is thin. It covers the high-level action and one precondition but leaves important calling details such as base branch defaults, draft behavior, required title semantics, and result format unaddressed.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for all five parameters. It adds meaning only for 'head' by saying it can be current or supplied and must exist, while leaving 'title' required status, 'base', 'body', and 'draft' completely unexplained.

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

Purpose4/5

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

The description states a specific verb and resource: create a pull request. It also clarifies head-branch behavior, but it does not explicitly distinguish itself from siblings such as list_pull_requests or merge_pull_request beyond the verb 'create'.

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

Usage Guidelines3/5

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

It gives a useful precondition that the branch must already exist on GitHub and implies the tool is used for the current or supplied head branch. However, it does not say when to use this versus alternatives like create_branch or merge_pull_request, nor does it describe exclusions or failure conditions.

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