GitHub Repo
OpenHands 1.22.0、クラウドのMCP設定上書きを修正し、リモート接続チェックを追加
新バージョンでは、単一のMCPサーバーを追加・編集した際に、保存済みの他の設定が意図せず削除される問題を防ぐ。リモート接続チェックもクラウドバックエンドに接続されたが、同時書き込みやツール実行の全工程は引き続き検証が必要だ。

OpenHandsは9月22日に1.22.0をリリースした。Agent Canvasがクラウドバックエンドに接続している際、MCPサーバーを1つ追加・編集すると他の設定が削除される可能性がある問題を修正し、リモートMCP接続チェックを追加した。どちらの変更も、起動後のエージェントが利用できるツールに直接影響する。[リリース告知](https://github.com/OpenHands/OpenHands/releases/tag/v1.22.0)
公式ドキュメントによると、OpenHandsは設定を読み込み、リモートサーバーへの接続またはstdioプロセスの起動を行い、ツールをエージェントに登録する。そのため、設定の消失は管理画面からカードが1枚消えるだけでなく、会話でツールが利用できなくなる形で現れる可能性がある。[MCPドキュメント](https://docs.openhands.dev/openhands/usage/settings/mcp-settings)
上書き問題は、更新データに対するフロントエンドとバックエンドの解釈の違いに起因する。従来、Canvasは変更中の単一項目だけを送信していた。一方、クラウド側のエンドポイントは、nullの削除マーカーを含まないマップを設定一覧全体の置き換えとして扱い、削除マーカーを含む場合にのみ部分的なマージを行っていた。その結果、サーバーBを追加すると、保存済みのAも削除される可能性があった。[修正内容](https://github.com/OpenHands/OpenHands/pull/17467)
新バージョンでは、追加・変更の前に既存の設定一覧を取得し、変更をマージして設定全体を送り返す。変更していない項目のマスク済み認証情報は、バックエンドが復元する。取得に失敗した場合は書き込みを中止する。認証情報の削除や認証方式の変更時には、古い認証情報が復元されないよう、明示的にauth: nullを送信する。この処理では設定取得リクエストが1回増えるほか、2つのタブで同時に変更した場合は、依然として最後の書き込みが優先される。[修正内容](https://github.com/OpenHands/OpenHands/pull/17467)
接続チェックは、クラウドアプリケーションサーバーのPOST /api/v1/mcp/testを利用する方式に変更され、ツール数や接続エラー、タイムアウト、認証情報のエラーを表示できるようになった。この機能はリモートサーバーを対象としており、サンドボックス内で起動するstdioサービスには、引き続き同様のテスト判定は提供されない。また、デプロイ先のバックエンドにも対応するエンドポイントの実装が必要だ。[接続テストの変更](https://github.com/OpenHands/OpenHands/pull/17276)
管理画面の接続結果は、あくまで診断の手がかりだ。公式アーキテクチャでは、ツールの探索、構造変換、登録、実行を別々のステップとしている。このため、ツールを一覧表示できるだけでは、各操作を完了できる証明にはならない。検証では、返されたデータをエージェントが読み取れる観測結果に変換できるかも確認すべきだ。[SDKアーキテクチャ](https://docs.openhands.dev/sdk/arch/mcp)
設定修正の作成者は、7ファイルにわたる70件のテストが成功し、サーバー側での認証情報の復元も検証したと報告している。ただし、クラウド上の操作フロー全体の実地検証は未完了と明記している。エンジニアリングチームはアップグレード後、2つのサービスを順に追加し、設定を再読み込みしたうえで、新しい会話を開始して両方のツールを呼び出せるか確認すべきだ。既存の復元ロジックはエンドポイントの識別情報に基づいて照合するため、サービスのURLを変更する際にも認証情報を再確認する必要がある。[検証記録と制約](https://github.com/OpenHands/OpenHands/pull/17467)