このページは機械翻訳で、ネイティブによる確認を進めています。正確な内容は英語版をご覧ください。
← ブログ
リサーチ

Listing Swap:1,075 の MCP サーバーが同じ名前のまま別の場所を指している

公式 MCP レジストリのすべてのサーバーを、その名前で最初に公開されたバージョンと比較しました。1,075 件が現在は別のドメインまたは別のパッケージ所有者につながっており、その多くは説明文が変わっていません。MCP クライアントは改めて確認を求めません。

Redthread Research · 2026年10月10日 · 7分で読めます

エージェントに MCP サーバーを追加するとき、選ぶ基準は名前です。名前は、あなたが読み、同僚が勧め、セキュリティチームが承認したものです。しかしエージェントが実際に実行するコードは、その名前が今日指している先にあるものです。

私たちはこれを Listing Swap(掲載すり替え) と呼んでいます。名前はそのままで、その下が変わる状態のことです。具体的には、公式 MCP レジストリにあるサーバーの現在のバージョンが、同じ名前で最初に公開されたバージョンとは別のリモートエンドポイントのドメイン、または別のパッケージ所有者につながっている状態を指します。

公式 MCP レジストリの 1,075 件のサーバーが、最初の公開時とは別のドメインまたはパッケージ所有者を指しています。そのうち 698 件はタイトルと説明文がまったく同じままでした。

測定内容

2026年10月10日、公式レジストリの全エントリ(41,351 サーバーの 142,002 バージョン)をダウンロードし、各サーバーの現在のバージョンを、その名前で最初に公開されたバージョンと比較しました。すり替えとして数えたのは所有者が変わった場合だけで、サーバーが新しいパス、バージョン、サブドメインに移っただけの場合は含めていません。

指標サーバー数
レジストリ内のサーバー41,351
複数バージョンを持つサーバー17,989
掲載すり替え1,075 (履歴のあるサーバーの 6.0%)
パッケージの公開者が別の所有者に変わった652
リモートエンドポイントが別のドメインに移った377
ローカルパッケージとリモートエンドポイントの間で切り替わった47
タイトルと説明文が同じままのすり替え698 (65%)
1Sep 253Oct4Nov1Dec4Jan 2614Feb23Mar18Apr128May41Jun91Jul120Aug368Sep259Oct 1–10
すり替えられたバージョンの公開月別の掲載すり替え件数。2026年9月だけで 368 件、10月の最初の10日間で 259 件ありました。

重要な理由

これらのサーバーが悪意あるものだと言っているわけではありません。ほとんどのすり替えはおそらく通常の出来事です。プロジェクトの名称変更、ホスティングの移転、パッケージの新しいメンテナーへの引き継ぎなどです。問題は、乗っ取りもまったく同じように見え、現状ではどちらも誰にも気づかれないことです。

  • レジストリが確認するのは名前であり、接続先ではない。 ある名前空間で公開できることは、その名前空間を管理していることの証明にはなります。しかし、バージョン 2 の接続先をバージョン 1 の接続先と比較する仕組みはありません。
  • クライアントは名前を信頼する。 レジストリからのインストールでは、名前が最新バージョンに解決されます。一度与えた承認は、エンドポイントやパッケージ所有者が変わっても改めて求められません。
  • 掲載内容は変わらないように見える。 すり替えの3分の2ではタイトルと説明文が変わっていないため、掲載内容を確認する人には何も新しいものが見えません。

これは、Invariant Labs が 2025 年に報告したツール定義の「rug pull」より一段上の層の問題です。rug pull では、承認後にサーバーがツールの説明を変更します。掲載すり替えでは、サーバー自体が何かを変える必要はありません。名前が、別の誰かが運用する別のコードにつながるようになるだけです。

無害な例

天気サーバー io.example/weatherを例に考えます。このサーバーは @example の npm スコープのパッケージで公開されています。チームはこれを承認します。1か月後、同じ名前・同じ説明文でバージョン 1.3 が公開されますが、パッケージは別の人物が運用する別のスコープから提供されるようになっています。エージェントは次回のインストールで 1.3 を取得します。コードの公開者が変わったことをクライアントは一切知らせません。そして新しいパッケージがファイルを読み取ったり、新しい送信先にデータを送ったりする場合、それは古いパッケージに与えた権限のもとで行われます。

調査方法 読み取ったのは公開されているレジストリデータのみで、何もインストール・実行しておらず、どのサーバーにも接続していません。公開するのは集計値であり、サーバーの一覧ではありません。この調査結果が示すのは個々の公開者ではなく、ギャップの大きさです。本稿のすべての数値を再現するスクリプトは github.com/bl014h/atppで公開しています。スキャンと開示に関するポリシーは次を参照してください: trust.redthreadsec.com/security。

対策

MCP サーバーをインストールする場合

  • バージョンを固定し、レジストリが対応していればパッケージハッシュやイメージダイジェストも固定してください。
  • エンドポイントのドメインやパッケージ所有者の変更は新しいサーバーとして扱い、改めて審査してください。
  • インストール前に確認してください。Redthread コネクタを使って ChatGPT または Claude に「この MCP サーバーが Redthread のスキャンに合格したか確認して」と尋ねるか、次のオープンソースツールでバッジを検証してください: atpp verify。
  • インストール済みのものを確認する: python3 atpp.py check-config がお使いのマシン上で Claude、Cursor、VS Code の設定を読み取り、掲載すり替えが起きたサーバーを警告します(どのように)。

MCP サーバーを公開する場合

  • ホスティングを移転したりパッケージを引き継いだりする場合は、掲載内容とリポジトリにその旨を明記し、ユーザーが新しい接続先を信頼できる根拠を示してください。
  • パッケージハッシュを公開し、イメージはダイジェストで固定してください。署名付きアーティファクトがあれば、ユーザーは比較する対象を持てます。

レジストリやクライアントを運営する場合

  • 名前の横に接続先を表示し、バージョン間で何が変わったかを示してください。
  • サーバーのエンドポイントのドメインやパッケージ所有者が変わったときは、改めて確認を求めてください。アプリが新しい権限を求めたときにスマートフォンが確認を求めるのと同じです。

このチェックは無料です

本日から、Redthread によるレジストリの日次スキャンに target-stable チェックが加わりました。各サーバーの署名付きスキャン結果とバッジには、初回公開以降に掲載がすり替えられたかどうかが示されます。件数は レジストリスキャンのページで毎日更新されます。同じチェックは Redthread コネクタを通じて ChatGPT と Claude でも利用できます。

サードパーティの MCP サーバーをインストールするエージェントをチームで運用しており、承認済みサーバーがすり替えられたときに通知する許可リストが必要な場合は、 お問い合わせ。

続けて読む

ブログのその他の記事。

エージェントセキュリティ
ブロックされたエージェントは、別の方法を見つけた:Services Australia のインシデントが示すもの
ある AI リサーチエージェントが、オーストラリア政府のサービスでアクセスブロックに阻まれ、何かが成功するまで試行を続けました。実際に何が失敗したのか、そして当社がそれを踏まえてどう設計したのか。
プラットフォーム
エージェント不要でグラフファースト:なぜ地図から始めるのか、そして時間と費用はどこに消えているのか
あらゆる場所へのエージェントのインストールと、フラットな検出結果リストのトリアージは、セキュリティツールにおける二大隠れコストです。エージェント不要のグラフがそれらをどう取り除くのかを説明します。
ペネトレーションテスト
AI ペネトレーションテストのコスト——そして、置き換えられないもの
手動のペネトレーションテストは、高額で頻度の低い購入です。自律エージェントは、それを少額で頻繁なものに変えます。人間のほうが今も得意な部分も含めた、正直な比較です。