github_add_inline_pr_commentLABSCO 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
USE CASES
Reviewing a PR without leaving the editor
Read the diff, the issues it closes and the CI results together, then leave inline comments on the lines that need them.
Finding out why a PR is not mergeable
Pull the check run conclusions for its HEAD commit rather than clicking through the checks tab.
Cutting a release
Tag the commit and publish the release with a changelog assembled from the merged PRs.
Seeing what someone actually shipped
Fetch their commit, PR, issue and review contributions filtered to one repository and date range.
Letting a team share one server
Run it in OAuth mode so each person's own GitHub token backs their calls, with token state in Redis.
49 tools
Listed in project code.
github_add_pr_commentsgithub_add_to_projectgithub_create_issuegithub_create_milestonegithub_create_prgithub_create_releasegithub_create_taggithub_delete_releasegithub_delete_taggithub_get_issuegithub_get_latest_shagithub_get_pr_contentgithub_get_pr_diffgithub_get_pr_linked_issuesgithub_get_pr_status_checksgithub_get_project_fieldsgithub_get_releasegithub_get_repo_stars_sincegithub_get_repository_filegithub_get_skillgithub_get_user_activitiesgithub_list_milestonesgithub_list_open_issues_prsgithub_list_pr_commentsgithub_list_pr_reviewsgithub_list_project_itemsgithub_list_releasesgithub_list_repo_labelsgithub_list_reposgithub_list_repository_treegithub_list_skillsgithub_list_tagsgithub_merge_prgithub_remove_from_projectgithub_reply_to_review_commentgithub_search_issues_prsgithub_search_usergithub_set_assigneesgithub_set_issue_milestonegithub_set_pr_draftgithub_set_project_fieldgithub_submit_reviewgithub_update_issuegithub_update_milestonegithub_update_prgithub_update_pr_branchgithub_update_pr_commentgithub_update_releaseBEFORE YOU INSTALL
What to know first
Tools you get
49 tools registered in the project's code.
Requires
- uvx on PATH
- Python 3.12+
- GITHUB_TOKEN in your environment
Where it runs
All 5 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
uvx https://github.com/saidsef/mcp-github-pr-issue-analyser.gitMCP Clients
Claude Desktop, Claude Code, Cursor
{
"mcpServers": {
"github_prs_issues": {
"command": "uvx",
"args": [
"https://github.com/saidsef/mcp-github-pr-issue-analyser.git"
],
"env": {
"GITHUB_TOKEN": "<YOUR_GITHUB_TOKEN>"
}
}
}
}Codex
[mcp_servers.github_prs_issues]
command = "uvx"
args = ["https://github.com/saidsef/mcp-github-pr-issue-analyser.git"]
[mcp_servers.github_prs_issues.env]
GITHUB_TOKEN = "<YOUR_GITHUB_TOKEN>"VS Code
{
"inputs": [
{
"type": "promptString",
"id": "github-token",
"description": "Enter your GitHub token",
"password": true
}
],
"servers": {
"github-prs-issues": {
"type": "stdio",
"command": "uvx",
"args": [
"https://github.com/saidsef/mcp-github-pr-issue-analyser.git"
],
"env": {
"GITHUB_TOKEN": "${input:github-token}"
}
}
}
}