チュートリアル 2026-04-15 · 約 18 分

Claude Code と MCP ツールがタイムアウトしがちなとき:2026 年、Clash の分流で CLI・npm・GitHub の取得を安定させる

2026 年、Claude Code やエディタから起動する Model Context Protocol(MCP) サーバーは、ブラウザの Claude とは別経路で Anthropic の API、npm レジストリ、GitHub、拡張マーケットやコミュニティのレジストリ類へ同時多発接続します。出口が混雑していたり、DNS がブラウザと CLI で食い違っていたりすると、画面ではなくターミナル側だけがタイムアウト・ETIMEDOUT・証明書検証の遅延として現れがちです。本稿は既存の Claude ウェブ・API 分流 と棲み分けし、CLI・プラグイン取得・MCP 子プロセスが踏むドメインを Clashルール順ポリシー分離で整える手順に絞ります。職場ポリシーと各サービスの利用規約は必ず遵守してください。

なぜ「ブラウザは動くのに CLI だけ不安定」になりやすいか

ブラウザは OS のプロキシ設定や拡張に従いやすい一方、nodedeno、言語別のパッケージマネージャ、gh などの CLI環境変数HTTPS_PROXY など)を見たり見なかったりします。Claude Code や MCP ランチャーはさらにIDE 外の子プロセスを挟むため、親が通っていたはずの経路が子では DIRECT に落ちている、というパターンが典型です。

  • 長い HTTPS セッション:SSE やストリーミング、大きな tarball 取得が同一ノードのキューに積み上がる。
  • レジストリのリダイレクト連鎖registry.npmjs.org から CDN へ飛ぶ一行が、別ルールに吸われる。
  • GitHub のホスト分散github.comobjects.githubusercontent.com で出口が割れると、git / npm の途中で失敗に見える。

切り口

「モデルが弱い」の前に、Connections ログのホスト名と outbound を揃える。ブラウザと同じノード名でも、実際に当たっている行が違えば体感は別物です。

束ねるドメイン:Anthropic・npm・GitHub・周辺

環境ごとに増減しますが、開発者マシンでは次のようなバケット分けが扱いやすいです。いずれも本番設定前に、自環境のログで実名を確認してください。

バケット 代表ホスト(例) メモ
Anthropic / 認証 api.anthropic.comclaude.ai 周辺 CLI とブラウザでホストが分かれる場合あり
npm registry.npmjs.org、CDN 系 ロックファイル取得・publish で負荷が偏る
GitHub github.comraw.githubusercontent.comobjects.githubusercontent.com git clone / release asset でオブジェクトストレージが増える
エコシステム open-vsx.orgmarketplace.visualstudio.com など 拡張・MCP バイナリ配布の参照元として現れやすい

MCP のマニフェストが任意 URL を指す場合、上表に無いホストが一気に増えます。そのときは「ドメイン辞典を無限に増やす」のではなく、失敗した URL をログから逆引きしてルールを足す方が安全です。リモートのルールセットだけに依存する場合は、rule-providers の取得失敗 と合わせてキャッシュ更新も確認してください。

ルール順:開発者出口を GEOIP より上へ

広い GEOIP や最終 MATCH の直前までに細かい行を置き忘れると、npm だけ意図せず直結・あるいは逆に遅い商用出口へ吸われます。Anthropic・npm・GitHub をまとめたブロックを、エンタメ向けの遅延測定グループとは別の低遅延・安定優先のポリシーグループへ流すのが実務的です。

# Illustrative snippet — replace PROXY_DEV with your policy group name
rules:
  - DOMAIN-SUFFIX,anthropic.com,PROXY_DEV
  - DOMAIN-SUFFIX,claude.ai,PROXY_DEV
  - DOMAIN-SUFFIX,npmjs.org,PROXY_DEV
  - DOMAIN-SUFFIX,npm.community,PROXY_DEV
  - DOMAIN-SUFFIX,github.com,PROXY_DEV
  - DOMAIN-SUFFIX,githubusercontent.com,PROXY_DEV
  - DOMAIN-SUFFIX,openvsx.org,PROXY_DEV
  - DOMAIN-SUFFIX,visualstudio.com,PROXY_DEV
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

実際のリストは自宅・会社・クラウド IDE で異なります。DOMAIN-KEYWORD は誤爆しやすいので、まずは DOMAIN-SUFFIX とログで裏取りした DOMAIN 行から始めるのが無難です。

DNS・fake-ip と長接続

fake-ip モードでは、アプリによっては名前解決と実接続の見え方がズレ、再試行ループが増えます。CLI だけおかしいときは、ブラウザのセキュア DNS を一時オフにして検証経路を一本化し、原因切り分け後に元へ戻すのが定石です。詳細は DNS 漏れと fake-ip を参照してください。

  • 同一ホストでも解像度が違う:DoH と Clash 内 DNS の二重解決に注意。
  • 長めの読み取りタイムアウト:ストリーム型 API とレジストリの大物取得が重なると、ノード側のアイドル切断が表面化しやすい。
  • IPv6:IPv4 だけ安定している出口に、AAAA が先行して失敗するケース。

コンプライアンス

企業ネットワークではプロキシ迂回が禁止されていることがあります。本稿の技術は許可された環境での経路最適化を想定しています。

ノード選択:url-test のフラップを避ける

開発者向けポリシーは「帯域テストで一位のノード」より、小さな TLS ハンドシェイクが安定するノードを選びたい場面が多いです。url-test の間隔が短すぎると出口が頻繁に切り替わり、進行中の git / npm が途中で張り直されてタイムアウトに見えます。間隔と tolerance を緩め、フォールバック鎖の深さを抑えると改善することがあります。

OpenAI 系 CLI と併用する場合は Codex / o3 分流 とポリシーを分けると、混雑の伝播を減らせます。エディタ全体の補完トラフィックは Cursor / AI 開発ネットワーク の観点と重なるため、そちらでカバーしたホストは二重に書かず、どちらの記事の分類に寄せるかを決めるとメンテが楽です。

TUN とプロセス名:Node 子プロセスを捕まえる

環境変数だけでは拾えないトラフィックは、Clash Meta(Mihomo)系の TUN と PROCESS-NAME / PROCESS-PATH で IDE 付属の node を明示的にマークする手があります。ゲーム向けの TUN 稿とは別用途ですが、「キャプチャ点をカーネル近くに置く」という発想は共通です。プロセス名は OS ごとに異なるため、タスクマネージャや ps で実名を確認してからルール化してください。

npm / pnpm / yarn を安定させる観点

  • レジストリミラーと Clash の組み合わせでループプロキシになっていないか。
  • strict-ssl 周りのエラーが、実際は経路タイムアウトの二重表示になっていないか。
  • 社内 Nexus / Verdaccio 経由なら、そのホストは DIRECT 固定が安全なことが多い。

MCP サーバー固有の落とし穴

MCP はローカル stdio サーバーから、リモートの SSE まで幅があります。起動時に一度だけ npm で依存を取りに行き、その後はローカルで完結するサーバーもあれば、セッション中も外部 API を叩き続けるサーバーもあります。後者は長接続とレート制限の両方に当たりやすいので、ログで「詰まっているのはモデル API か、レジストリか、GitHub か」を分類してください。

  • マニフェスト URL:組織内レジストリを挟むと証明書チェーンが変わる。
  • npx 一発起動:毎回キャッシュミスでレジストリへ戻り、渋滞時に失敗しやすい。
  • 複数 MCP の同時起動:同じ npm CDN 行に集中し、帯域ではなく同時 TCP 数が限界になる。

よくある質問

ブラウザの Claude は快適なのに Claude Code だけ遅い

CLI が参照するホストが別ルールに落ちている、またはプロキシ環境変数が空の可能性があります。Connections で api.anthropic.com 等の outbound を確認してください。

npm install は通るが git clone だけ失敗する

objects.githubusercontent.com などオブジェクト用ホストが未登録で、遅い/不安定なデフォルト出口に流れているケースがあります。

MCP ツールだけタイムアウトが増えた

そのサーバーが参照する追加ドメインをログから拾い、Anthropic バケットとは別グループへ分離できるか検討してください。モデル API とレジストリを同一測定グループに載せないのがコツです。

チェックリスト

  1. ブラウザと CLI で、同一ホストの outbound が一致しているか確認する。
  2. Anthropic・npm・GitHub 系を GEOIP より上に置く。
  3. DNS / fake-ip を切り分け、必要なら検証期間だけ経路を揃える。
  4. 開発者用ポリシーの url-test がフラップしていないか見る。
  5. MCP ごとに「起動時のみ外部」「常時外部」を分類し、混在を避ける。

まとめ

2026 年の開発体験は、モデル品質だけでなくレジストリ・GitHub・API の複合レイテンシに左右されます。Clash でドメイン単位の意図した出口を先に決め、DNS と長接続、ノードの切り替わりを整えれば、Claude CodeMCP のタイムアウト体感はかなり改善することが多いです。

Clash を無料ダウンロードして、快適な開発者ネットワークから始める

CLI と MCP の出口を分ける

npm・GitHub・Anthropic を束ね、DNS とノードのフラップを抑えて取得を安定させます。

Clash をダウンロード