# Releases MCP server

An agent-friendly API for product changelogs. A unified registry via CLI, API, or MCP.

## Links
- Registry page: https://www.getdrio.com/mcp/sh-releases-mcp
- Repository: https://github.com/buildinternet/releases

## Install
- Endpoint: https://mcp.releases.sh/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.releases.sh/mcp

## Tools
- search (Search) - Unified search across the registry and release content. Returns up to four sections — organizations, catalog entries (products + standalone sources folded into one list), curated collections (cross-org playlists), and releases with CHANGELOG chunks interleaved by relevance.

Use `type` to narrow the surfaces you want and skip the expensive paths. For example, pass `type: ['catalog']` to look up a known entity by name (fast, registry-only); pass `type: ['releases']` when you only care about release content and want to avoid entity lookups. Omit `type` to search all four.

Collections surface via two paths: a direct match on the collection's name/description (lexical in every mode, plus a vector match in hybrid/semantic mode) and a member rollup that includes every collection containing one of the matched orgs. Member rollups carry a list of result-set org slugs that triggered the rollup so a UI can render an "includes X" hint.

Use `entity` (product slug / prod_ id OR source slug / src_ id) to scope release results to one catalog entry. Product identifiers expand to every source under the product. Use `organization` to scope to a whole org. Release retrieval defaults to hybrid (FTS5 + semantic vectors fused via RRF); it silently degrades to lexical when vector infra is unavailable and flags the result. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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 it's older than 30 days). Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp
- 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. Endpoint: https://mcp.releases.sh/mcp

## Resources
- ui://releases/release-feed.html - Interactive feed UI for `get_latest_releases` and `get_collection_releases`. Renders the structured release list as cards with cursor-based 'load more'. MIME type: text/html;profile=mcp-app

## Prompts
- whats_new - What's new in a product Summarize recent changes for a product over the last N days. Uses the product's indexed releases. Arguments: product, days
- compare_products - Compare two products Compare recent releases between two products to surface divergence and overlap in features, fixes, and breaking changes. Arguments: productA, productB, days
- catch_me_up - Catch me up on an organization Pull the AI-generated overview for an org plus its most recent releases — a quick status briefing. Arguments: organization, days

## Metadata
- Owner: sh.releases
- Version: 0.12.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Apr 24, 2026
- Source: https://registry.modelcontextprotocol.io
