Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

McpClient.CreateAsync times out behind APIM in .NET SDK while MCP Inspector/Azure AI Foundry succeed

Aperta
#1,470 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 5 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Tranquilla
Stack tecnologico
csharp
Ambito
api, backend

Direzione di ricerca

Inizia riproducendo l'esempio net10.0 fornito con HttpClientTransport in modalità StreamableHttp, concentrandoti sull'inizializzazione di McpClient.CreateAsync prima di ListToolsAsync. Confronta il comportamento di inizializzazione dell'SDK con lo stesso endpoint APIM e la stessa autenticazione in MCP Inspector e Azure AI Foundry; il lavoro è completato quando CreateAsync termina e l'elenco degli strumenti viene recuperato correttamente senza timeout.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug P2 ready for work

Summary

I am seeing a consistent timeout when initialising McpClient from the MCP .NET SDK.

The same MCP server works successfully in:

  • MCP Inspector
  • Azure AI Foundry

The MCP server is exposed behind Azure API Management (APIM).

Environment

  • .NET: net10.0
  • ModelContextProtocol package: 1.1.0
  • MCP transport mode: HttpTransportMode.StreamableHttp

Observed behaviour

McpClient.CreateAsync(...) times out and throws:

  • System.TimeoutException: The operation has timed out.

Expected behavior

McpClient.CreateAsync(...) should initialize successfully with the same endpoint/auth that works in MCP Inspector and Azure AI Foundry.

Repro steps

  1. Set MCP endpoint and APIM subscription key.
  2. Call McpClient.CreateAsync(...) directly with HttpClientTransport (StreamableHttp).
  3. Immediately call ListToolsAsync().
  4. Timeout occurs during McpClient.CreateAsync(...) (initialization), before tool listing.
using ModelContextProtocol.Client;
using HttpClientTransport = ModelContextProtocol.Client.HttpClientTransport;

var key = Environment.GetEnvironmentVariable("APIM_SUBSCRIPTION_KEY")
          ?? throw new InvalidOperationException("Set APIM_SUBSCRIPTION_KEY");

await using McpClient mcpClient = await McpClient.CreateAsync(
    new HttpClientTransport(new HttpClientTransportOptions
    {
        TransportMode = ModelContextProtocol.Client.HttpTransportMode.StreamableHttp,
        Endpoint = new Uri("https://<redacted>.azure-api.net/apim-mcp/mcp"),
        AdditionalHeaders = new Dictionary<string, string>
        {
            ["Ocp-Apim-Subscription-Key"] = key
        }
    }));

var tools = await mcpClient.ListToolsAsync();
Console.WriteLine($"Tools: {tools.Count}");
Lingua principale
C#
Stelle
4.6k
Fork
819
Merge medio
4g 23h
PR unite (30g)
2

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di modelcontextprotocol/csharp-sdk

Tutte le issue di modelcontextprotocol/csharp-sdk

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.