GitHub Notifications MCP Server

by mcollina

16 stars
444 downloads
Not rated
GitHub

About

An MCP server for the github notifications API for the OSS maintainer

Details

Author
mcollina
GitHub stars
16
Downloads
444
Categories
Developer Tools

- List and filter GitHub notifications
- Mark notifications as read
- View notification thread details
- Subscribe or unsubscribe from notification threads
- Mark threads as done
- Manage repository-specific notifications
- Control repository notification settings (all activity, default, mute)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name GitHub Notifications MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Prerequisites: Node.js 18+, GitHub Personal Access Token (classic) with notifications or repo scope. Clone the repo, run npm install and npm run build, then either start directly with npm start or configure it in Claude Desktop’s claude_desktop_config.json using the node command pointing to the built index.js and passing the GITHUB_TOKEN environment variable.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "github notifications mcp server": {
            "github-notifications": {
                "command": "node",
                "args": [
                    "/absolute/path/to/github-notifications-mcp-server/build/index.js"
                ],
                "env": {
                    "GITHUB_TOKEN": "your_github_personal_access_token_here"
                }
            }
        }
    }
}

McpServers

{
    "github-notifications": {
        "command": "node",
        "args": [
            "/absolute/path/to/github-notifications-mcp-server/build/index.js"
        ],
        "env": {
            "GITHUB_TOKEN": "your_github_personal_access_token_here"
        }
    }
}

GitHub Notifications MCP Server

An MCP (Model Context Protocol) server that provides tools for managing GitHub notifications. This server allows AI assistants like Claude to help you manage your GitHub notifications through natural language commands.

Features

- List and filter your GitHub notifications
- Mark notifications as read
- View notification thread details
- Subscribe or unsubscribe from notification threads
- Mark threads as done
- Manage repository-specific notifications
- Control repository notification settings (all activity, default, or mute)

Prerequisites

- Node.js 18 or higher
- GitHub Personal Access Token (classic) with notifications or repo scope

Installation

1. Clone this repository

   git clone https://github.com/yourusername/github-notifications-mcp-server.git
cd github-notifications-mcp-server

2. Install dependencies

   npm install

3. Build the project

   npm run build

4. Create a .env file with your GitHub token

   GITHUB_TOKEN=your_github_personal_access_token_here

Usage

Running the server directly

npm start

Using with Claude Desktop

Add the server to your claude_desktop_config.json file:

{
  "mcpServers": {
    "github-notifications": {
      "command": "node",
      "args": ["/absolute/path/to/github-notifications-mcp-server/build/index.js"],
      "env": {
        "GITHUB_TOKEN": "your_github_personal_access_token_here"
      }
    }
  }
}

Available Tools

| Tool Name | Description |
|-----------|-------------|
| list-notifications | List all GitHub notifications for the authenticated user |
| mark-notifications-read | Mark all notifications as read |
| get-thread | Get information about a notification thread |
| mark-thread-read | Mark a specific thread as read |
| mark-thread-done | Mark a thread as done |
| get-thread-subscription | Get subscription status for a thread |
| set-thread-subscription | Subscribe to a thread |
| delete-thread-subscription | Unsubscribe from a thread |
| list-repo-notifications | List notifications for a specific repository |
| mark-repo-notifications-read | Mark notifications for a repository as read |
| manage-repo-subscription | Manage repository subscriptions: all_activity, default (participating and @mentions), or ignore (mute) |

Example Prompts

Here are some example prompts you can use with Claude Desktop once the server is connected:

- "Can you check my GitHub notifications?"
- "Show me my unread notifications from the last 24 hours."
- "Mark all my notifications as read."
- "Can you tell me about notification thread 12345?"
- "Unsubscribe me from thread 12345."
- "What notifications do I have for the octocat/Hello-World repository?"
- "Mark all notifications from the octocat/Hello-World repository as read."
- "Watch all activity on the octocat/Hello-World repository."
- "Set the octocat/Hello-World repository to default settings (participating and @mentions)."
- "Check my notification settings for the octocat/Hello-World repository."
- "Mute all notifications from the octocat/Hello-World repository."

Development

URL Handling

This server automatically converts GitHub API URLs to their corresponding web UI URLs. For example:

- API URL: https://api.github.com/repos/nodejs/node/pulls/57557
- Converted to: https://github.com/nodejs/node/pull/57557

The conversion handles:
- Domain conversion from api.github.com/repos to github.com
- Path correction for pull requests (changing pulls to pull)
- Preservation of additional path segments

Project Structure

github-notifications-mcp-server/
├── src/                    # Source code
│   ├── tools/              # Tool implementations
│   ├── types/              # Type definitions
│   ├── utils/              # Utility functions
│   ├── index.ts            # Entry point
│   └── server.ts           # Server configuration
├── build/                  # Compiled JavaScript
├── .env                    # Environment variables
├── package.json            # Dependencies
├── tsconfig.json           # TypeScript configuration
└── README.md               # Documentation

Building

npm run build

Testing

Run the automated tests:

npm test

Test URL conversion manually:

npm run test:url

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.