返回市场
MCP-GitHub通知服务

MCP-GitHub通知服务

作者:mcollina16 星标更新:2025-03-31

项目介绍

GitHub 通知 MCP 服务器

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

功能

  • 列出并筛选您的 GitHub 通知
  • 标记通知为已读
  • 查看通知线程详情
  • 订阅或取消订阅通知线程
  • 标记线程为完成
  • 管理特定仓库的通知
  • 控制仓库通知设置(所有活动、默认或静音)

预备条件

  • Node.js 18 或更高版本
  • 具有 notificationsrepo 范围的 GitHub 个人访问令牌(经典版)

安装

  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管理仓库订阅:所有活动、默认(参与和@提及)或忽略(静音)

示例提示

这里是一些示例提示,您可以使用 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 URL: 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/                    # 源代码
│   ├── tools/              # 工具实现
│   ├── types/              # 类型定义
│   ├── utils/              # 实用函数
│   ├── index.ts            # 入口点
│   └── server.ts           # 服务器配置
├── build/                  # 编译后的 JavaScript
├── .env                    # 环境变量
├── package.json            # 依赖项
├── tsconfig.json           # TypeScript 配置
└── README.md               # 文档

构建

npm run build

测试

运行自动化测试:

npm test

手动测试 URL 转换:

npm run test:url

许可证

MIT