About GitHub Notifications MCP Server
GitHub Notifications MCP Server exposes GitHub notification management to AI assistants through natural-language requests. It covers notification threads and repository-specific subscriptions as well as reading and filtering notifications.
Key features
- 01List and filter notifications
- 02Mark notifications and threads read
- 03View thread details
- 04Subscribe to or leave threads
- 05Manage repository notification settings
Use cases
- 01Review unread GitHub notifications
- 02Mute or follow repository activity
- 03Mark a notification thread done
MCP support
The MCP server exposes tools for listing and managing GitHub notifications, threads, and repository notification settings to MCP clients.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEGitHub 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
notificationsorreposcope
Installation
-
Clone this repository
git clone https://github.com/yourusername/github-notifications-mcp-server.git cd github-notifications-mcp-server -
Install dependencies
npm install -
Build the project
npm run build -
Create a
.envfile with your GitHub tokenGITHUB_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/repostogithub.com - Path correction for pull requests (changing
pullstopull) - 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
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.