GitHub PR Comments MCP Server logo

GitHub PR Comments MCP Server

by shaileshahuja

This is a Model Context Protocol (MCP) server that fetches GitHub Pull Request comments using a GitHub personal access token. It allows you to retrieve comments with file paths, line ranges, and replies in a structured JSON format.

View on GitHub

Last updated: N/A

GitHub PR Comments MCP Server

This is a Model Context Protocol (MCP) server that fetches GitHub Pull Request comments using a GitHub personal access token.

Features

  • Fetches PR comments with file paths, line ranges, and replies
  • Uses GitHub API via Octokit
  • Implements MCP server with StdioServerTransport
  • Returns comments in a structured JSON format

Installation

Installing via Smithery

To install github-pr-mcp for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install github-pr-mcp --client claude

Installing Manually

  1. Clone the repository

  2. Install dependencies:

    npm install
    
  3. Create a .env file with your GitHub token:

    GITHUB_TOKEN=your_github_token_here
    

Usage

  1. Build the project:

    npm run build
    
  2. Run the server:

    npm start
    

    Or directly with a GitHub token:

    node dist/server.js your_github_token_here
    
  3. The server exposes a tool called get_pr_comments that accepts the following parameters:

    • owner: Repository owner (username or organization)
    • repo: Repository name
    • pull_number: Pull request number

Integration with Cursor

To integrate with Cursor, use the following command in Cursor's MCP server configuration:

node /path/to/dist/server.js your_github_token_here

Replace /path/to with the actual path to your project, and your_github_token_here with your GitHub personal access token.

Testing

A test client is included to verify the server functionality:

  1. Build the project:

    npm run build
    
  2. Run the test client:

    npm test
    

The test client will start the server, connect to it, and call the get_pr_comments tool with sample parameters.

Response Format

The server returns comments in the following format:

{
  "comments": [
    {
      "id": 123456789,
      "path": "src/example.js",
      "body": "This is a comment on a specific line",
      "line": 42,
      "start_line": 40,
      "user": {
        "login": "username"
      },
      "created_at": "2023-01-01T00:00:00Z",
      "replies": [
        {
          "id": 987654321,
          "body": "This is a reply to the comment",
          "user": {
            "login": "another-username"
          },
          "created_at": "2023-01-02T00:00:00Z"
        }
      ]
    }
  ]
}

Development

To run the server in development mode:

npm run dev

License

ISC