Skip to main content
Glama

get_github_pull_request

Read-onlyIdempotent

Fetch a single GitHub pull request by its ID from OpenProject’s read-only mirror, useful for checking PR status or details when the linked work package is visible.

Instructions

Get a single GitHub pull request by its own id.

GitHub pull requests are read-only mirror rows synced by OpenProject's own GitHub App integration -- never creatable via this API. An empty or 404 result can mean either the pull request doesn't exist, or the GitHub App integration isn't configured on this instance; OpenProject's API does not distinguish these cases.

Unlike work-package-scoped lookups in this domain, this global lookup relies on OpenProject's own visibility check (whether the linked work package is visible to the API token), not on this MCP's OPENPROJECT_READ_PROJECTS allowlist -- the pull request payload carries no project link for this MCP to check against.

Input Schema

NameRequiredDescriptionDefault
github_pull_request_idYes

Output Schema

NameRequiredDescriptionDefault
idYes
bodyYes
draftYes
stateYes
titleYes
authorYes
labelsYes
mergedYes
numberYes
html_urlYes
merged_atYes
merged_byYes
created_atYes
repositoryYes
updated_atYes
body_lengthYes
body_truncatedYes
comments_countYes
additions_countYes
deletions_countYes
github_updated_atYes
changed_files_countYes
repository_html_urlYes
review_comments_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.4.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the bar is low, yet the description adds substantial context the annotations can't: mirror rows are synced read-only and never creatable, an empty or 404 result conflates 'not found' with 'GitHub App not configured', and visibility is governed by OpenProject's own check rather than the MCP OPENPROJECT_READ_PROJECTS allowlist. That last point is exactly the kind of behavioral surprise an agent must know to interpret empty results and access patterns correctly.

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-loaded with the core action, then justification paragraphs that each add distinct value (read-only mirror, 404 ambiguity, visibility semantics). Dense but no filler sentence; slightly long for a one-parameter getter.

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?

Output schema exists, so return values need no explanation, and the description still covers the non-obvious failure modes and access model. For a single-param read tool, nothing an agent needs in order to call or interpret it 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 0% for the single required integer, so the description carries the burden. 'By its own id' hints that this is the mirror row's id rather than GitHub's PR number, which is genuinely useful, but it never states the type or definitively disambiguates OpenProject id vs. GitHub PR number, leaving the one parameter partially specified.

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 (get a single GitHub pull request) scoped by its own id, and implicitly separates itself from the sibling list_work_package_github_pull_requests by calling itself a 'global lookup' versus 'work-package-scoped lookups'. An agent can tell exactly what this returns without opening the schema.

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 contrasts the global lookup against work-package-scoped lookups in the same domain, which routes the agent away from the list/related siblings when it lacks a work package context. It does not spell out a positive 'use this when you have an id' rule, but the contrast is clear enough to select correctly.

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

Deploy Server

Other Tools