GitHub通知管理服务器

一个基于MCP协议的服务器,提供通过自然语言命令管理GitHub通知的功能,适用于AI助手集成和开发者工作流优化。

  • by mcollina
  • TypeScript
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 mcollina/mcp-github-notifications

使用说明

GitHub通知MCP服务器

MCP(模型上下文协议)服务器,提供管理GitHub通知的工具。该服务器允许像Claude这样的人工智能助手通过自然语言命令帮助您管理GitHub通知。

特性

  • 列出并过滤您的GitHub通知
  • 将通知标记为已读
  • 查看通知线程详细信息
  • 订阅或取消订阅通知线程
  • 标记螺纹已完成
  • 管理特定于存储库的通知
  • 控制存储库通知设置(所有活动、默认或静音)

先决条件

  • Node.js 18或更高版本
  • GitHub个人访问令牌(经典) notifications 或 repo 范围

安装

  1. 克隆此存储库

    git clone https://github.com/yourusername/github-notifications-mcp-server.git
    cd github-notifications-mcp-server
    
  2. 安装依赖项

    npm install
    
  3. 构建项目

    npm run build
    
  4. 创建一个 .env 使用您的GitHub令牌创建文件

    GITHUB_TOKEN=your_github_personal_access_token_here
    

用法

直接运行服务器

npm start

与Claude Desktop一起使用

将服务器添加到您的 claude_desktop_config.json 文件:

{
  "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"
      }
    }
  }
}

可用工具

工具名称 描述
list-notifications 列出已验证用户的所有GitHub通知
mark-notifications-read 将所有通知标记为已读
get-thread 获取有关通知线程的信息
mark-thread-read 将特定线程标记为已读
mark-thread-done 将线程标记为已完成
get-thread-subscription 获取线程的订阅状态
set-thread-subscription 订阅一个帖子
delete-thread-subscription 取消订阅某个帖子
list-repo-notifications 列出特定存储库的通知
mark-repo-notifications-read 将存储库的通知标记为已读
manage-repo-subscription 管理存储库订阅:all_activity、默认(参与和@提及)或忽略(静音)

示例提示

以下是服务器连接后,您可以在Claude Desktop中使用的一些示例提示:

  • “你能查看我的GitHub通知吗?”
  • “显示过去24小时内未读的通知。”
  • “将我的所有通知标记为已读。”
  • “你能告诉我关于通知线程12345的情况吗?”
  • “取消我对12345的订阅。”
  • “我对octocat/Hello World存储库有什么通知?”
  • “将octocat/Hello World存储库中的所有通知标记为已读。”
  • “查看octocat/Hello World存储库上的所有活动。”
  • “将octocat/Hello World存储库设置为默认设置(参与和@提及)。”
  • “检查octocat/Hello World存储库的通知设置。”
  • “将octocat/Hello World存储库中的所有通知静音。”

发展

URL处理

此服务器自动将GitHub API URL转换为相应的web UI URL。例如:

  • API网址: https://api.github.com/repos/nodejs/node/pulls/57557
  • 转换为: https://github.com/nodejs/node/pull/57557

转换处理:

  • 域转换自 api.github.com/repos 向 github.com
  • 拉取请求的路径校正(更改 pulls 向 pull)
  • 保留额外的路段

项目结构

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

建筑

npm run build

测试

运行自动化测试:

npm test

手动测试URL转换:

npm run test:url

许可证

麻省理工学院