Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

Releases

REMOTE · MCP.RELEASES.SH · SCANNED AUG 3

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

Available components

+6 this week 75 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security77
Transport & Reachability100
Schema Quality & AI Usability75
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3988 tokens (~234/item across 17 items; 16 tools + 1 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass
  • Supports UI / widget rendering.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.releases.sh

# add to Claude Code
claude mcp add --transport http sh-releases-mcp https://mcp.releases.sh/mcp
# ~/.codex/config.toml
[mcp_servers.sh-releases-mcp]
url = "https://mcp.releases.sh/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sh-releases-mcp": {
      "type": "remote",
      "url": "https://mcp.releases.sh/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add sh-releases-mcp --url https://mcp.releases.sh/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  sh-releases-mcp:
    url: "https://mcp.releases.sh/mcp"
// mcp.json
{
  "mcpServers": {
    "sh-releases-mcp": {
      "type": "http",
      "url": "https://mcp.releases.sh/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +2
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 +1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 68

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.releases.sh/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=releases.sh CN=WE1,O=Google Trust Services,C=US 7 Jun 2026 5 Sept 2026 ECDSA 256 ECDSA-SHA256 aac74611bfe1fd590eacf75c6c08ae0d
SANs: releases.sh, mcp.releases.sh, *.mcp.releases.sh
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC secure

Validation of mcp.releases.sh. Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
sh. present 55297 8 Verified
releases.sh. present 2371 13 Verified
mcp.releases.sh. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.releases.sh/mcp Verified 200
http (plaintext) http://mcp.releases.sh/mcp HTTPS enforced 301 https://mcp.releases.sh/mcp
MCP tools — 16 exposed · ~3,950 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
follow ~141

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.

NameTypeReqDescription
entitystringyesEntity to follow — an `org_…` or `prod_…` id (from search / get_* results).

No output schema declared.

No examples provided.

get_catalog_entry ~433

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.

NameTypeReqDescription
changelog_limitnumberTarget slice size in characters. Slice ends at a heading boundary. Defaults to 40000 when slicing without a token budget. Passing this implies include_changelog.
changelog_offsetnumberCharacter offset into the selected CHANGELOG. Snapped forward to the next heading unless 0. Passing this implies include_changelog.
changelog_pathstringSpecific CHANGELOG path for a source-kind entry (e.g. 'packages/next/CHANGELOG.md'). Passing this implies include_changelog.
changelog_tokensnumberTarget slice size in tokens (cl100k_base). Takes precedence over changelog_limit. Recommended brackets: 2000, 5000, 10000, 20000. Passing this implies include_changelog.
identifierstringyesCatalog entry identifier: prod_ id, src_ id, or org-scoped coordinate orgSlug/slug (e.g. 'vercel/nextjs'). Bare slugs without an org prefix are not accepted.
include_changelogbooleanWhen true, inline the root tracked CHANGELOG for a source-kind entry. Ignored for products.

No output schema declared.

No examples provided.

get_collection ~66

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.

NameTypeReqDescription
slugstringyesCollection slug (e.g. 'frontier-ai-labs').

No output schema declared.

No examples provided.

get_collection_releases ~234

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.

NameTypeReqDescription
cursorstringOpaque continuation token from a prior call's `_meta.pagination.nextCursor`. Stale cursors are silently ignored — the call returns a fresh head of the feed.
include_prereleasesbooleanInclude prerelease tags (alphas, betas, RCs). Defaults to false so the feed matches the public web view.
limitintegerSlice size (1–200). Defaults to 20.
slugstringyesCollection slug (e.g. 'frontier-ai-labs').

No output schema declared.

No examples provided.

get_latest_releases ~660

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.

NameTypeReqDescription
cursorstringOpaque continuation token from a prior call's `_meta.pagination.nextCursor`. Pass to fetch the next slice. Stale cursors are silently ignored — the call returns a fresh head of the feed.
include_coveragebooleanInclude 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.
include_prereleasesbooleanInclude prerelease tags (alphas, betas, RCs, canaries). Defaults to false so the feed matches the public web view.
kindstringFilter to releases from sources of a specific kind. Resolves through `source.kind ?? product.kind`, so an SDK repo with no own kind still matches its product's kind. Omit to include all kinds.
limitintegerSlice size (1–200). Defaults to 10.
minImportanceintegerOnly include releases with an AI-scored `importance` >= this value (1-5; 5=landmark, 1=housekeeping). Releases with no score (unscored) are excluded when this is set. Mirrors the REST `?minImportance…
organizationstringFilter to sources belonging to this organization. Accepts an org_ id, slug, or registered domain.
productstringFilter to a product's cross-source release feed. Accepts a prod_ id (expands to ALL sources under the product), a src_ id (single source), or an org-scoped coordinate in the form orgSlug/productSlug…
sincestringKeep only releases 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.
typestringFilter by release type: 'feature' for individual releases, 'rollup' for seasonal/quarterly catch-all posts. Omit to include both.
untilstringKeep only releases published at or before this bound. Same input formats as `since`.

No output schema declared.

No examples provided.

get_organization ~123

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).

NameTypeReqDescription
identifierstringyesOrganization identifier. Accepts an org_ id, slug, domain, name, or account handle.
include_overviewbooleanWhen true, inline the full AI-generated overview instead of the default first-paragraph preview.

No output schema declared.

No examples provided.

get_personalized_feed ~123

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. Cursor-paginated: pass `cursor` from a prior response's `_meta.pagination.nextCursor` and optional `limit` (1–100, default 30).

NameTypeReqDescription
cursorstringOpaque cursor from a previous page's `_meta.pagination.nextCursor`.
limitintegerEntries per page (1–100). Defaults to 30.

No output schema declared.

No examples provided.

get_release ~95

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.

NameTypeReqDescription
idstringyesRelease id — 'rel_<nanoid>' or a bare 21-char nanoid

No output schema declared.

No examples provided.

list_catalog ~255

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.

NameTypeReqDescription
kindstringFilter to catalog entries of a specific kind. Matches each row's own kind (a product's kind, or a standalone source's kind) — no source→product inheritance on this catalog surface. Omit to include al…
limitintegerEntries per page (1–200). Defaults to 50.
organizationstringOrganization to scope to. Accepts an org_ id, slug, domain, or name.
pageinteger1-based page number. Defaults to 1.

No output schema declared.

No examples provided.

list_collections ~123

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.

NameTypeReqDescription
limitintegerEntries per page (1–200). Defaults to 50.
pageinteger1-based page number. Defaults to 1.

No output schema declared.

No examples provided.

list_follows ~27

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

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_organizations ~231

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.

NameTypeReqDescription
categorystringFilter to a single category slug (e.g. `ai`, `devops`). Aliases (e.g. `e-commerce`) resolve to their canonical category (`commerce`); unknown values are ignored (unfiltered).
include_emptybooleanInclude orgs with zero indexed releases. Default false — empty orgs are stubs from in-flight discovery or broken parsers and surface as noise on the public catalog.
limitintegerEntries per page (1–200). Defaults to 50.
pageinteger1-based page number. Defaults to 1.
platformstringFilter to orgs with an account on this platform
querystringSearch across org name, slug, domain, and account handles

No output schema declared.

No examples provided.

lookup_domain ~162

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.

NameTypeReqDescription
domainstringyesDomain to resolve. Any URL-shaped form is accepted; the server normalizes it.

No output schema declared.

No examples provided.

search ~939

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.

NameTypeReqDescription
domainstringScope 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 domai…
entitystringScope 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'). Bar…
include_coveragebooleanInclude 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.
include_emptybooleanInclude 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.
kindstringFilter 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; chan…
limitnumberMax results per section (default 20)
modestringRelease-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.
organizationstringScope release results to sources belonging to this organization. Accepts an org_ id, slug, or registered domain.
productstringScope 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…
querystringyesSearch query
sincestringKeep 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 drop…
typearrayWhich 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…
untilstringKeep only release hits published at or before this bound. Same input formats as `since`.

No output schema declared.

No examples provided.

unfollow ~80

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.

NameTypeReqDescription
entitystringyesEntity to unfollow — an `org_…` or `prod_…` id.

No output schema declared.

No examples provided.

whats_changed ~258

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).

NameTypeReqDescription
ecosystemstringOptional resolution hint; "github" enables matching a bare owner/repo.
fromstringyesVersion you're upgrading FROM (exclusive).
minImportanceintegerOnly include entries with an AI-scored `importance` >= this value (1-5; 5=landmark, 1=housekeeping). Entries with no score (unscored) are excluded when this is set.
packagestringyesPackage identifier — a source slug or a GitHub "owner/repo" coordinate.
tostringyesVersion you're upgrading TO (inclusive).

No output schema declared.

No examples provided.