GitHub 版本更新日志 MCP 服务器
一个模型上下文协议(MCP)服务器,用于抓取并提供对GitHub版本更新日志条目的访问,具备高级过滤和搜索功能。
特点/功能
- 🔍 看起来像是一个放大镜的符号,通常用于表示“查找”、“搜索”或“仔细查看”的意思。在中文里,可以简单地翻译为“🔍”或者用文字描述为“放大镜符号,表示查找或仔细查看”。不过,由于它本身是一个图形符号,直接翻译可能无法完全传达其在特定上下文中的含义,所以通常需要结合上下文来理解。 全面抓取从GitHub的官方更新日志中获取更新日志条目
- 📊(图表) 高级过滤按日期范围、类别、更改类型或搜索词进行筛选
- 🚀 这个符号本身在中文中没有直接的对应翻译,它通常代表火箭、快速前进或加速等概念。在中文语境中,可以简单地描述为“火箭”或根据上下文翻译为“快速前进”、“加速”等。如果仅作为表情符号使用,可以保留原样或解释为“火箭”表情。 内置缓存通过智能缓存减少API调用(默认TTL为1小时)
- 🏷️ 类别支持按GitHub的官方分类(如COPILOT、ACTIONS等)整理条目
- 📈(上升的折线图) 更改类型跟踪“改进”、“发布”和“已弃用”条目
- 🔎(放大镜图标,通常表示搜索或查找) 搜索功能跨标题和分类的全文搜索
安装
- 克隆仓库:
git clone https://github.com/your-username/github-changelog-mcp-server.git
cd github-changelog-mcp-server- 安装依赖项:
npm install- 构建项目:
npm run build使用
运行服务器
npm start该服务器在stdio传输层上运行,并通过模型上下文协议进行通信。
发展
npm run dev # Watch mode for development容器(Docker)使用
你可以在一个最小化的容器中构建并运行服务器(包括多阶段构建)。
在本地构建镜像:
docker build -t ghcr.io//github-changelog-mcp:dev .运行容器(将启动并等待MCP标准输入输出消息):
docker run -it --rm ghcr.io//github-changelog-mcp:dev发布到GitHub容器注册表(GHCR):
docker tag ghcr.io//github-changelog-mcp:dev ghcr.io//github-changelog-mcp:1.0.0
docker push ghcr.io//github-changelog-mcp:1.0.0
docker push ghcr.io//github-changelog-mcp:dev在GitHub Actions中,提供的工作流 .github/workflows/container.yml 构建、测试,并且(在非PR事件时)推送标签:分支、标签、提交哈希(SHA)以及 latest (仅默认分支)。
注:由于服务器使用的是stdio传输方式,因此默认情况下不会暴露HTTP端口。如果您需要健康检查,请添加一个可选的HTTP端点(请参阅项目问题/未来增强功能中的Dockerfile指令部分的注释)。
可用工具
1. get_changelog_entries
获取GitHub的更新日志条目,并可选择过滤。
参数:
startDate(可选):开始日期过滤器(YYYY-MM-DD 格式)endDate(可选):结束日期过滤器(YYYY-MM-DD 格式)categories(可选):用于过滤的类别数组types(可选):变更类型的数组(IMPROVEMENT,RELEASE,RETIRED)searchTerm(可选):用于标题/类别匹配的搜索词limit(可选):要返回的最大条目数(默认:50)
示例:
{
"startDate": "2025-08-01",
"categories": ["COPILOT", "ACTIONS"],
"types": ["RELEASE"],
"limit": 10
}2. get_recent_entries
获取最新的更改日志条目。
参数:
count(可选):要返回的条目数(默认:10,最大:50)category(可选):按特定类别筛选type(可选):按特定更改类型筛选
示例:
{
"count": 5,
"category": "COPILOT"
}3. get_changelog_categories
获取所有可用的更新日志类别。
参数: 无
4. search_changelog
通过标题、类别或描述搜索更新日志条目。
参数:
query(必填):搜索查询字符串limit(可选):结果的最大数量(默认:20)
示例:
{
"query": "Copilot code review",
"limit": 15
}5. clear_changelog_cache
清除更改日志缓存,以便在下次请求时获取最新数据。
参数: 无
数据结构
每个更改日志条目包含:
interface ChangelogEntry {
id: string; // Unique identifier
title: string; // Entry title
url: string; // Full URL to the changelog entry
date: string; // ISO date string (YYYY-MM-DD)
type: 'IMPROVEMENT' | 'RELEASE' | 'RETIRED';
category: string; // GitHub category (e.g., "COPILOT", "ACTIONS")
categoryUrl: string; // URL to category filter page
description?: string; // Optional description
}类别
常见的GitHub变更日志类别包括:
- COPILOT(在中文中常翻译为“副驾驶”或“协作者”,具体根据上下文可能有所不同,这里提供一个通用的翻译) - GitHub Copilot更新
- 行动;行为;举措 - GitHub Actions 改进
- 应用程序安全 - 与安全相关的更改
- 协作工具 - 团队协作功能
- 供应链安全 - 依赖性和供应链安全
- 企业管理工具 - 企业级管理功能
- 生态系统与无障碍性 - 平台及无障碍性改进
- 项目与议题 - 项目管理和问题跟踪
- 账户管理 - 账户和计费功能
- 平台治理 - 平台政策与治理
缓存
服务器实现了智能缓存,具体方式包括:
- TTL(Time To Live)默认1小时(3600秒)
- 检查周期10分钟(600秒)
- 自动缓存键基于年份和请求参数
- 手动清除缓存Via(维亚)
clear_changelog_cache工具
配置
缓存配置
在初始化爬虫时,您可以自定义缓存行为:
const scraper = new GitHubChangelogScraper({
stdTTL: 1800, // 30 minutes TTL
checkperiod: 300 // Check every 5 minutes
});速率限制
服务器通过缓存实现了内置的速率限制,以尊重GitHub的资源。缓存的响应可以即时提供,而新的请求则受到缓存时间生存期(TTL)的限制。
错误处理
服务器提供全面的错误处理:
- 网络错误优雅地处理连接问题
- 解析错误强大的HTML解析,支持回退机制
- 验证错误输入参数验证
- 缓存错误自动缓存恢复
示例
获取最新的Copilot更新
{
"tool": "get_recent_entries",
"arguments": {
"count": 10,
"category": "COPILOT"
}
}搜索与安全相关的更改
{
"tool": "search_changelog",
"arguments": {
"query": "security",
"limit": 20
}
}获取上个月的所有发布版本
{
"tool": "get_changelog_entries",
"arguments": {
"startDate": "2025-08-01",
"endDate": "2025-08-31",
"types": ["RELEASE"]
}
}贡献;做出贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 做出你的更改
- 如适用,请添加测试
- 提交拉取请求
许可证
MIT 许可证 - 详见 LICENSE 文件。
支持
对于问题和疑问:
- 查看GitHub的Issues页面
- 查阅文档
- 创建一个包含详细信息的新问题
______________________________________________________________________
注此服务器抓取公共GitHub的版本更新日志数据。请遵守GitHub的服务条款和速率限制。
