[Bug]: Antigravity provider aborts every turn when an OAuth-only remote MCP server is configured (initialize -> Unauthorized)

オープン
#36,111 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
22/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
nodejs, typescript

調査の方向性

Start in apps/server where the Antigravity ACP provider builds the private GEMINI_HOME and reads remote MCP entries from config/mcp_config.json, and check how it applies static headers versus the mcp_oauth_tokens.json store. Reproduce by adding an OAuth-only URL entry and confirming the initialize call gets a 401. Done means the token is presented, or the server is skipped and reported without aborting the turn.

索引モデルが issue の本文から書いたものです。

説明

bug needs-triage
Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/server

Steps to reproduce
  1. T3 Code (Nightly) 0.1.10-nightly.20261113.4630, macOS 27.2, Antigravity provider.
  2. In the provider profile config at /config/mcp_config.json add an OAuth-only remote server with no static headers:
    {"mcpServers":{"click-up-code-orange":{"url":"https://mcp.clickup.com/mcp"}}}
  3. Open a new Antigravity thread and send any message.
Expected behavior

The turn runs. A server that cannot authenticate is skipped or reported as degraded; it does not take down the harness.

Actual behavior

Every turn is aborted before the agent starts:
The MCP server 'click-up-code-orange' failed to initialize: calling "initialize": sending "initialize": Unauthorized. Fix the MCP server, or remove it from your configuration and start a new session, to continue.
Antigravity stopped this turn because of an error.

Impact

Blocks work completely

Version or commit

0.1.10-nightly.20261113.4630

Environment

macOS 27.2 (arm64), Node v26.11.1, Antigravity provider through the ACP bundle

Logs or stack traces
Not ClickUp-specific: any remote MCP server that relies on OAuth and carries no static headers fails the same way.

The ACP path authenticates remote MCP servers only through static headers in the server entry, so an OAuth-only entry is connected with no Authorization header and gets 401.

Credentials do exist and are valid: ~/.gemini/antigravity-cli/mcp_oauth_tokens.json holds an entry keyed by the exact server URL (https://mcp.clickup.com/mcp), and that access token returns 200 on a direct initialize to the same endpoint. The provider profile also has <profile>/antigravity-cli/mcp_oauth_tokens.json and <profile>/antigravity-acp/mcp_oauth_tokens.json pointing at that store, and the token is still not presented.

The same ~/.gemini config works in the standalone agy CLI (it has its own OAuth flow), so this looks specific to how the provider prepares and authenticates the private GEMINI_HOME.

One unauthenticated MCP server aborts the whole session, with no per-server isolation.

Related issues checked first:
- #30948 (Kiro threads cannot use OAuth MCP servers) is the same class of failure for another provider, not a duplicate: that one is driven by _kiro/secret/* capabilities, this one by the Antigravity ACP token store.
- #20097 and #20260 covered how a required MCP startup failure is reported in run status; both are closed and neither covers an OAuth-only entry.
Screenshots, recordings, or supporting files

No response

Workaround

Remove the OAuth-only server from /config/mcp_config.json, or give it a static Authorization: Bearer header. Turns then run normally.

主要言語
TypeScript
スター
24.8k
フォーク
6.4k
平均マージ
59分
マージ済み PR(30日)
418

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

pingdotgg/t3code のほかの issue

pingdotgg/t3code の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。