Release Notes Index

sh.releases由 releases.sh 發布官方發布者v0.15.2更新於 Oct 24, 2026

Release notes and changelogs from across the web, indexed for agents. Also via CLI and REST API.

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取知識與記憶開發者工具

概覽

AI 產生的概覽

遠端 MCP 伺服器,彙整各家產品的發行說明與更新日誌,讓助理搜尋發行、比較版本並追蹤產品。

可以做什麼
  • 搜尋登錄庫與發行內容,包括依相關度排序的更新日誌片段
  • 瀏覽產品與來源目錄、組織,以及跨組織的精選合輯
  • 讀取單筆發行的完整內容,或依產品或組織篩選最新發行
  • 將網域解析到對應的組織或產品
  • 比較某個套件的兩個版本,取得兩者之間的更新日誌條目與破壞性變更判定
  • 追蹤組織或產品、讀取個人化動態,並管理對外發行 webhook
適用情境
適合助理需要回答「改了什麼」的情境:升級之前、事故之後,或某個相依套件行為突然改變時;也適合想把眾多廠商的發行資訊彙整成單一動態,而不必逐一翻閱更新日誌頁面。
執行需求
需要遠端 HTTP 端點,不需本機套件或執行環境。讀取操作公開,不需帳號或 API 金鑰。追蹤、個人化動態與 webhook 需要已登入使用者,以使用者金鑰或 OAuth 權杖提供。
安裝前請注意
webhook 工具會向你提供的外部網址送出請求,並可建立、更新、刪除、停用 webhook 或輪換其簽章金鑰,應視為寫入操作。追蹤、取消追蹤與 webhook 工具需要已登入使用者的憑證,請妥善保管。發行內容屬第三方資料,引用時應使用原始來源連結。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Release Notes Index,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/sh.releases%2Fmcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "release-notes-index": {
      "type": "http",
      "url": "https://agents.releases.sh/mcp"
    }
  }
}

README

[Release Notes Index — the latest product releases, indexed for agents]

Release Notes Index

The latest product releases, indexed for agents.

A registry of release notes from across the web — pulled from vendor changelogs, normalized into one schema, summarized, and queryable from your terminal, your code, or any MCP client. Readable by you and your agent.

releases.sh  ·  Docs  ·  CLI →  ·  Use it  ·  What's in this repo  ·  Develop

[CI] [npm (CLI)] [MCP server] [Ask DeepWiki] [License: Apache-2.0]

This repo is the backend for releases.sh (API · MCP · web · ingest) and the source of the command-line tool.


What is this?

"What changed?" is a question agents and developers ask constantly — before an upgrade, after an incident, when a tool suddenly behaves differently. The answer is scattered across GitHub releases, RSS feeds, changelog pages, and blog posts in a hundred different formats.

Release Notes Index collects those into one registry. It watches hundreds of sources across the vendors developers actually depend on, and for every release stores the original content plus an AI-generated title, summary, and breaking-change classification. Each organization gets a maintained overview of what it shipped recently. The web page a human reads and the JSON an agent fetches are the same content.

This repo is the source of the canonical deployment at releases.sh: the API worker (the authoritative data plane), the MCP server, the web frontend, and the ingest pipeline + agent harness that keep the registry fresh. The user-facing CLI lives in apps/cli/ and ships from this repo (npm + Homebrew).

Use it

No account or API key needed for reads — all four surfaces are public.

MCP — hosted at agents.releases.sh/mcp (mcp.releases.sh/mcp still works), listed in the MCP Registry as sh.releases/mcp, and in the Claude connector directory for Claude on the web, desktop, and mobile:

bash
claude mcp add --transport http releases https://agents.releases.sh/mcp   # Claude Codecodex mcp add releases --url https://agents.releases.sh/mcp               # Codexnpx -y mcp-remote https://agents.releases.sh/mcp                          # stdio bridge (VS Code, Zed, …)

CLI — one-off via npx, or brew install buildinternet/tap/releases:

bash
npx @buildinternet/releases get anthropic     # what did Anthropic ship lately?npx @buildinternet/releases search "MCP"      # search across every vendor

REST API — public GET endpoints on api.releases.sh, spec at /v1/openapi.json:

bash
curl "https://api.releases.sh/v1/releases/latest?limit=5"

Agent skills — auto-triggering playbooks, installable into any agent (Claude Code / Codex / Cursor / OpenCode) without checking out anything. Start with the reader skills — search, MCP lookups, and release analysis — which is what almost everyone wants:

bash
npx skills add buildinternet/releases   # reader skills — search, MCP, release analysis
# just the skill that writes a releases.json manifest for your own productnpx skills add buildinternet/releases --skill creating-releases-json

On Claude Code, the CLI repo also installs as a plugin — the reader skills plus a bundled MCP connection and a /releases command:

/plugin marketplace add buildinternet/releases/plugin install releases@releases

Running or maintaining the registry itself? This repo also ships operator skills (source onboarding, parsing, bulk maintenance) — most need an admin key: npx skills add buildinternet/releases. See releases.sh/docs/skills.

Docs — user-facing documentation is served from the web app at releases.sh/docs (source in apps/web/src/content/docs/): installation · skills · REST API · MCP · webhooks · listing your product.

Agents consuming the product start from releases.sh/llms.txt; the MCP tool catalog and auth model are also covered in docs/architecture/mcp.md. Creating a free account unlocks higher rate limits (mint an API key at releases.sh/account), plus follows, personalized feeds, webhooks, and email digests.

[An organization page: AI-maintained overview of recent releases, source list, and JSON/Markdown/Atom export]
Every org page carries an AI-maintained overview and exports as JSON, Markdown, or Atom.

What's in this repo

PathWhat
apps/api/Hono API on Cloudflare D1 — the authoritative data plane
apps/mcp/Remote MCP server at agents.releases.sh (alias mcp.releases.sh)
apps/webhooks/Signs + delivers release.created events (HMAC-SHA256, retry/DLQ) — docs
apps/web/Next.js frontend, deploys on Vercel
packages/Shared code — core + api-types publish to npm; the rest are private workspaces
.claude/Claude Code config — skills/ (canonical skill home), agents/, commands/, workflows/

How it fits together:

  • Storage — Cloudflare D1 (FTS5 + Vectorize). The API worker is the sole data plane.
  • Ingest — adapters for GitHub Releases, RSS/Atom/JSON feeds, and a browser-rendering fallback for feed-less pages (packages/adapters/). The crawler signs outbound fetches (RFC 9421) as a Cloudflare Verified Bot.
  • AI — changelog parsing, summarization, grouping, and org overviews run in the API worker as direct Anthropic SDK calls.

Contributor mental model

This repo has four kinds of code:

AreaPathsWhat to know
Product surfacesapps/api/, apps/mcp/, apps/webhooks/, apps/web/The API worker is the data plane. Web, MCP, CLI, and webhooks read from or route through it.
Shared packagespackages/core/, packages/api-types/, private packages/*core owns schema and pure helpers; api-types owns wire shapes. Change these first when shared contracts move.
Hosted operations.claude/skills/, .claude/workflows/These power the canonical releases.sh ingest and operator loop. Some paths need hosted credentials, but local work does not.
Historical contextdocs/architecture/, docs/plans/, docs/superpowers/Architecture docs are maintained references. Plans and specs are point-in-time design history.

For normal contributions, start with bun run bootstrap, bun run check, and bun run test. You do not need production Cloudflare, Anthropic, Vercel, email, or Firecrawl access to work on the core loop. If you are trying to fork or self-host the full service, read deploy-coupling.md.

Per-package detail and project conventions live in AGENTS.md — the agent entry point for working in this repo. Architecture deep-dives are in docs/architecture/, with a reader's guide at docs/README.md.

Local development

Prerequisites: Bun. No external accounts needed for the core loop:

bash
bun run bootstrap        # one-command setup: tooling, deps, env files, local D1bun run doctor           # diagnose the setup — reports what's missing and how to fix it
bun run check            # lint + type-check + format (the CI gate)bun run test             # full test suite, secret-freebun run dev:api          # API worker on local D1bun run dev:web          # Next.js frontend

bootstrap is idempotent (safe to re-run; never overwrites your env files or wipes the local DB) and doctor is read-only. Prefer the manual steps? They're bun install, copy each *.example env file, then bun run db:reset:local.

AI passes, scrape fetches, and semantic search take your own keys (ANTHROPIC_API_KEY, Cloudflare Browser Rendering, VOYAGE_API_KEY) and degrade gracefully without them. Setup detail, environment variables, testing, deployment, and the full no-accounts / bring-your-own-keys / hosted-only breakdown live in CONTRIBUTING.md.

License

Apache-2.0. The published npm packages (releases-core, api-types) and the Claude Code plugin (plugins/claude/releases) are deliberately MIT for maximum reuse.

來源:README.md,提交 93348cf

工具

18

get_latest_releases

Get latest releases

Get the most recent releases, optionally filtered by product or organization. Excludes prereleases (canaries / alphas / betas / RCs) by default — pass `include_prereleases: true` to include them. Cursor-paginated: pass `limit` for slice size (default 10), `cursor` to continue from a prior call. The result's `_meta.pagination` carries `kind: 'cursor'`, `hasMore`, and `nextCursor` when more rows exist; the response text echoes `nextCursor` so an LLM caller can chain without parsing `_meta`. Cursors are stable under inserts — a release added between calls won't shift the slice.

輸入參數kindtypelimitsinceuntilcursorproductorganizationminImportanceinclude_coverageinclude_prereleases

list_catalog

List catalog

List catalog entries — products and standalone sources combined into one list with an `entryType: 'product' | 'source'` discriminator per row. Orgs that group multiple sources under a product (e.g. Vercel → Next.js, Turborepo) surface those products; orgs with a single source that isn't part of a product surface it directly as an `entryType: 'source'` entry. Either shape is a reasonable thing to pass to `search(entity: ...)`. Paginated: defaults to 50 entries per page. Pass `page: 2` for the next slice. The footer surfaces the total when more pages exist.

輸入參數kindpagelimitorganization

get_catalog_entry

Get catalog entry

Detail for a single catalog entry — accepts a prod_ id, src_ id, or an org-scoped coordinate in the form orgSlug/slug (e.g. 'vercel/nextjs' or 'vercel/next-js'). Returns the union of product / source detail fields depending on the entry kind. Source entries list tracked CHANGELOG files by path and byte size. Pass `include_changelog: true` to inline the root CHANGELOG, or `changelog_path` / `changelog_offset` / `changelog_limit` / `changelog_tokens` to embed a specific file or slice — heading-aligned, supports per-package files in monorepos (e.g. `packages/next/CHANGELOG.md`), and emits `totalTokens` / `sliceTokens` for LLM context budgeting. Files over 1MB are flagged as truncated so you know the tail is missing.

輸入參數identifier必填changelog_pathchangelog_limitchangelog_offsetchangelog_tokensinclude_changelog

list_organizations

List organizations

List all indexed organizations, optionally filtered. Paginated: defaults to 50 entries per page; pass `page: 2` for the next slice. Orgs with zero indexed releases are hidden by default (curator-stub noise); set `include_empty: true` to see them.

輸入參數pagelimitquerycategoryplatforminclude_empty

get_organization

Get organization

Get detailed information about a single organization — accounts, tags, sources, products, aliases. When an AI-generated overview exists the response includes a short preview; pass `include_overview: true` to inline the full briefing (with a stale warning if the content is older than 30 days since last write).

輸入參數identifier必填include_overview

lookup_domain

Lookup by domain

Resolve a domain to the org or product that owns it. The domain is normalized first (scheme, `www.`, path, and trailing slash stripped, lowercased), so `https://vercel.com/about` and `vercel.com` both look up the same row. Returns the matching org (with primary-vs-alias distinction) and any products whose alias targets the same domain. Pure resolution — does not probe the domain or materialize anything; unknown domains surface a 'no match' message. Use `lookup_domain` when you have a URL-shaped input; use `get_organization` when you already have a slug or id.

輸入參數domain必填

list_collections

List collections

List curated collections — named cross-org playlists (e.g. 'Frontier AI Labs') independent of the fixed category taxonomy. Use `get_collection` for a collection's full member list, or `get_collection_releases` for the interleaved cross-org release feed. Paginated: defaults to 50 entries per page; pass `page: 2` for the next slice.

輸入參數pagelimit

get_collection

Get collection

Detail for a single collection — name, description, and the ordered list of member organizations. Hidden / on-demand orgs never leak through; only publicly visible orgs appear in the member list.

輸入參數slug必填

get_collection_releases

Get collection releases

Interleaved cross-org release feed for a collection — same shape as `get_latest_releases` but scoped to the collection's member orgs. Cursor-paginated: pass `limit` for slice size (default 20), `cursor` to continue from a prior call. The result's `_meta.pagination` carries `kind: 'cursor'`, `hasMore`, and `nextCursor` when more rows exist; the response text echoes `nextCursor` so an LLM caller can chain without parsing `_meta`. Cursors are stable under inserts.

輸入參數slug必填limitcursorinclude_prereleases

get_release

Get release

Fetch the full content of a single release by id. Release ids are returned by search or get_latest_releases — pass them here to read the whole entry (e.g. to quote a specific Next.js release note). Accepts the full rel_<nanoid> form or the bare 21-char nanoid. Cite `URL:` (the original source) ahead of `Web:` (the releases.sh copy). Structured `url` and `webUrl` carry the same pair.

輸入參數id必填

follow

Follow

Follow an organization or a product so it appears in your personalized feed (`get_personalized_feed`). Following an organization implicitly includes all of its products. Requires a signed-in user (a `relu_` user key or an OAuth token). `entity` is a typed id — an `org_…` id or a `prod_…` id — as returned by `search`, `get_organization`, or `get_catalog_entry`. Idempotent: following something you already follow is a no-op.

輸入參數entity必填

unfollow

Unfollow

Stop following an organization or product. Requires a signed-in user. `entity` is an `org_…` or `prod_…` id. Idempotent: unfollowing something you don't follow is a no-op.

輸入參數entity必填

list_follows

List follows

List the organizations and products you follow (newest first). Requires a signed-in user.

無需輸入參數。

get_personalized_feed

Get personalized feed

Your personalized release feed — recent releases from the organizations and products you follow, newest first. Requires a signed-in user. Same item shape as `get_latest_releases`, scoped to your follows. Each item prints `URL:` (the original source — cite that) before `Web:` (the releases.sh copy), when present. Cursor-paginated: pass `cursor` from a prior response's `_meta.pagination.nextCursor` and optional `limit` (1–100, default 30).

輸入參數limitcursor

list_webhooks

List webhooks

List your outbound release webhooks, personal or workspace. Requires a signed-in user (a `relu_` user key or an OAuth token). With no `workspace`, lists your personal webhooks (`GET /v1/me/webhooks`) and includes a short list of your workspaces (id, slug, role) so you can target one next. Pass `workspace` (an id or a slug) to list that workspace's webhooks instead. Pass `id` to see one webhook plus its 10 most recent deliveries. Pass `enabled` to filter by enabled/disabled state.

輸入參數idenabledworkspace

manage_webhook

Manage webhook

Create, update, delete, test, or rotate the signing key of an outbound release webhook — personal or workspace. Requires a signed-in user. This tool sends requests to an external URL you supply and can delete or disable delivery, so treat it as a write. Pass `workspace` (an id or slug) to act on a workspace's webhooks instead of your personal ones; workspace webhooks are always org-scoped (`scope: "follows"` is personal-only and is rejected up front). Only workspace owners and admins can create, update, delete, or rotate a workspace webhook — any member can test one. `action: "create"` needs `url` and `format` (`json`, `slack`, or `discord`), plus either `scope: "follows"` (personal only — everything you follow) or an org-scoped target: `org` (an org slug or `org_…` id), optionally narrowed by `product` (slug or `prod_…` id) or `source` (slug or `src_…` id). `action: "update"` needs `id` plus any fields to change; pass `source: null` or `product: null` to clear a filter. `action: "delete"`, `action: "test"`, and `action: "rotate_secret"` need only `id`. `create` and `rotate_secret` return a one-time `signingKey` for `json`-format webhooks — store it now, it will not be shown again. `slack` and `discord` deliveries aren't signed, so those formats never return one.

輸入參數idorgurlscopeaction必填formatsourceenabledproductworkspacedescriptionreleaseType

whats_changed

What's changed

Given a package and a `from`/`to` version, return the changelog entries between them — `(from, to]`, from exclusive, to inclusive — with summaries and breaking-change verdicts. One call instead of reading N changelog pages to plan an upgrade. `package` is a tracked source slug or a GitHub `owner/repo` coordinate (set `ecosystem: "github"` for a bare coordinate). Reads already-indexed releases only. If the package isn't in the catalog you'll get a clear 'not tracked' answer (npm/PyPI names may not be mapped to a source yet). Each entry prints `URL:` (the original source — cite that) before `Web:` (the releases.sh copy), when present. Structured results still include both `url` and `webUrl`.

輸入參數to必填from必填package必填ecosystemminImportance

版本歷史

2
  1. v0.15.2最新Oct 3, 2026
  2. v0.15.1Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Releases 整合