0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AntigravityV2へのアップデートで`.mcp.json`が勝手に書き換わる件

0
Posted at

まえがき

前回の記事でWSL2+AntigravityVer2(AGv2)で泥沼にハマった。
とはいえ、いつまでもVer1で塩漬けするわけにもいかないので、古いMacを引っ張り出してきて、AntigravityVer2の検証。その際に気づいたメモ。

TL/DR;

  • AntigravityのV2アップデートで.mcp.jsonが勝手に/mcpから/sseに書き換わる。
  • これはAGv2が、MCP(Model Context Protocol)の標準仕様に沿った HTTP+SSEトランスポート を前提に、設定フォーマットをSSEベースに揃えた影響。
  • AGv2は旧来の serverURL(HTTP POSTベース) 記法をやめ、リモート接続設定を SSEトランスポート前提の type: "sse" / url 記法に一本化 するという内部アップデートを行った。(らしい。)
  • そのため、.mcp.json に古い serverURL の記述を見つけると、自身が対応している SSE の形式に強制的に書き換えてしまうらしい。
  • 心臓に悪いよ。
  • Googleさん、毎年こういうドラスティックな変更をしれっとやりすぎ。

はじめに

  • Antigravity(GeminiベースのAIエージェント/IDE環境)をV2にアップデートした際、ワークスペース直下にある設定ファイル .mcp.json が、意図せず勝手に書き換わる(/mcp から /sse になる)事象が発生。

  • 先人のMCPサーバのリポジトリをForkしているのでUpstreamリポジトリの更新か?と思い、慌ててgit fetch upstreamするも差分なし。

  • AGv2を問い詰めたところ、MCP(Model Context Protocol)のトランスポート仕様(HTTP+SSE周り)の更新に伴い、クライアント側(AGv2)が勝手に自動Normalizer(正規化)していた。

以下、この事象の具体的な差分と、技術的な背景(なぜ書き換わるのか、元に戻せるのか、Claudeなどの他ツールへの影響は?等)についてまとめ。
※AGv2の回答をベースに自分の解釈を入れています。


発生した事象

Antigravity V2を導入後、プロジェクト(ワークスペース)を開くと、特段の指示をしていないにもかかわらず .mcp.json に以下の差分が発生。
この時点で冷や汗が出るのである。

         "pinescript-docs": {
-            "serverURL": "https://pinescript-mcp.fly.dev/mcp"
+            "type": "sse",
+            "url": "https://pinescript-mcp.fly.dev/sse"
         }
  • 通信先のURL末尾が /mcp から /sse に変更された
  • 設定キーが serverURL から type: "sse" および url に変更された

原因と技術的背景

1. 通信方式(トランスポート層)の移行

実は、/mcp/sse は単なるURLの違いではなく、上で使われている通信のトランスポート層の前提がけっこう違います

項目 旧方式 (/mcp / serverURL) 新方式 (/sse)
プロトコル HTTP (JSON-RPC over HTTP、非ストリーミング想定) HTTP + SSE (Server-Sent Events を用いたストリーミングトランスポート)
通信形態 リクエストごとにHTTPコネクションを張り直す、レスポンスも1ショット サーバ→クライアントはSSEでストリーム、クライアント→サーバはHTTP POSTでメッセージ送信
位置づけ 初期開発時の暫定的なカスタム実装 MCP公式仕様に準拠した標準トランスポート(Streamable HTTP / 旧SSE系)

2. Antigravity V2の「SSE設定への一本化」仕様

Antigravity V2では、通信の高速化・安定化および公式プロトコル標準への準拠のため、**MCPサーバとのリモート接続設定を「HTTP+SSEトランスポート前提のsse形式に統一」**するように、クライアント側の通信エンジンがアップデートされたとのこと。
そのため、古い serverURL 形式の設定を検知すると、**自動的に現在の仕様に適合する sse 形式へと書き換える(自動正規化)**処理が走るらしい。
※一言、言ってくれ。


よくある疑問と検証結果(AGv2との対話)

Q1. まだ /mcp(旧エンドポイント)でも接続自体はできるのでは?

A. サーバー側はまだ受け付けていますが、Antigravity(V2)クライアント側が受け付けません。

接続先サーバー(pinescript-mcp.fly.dev)自体は、互換性維持のために現在も /mcp (POST) と /sse (SSE) の両方のエンドポイントを開放しています。
そのため、サーバーとしては旧方式でも接続可能ですが、Antigravity V2クライアントが serverURL 形式の設定を処理できないため、手動で書き戻しても起動時に再度自動で sse に書き換えられます。

Q2. Claude Desktopなど、他のツールへの影響は?

A. 影響はありません。

このワークスペースにある .mcp.jsonAntigravity専用の設定ファイル です。
Claude Desktopなどの他のMCPクライアントは、通常システムグローバルな設定ファイル(Macの場合は ~/Library/Application Support/Claude/claude_desktop_config.json など)を参照して動作しているため、本プロジェクトの .mcp.json が書き換わってもClaude側の接続には干渉しません。
(※Claude側は、/mcp のままでも /sse に設定していても、どちらでも問題なく動作します)


まとめ / 対処法

この自動書き換えは、**「接続先のサーバーやGit(upstream)に更新が入ったわけではなく、Antigravity(V2)のクライアント設定が公式のSSEトランスポート仕様に一本化されたため、設定ファイルが自動コンバートされた」**というのが真相。

ストリーミング前提のトランスポートになったことで、接続の張り直しオーバーヘッドが減り、長めのレスポンスでは体感レスポンスが良くなるケースが多いはずです。
そのため、特別な事情がなければ この変更はそのままコミット(許容)してしまって問題ない と考えています。
とAGは言っているが…本当か??

もしGitの差分にこの自動生成ファイルが出るのが煩わしい場合は、.gitignore に追加して管理対象から外すことをお勧めします。

.gitignore
# Antigravity local config
.mcp.json
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?