Skip to main content
Glama

Mark a GitHub pull request ready, or back to draft

github_pr_ready
Idempotent

Mark a draft pull request ready for review, or use undo to turn it back into a draft; only open pull requests can change.

Instructions

Mark a draft pull request ready for review, or with undo true turn it back into a draft. Marking it ready notifies the people asked to review it. A pull request that is in the asked state already is left as it is: nothing is sent and changed is false. Only an open pull request can change; a closed or merged one is an error. A pull request is 12, #12, owner/repo#12 or its URL; a bare number means the working tree's repository, or repo.

Input Schema

NameRequiredDescriptionDefault
prYesThe pull request, as 12, #12, owner/repo#12 or its URL.
repoNoowner/name; defaults to the working tree's repository (its origin). Used for a bare number.
undoNoTurn the pull request back into a draft instead of marking it ready.

Output Schema

NameRequiredDescriptionDefault
prYes
urlYes
repoYes
draftYesWhether the pull request is a draft now.
changedYesFalse when the pull request was in the asked state already and nothing was sent.
foreignYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.7.0

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, idempotent=true, destructive=false), it discloses the side effect that marking ready notifies requested reviewers, that redundant calls send nothing and return changed=false, and that closed/merged PRs error out. This is exactly the extra context the annotations cannot carry.

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

Conciseness4/5

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

Front-loads the two modes and keeps every sentence informative, with no filler. Some phrasing is dense and awkward ('is in the asked state already is left as it is'), which slightly hurts scannability.

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

Completeness5/5

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

For a three-parameter mutation tool with full schema coverage, annotations, and an output schema, the description covers the side effects, no-op semantics, failure preconditions, and argument forms. Nothing an agent needs to invoke it correctly is missing.

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 coverage is 100%, so all three parameters are already documented, and the description largely restates the pr format and repo fallback already in the schema. It does add meaning for undo (the direction switch) and for how a bare number resolves, but that is marginal added value.

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?

States a specific verb and resource (mark a pull request ready / back to draft) and names the exact flag that reverses direction. An agent can distinguish it from github_pr_edit, github_pr_close, or github_pr_review from the description alone.

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?

Explicitly defines the undo case, the no-op case (already in the asked state), and the precondition that only open pull requests can change, with closed/merged treated as an error. It stops short of naming which sibling to use for non-state changes, but the when-to-use boundaries are clear.

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