bareElicitationCapabilityとは — v2.1.287後にMCPが繋がらないときの設定
Claude Code v2.1.287でMCPサーバーのURLプロンプトに対応した後、接続できなくなったサーバーに足す設定キーbareElicitationCapabilityの置き場所と足す前の切り分けを示します。
Claude Code v2.1.287で、2025-11-25版のプロトコルを話すMCPサーバーからのURLプロンプトを受けられるようになりました。この更新のあと、あるMCPサーバーが接続できなくなった場合の対処として、変更履歴は"bareElicitationCapability": trueをそのサーバーのMCP設定の項目に足すよう案内しています。キーの意味と置き場所、足す前に確かめたい点をまとめます。
v2.1.287で何が変わり、キーはどこで案内されたか
変更履歴のv2.1.287には、次の1行があります。リリース全体の内容はClaude Code v2.1.287のリリースノートにあります。
Added URL prompts from MCP servers on the 2025-11-25 protocol, for example to sign in. If a server no longer connects after this update, add "bareElicitationCapability": true to its MCP config entry
読み取れる事実は3つです。
- 対象は2025-11-25版のプロトコルで接続するMCPサーバーです
- 追加された機能は、サインインなどを想定したURLプロンプトの受け取りです
- 更新後に接続できなくなったサーバーだけが、このキーの対象です
Claude Codeの公式MCPページには、このキーの記述がありません。挙動の説明は変更履歴の1行だけです。以降の「なぜ効くのか」は、MCP仕様の記述から組み立てた推測だと区別して読んでください。
名前の「bare」が指すもの(仕様からの推測)
2025-11-25版の仕様は、Elicitationに対応するクライアントにelicitationの対応宣言を求めています。宣言の形は2通りです。
elicitationの対応宣言は2形式ある
モード指定あり
"elicitation": {"form": {}, "url": {}}の形です。フォームとURLの両モードに対応することを明示します。
空のオブジェクト
"elicitation": {}の形です。後方互換のため、{"form": {}}、つまりフォームモードのみと同じ扱いになります。
仕様はさらに、サーバーが宣言されていないモードの要求を送ってはならないとし、送られた場合のエラーを-32602(Invalid params)としています。
英語のbareは「飾りのない」を意味し、仕様の「空の宣言」とも重なります。そこから、このキーは対応宣言を従来どおりの空の形に戻す指定ではないか、と読めます。URLモードを宣言し始めたことで、宣言の形に厳密なサーバーが初期化の段階で弾く、という筋書きです。ただし公式はどちらも述べていません。推測のままにしておき、次の節の手順で自分のサーバーに当てて確かめます。
足す前に、接続失敗の原因がこれかを切り分ける
接続できない原因は、認証切れやコマンドのパス違いなど、ほかにも多数あります。更新直後だからという理由だけで、キーを足さないほうが安全です。切り分けの順番は次のとおりです。
キーを足す前の切り分け
- 1
状態を確認する
claude mcp listで、対象サーバーが✘ Failed to connectになっているかを見ます。! Needs authenticationなら認証の問題で、このキーとは別の話です。 - 2
更新前の状態と比べる
v2.1.287より前のバージョンでは繋がっていたかを思い出します。もとから繋がらなかったサーバーは対象外です。
- 3
サーバーが2025-11-25版かを確かめる
サーバーの提供元ドキュメントで、対応するMCPプロトコルの版を見ます。2025-11-25版を話すサーバーが、変更履歴の対象です。
- 4
キーを足して再接続する
設定の項目にキーを足し、
/mcpの画面で再接続して状態が変わるかを見ます。
状態の確認には、次のコマンドを使います。
claude mcp list
claude mcp get my-serverclaude mcp get <name>は、サーバー単位の詳細を出します。公式のMCPページが、接続の確認方法として案内しているコマンドです。
設定の書き方と置き場所
変更履歴の指示は「そのサーバーのMCP設定の項目に足す」です。MCPサーバーの設定は、プロジェクト直下の.mcp.json、~/.claude.json、claude mcp add-jsonのいずれかで定義します。.mcp.jsonなら、サーバー名の下のオブジェクトにキーを並べます。次は、既存のHTTPサーバーの項目にキーを足した例です。
{
"mcpServers": {
"my-server": {
"type": "http",
"url": "https://example.com/mcp",
"bareElicitationCapability": true
}
}
}キーを足すのは、接続できなくなった項目だけです。ほかのサーバーに広げる必要はありません。
claude mcp add-jsonでも登録できます。ただし、このコマンドがこのキーをそのまま保存するかは、公式のMCPページに記載がありません。コマンドを使ったあとは、~/.claude.jsonか.mcp.jsonを開いて、キーが残っているかを目で確かめます。プロジェクト共有の.mcp.jsonに足すなら、チーム全員に同じ設定が届く点も考えておきます。
足したあとに起きること、起きないこと
足したあとに、何が変わるのかは公式に書かれていません。仕様からは、次のように整理できます。
- 空の宣言はフォームモードのみと同じ扱いなので、そのサーバーはURLモードの要求を送れない前提になります
- URLプロンプトで認証するタイプのサーバーは、サインインの案内が出なくなる可能性があります
2つ目は推測です。サインインのURLが出てこなくなったときは、キーを外して様子を見る選択肢があります。接続の可否とURLプロンプトの有無は、キーの有無で入れ替わる関係かもしれません。サーバーの更新で解消できるなら、キーは一時的な回避策にとどめる形が自然です。
2025-11-25版と2026-07-28版では別の話になる
Claude Codeには、MCPクライアントの実行系が2つあります。v2実行系は2026-07-28版のプロトコルを話せます。公式のMCPページによると、2026-07-28版の接続ではelicitation: {form: {}, url: {}}を宣言し、サーバーはフォームでもURLでも標準の要求で入力を求められます。
つまり、bareElicitationCapabilityが関係するのは2025-11-25版の接続だという読み方になります。変更履歴の文言も、2025-11-25版を明記しています。版による扱いの違いをまとめます。
| 接続するプロトコル | URLモードの扱い | 根拠 |
|---|---|---|
| 2025-11-25版 | URLモードの扱いv2.1.287で受け取りに対応。接続できないときは本キーを足す | 根拠変更履歴v2.1.287 |
| 2026-07-28版 | URLモードの扱い両モードを宣言して対応 | 根拠公式MCPページ、変更履歴 |
どの版で接続しているかを変えたい場合は、環境変数MCP_PROTOCOL_NEGOTIATIONが使えます。legacyにすると、Claude Codeは2026-07-28版を試さず、すべてのサーバーを従来のハンドシェイクで接続します。ただし、この環境変数が効くのはv2実行系だけです。2025-11-25版の問題をこの環境変数で直せるとは限りません。
どの実行系で動いているかによって、2025-11-25版の接続が生まれる経路が変わります。公式のMCPページによると、v1実行系はMCP仕様の2026-07-28版を扱わないので、すべてのサーバーと従来の版で接続します。v2実行系はHTTP、stdio、claude.aiコネクタのサーバーに新しい版に対応しているかを尋ね、対応しないサーバーとは従来どおりの版で接続します。つまり2025-11-25版の接続は、v1実行系で動いている場合と、v2実行系でも新しい版に対応しないサーバーの場合の両方で起こります。
ローカル(stdio)のサーバーについては、変更履歴に2件の記述があります。1件目は、新しい版のネゴシエーションをBedrock、Vertex、Foundryを含むすべての環境で既定にした変更です。2件目は、新しい版の確認を無視するサーバーを、最初の接続が遅れた後に7日間覚えて、以後は待たずに従来の方式で繋ぐ改善です。接続の遅さと失敗は別の症状なので、遅いだけなら本キーの対象ではありません。実行系の選び方はMCPのElicitation、フォームとURLで何が違うかで詳しく扱っています。
URLプロンプトを受けられるようになった後の運用
URLモードの追加前から、フォームモードは設定なしで使えました。公式のMCPページは、Elicitationのダイアログについて、利用者側の設定は不要だと説明しています。キーを足してもフォームの要求は従来どおり届くので、フォームで入力を求めるだけのサーバーは、足しても挙動が変わらないはずです。
URLモードを受けられるのは、サインインの流れが端末の外で完結するサーバーです。Claude Codeはブラウザで開くかを確認し、URLをOSのURLハンドラーへコマンドライン引数で渡します。エスケープ後の長さが上限を超えると、拒否しかできません。
自動化している環境では、ElicitationフックでURLプロンプトに自動応答できます。人が端末にいないCIでは、ダイアログが開いたまま止まるのを避けられます。実装はElicitation/ElicitationResultフックでMCP入力要求を横取りするで扱っています。
VS Code拡張でElicitationが自動で辞退される不具合は、MCP elicitationが自動辞退される不具合の現状にまとまっています。接続できない問題と症状が似て見えることがあるので、先に見比べておくと切り分けが早まります。
設定を足すかどうかの早見表
| 状況 | キーを足すか |
|---|---|
v2.1.287の更新後に✘ Failed to connectになり、サーバーは2025-11-25版 | キーを足すか試す価値あり |
| 更新前から繋がらなかった | キーを足すか足さない(別の原因) |
! Needs authenticationと出る | キーを足すか足さない(認証の問題) |
| 2026-07-28版で接続するサーバー | キーを足すか足さない(変更履歴の対象外) |
| 繋がっているサーバー | キーを足すか足さない |
まとめ
bareElicitationCapabilityは、v2.1.287で追加されたURLプロンプト対応の後に、2025-11-25版のサーバーが接続できなくなったときの回避用の設定キーです。置き場所は該当サーバーのMCP設定の項目で、効果の仕組みは公式に説明がありません。足す前にclaude mcp listで失敗の種類を確かめ、足した後は再接続で結果を見ます。繋がったあとにサインインのURLが出なくなったら、キーを外す選択肢も残しておいてください。