jongalloway / jongalloway/dotnet-mcp

Rewrite Tasks integration for SEP-2663 (remove IMcpTaskStore)

Open
#484 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: mcp-protocol area: sdk-integration breaking-change priority: high size: L
Dominant language
C#
Stars
36
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Rewrite Tasks integration for SEP-2663 (highest-impact break)

Part of #481.

SDK 2.0 removes the experimental Tasks API and replaces it with the SEP-2663 Tasks extension. This server currently depends on the removed surface:

  • Program.cs: builder.Services.AddSingleton<IMcpTaskStore, InMemoryMcpTaskStore>();
  • DotNetCliTools.Core.cs: private readonly IMcpTaskStore? _taskStore; (constructor-injected)
  • DotNetCliTools.Misc.cs: AsyncTasks = _taskStore != null in ServerFeatureSupport

Removed types include McpTask, McpTaskMetadata, McpTasksCapability, tasks/result, tasks/list. Replacements: CreateTaskResult, ResultOrCreatedTask<T>, GetTaskResult, tasks/get, tasks/status, tasks/cancel, plus the new input_required state.

Tasks
  • Remove IMcpTaskStore/InMemoryMcpTaskStore registration and the _taskStore field/parameter.
  • Decide: migrate long-running ops (build/test/publish/restore) to the new Tasks extension, or temporarily drop async-task support.
  • If migrating, adopt ResultOrCreatedTask<T> and the io.modelcontextprotocol/tasks extension; wire tasks/get/tasks/status/tasks/cancel.
  • Update AsyncTasks capability reporting in ServerFeatureSupport.
Acceptance
  • Project compiles against 2.0 with a clear, documented async-task story (migrated or explicitly dropped).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the IMcpTaskStore registration in Program.cs, then inspect the _taskStore field and constructor parameter in DotNetCliTools.Core.cs and AsyncTasks reporting in DotNetCliTools.Misc.cs. Build the project against SDK 2.0 and determine whether long-running operations will migrate to the Tasks extension or async-task support will be dropped. Done means the project compiles and the async-task behavior is clearly documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.