ratatosk-mcp について
ratatosk-mcpは、76のCNCFプロジェクトのリリースノートを構造化し、セキュリティ修正、破壊的変更、非推奨などを提供するMCPサーバーです。アップグレードを評価するエージェントや運用担当者向けに、ローカルでのバージョン比較と根拠となる原文引用を備えています。
主な機能
- 0176のCNCFプロジェクトを追跡
- 02リリースノートの変更を分類
- 03check_stackでコンポーネントのバージョン比較
- 04エンティティやリリース単位で変更を検索
- 05根拠としてリリースノートを引用
活用シーン
- 01稼働中のスタックのアップグレード経路を確認
- 02CVEや設定項目に関わる変更を検索
- 03変更フィードをローカルで同期
- 04プロジェクトの最近のリリースを確認
MCP 対応
check_stack、list_changes、changes_by_entityなどのMCPツールでリリース情報を提供します。ホスト型のリモートサーバーとしても、セルフホストでも利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm ghcr.io/basphere/ratatosk-mcp:0.10.0ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/basphere/ratatosk-mcp:0.10.0stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
北欧神話に登場するRatatoskrは、世界樹を上り下りしてメッセージを運ぶリスです。このRatatoskは、リリース情報を運びます。ratatosk.ioは76のCNCFプロジェクトを監視し、すべてのリリースノートを型付きのエンティティレベルの変更情報に変換します。セキュリティ修正、破壊的変更、削除、非推奨化、デフォルト値の変更など、それぞれについて今どのように対応すべきかを分類します。定型的な項目も記録しますが、邪魔にならないように表示します。
このリポジトリは、こうした変更をツールとしてエージェントに渡すMCPサーバーです。MCP(Model Context Protocol)は、AIエージェントが外部ツールを呼び出すために使用するオープン標準です。Claude Code、Claude Desktop、kagent、独自のSDKエージェントなど、MCPに対応するクライアントなら接続できます。アカウントもAPIキーも不要です。
接続方法は2つ
ホステッド — インストール不要です。 リモートコネクターに対応するクライアントで、https://ratatosk.io/mcpをリモートMCPサーバーとして登録します。ホステッドエンドポイントでは、呼び出し元ごとに1分あたり60回のツール呼び出しが可能です。上限は共有ではなく呼び出し元ごとに適用されます。ポーリングやCIのワークロードでは、セルフホストしてください。Claude CodeのCLIを使う場合:
claude mcp add --transport http ratatosk https://ratatosk.io/mcp
セルフホスト — 同じサーバーを独自のプロセスとして実行します。 Docker、Helmチャート、またはソースビルドで実行します。Claude CodeとDockerをインストール済みの場合:
claude mcp add ratatosk -- docker run -i --rm ghcr.io/basphere/ratatosk-mcp:0.10.0
現在のリリースは0.10.0です。新しいリリースを追うにはlatestを使用してください。
どちらの方法でも、接続を確認します。
claude mcp list
# ratatosk: … - ✔ Connected
次に、ツールで答えられる質問をエージェントにします。
あなた:「envoy v1.36.8とistio 1.30.1を使っています。アップグレード前に必ず対応すべきことはありますか?」
エージェントは
check_stackを呼び出し、記録に基づいて回答します。お使いのバージョン以降に修正されたCVE、アップグレード経路で削除されるAPI、変更されたデフォルト値を示し、すべてのユーザーに適用されるものと、お使いの設定が条件に合致する場合にのみ適用されるものを分けます。各変更には、根拠としてリリースノートからの原文引用が付いています。
エージェントが受け取る、実際のcheck_stack回答の項目例(istio、計測日:2026-08-20):
{
"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はエージェントが評価する条件であり、読み物としての説明文ではありません。JWKSリゾルバーを実行していないスタックでは、誰にも確認せずにこの項目をスキップします。回答には、プライバシーに関する記述も原文のまま含まれます:"バージョンはローカルで比較され、サーバーに送信されたのはプロジェクトのスラッグのみです。"
その他のクライアント(Claude Desktop、kagent、クラスタ内エージェント)とセットアップ全体のリファレンスについては、インストールガイドをご覧ください。
ツール
ツールでは、2種類の情報を扱います。変更とは、公式リリースノートから取得した、リリースで行われた1つの変更です。対象となる正確な識別子(CVE ID、フラグ、CRD、設定フィールドなど)と結び付けられ、証拠として原文の引用が付いています。各変更には、次の3つの軸があります。
- family —
security、breaking、deprecatedのいずれかです。変更の種類を表します。 - bucket —
action(全員に適用)、check(applies_ifがご利用のセットアップに一致する場合のみ適用)、plan(後日実施が告知されたもの)、other(全記録)です。 - applies_if — 説明文ではなく、ご自身のマニフェストに照らして評価できるブール式です。
事案とは、その根底にある問題のことです。matter_keyで識別され、リリースやブランチをまたいで一貫しています。同じセキュリティ情報の集約が5つのブランチに反映されている場合、すべて同じキーを共有します。重要度は参照先のアドバイザリに記載されており、分析時点で固定された値ではなく、台帳の現在の値が参照されます。
| ツール | 機能 |
|---|---|
check_stack | 実行中のコンポーネントのバージョンを受け取り、アップグレード経路上の変更をバケット別に返します。action_requiredは全員に適用され、check_configはそのapplies_ifが成立する場合にのみ適用されます。比較はサーバープロセス内で行われます。つまり、セルフホストの場合はご自身のプロセス内で行われます(コンポーネントのバージョンの処理方法) |
list_changes | 分析が古いものから順に並ぶ、変更の差分フィードです。プロジェクト、family、bucketで絞り込み、sinceカーソルを使ってページ分割し、ローカルコピーを同期した状態に保てます |
changes_by_entity | CVE ID、CRD、機能ゲート、フラグ、設定フィールド、依存関係など、特定の識別子に関係するすべての変更を逆引きします |
get_matter | 1つの事案が登場したすべてのリリースを返します。同じ集約情報が異なるアドバイザリを伴って複数のブランチに反映されます。最新のものだけを伝えられると、すでに対処済みだと思い込んでしまう可能性があります |
get_release | 1つのリリースの全情報を返します。変更内容、概要、元のリリースノートへのリンクが含まれます。変更が0件のリリースは、確認の結果、通常の内容だったことを意味します |
list_releases | 1つのプロジェクトの最新リリースを、1行の概要として新しい順に返します(日時、bucket別・family別の件数、アドバイザリの最高重要度)。「最近、Xにどんな変更があったか」を確認するためのツールです |
list_projects | 追跡対象プロジェクトの一覧と、その正式なスラッグ(他のすべてのツールで使う短いプロジェクトID)を返します。名前は推測せず、ここで確認してください |
ツールごとの全パラメーター、呼び出し例、実測されたレスポンスは、ツールリファレンスをご覧ください。
コンポーネントのバージョンの扱い
セルフホスト: check_stack はプロジェクトのスラッグのみをサーバーに送信し、このプロセス内でローカルにバージョンを比較します。渡したバージョンが ratatosk.io に送信されることはありません。サーバーは変更情報を公開し、何が該当するかはエージェントが判断します。バージョン正規化処理はバンドルされているため(internal/version)、範囲の比較もクライアント側で行われます。アップグレードに関する質問でも同様です。上流 API には、呼び出し元が指定したバージョンを受け取る便利なエンドポイント(/v1/upgrade/{project})がありますが、check_stack はこれを呼び出しません。比較処理は、誰でも読めるソースコード内にあります。
この保証には、check_stack に限るという条件があります。バージョンを引数に取るツール(get_release(project, version))では、特定のリリースを取得するにはその名前を指定する必要があるため、上流へのリクエストパスにバージョンが含まれます。ただし、その名前付きパスをこちらで保持することはありません。ログ行を書き込む前にクエリ文字列を削除し、/v1/releases/… と /v1/upgrade/… のパスをそれぞれのプレフィックスに短縮するため、スラッグもバージョンもログに残りません。
ホスト型: check_stack の引数(実行対象のバージョン)は、同じ結果を生成するためにサーバーのメモリを通過しますが、記録されません。処理の各層で保持される情報は次のとおりです。
- ホスト型 MCP プロセスがログに記録するのは起動行のみです。通常のリクエストでログが増えることはありません。
- 上流 API のリクエストログは、呼び出し元が
traceparentを送信した場合にのみ 1 行を記録します。その行に含まれるのは正規化されたエンドポイントのラベルとトレース ID であり、パス、クエリ、本文は含まれません。 - フロントドアのアクセスログでは、クエリ文字列を削除し、
/v1/releases/…と/v1/upgrade/…のパスをそれぞれのプレフィックスに短縮し、呼び出し元の IP アドレスをマスクします。また、リクエスト本文を記録するフィールドはありません。
ホスト型エンドポイントでは監査ストリームを無効にしており、今後も無効のままにします。このエンドポイントでは、リクエスト内容を記録しない方針です。こちらで管理できない範囲が 1 つあります。CDN 経由の接続メタデータは、CDN プロバイダー独自のポリシーに従います。データの転送も許容できない要件がある場合は、セルフホストしてください。そうすれば、check_stack の呼び出しでインフラストラクチャの外に出るのはプロジェクトのスラッグのみです。
セルフホストでは、これとは逆の機能として、オプトイン方式の監査ストリーム(MCP_AUDIT=metadata または full)が追加されます。これにより、誰がどのツールを呼び出したかが記録され、お使いのインフラストラクチャ内から、お使いのコレクターに送信されます。設計上、ホスト型エンドポイントにはこの機能がありません。詳細はインストールガイドをご覧ください。
ドキュメント
- インストールと使い方 — ホスト型エンドポイント · ローカル stdio · クラスター内(Helm) · kagent(한국어 · 日本語)
- Helm チャート — values、kagent の切り替え(한국어 · 日本語)
- kagent の例 — マニフェスト + ratatosk-agent(한국어 · 日本語)
- コントリビューション · セキュリティポリシー
上流 API
このサーバーは、公開 REST API を利用する薄いクライアントです。API を直接呼び出す場合は、ratatosk.io の GET /v1 で API の説明を確認できます。API キーは不要です。IP アドレスごとのレート制限は 1 分あたり 1200 リクエストです。
データと利用規約
データは ratatosk.io によって無料で提供されます。この条件は、事前の通知をもって変更される場合があります。利用にあたっては利用規約が適用されます。分析結果は AI が生成した参考情報であり、保証はありません。行動に移す前に、特にエージェントがお客様に代わって行動する場合は、元のリリースノートを確認してください。元のノートはそれぞれのプロジェクトに帰属します。ノート全文を含むレスポンスには、帰属表示(raw_notes_notice)が含まれます。
ライセンス
このリポジトリのコードは Apache-2.0 ライセンスで提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。