Skip to content

[C# SDK Issue Triage] 2026-04-06 (0 to triage) #25

@github-actions

Description

@github-actions

MCP C# SDK — Issue Triage Report

Date: 2026-04-06
Repository: modelcontextprotocol/csharp-sdk
SDK Tier: Tier 1 (tracking issue)
Triage SLA: Within 2 business days (Tier 1 requirement)
Critical Bug SLA: Resolution within 7 days (Tier 1 requirement)


BLUF (Bottom Line Up Front)

  • Open issues: 100 total (100 triaged, 0 untriaged)
  • SLA compliance: ✅ Full compliance — 0 SLA violations
  • Urgent attention: 2 P1 bugs + multiple stale needs confirmation issues need action
  • Top finding: P1 bug #1480 (McpTask double-wrapping) has open PR #1499 and is at the 7-day critical bug SLA boundary (~2026-04-07); the backlog contains ~15+ stale needs confirmation issues ready to close
  • Recently closed: 11 in last 7d, 15 in last 14d, 20 in last 28d

📈 Trends

One prior triage report was found: issue #25 in this workflow repository, created 2026-04-06 (earlier today). Key comparisons:

Metric Prior report This report Change
Open issues 101 100 −1 (one closed today)
Untriaged 0 0 No change
SLA violations 0 0 No change
Recently closed (28d) ~19 20 +1

Trajectory: The backlog is stable with no SLA violations. Resolution velocity is healthy at ~20 issues closed per 28-day window. The P1 bug #1480 was created on 2026-03-31 and is approaching its 7-day critical bug SLA (expires ~2026-04-07). The large cohort of stale needs confirmation issues (~15 issues) represents an opportunity for cleanup.

No comments were found on the prior triage report. No maintainer guidance to surface.


🚨 Issues Needing Urgent Attention

SLA Violations — Untriaged Issues

No SLA violations. All 100 open issues are triaged (have at least one type or status label).


Potential P0/P1 Issues to Assess

#1480 — Tool returning McpTask is double-wrapped when client sends task-augmented request

Field Value
Created 2026-03-31 (~4 biz days old)
Author @k8x10
Labels bug, ready for work, P1
Comments 0 · Reactions: 2 (eyes + heart)
Assignee @jeffhandley, @Copilot
Open PR #1499

Status: When a tool explicitly creates its own McpTask via IMcpTaskStore and returns it (the documented pattern), the SDK unconditionally wraps the invocation in a second task — orphaning the tool-created task and returning the wrong task ID to the client. Two root causes are identified: (1) AIFunctionMcpServerTool.InvokeAsync has no McpTask case in its result switch expression, causing serialization as text; (2) McpServerImpl.ExecuteToolAsTaskAsync unconditionally creates its own task regardless of whether the tool already returned one. A standalone reproduction repo is provided. PR #1499 (Fix McpTask double-wrapping when tool returns its own task) is assigned and under active development. The 7-day critical bug SLA window expires approximately 2026-04-07.

Recommended actions:

  • Prioritize review and merge of PR #1499 before SLA expiry
  • Confirm fix resolves the double-wrapping scenario described in the reproduction repo

#1466 — Streamable HTTP transport doesn't support single JSON responses (spec violation)

Field Value
Created 2026-03-25 (~8 biz days old)
Author @dhruvmodi13
Labels needs repro, P1 (missing type label)
Comments 1 · Reactions: 0
Assignee (unassigned)

Status: Reporter claims StreamableHttpClientSessionTransport fails with servers that return application/json instead of text/event-stream (both are spec-compliant). Maintainer @stephentoub responded on 2026-03-26 that he could not reproduce with v1.1.0 and pointed to the existing code path that handles application/json responses, asking for a standalone repro. No repro has been provided. The issue has been idle for 11 days since the maintainer's comment.

Recommended actions:

  • Add bug type label (currently missing a type label alongside needs repro)
  • Last author response was before 2026-03-25 (maintainer asked for repro on 2026-03-26, no response). Consider closing if no repro is received.

⏰ Stale Issues — Consider Closing

Issues labeled needs confirmation or needs repro where the reporter has not responded after being asked for more information.

# Created Age Last Author Response Title
#611 2025-07-11 192bd Never (community comment 2026-02-23 pointing to related issue) Host several MCP in one ASP.Net application
#684 2025-08-07 172bd Unclear (1 comment total, likely maintainer) Using incorrect oauth-authorization-server endpoint
#700 2025-08-12 168bd Unclear (1 comment total) HTTP Streamable vs SSE endpoints
#741 2025-08-29 157bd Unclear (1 comment total) EntraID doesn't support 'resource' parameter when getting token
#964 2025-11-14 101bd No author reply after maintainer asked for MCP Inspector test (2025-11-14) 403 error with Authorization Bearer
#1132 2026-01-07 62bd Unclear (1 comment total) Streamable HTTP doesn't correctly handle empty response
#1239 2026-02-03 44bd Unclear (1 comment total) notifications/tools/list_changed times out over Streamable HTTP
#1261 2026-02-11 38bd Last: 2026-02-18 (~49 days ago); confirmed issue is Claude Desktop-specific Returning EmbeddedResourceBlock from tool doesn't work with Claude
#1466 2026-03-25 8bd No response to maintainer's repro request (2026-03-26) Streamable HTTP doesn't support single JSON responses

Note on #1261: The maintainer asked about MCP Inspector behavior; author confirmed it works in MCP Inspector and VS Code Copilot, and is Claude Desktop-specific (last author comment 2026-02-18). The discussion concludes this is a Claude Desktop client limitation. Recommend closing as not_planned with a note that this is a Claude Desktop client issue, not an SDK bug.

Note on #1236 (bug, area-auth, needs confirmation): PR #1238 (ClientOAuthProvider.Scopes have priority again) appears to directly address this issue. Verify and close if resolved.


⚠️ Issues Needing Labels

Missing Type Label

Issues that have a status or priority label but no type label (bug, enhancement, question, documentation):

# Current Labels Title Recommended Type
#648 ready for work OAuth authentication request fails with MS Entra-ID bug
#964 needs confirmation 403 error with Authorization Bearer question or bug
#1182 ready for work, P2 Proof of Concept: MCP Apps enhancement
#1261 needs confirmation Returning EmbeddedResourceBlock doesn't work with Claude question (or close — Claude Desktop issue)
#1466 needs repro, P1 Streamable HTTP doesn't support single JSON responses bug
#1492 needs confirmation StreamableHttpHandler rejects concurrent GET SSE streams enhancement or question

Missing Priority Label on Bugs

32 bugs currently lack a priority label. High-signal candidates:

# Title Suggested Priority Rationale
#766 McpServer Endpoint resources never disposed P2 Resource leak
#788 Malformed body throws 500 instead of 400 P2 Debuggability impact
#1050 WWW-Authenticate missing resource metadata params P2 OAuth spec compliance
#1088 Robustly parse quoted WWW-Authenticate parameters P2 OAuth interoperability
#1119 OAuth Resource URI Validation Too Strict P2 Blocks legitimate use cases
#1150 Allow JsonSerializerOptions without TypeInfoResolver P2 Breaks customization
#1365 Cancellation support via CancellationToken fails P2 Core async pattern; PR #1377 available
#1434 CreateOutputSchema wraps without rewriting $ref P2 Causes tools/list to fail for all tools on affected servers
#1470 McpClient.CreateAsync times out behind APIM P2 Production deployment blocker
#1486 Stateless HTTP server advertises listChanged P2 Protocol compliance
#1490 Flaky test on .NET 10.0: DistributedCacheEventStreamStore P3 CI reliability, .NET 10 only

🔀 Duplicate / Consolidation Candidates

Group Issues Recommendation
Multiple endpoints / hosting multiple servers #591, #611, #612, #814, #1202 #612 appears to be the canonical enhancement; close #591, #611 as answered; review #814 and #1202 for overlap
Code signing / signed binaries #657, #833 #833 is blocked with tracking; #657 may be a duplicate

🔗 Potentially Related PRs

# Issue Title PR PR Title Confidence Suggested Action
#648 OAuth auth fails with MS Entra-ID #1402 Add IncludeResourceIndicator option for OAuth Explicit Verify if this resolves the resource param issue
#1236 Specified ClientOAuthOptions.Scopes are ignored #1238 ClientOAuthProvider.Scopes have priority again High Verify and link; close if resolved
#1287 Add DeleteStreamsForSessionAsync #1288 Add DeleteStreamsForSessionAsync Explicit Link PR
#1365 Cancellation support via CancellationToken fails #1377 Add transport-level cancellation support Explicit Prioritize review (P2 candidate)
#1431 MCP Apps Support — Typed Metadata, Helpers, Attributes #1484 Add MCP Apps extension support High Verify and link
#1434 CreateOutputSchema wraps without rewriting $ref #1435 Fix $ref pointer resolution after output schema wrapping High Verify and link
#1452 Document role/identity propagation pattern #1497 Document recommended pattern for role/identity propagation Explicit Link PR
#1480 Tool returning McpTask is double-wrapped #1499 Fix McpTask double-wrapping Explicit Prioritize merge before 2026-04-07 SLA deadline
#949 SEP-990: Enterprise Managed Authorization #1305 Add Enterprise Managed Authorization (SEP-990) support Explicit Link PR
#889 Make EverythingServer support stdio or http #950 Add back EverythingServer for stdio High Verify and link

🔗 Cross-SDK Related Issues

OAuth / Authorization

C# SDK C# Title Related Issue Theme
#648 OAuth auth fails with MS Entra-ID (resource param) python-sdk #1264: Protected Resource Metadata resource erroneous OAuth resource indicator
#730 SDK Authorization not compatible with spec typescript-sdk #1450: OAuth Token Exchange Fails with Separate AS OAuth spec compliance
#772 SEP-1046: OAuth client credentials flow typescript-sdk #1151: Server SDK support for scope challenges Client credentials / scope
Multiple (#648, #741, #842, etc.) Entra ID / resource param issues go-sdk #881: Support hooking token refresh OAuth token management

SSE / Keep-Alive

C# SDK C# Title Related Issue Theme
#651 SSE transport hanging typescript-sdk #949, #1211: SSE stream disconnection SSE stability
#736 Auto server-side keep-alive for SSE typescript-sdk #28: Automate pings from SSE servers SSE keepalive

Streamable HTTP

C# SDK C# Title Related Issue Theme
#1466 Streamable HTTP single JSON responses (P1) typescript-sdk #1852: Sessions destroyed on TCP keepalive timeout Transport spec compliance
#1492 StreamableHttpHandler rejects concurrent GET SSE typescript-sdk #1400: Cursor second connection to StreamableHTTP Multiple connections
#1470 McpClient.CreateAsync times out behind APIM python-sdk #2110: HTTP transport swallows non-2xx status codes Client transport timeout/error handling

JSON Serialization

C# SDK C# Title Related Issue Theme
#1434 CreateOutputSchema wraps without rewriting $ref python-sdk #2384: Inline $ref in tool inputSchema for LLM consumption $ref handling in schemas

📊 Other SDK Context

SDK Repository Tier Open Issues (approx.)
TypeScript typescript-sdk Tier 1 ~450+
Python python-sdk Tier 1 ~300+
Java java-sdk Tier 2 ~60+
C# csharp-sdk Tier 1 100 (all triaged)
Go go-sdk Tier 1 ~100+
Kotlin kotlin-sdk TBD ~100+
Swift swift-sdk Tier 3
Rust rust-sdk Tier 2
Ruby ruby-sdk Tier 3
PHP php-sdk Tier 3

📋 Complete Open Issue Backlog (100 issues)

Bugs (36)

# Created Age Labels Title Remaining Actions
#587 2025-07-04 197bd bug Running tests in net472 causes VS test platform issues Add priority
#599 2025-07-08 194bd bug, needs confirmation Entra OAuth Auth Redirect Fails with 404 Add priority; confirm or close
#604 2025-07-09 193bd bug NullReferenceException when openID config missing authz endpoint Add priority
#643 2025-07-23 183bd bug Not able to customize .well-known/oauth-protected-resource URL Add priority
#651 2025-07-26 181bd bug SSE transport hanging Add priority
#654 2025-07-28 180bd bug Absolute Uri passed as ResourceMetadataUrl causes issues Add priority
#667 2025-08-02 176bd bug Tool invocation fails based on method name Add priority
#681 2025-08-06 173bd bug Not able to authenticate MCP Servers Add priority
#684 2025-08-07 172bd bug, area-auth, needs confirmation Using incorrect oauth-authorization-server endpoint Confirm or close (stale)
#689 2025-08-08 172bd bug ProtectedMcpServer sample doesn't work with VSCode auth flow Add priority
#730 2025-08-25 160bd bug SDK Authorization not compatible with spec Add priority
#738 2025-08-28 157bd bug Server-side keep-alive Scheduler for SSE responses Add priority
#741 2025-08-29 157bd bug, needs confirmation EntraID doesn't support 'resource' param Confirm or close (stale)
#766 2025-09-12 146bd bug McpServer Endpoint resources never disposed Add P2
#788 2025-09-17 142bd bug Malformed body throws 500 instead of 400 Add P2
#842 2025-10-09 127bd bug OAuth Flow not working for Atlassian MCP and Github MCP Add priority
#887 2025-10-16 122bd bug Scopes not forwarded to DCR endpoint, duplication of RedirectUris Add priority
#932 2025-10-31 112bd bug Transfer-Encoding=Chunked causes issues with Azure Functions Add priority
#968 2025-11-17 100bd bug Authorize with specific JWT scheme and [Authorize] attribute Add priority
#995 2025-11-19 97bd bug Configuration property read in Directory.Build.props Add priority
#1050 2025-12-01 90bd bug WWW-Authenticate header missing resource metadata params Add P2
#1088 2025-12-12 82bd bug Robustly parse quoted WWW-Authenticate parameters Add P2
#1111 2025-12-17 77bd bug AddSingleton does not work as expected Add priority
#1119 2025-12-22 75bd bug OAuth Resource URI Validation Too Strict Add P2
#1132 2026-01-07 62bd bug, needs confirmation Streamable HTTP doesn't correctly handle empty response Confirm or close (stale)
#1150 2026-01-15 57bd bug Allow JsonSerializerOptions without TypeInfoResolver Add P2
#1166 2026-01-19 55bd bug Github copilot not setting bearer token on tool access Add priority
#1172 2026-01-22 52bd bug Support using WithStreamServerTransport for multiple in-process MCP servers Add priority
#1236 2026-02-02 44bd bug, area-auth, needs confirmation Specified ClientOAuthOptions.Scopes are ignored Verify PR #1238; close if resolved
#1239 2026-02-03 44bd bug, needs confirmation notifications/tools/list_changed times out over Streamable HTTP Confirm or close (stale)
#1365 2026-02-23 29bd bug, ready for work Cancellation support via CancellationToken fails Add P2; review PR #1377
#1434 2026-03-15 15bd bug, P2 CreateOutputSchema wraps without rewriting $ref Link PR #1435
#1466 2026-03-25 8bd needs repro, P1 Streamable HTTP doesn't support single JSON responses Add bug type label
#1470 2026-03-27 7bd bug, P2 McpClient.CreateAsync times out behind APIM Needs investigation
#1480 2026-03-31 4bd bug, ready for work, P1 Tool returning McpTask is double-wrapped Merge PR #1499 before 2026-04-07
#1486 2026-03-31 4bd bug, ready for work, P2 Stateless HTTP server advertises listChanged Ready for review
#1490 2026-04-01 3bd bug, area-tests Flaky test on .NET 10.0: DistributedCacheEventStreamStore Add P3; PR #1491 may help

Enhancements (44)

# Created Age Labels Title Remaining Actions
#545 2025-06-25 202bd enhancement, ready for work, P2 Support JSON-only mode similar to TypeScript SDK
#557 2025-06-26 202bd enhancement, needs confirmation AspNetCore doesn't support .NET Standard? Confirm or close
#586 2025-07-03 197bd enhancement Add support for multiple resources per MCP Authentication scheme Add priority
#592 2025-07-07 195bd enhancement, needs confirmation, P3 Streamable HTTP server support under .NET Framework
#612 2025-07-11 192bd enhancement Runtime Tool Filtering and/or Multiple MCP Endpoints Add priority
#623 2025-07-14 190bd enhancement Allow tools to continue running when session is closed Add priority
#636 2025-07-19 185bd enhancement Cannot Configure JSON Serialization for MCPServer Add priority
#640 2025-07-21 185bd enhancement Dictionary overload for CallToolAsync Add priority
#657 2025-07-30 178bd enhancement Release signed binaries in nuget package Consider consolidating with #833
#659 2025-07-30 178bd enhancement AspNetCore TestHost client transport Add priority
#678 2025-08-05 173bd enhancement Update ProtectedResourceMetadata to use IList/ISet Add priority
#710 2025-08-15 167bd enhancement, needs confirmation, P3 Make StreamableHttpHandler and SseHandler public
#720 2025-08-20 163bd enhancement Passing ACR_VALUES to Token Endpoint Add priority
#726 2025-08-22 162bd enhancement SSE Auto Reconnect Add priority
#736 2025-08-27 158bd enhancement Auto server-side keep-alive for SSE Add priority
#752 2025-09-03 153bd enhancement SSE server behind HTTP supporting server push Add priority
#757 2025-09-08 149bd enhancement SseClientTransportOptions.Endpoint consumer control Add priority
#758 2025-09-10 148bd enhancement Dynamic Tool Description based on Route Variable Add priority
#759 2025-09-10 148bd enhancement Middleware tools list (different tool set based on user) Add priority
#762 2025-09-10 148bd enhancement Cache authorization policy lookups Add priority
#772 2025-09-15 145bd enhancement SEP-1046: OAuth client credentials flow Add priority
#795 2025-09-19 142bd enhancement Specify JsonSerializerOptions and AIJsonSchemaCreateOptions Add priority
#812 2025-09-22 139bd enhancement Support PRM subpaths per RFC 9728 Add priority
#814 2025-09-24 138bd enhancement, needs confirmation Run multiple stateful MCP servers Consider closing as answered
#828 2025-10-02 132bd enhancement Distributed Remote Transport Abstraction Add priority
#833 2025-10-03 131bd enhancement, area-infrastructure, P2, blocked DLLs are not Code Signed Blocked; tracked
#836 2025-10-05 130bd enhancement Add support for statically-defined parametric prompts Add priority
#889 2025-10-16 122bd enhancement Make EverythingServer support stdio or http PR #950 available
#893 2025-10-17 122bd enhancement Expose OAuth metadata, pass token without validation Add priority
#917 2025-10-23 117bd enhancement Support externally sourced JWT in Auth header Add priority
#949 2025-11-07 107bd enhancement, area-auth, ready for work, P2 SEP-990: Enterprise Managed Authorization PR #1305 available
#962 2025-11-13 102bd enhancement ToolResult always returns as "Text" without decoding Add priority
#1026 2025-11-25 94bd enhancement Telemetry with Application Insights example Add priority
#1131 2026-01-07 62bd enhancement Support stream resumption in stateless mode Add priority
#1183 2026-01-28 48bd enhancement, ready for work, P2 Split ElicitationMcpTasksCapability
#1184 2026-01-28 48bd enhancement, ready for work, P2 Support elicitation/sampling in tasks/result response
#1185 2026-01-28 48bd enhancement, ready for work, P2 Remove use of AsyncLocal for Task input_required
#1216 2026-01-30 47bd enhancement Version-Based Tool Registration Add priority
#1287 2026-02-16 35bd enhancement, ready for work, P3 Add DeleteStreamsForSessionAsync PR #1288 available
#1314 2026-02-19 32bd enhancement, ready for work, P3 Custom filters
#1416 2026-03-08 20bd enhancement, P2, blocked Alternative to RunSessionHandler Blocked
#1431 2026-03-13 16bd enhancement, ready for work, P2 MCP Apps Support — Typed Metadata PR #1484 available
#1446 2026-03-18 13bd enhancement OAuth proxy / DCR facade for Entra ID Add priority
#1453 2026-03-20 12bd enhancement, P2 Add client-side tool call interceptor
#1482 2026-03-31 3bd enhancement Server-side incremental scope consent (SEP-835) PR #1483 available
#1487 2026-04-01 3bd enhancement Authorization Server & PRM inspection Add priority

Questions (3)

# Created Age Labels Title Remaining Actions
#591 2025-07-06 195bd question, needs confirmation Multiple http MCP endpoints in same app Consider closing or consolidating
#611 2025-07-11 192bd question, needs confirmation Host several MCP in one ASP.Net application Close (stale, 9 months)
#768 2025-09-14 145bd question, needs confirmation How do I resolve IMcpServer with WithHttpTransport? Confirm or close

Documentation (7)

# Created Age Labels Title Remaining Actions
#1052 2025-12-03 88bd documentation, help wanted, area-auth, ready for work Practical OAuth implementation for production
#1126 2025-12-29 70bd documentation, help wanted, ready for work Sample: ASP.NET Core MCP Client with persisted connection
#1389 2026-02-25 28bd documentation, enhancement Sample: stdio-to-HTTP bridge
#1413 2026-03-06 22bd documentation, question Export Control Classification Number
#1452 2026-03-20 12bd documentation, ready for work, P3 Document role/identity propagation pattern PR #1497 available
#1493 2026-04-02 2bd documentation, enhancement, P2 Documentation slightly hard to find
#1494 2026-04-02 2bd documentation, enhancement Documentation request: Authentication architecture

📈 Recently Closed Issues

Summary of issues closed in modelcontextprotocol/csharp-sdk across sliding windows:

Window Total Bugs Enhancements Questions Docs Unlabeled Completed Not Planned
7 days 11 3 3 0 2 3 7 4
14 days 15 5 5 0 2 3 10 5
28 days 20 6 6 0 2 6 13 7
Recently closed issues (last 28 days)
# Closed Type Reason Title
#1448 2026-04-06 area-tests completed CreateAsync_ValidProcessInvalidServer test crash
#747 2026-04-05 bug completed StructuredContent vs Content Mismatch
#1454 2026-04-02 unlabeled not_planned API naming inconsistency: ReadOnly vs ToolAnnotations
#782 2026-04-02 documentation completed Update docs/ folder to reflect updated APIs
#1422 2026-04-01 bug, P3 not_planned Server allows duplicate initialize on same session
#791 2026-03-31 bug not_planned Unable to connect to stdio server from github-copilot
#1426 2026-03-31 unlabeled not_planned AIFunctionFactory rejects missing nullable params
#982 2026-03-31 documentation completed Documentation review
#930 2026-03-31 enhancement completed StructuredContent decoupled from Content
#1476 2026-03-30 enhancement completed Handling omitted optional parameters in F#
#1455 2026-03-30 enhancement completed ClientCompletionDetails not accessible when McpClient.CreateAsync fails
#1463 2026-03-27 bug completed McpClientTool WithMeta and WithProgress cause tool invocation failure
#1430 2026-03-27 bug completed MCP task disposes the taskstore causing invoke tool failure
#1318 2026-03-25 enhancement not_planned More string intermediates in read side of MCP transport
#1263 2026-03-23 enhancement completed Support specifying OutputSchema type independently of return type
#1457 2026-03-20 bug completed Generated tool input schema for reflected C# objects doesn't match
#1447 2026-03-20 needs repro completed Generated tool input schema duplicate
#1427 2026-03-11 enhancement not_planned D (noise issue)
#1424 2026-03-11 unlabeled not_planned Can I categorize McpServerTool using C# attributes?
#1421 2026-03-10 unlabeled completed Server declares logging capability even when not configured

Report generated 2026-04-06. Data sourced from GitHub API.

Generated by SDK Issue Triage · ● 2.9M ·

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions