Skip to main content
Glama
shaileshahuja

GitHub PR Comments MCP Server

README.md
# GitHub PR Comments MCP Server

[![smithery badge](https://smithery.ai/badge/github-pr-mcp)](https://smithery.ai/server/github-pr-mcp)

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

<a href="https://glama.ai/mcp/servers/@shaileshahuja/github-pr-mcp">
  <img width="380" height="200" src="https://glama.ai/mcp/servers/@shaileshahuja/github-pr-mcp/badge" alt="GitHub PR Comments Server MCP server" />
</a>

## 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](https://smithery.ai/server/github-pr-mcp):

```bash
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:

```json
{
  "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

TDQS

D1.7/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The tool's purpose is inherently distinct by default.

Naming Consistency5/5

A single tool inherently has consistent naming with itself. The name 'get_pr_comments' follows a clear verb_noun pattern, which would be consistent if more tools existed.

Tool Count2/5

One tool is too few for a server focused on GitHub PR comments, as it lacks basic CRUD operations like creating, updating, or deleting comments. This severely limits functionality for the apparent domain.

Completeness1/5

The tool set is severely incomplete for handling PR comments. It only provides a 'get' operation, missing essential actions like create, update, delete, or list, which are necessary for a functional comments interface.

Maintenance

ActivityInactive
ResponsivenessNo issues