About Release Notes Index
Release Notes Index collects and normalizes vendor release notes for developers and agents. It retains source content and provides AI summaries and change classifications through MCP, CLI, and REST API.
Key features
- 01Collects release notes from many sources
- 02Normalizes entries while retaining originals
- 03Generates summaries and breaking-change labels
- 04Maintains recent organization overviews
- 05Offers MCP, CLI, and REST API access
Use cases
- 01Check changes before upgrading
- 02Track version changes after an incident
- 03Search release notes across vendors
- 04Export organization release information
MCP support
The hosted MCP server at agents.releases.sh/mcp lets MCP clients query the release index. Reads require no account or API key.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://agents.releases.sh/mcpclaude mcp add --transport http sh-releases https://agents.releases.sh/mcp{"mcpServers":{"sh-releases":{"type":"http","url":"https://agents.releases.sh/mcp"}}}Open in Cursor{"servers":{"sh-releases":{"type":"http","url":"https://agents.releases.sh/mcp"}}}Open in VS Code{"mcpServers":{"sh-releases":{"type":"http","url":"https://agents.releases.sh/mcp"}}}{"mcpServers":{"sh-releases":{"serverUrl":"https://agents.releases.sh/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
18| Parameter | Type | Required | Description |
|---|---|---|---|
| kind | enum | No | Filter to a specific source/product kind. Release hits resolve through `source.kind ?? product.kind`; catalog hits filter on the row's own kind. The orgs and collections sections are unaffected; changelog chunk hits are unaffected.platform | sdk | mobile | desktop | docs | integration | tool |
| mode | enum | No | Release-retrieval strategy. 'hybrid' (default) fuses FTS + vector results. 'lexical' is legacy FTS only. 'semantic' is vectors only. Falls back to lexical if vector infra is unavailable.lexical | semantic | hybrid |
| type | array | No | Which sections to return. Omit to return all four. Use to skip expensive paths — e.g. ['catalog'] for registry-only lookups, ['releases'] for pure release search, ['collections'] for a quick playlist lookup. |
| limit | number | No | Max results per section (default 20) |
| query | string | Yes | Search query |
| since | string | No | Keep only release hits published at or after this bound. Accepts an ISO date/datetime (`2026-01-01`) or relative shorthand (`90d`, `4w`, `6m`, `2y`). Filters `published_at`; undated releases are dropped. Only the releases section is affected — great for capability-discovery queries like 'who added X in the last 90 days'. |
| until | string | No | Keep only release hits published at or before this bound. Same input formats as `since`; a bare date (`2026-06-25`) includes that whole UTC day. |
| domain | string | No | Scope to the org owning this domain. Input is normalized (scheme/path/www stripped, lowercased), so `https://vercel.com/` and `vercel.com` both work. Falls back to a 'no match' message when the domain isn't owned by anything indexed. Use this instead of `organization` when you have a URL-shaped input. |
| entity | string | No | Scope release results to one catalog entry. Accepts a prod_ id (expands to every source under the product), a src_ id, or an org-scoped coordinate in the form orgSlug/slug (e.g. 'vercel/nextjs'). Bare slugs without an org prefix are not accepted. |
| product | string | No | Scope release results to a specific product's sources. Accepts a prod_ id or an org-scoped coordinate in the form orgSlug/productSlug (e.g. 'vercel/next-js'). Bare slugs without an org prefix are not accepted. When both `entity` and `product` are supplied, `entity` takes precedence. The resolved product coordinate is echoed on `_meta.search.product`. |
| organization | string | No | Scope release results to sources belonging to this organization. Accepts an org_ id, slug, or registered domain. |
| include_empty | boolean | No | Include orgs with zero indexed releases in the `orgs` section. Default false — empty orgs are stubs and surface as noise. Scoping by `domain` ignores this and always returns the resolved org. |
| include_coverage | boolean | No | Include releases grouped as coverage of another (e.g. marketing posts that re-announce a platform release). Defaults to false so each underlying launch appears once. |
Details
From the project README
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
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:
claude mcp add --transport http releases https://agents.releases.sh/mcp # Claude Code
codex mcp add releases --url https://agents.releases.sh/mcp # Codex
npx -y mcp-remote https://agents.releases.sh/mcp # stdio bridge (VS Code, Zed, …)
CLI — one-off via npx, or brew install buildinternet/tap/releases:
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:
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:
npx skills add buildinternet/releases # reader skills — search, MCP, release analysis
# just the skill that writes a releases.json manifest for your own product
npx 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.
Every org page carries an AI-maintained overview and exports as JSON, Markdown, or Atom.
What's in this repo
| Path | What |
|---|---|
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:
| Area | Paths | What to know |
|---|---|---|
| Product surfaces | apps/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 packages | packages/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 context | docs/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:
bun run bootstrap # one-command setup: tooling, deps, env files, local D1
bun 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-free
bun run dev:api # API worker on local D1
bun 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.
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.