.NET SDK: MCP server config has no way to set per-server tool deferral (deferTools)

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

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

評価

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

調査の方向性

Start by locating the .NET definitions of McpServerConfig, McpHttpServerConfig and McpStdioServerConfig, then check how their settings are serialized and tested. Compare the SDK's existing configuration patterns with the stated protocol values, auto and never. Done means each MCP server config can express deferTools and tests verify the setting is carried through.

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

説明

Problem

With tool search enabled, a session defers every MCP server's tools behind the tool-search tool. The runtime protocol lets a session control this per server: McpServerConfigDeferTools, with auto (tools may be deferred) and never (tools are always in the initial tool list, even when tool search is enabled). The Python and Rust SDKs expose this setting.

The .NET SDK doesn't. McpServerConfig, McpHttpServerConfig and McpStdioServerConfig have no member for it. Their only members are Type, Tools and Timeout, plus Url, Headers and the OAuth settings for HTTP, and Command, Args, Env and WorkingDirectory for stdio.

Impact

A .NET host can't enable tool search and still keep a chosen MCP server's tools always loaded. It has two options:

  • enable tool search, and every MCP server is deferred, including servers whose tools are needed on almost every turn, which adds a search step before they can be used;
  • leave tool search off, and every tool definition from every server is sent on every model call.

ToolSearchConfig (Enabled, DeferThreshold) applies to the whole session, so it can't single out a server. Per-tool defer exists only for tools the host registers itself, not for MCP server tools.

Environment

  • .NET SDK, with tool search enabled through SessionConfig.ToolSearch and HTTP MCP servers.
主要言語
Java
スター
10.7k
フォーク
1.5k
PR マージ指標
30日以内にマージされた PR はありません

環境構築

はじめの一歩

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

github/copilot-sdk のほかの issue

github/copilot-sdk の issue をすべて見る

似ている issue

Java の issue をもっと見る

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

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