Ratatosk Mcp

io.github.basphere由 GitHub 账号 basphere 发布v0.10.0更新于 Oct 28, 2026

CNCF release intelligence: typed changes from release notes; check_stack compares versions locally.

概览

AI 生成的概览

把 CNCF 发布情报以 MCP 工具形式提供给助手,可检查升级路径、浏览结构化变更记录并跨版本追踪问题。

可以做什么
  • 检查技术栈升级路径:比对你运行的组件版本,把变更分为必须处理与视配置而定两类
  • 浏览变更流:按项目、类别或处理桶筛选结构化变更,并用游标分页
  • 按标识符反查:找出涉及某个 CVE 编号、CRD、特性开关、参数、配置字段或依赖的全部变更
  • 追踪问题与版本:查看某个问题出现的所有版本、读取单个版本的完整内容,或列出项目最新版本
  • 发现项目:列出被跟踪的项目及其规范 slug
适用场景
适合维护或升级 Envoy、Istio 等 CNCF 项目时使用,让助手给出升级路径上的安全修复、破坏性变更、移除项和默认值变化,并附发布说明原文引用作为依据。
运行要求
以本地 stdio 进程运行,通常通过已发布的容器镜像启动,也可使用托管的远程端点。无需账号或 API 密钥。容器方式需要 Docker;托管端点按调用方限流。
安装前请注意
发布分析为 AI 生成的参考信息,不提供任何担保,行动前应核对原始发布说明。使用托管端点时,check_stack 的参数会经过服务器内存,CDN 环节的连接元数据遵循该服务商政策;自托管可让版本留在本地。get_release 等需要指定版本的工具会把该版本放入上游请求路径。自托管可通过 MCP_AUDIT 开启可选的审计流。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Ratatosk Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Ratatosk, a messenger squirrel with a scroll in its bag, waving hello]

ratatosk-mcp

Ratatosk reads CNCF release notes every hour. Your agents get the changes.

English · 한국어 · 日本語

[MCP Registry] [Release] [License] [Glama score]


In Norse myth, Ratatoskr is the squirrel that carries messages up and down the world tree. This one carries release intelligence. ratatosk.io watches 76 CNCF projects and turns every release note into typed, entity-level changes: security fixes, breaking changes, removals, deprecations, changed defaults — each one classified by how you should act on it now. Routine lines are recorded too, but kept out of the way.

This repository is the MCP server that hands those changes to your agent as tools. MCP (Model Context Protocol) is the open standard AI agents use to call external tools; any MCP-capable client — Claude Code, Claude Desktop, kagent, your own SDK agent — can connect. No account, no API key.

Two ways to connect

Hosted — nothing to install. Register https://ratatosk.io/mcp as a remote MCP server in any client that supports remote connectors. The hosted endpoint allows each caller 60 tool calls a minute, counted per caller rather than pooled — for polling or CI workloads, self-host. With the Claude Code CLI:

bash
claude mcp add --transport http ratatosk https://ratatosk.io/mcp

Self-hosted — the same server, running as your own process. Run it with Docker, the Helm chart, or a source build. With Claude Code and Docker installed:

bash
claude mcp add ratatosk -- docker run -i --rm ghcr.io/basphere/ratatosk-mcp:0.10.0

0.10.0 is the current release; use latest to follow new ones.

Either way, verify the connection:

bash
claude mcp list# ratatosk: … - ✔ Connected

Then ask your agent a question the tools can answer:

You: "We run envoy v1.36.8 and istio 1.30.1. Anything we must do before upgrading?"

Your agent calls check_stack and answers from the record: the CVEs fixed after your version, the APIs removed on your upgrade path, the defaults that changed — separated into what applies to everyone and what applies only if your configuration matches. Each change carries a verbatim quote from the release notes as evidence.

One entry from a real check_stack answer, as the agent receives it (istio, measured 2026-08-20):

json
{  "severity": "high",  "family": "security",  "bucket": "action",  "applies_if": "uses JWKS Resolver",  "quote": "- CVE-2026-31837 / GHSA-v75c-crr9-733c : (CVSS score 8.7, High): JWKS Resolver Failure May Allow Authentication Bypass Using Known Default Keys.",  "same_matter_also_addressed_in": ["1.28.5", "1.29.1"]}

applies_if is a condition the agent evaluates, not prose to read: a stack that runs no JWKS resolver skips this entry without asking anyone. The answer also carries its own privacy line, verbatim: "versions were compared locally; only project slugs were sent to the server."

Other clients (Claude Desktop, kagent, in-cluster agents) and the full setup reference: see the install guide.

Tools

Two things the tools speak in. A change is one thing a release did, taken from an official release note and tied to the exact identifiers it touches (a CVE id, a flag, a CRD, a config field), with a verbatim quote as evidence. Every change carries three axes:

  • family — security, breaking, or deprecated: what kind of thing it is.
  • bucket — action (applies to everyone), check (only if applies_if matches your setup), plan (announced for later), other (the full record).
  • applies_if — a boolean expression you can evaluate against your own manifests, not prose to read.

A matter is the issue underneath, identified by matter_key and stable across releases and branches: the same security roll-up landing on five branches shares one key. Severity lives on the cited advisories and is read from the ledger's current value, not frozen at analysis time.

ToolWhat it does
check_stackTakes the component versions you run and returns the changes on your upgrade path, split by bucket: action_required applies to everyone, check_config only if its applies_if holds. The comparison happens inside the server process — which is your own process when you self-host (how your component versions are handled)
list_changesThe incremental change feed, oldest-analyzed first. Filter by project, family, or bucket; page with the since cursor to keep a local copy in sync
changes_by_entityReverse lookup: every change touching one exact identifier — such as a CVE id, CRD, feature gate, flag, config field, or dependency
get_matterEvery release in which one matter appeared. The same roll-up lands on several branches carrying different advisories — told only the newest, you would assume you were covered
get_releaseOne release in full: its changes, a summary, and the link to the original note. A release with zero changes means it was read and found routine
list_releasesThe newest releases of one project as one-line summaries (dates, counts by bucket and family, highest advisory severity), newest first — the tool for "what changed in X lately"
list_projectsThe roster of tracked projects and their canonical slugs (the short project id every other tool takes) — look names up here instead of guessing

Full per-tool parameters, example calls, and measured responses live in the tools reference.

How your component versions are handled

Self-hosted: check_stack sends only project slugs to the server and compares versions locally, inside this process — the versions you pass it never reach ratatosk.io. The server publishes changes; your agent decides what applies. The version normalizer is bundled (internal/version), so range comparison happens client-side too. This holds for upgrade questions as well: the upstream API has a convenience endpoint (/v1/upgrade/{project}) that receives caller-supplied versions — check_stack does not call it; the comparison is in the source you can read.

One limit on that guarantee: it covers check_stack. Tools that take a version as an argument — get_release(project, version) — put that version in the upstream request path, because fetching a specific release means naming it. That named path is not kept on my side, though: before a log line is written, query strings are stripped and /v1/releases/… and /v1/upgrade/… paths are reduced to their prefix, so neither the slug nor the version lands in a log.

Hosted: your check_stack arguments (the versions you run) pass through the server's memory to produce the same answer, and are not written down. Here is what each layer on the way keeps:

  • The hosted MCP process itself logs only its startup line — a normal request adds nothing.
  • The upstream API's request log writes one line only when the caller sends a traceparent, and that line carries a normalized endpoint label and the trace id — never a path, query, or body.
  • The front-door access log strips query strings, reduces /v1/releases/… and /v1/upgrade/… paths to their prefix, masks caller IPs, and has no field for request bodies.

The hosted endpoint runs with its audit stream off, and I keep it off — not recording request content is the operating stance for that endpoint. One boundary I do not control: connection metadata on the CDN leg follows the CDN provider's own policy. If your requirements rule out that transit, self-host: then only project slugs leave your infrastructure on a check_stack call.

Self-hosting adds the opposite capability: an opt-in audit stream (MCP_AUDIT=metadata or full) that records who called which tool, emitted inside your own infrastructure into your own collectors. The hosted endpoint has none by design. Details in the install guide.

Documentation

Upstream API

This server is a thin client over the public REST API. If you would rather call it directly, GET /v1 on ratatosk.io describes itself. No API key; rate limited at 1200 requests per minute per IP.

Data & terms

The data is served free of charge by ratatosk.io — a term that may change, with advance notice — under its terms of service. Analyses are AI-generated reference information with no warranty — check the original release notes before acting, especially when an agent acts on your behalf. Original notes belong to their respective projects; responses that carry a full note include an attribution notice (raw_notes_notice).

License

The code in this repository is licensed under Apache-2.0.

来源:README.md,提交 b2e0d33

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.10.0最新Oct 17, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分