modelcontextprotocol / modelcontextprotocol/java-sdk

set loggingConsumer after client initialization

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

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

waiting for triage
主要言語
Java
スター
3.7k
フォーク
1.1k
平均マージ
1日 15時間
マージ済み PR(30日)
9

説明

Expected Behavior

We should be able to set a loggingConsumer on McpClient after querying its capabilities.

var capabilities = client.getServerCapabilities();
if (capabilities.logging() != null) {
    client.setLoggingLevel(McpSchema.LoggingLevel.INFO);
    client.setLoggingConsumer(consumer);
}

Current Behavior

Currently, we can set a loggingConsumer with McpClientTransport before client initialization. For example,

McpClient.sync(server.transport())
                .loggingConsumer(consumer)
                .build();

Context

However, many MCP servers' logging capabilities are not enabled. But we cannot query if the server has this capability before client initialization. Such a poor design makes it impossible to register a logging consumer safely.

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

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

調査の方向性

まず McpClient の初期化と機能問い合わせのフローを読み、次に McpClientTransport の loggingConsumer 設定と比較します。初期化前に setLoggingLevel と setLoggingConsumer がどのように動作するかを確認します。getServerCapabilities() によって logging のサポートが確認された後に consumer を登録でき、既存の初期化前の builder 使用を壊さなければ完了です。

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

評価

技術スタック
java
領域
api, backend-api-design
issue の種類
機能追加
難易度
3/5
見積もり時間
1〜2日
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
58/100

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

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