Skip to main content
Glama

ado_pull_request_create

Destructive

Create a pull request in Azure DevOps by defining source and target branches, title, and optional description; supports draft PRs and requires confirming target and contents.

Instructions

WRITE: Create a pull request. Confirm target, branches and contents with the user. Never retried automatically.

Input Schema

NameRequiredDescriptionDefault
titleYes
targetYes
isDraftNo
descriptionNo
sourceRefNameYes
targetRefNameYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=false and openWorldHint=true; the description adds real value on top by flagging 'Never retried automatically' (consistent with non-idempotency) and requiring user confirmation before writing. It still doesn't say whether the created PR is immediately active, which permissions are needed, or what happens on branch conflicts.

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?

Three short clauses with the mutation class front-loaded and the safety instruction adjacent. Nothing is redundant or buried; the brevity is appropriate for a create call, with the detail burden correctly pushed to the schema.

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 destructive, non-idempotent write with a nested target object and no output schema, the description covers the two things an agent most needs (user confirmation, no auto-retry). It falls short on parameter-level behavior — draft default and ref naming — leaving the 0%-coverage schema to carry too much.

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% across 6 parameters, including a nested target object with five documented-by-name only fields, yet the description only gestures at 'target, branches and contents.' Critically it never mentions the surprise default isDraft=true, the required refs/heads/ prefix on both ref names, or the title/description limits — the agent must read the raw schema to avoid errors.

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?

States a specific verb and resource ('Create a pull request') and prefixes it with 'WRITE:', which alone separates it from read-side siblings like ado_pull_request_get/list and from ado_pull_request_update. It does not explicitly name the sibling it replaces, but the create/update split is unambiguous.

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?

'Confirm target, branches and contents with the user' is a prerequisite/guardrail rather than a selection rule, and no alternative tool is named for cases where the PR already exists (update) or for verifying state first (get/list). Usage is implied by the WRITE label rather than spelled out.

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