Labsco
MCP SERVER

GitHub PR & Issue Analyser

by saidsef

Review a pull request end to end from your assistant — diff, linked issues, CI status, inline comments, approval and merge — plus issues, tags and releases.

Git Hosting & Code Review
Summary
OAuth mode means the audit trail names the right person.

In the default mode every action is taken by the server's own token, so a merge shows up as that account. Switch on the OAuth variables and each user's own token is used for their calls, which is what you want the moment more than one person is connected. Note that the same connection that reads a diff can also merge it — worth deciding deliberately whether the token you hand it should be able to.

What it is

An MCP server that puts GitHub's pull request and issue workflow behind tool calls, using the REST API for most of it and GraphQL where REST cannot answer — linked issues and user activity in particular. It runs over stdio for a single user, or over HTTP where each user authenticates with their own GitHub identity.

What you get
  • Reading a PR properly — the diff or patch, title, description, author, timestamps and state, the issues that will auto-close on merge via `closingIssuesReferences`, and the CI check conclusions for its HEAD commit
  • Acting on a PR — create it with head and base branches and a draft option, update title and body, add a general comment, add inline review comments on specific lines, submit a review that approves or requests changes, update assignees, and merge with merge, squash or rebase
  • Issues — create, update with title, body, labels and state, list all open issues or PRs for a user or organisation, assign users
  • Releases — create tags on commits and publish releases with changelogs
  • People — search user profiles, and fetch commit, PR, issue and review contributions filtered by organisation, repository or date
Requirements

Python 3.12+ and a GitHub personal access token with `repo` scope as `GITHUB_TOKEN`. For stdio, that one variable plus `uvx` pointed at the repository URL is the whole config. For HTTP, add `MCP_ENABLE_REMOTE` and clients authenticate with `Authorization: Bearer <GITHUB_TOKEN>` against `http://localhost:8081/mcp`; `PORT`, `HOST` and `GITHUB_API_TIMEOUT` adjust the defaults. For multi-user OAuth, also set `GITHUB_OAUTH_CLIENT_ID`, `GITHUB_OAUTH_CLIENT_SECRET` and `GITHUB_OAUTH_BASE_URL`, with the OAuth App's callback URL ending `/auth/callback`; set `REDIS_HOST_PORT` to keep token state in Redis rather than process memory. Also published as `ghcr.io/saidsef/mcp-github-pr-issue-analyser`.

Setup effort

One command plus a key — uvx https://github.com/saidsef/mcp-github-pr-issue-analyser.git, then supply credentials