You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The list_pull_request_reviews tool (maps to GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews) only returns the first page of results (~30 reviews) and provides no way to fetch subsequent pages. There is no page, per_page, or cursor parameter exposed, and there is no indication in the response that results were truncated.
Impact: On PRs with many review passes (e.g., iterative CI-driven review loops), the most recent reviews are silently absent. The caller receives a valid-looking response with no error or truncation signal, making it impossible to distinguish "no review yet" from "review exists but is on page 2+".
This is a silent data-loss bug — the tool returns success with a subset of results and no indication that more exist.
Steps to reproduce
Create a PR that accumulates more than 30 review events (a mix of author reply reviews and bot reviews both count toward the limit).
Call the MCP list_pull_request_reviews tool on that PR.
(a) Expose page / per_page parameters so callers can paginate.
(b) Internally paginate and return all results in a single call.
(c) Include a has_more: true field or total_count in the response so callers know the result is partial.
Option (b) is preferred for agentic use cases — agents have no retry/pagination loop and silently act on incomplete data.
Additional context
This same truncation likely affects other list endpoints (e.g., list_issues, list_pull_requests) that map to paginated GitHub REST APIs.
Confirmed against github/github-mcp-server via VS Code Copilot agent session; the MCP tool returned 30 reviews while gh api --paginate returned the full set including the most recent review on the current head SHA.
Describe the bug
The
list_pull_request_reviewstool (maps toGET /repos/{owner}/{repo}/pulls/{pull_number}/reviews) only returns the first page of results (~30 reviews) and provides no way to fetch subsequent pages. There is nopage,per_page, or cursor parameter exposed, and there is no indication in the response that results were truncated.Impact: On PRs with many review passes (e.g., iterative CI-driven review loops), the most recent reviews are silently absent. The caller receives a valid-looking response with no error or truncation signal, making it impossible to distinguish "no review yet" from "review exists but is on page 2+".
This is a silent data-loss bug — the tool returns success with a subset of results and no indication that more exist.
Steps to reproduce
list_pull_request_reviewstool on that PR.Workaround
The underlying REST API supports pagination. The following
ghCLI command fetches all pages correctly:Expected behavior
One of:
page/per_pageparameters so callers can paginate.has_more: truefield ortotal_countin the response so callers know the result is partial.Option (b) is preferred for agentic use cases — agents have no retry/pagination loop and silently act on incomplete data.
Additional context
list_issues,list_pull_requests) that map to paginated GitHub REST APIs.github/github-mcp-servervia VS Code Copilot agent session; the MCP tool returned 30 reviews whilegh api --paginatereturned the full set including the most recent review on the current head SHA.