McpClient.CreateAsync times out behind APIM in .NET SDK while MCP Inspector/Azure AI Foundry succeed
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
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
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 ModelContextProtocolpackage: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
- Set MCP endpoint and APIM subscription key.
- Call McpClient.CreateAsync(...) directly with HttpClientTransport (StreamableHttp).
- Immediately call ListToolsAsync().
- 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
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/csharp-sdk
-
ClaimsPrincipal parameter injection sample requestForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
modelcontextprotocol/csharp-sdk#1899 ·
I maintainer di solito rispondono entro 5 giorni
-
Document ClientOAuthOptions.ScopeSelector usageForse già presa @z0rimo l’ha presa 25 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
modelcontextprotocol/csharp-sdk#1867 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
HTTP+SSE client: POST responses are never disposed, leaking one connection per sent messageForse già presa @yalcinfu22 l’ha presa 40 giorni fa. Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
modelcontextprotocol/csharp-sdk#1840 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
stdio client never closes the server's stdin, so every client dispose burns the full ShutdownTimeout (5s by default)Forse già presa @luisangelrod l’ha presa 41 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
modelcontextprotocol/csharp-sdk#1836 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
-
enhancement needs confirmation
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
modelcontextprotocol/csharp-sdk#678 · 1 commento ·
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di modelcontextprotocol/csharp-sdk
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
I maintainer di solito rispondono entro 1 giorno
-
:watch: Not Triaged aspnet-core/svc fundamentals/subsvc Source - Docs.ms
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
dotnet/AspNetCore.Docs#37785 ·
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
Azure/azure-sdk-tools#17204 ·
I maintainer di solito rispondono entro 1 giorno
-
Проблема с Dotnet RUApertaarea-tutorials needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
dotnet/website-feedback#1779 ·
-
[Bug] SwipeControl in Execute mode with more than one item replaces the whole UI with an error panelForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertabug needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
microsoft/microsoft-ui-reactor#1344 ·
I maintainer di solito rispondono entro 1 giorno