Releases: jongalloway/dotnet-mcp
v1.1.2
What's Changed
- fix: disable InMemoryMcpTaskStore to avoid ObjectDisposedException (upstream SDK bug) by @jongalloway in #411
- docs: add v1.1.2 changelog entries by @jongalloway in #412
- fix: read server version from assembly metadata instead of hardcoded 1.0.0 by @jongalloway in #409
Full Changelog: v1.1.1...v1.1.2
.NET MCP Server v1.1.1
.NET MCP Server v1.1.1
Hotfix release — v1.1.1 fixes a failure that occurred when the .NET MCP Server was invoked from GitHub Copilot in VS Code using the new MCP task mode.
What happened
The v1.1.0 release added MCP task support (ToolTaskSupport.Optional), which lets clients like VS Code run tool calls as background tasks with progress tracking. However, when a tool threw an unhandled exception — for example, a build targeting a missing project — the MCP SDK's task infrastructure had no structured result to return. Instead of a meaningful error, VS Code showed:
Task 08de8470… failed: unknown error
Similarly, if the client didn't support progress notifications, the progress channel could throw and crash the tool mid-execution.
What's fixed
- Resilient error-handling filter — Unhandled exceptions in tool execution are now caught and converted to a structured
CallToolResult { IsError = true }with a clear error message, so the task lifecycle always completes cleanly. - Defensive progress reporting — Progress notifications are now best-effort; a broken or unsupported progress channel will never crash a tool invocation.
- Task lifecycle conformance tests — New end-to-end tests exercise the full
CallToolAsTaskAsync→GetTaskResultAsync→GetTaskAsyncpipeline to catch regressions.
Get the most out of v1.1.0 + v1.1.1
This fix enables you to take full advantage of the features introduced in v1.1.0:
- MCP task support — Long-running operations like build and test run as background tasks with progress
- Solution analysis — Analyze, inspect dependencies, and validate entire solutions
- Background watch sessions — File-watching workflows with improved reliability
- Root-cause classification — Structured failure analysis for build and test errors
- Resource subscriptions, prompts, elicitation, and sampling — Broader MCP protocol coverage
- Roots-based auto-discovery and completions — Guided client experiences
For full details, see the v1.1.0 release notes.
Changelog
Fixed
- Task-mode tool calls failed with opaque "unknown error" when tools threw unhandled exceptions. Added resilient error-handling filter that returns structured error results instead.
- Progress channel failures could crash tool execution when the client does not support progress notifications.
Added
- Task lifecycle conformance tests (
CallToolAsTaskAsync→GetTaskResultAsync→GetTaskAsync).
Full Changelog: v1.1.0...v1.1.1
.NET MCP Server v1.1.0
.NET MCP Server v1.1.0
This release expands the .NET MCP Server with broader MCP protocol support, improved SDK compatibility, stronger diagnostics, and more reliable long-running workflow support.
Highlights
- Updated the MCP C# SDK dependency to ModelContextProtocol 1.1.0.
- Added and refined broader MCP feature support, including tasks, prompts, roots, progress, completion, sampling, and resource-related workflows.
- Improved long-running session reliability for background execution, logging, and watch-style workflows.
- Expanded analysis and diagnostics capabilities for projects, solutions, and build/test failures.
What’s New
MCP platform and SDK support
- Updated
ModelContextProtocolfrom 1.0.0 to 1.1.0. - Refreshed the SDK compatibility documentation for the v1.1 audit and task-related adoption.
- Updated MCP protocol and SDK references across the README and supporting documentation.
New and expanded capabilities
- Added solution analysis capabilities, including analyze, dependency inspection, and validation workflows.
- Added background mode support for watch sessions and improved long-running task behavior.
- Added structured root-cause classification for richer failure analysis.
- Added resource subscription support, MCP logging notifications, prompt catalog support, elicitation support, progress reporting, and sampling-related workflow support.
- Improved roots-based auto-discovery and completion support for guided MCP client experiences.
Reliability and operational improvements
- Wired missing CLI flags through Build, Restore, Publish, and Clean handlers.
- Stabilized background-run logging scenarios and related test coverage.
- Addressed multiple hardening and CodeQL findings in watch, solution analysis, diagnostics, and related execution paths.
- Tightened validation around MCP log notifications and related integration behavior.
Documentation improvements
- Added a feature-usage table to the README covering resources, prompts, roots, sampling, elicitation, progress, tasks, completion, and tool metadata.
- Refreshed
doc/telemetry.md,doc/icons.md, and SDK compatibility documentation. - Updated documentation around MCP SDK 1.1 support and broader feature coverage.
.NET MCP Server v1.0.0
.NET MCP Server v1.0.0
The .NET MCP Server brings the .NET SDK into your AI assistant's workflow.
It enables Copilot, Claude Desktop, and other MCP clients to create projects, manage dependencies, run builds/tests, and query SDK metadata through a consistent, automation-friendly interface.
This release is designed to be a solid "first install" experience for teams who want AI-assisted .NET development with predictable behavior, strong validation, and dependable diagnostics.
This is a community-maintained open source project that wraps the official .NET SDK. This MCP Server is not affiliated with an official .NET release.
What you can do with v1.0.0
In addition to the features below, v1.0.0 supports token-efficient workflows by delegating concrete work (project scaffolding, restores/builds/tests, package management, EF operations) to the .NET SDK through purpose-built tools—so the LLM can spend more of its budget on planning, explanations, and code review.
Build and run projects reliably
- Create new projects from installed templates
- Restore, build, test, run, publish, clean, and pack projects
- Run long-running workloads (watch/hot reload) in a structured way
Manage NuGet dependencies efficiently
- Search packages, add/remove/update packages, and list installed dependencies
- Maintain project-to-project references (add/remove/list)
- Clear NuGet caches when debugging restore issues
Work with Entity Framework Core
- Create/list/remove migrations
- Generate SQL scripts
- Update/drop databases
- Scaffold DbContext and entities from an existing database
Discover SDK capabilities without guesswork
- Enumerate installed SDKs and runtimes
- List/search templates and inspect template parameters
- Get framework metadata (including recommendations like LTS guidance)
Manage .NET tools and workloads
- Install/update/uninstall/list .NET tools (global or local)
- Create and restore tool manifests
- List/search/install/update/uninstall workloads
Built for automation (and AI)
Structured, machine-readable results
Every operation can return structured JSON (machineReadable: true) so clients can:
- detect success/failure reliably
- route errors and suggestions into UI
- extract metadata for orchestration (instead of scraping console output)
This also supports token efficiency: assistants can issue focused operations with structured results instead of spending tokens “figuring out” CLI details or parsing large logs.
Better error messages, faster fixes
When a command fails, the server enriches common .NET errors (compiler/MSBuild/NuGet/SDK) with:
- plain-language explanations
- links to relevant documentation
- suggested fixes and next steps
Secure output by default
Command output is automatically redacted to avoid leaking secrets (connection strings, tokens, keys) into chat logs.
For advanced debugging, you can opt out where appropriate.
Fast metadata access via MCP Resources
v1.0.0 includes read-only MCP resources that provide structured environment information without executing commands:
dotnet://sdk-infodotnet://runtime-infodotnet://templatesdotnet://frameworks
These are especially useful for assistants that need quick context (what SDKs are installed? what templates exist?) before choosing an action.
Getting started
Requirements: .NET 10 SDK.
Quick install
Use the same install link(s) as the README (version 1.*):
Install and run as an MCP stdio server via dnx from NuGet.
Config file example (.mcp.json / client config)
Add a server entry like the following to .mcp.json, .vscode/mcp.json, or your MCP client's configuration file:
{
"mcpServers": {
"dotnet-mcp": {
"type": "stdio",
"command": "dnx",
"args": ["Community.Mcp.DotNet@1.*", "--yes"]
}
}
}If your client supports it, you can also install from the MCP registry entry for this server.
Recommended first workflows
- Aspire + Blazor + Postgres + tests (end-to-end):
"Create a new Blazor Server app on .NET 10. Add Aspire 13.1 with an AppHost and a Postgres database. Add xUnit tests using the Microsoft Testing Platform runner, then run the test suite." - Fix a broken repo quickly:
"Restore and build this solution. If it fails, explain the first error with a link and suggest the minimum fix. Then re-run the build and tests." - API + observability-ready defaults:
"Create a new Minimal API on .NET 10 with OpenAPI enabled. Add structured logging, configure user secrets for local settings, and run it." - EF Core workflow:
"Add EF Core to this project, create a DbContext and initial migration, update the database, then generate an idempotent migration script for deployment." - Dependency hygiene:
"List outdated NuGet packages, update a selected dependency to a compatible latest version, and explain any constraints (target frameworks, transitive dependencies)." - Template-driven scaffolding:
"List installed templates, search for the best match for 'worker service', create it with the right options, and explain the chosen parameters."
Feedback
If you're adopting v1.0.0, the most helpful feedback is:
- What operations you want to automate end-to-end (project creation, CI fixups, dependency updates, EF workflows)
- Any cases where machine-readable output is missing metadata needed for orchestration
- Any false positives/negatives in secret redaction
- Any places where error guidance should be more specific
When filing an issue, include:
- OS + .NET SDK version
- the MCP operation invoked (parameters included)
- machine-readable output, if available
v1.0.0-rc.1
v1.0.0-rc.1 (Release Candidate 1)
This is RC1 for the upcoming 1.0.0 release of the .NET MCP Server.
The goal of 1.0.0 is to provide a stable, consolidated MCP tool surface for .NET development automation with strong validation, machine-readable output, and robust diagnostics.
If you’ve been waiting for a “safe to integrate” milestone for Copilot/Claude/Desktop tooling and orchestration, this is it.
Highlights in 1.0.0
- Consolidated tool surface (stable in 1.0): 10 MCP tools total (8 domain tools + 2 utilities), replacing the previous per-command tool explosion.
- Machine-readable JSON contract (v1.0): all tools can return structured JSON (
machineReadable: true) with consistent success/error envelopes and tool-specific metadata. - SDK integration + CLI execution (hybrid): uses official Template Engine + MSBuild APIs for discovery/validation and
dotnetCLI for proven execution. - Richer diagnostics by default: enhanced error interpretation (CS/MSB/NU/NETSDK) and actionable “what to do next” guidance.
- Security-minded output: automatic secret redaction in command output (opt-out available for advanced debugging).
- Resources for fast discovery: read-only MCP resources for SDK/runtime/template/framework metadata without executing commands.
- Tested for reliability: comprehensive unit + conformance tests with CI coverage reporting.
What’s in the box (tool surface)
dotnet_project— project lifecycle:New,Restore,Build,Run,Test,Publish,Clean,Analyze,Dependencies,Validate,Pack,Watch,Formatdotnet_package— NuGet packages + project references: add/remove/search/update/list + reference operationsdotnet_solution— create/add/list/remove solution entriesdotnet_ef— EF Core migrations + database + scaffolding operationsdotnet_workload— workload list/info/search/install/update/uninstalldotnet_tool— tool install/list/update/uninstall/restore/search/run + tool manifestsdotnet_dev_certs— dev cert trust/check/clean/export and user-secrets init/set/list/remove/cleardotnet_sdk— SDK/runtime/template/framework discovery + cache metricsdotnet_help—dotnet <command> --helpaccess for assistantsdotnet_server_capabilities— machine-readable server capability/concurrency guidance
Resources (read-only metadata)
These resources let clients and AI assistants query structured environment metadata without running dotnet commands:
dotnet://sdk-infodotnet://runtime-infodotnet://templatesdotnet://frameworks
What makes 1.0.0 different
Consolidation is the product
1.0.0 formalizes the “small surface, strong schema” direction:
- Fewer tools to choose from (better model accuracy + better UX in MCP clients)
- Enum-driven actions and consistent parameter conventions
- Centralized validation and consistent error handling
If you previously integrated with legacy per-command tool names, plan to migrate to consolidated tool names.
Machine-readable output as a first-class contract
Every tool supports an optional machineReadable: true mode with:
- a stable success/error envelope
- structured, actionable error diagnostics
- optional metadata for orchestration (example: test runner selection telemetry)
See doc/machine-readable-contract.md for the contract definition.
SDK-aware validation
The server validates and enriches requests using official SDK APIs where possible:
- installed templates and template parameters via Template Engine
- framework intelligence (including LTS recommendations)
- project analysis via MSBuild
This reduces “guessy” automation and improves success rate for real-world repos.
Installation / usage
Requirements: .NET 10 SDK.
The recommended install path is via dnx from NuGet, configured as a stdio MCP server.
Example (conceptual):
- command:
dnx - args:
Community.Mcp.DotNet@1.0.0-rc.1 --yes
(If you use the Quick Install links in the README, update the version to 1.0.0-rc.1 when creating the RC tag.)
Feedback requested (RC)
This RC is meant for real integrations. Feedback that’s especially helpful:
- MCP client compatibility (Copilot, Claude Desktop, etc.)
- correctness of machine-readable output for orchestration scenarios
- template discovery/validation behavior across diverse dev environments
- any cases where enriched diagnostics or secret redaction are too aggressive or not aggressive enough
If you hit issues, please file them with:
- your OS and .NET SDK version
- the exact MCP call you invoked (including parameters)
- machine-readable output if possible
Known follow-ups (post-1.0)
These are tracked for a follow-up milestone and are great candidates for early RC feedback:
dotnet_project Testrunner telemetry should reflect the runner actually used (MTP vs VSTest)- background
dotnet_project Runsessions should allow stdout/stderr retrieval bysessionId(or include bounded recent output)
v1.0.0-beta.4
Fixes and feature gaps from beta testing
What's Changed
- Auto-detect test runner (MTP vs VSTest) for dotnet_project Test action by @Copilot in #301
- Treat exit code 106 (template pack already installed) as success for idempotent workflows by @Copilot in #302
- Add Stop action and noBuild parameter for dotnet_project Run/Watch by @Copilot in #303
- Add background mode to dotnet_project Run with session management by @Copilot in #306
- Enhance documentation for dotnet-tools.json by @jongalloway in #307
- Enhance CI workflows with step summaries by @jongalloway in #308
- [WIP] Fix release scenario test failures by @Copilot in #310
- Release Scenario test fixes by @jongalloway in #309
Full Changelog: v1.0.0-beta.3...v1.0.0-beta.4
v1.0.0-beta.3
Fixes from beta and scenario testing.
What's Changed
- Doc Updates for 1.0.0 release by @jongalloway in #280
- Address CodeQL security alerts: replace generic catch and implicit foreach filters by @Copilot in #282
- Fix numbered list formatting and remove redundant exception handler by @Copilot in #283
- Fix template search methods rejecting error-prefixed CLI fallback output by @Copilot in #284
- Enhance dotnet_sdk tool with template pack management actions by @jongalloway in #281
- Add scenario coverage for dotnet_solution List/Remove + clarify dotnet sln parity by @Copilot in #287
- Add legacy project argument fallback for dotnet test runner compatibility by @Copilot in #291
- Fix concurrency target selection when workingDirectory is used without explicit project by @Copilot in #292
Full Changelog: v1.0.0-beta.2...v1.0.0-beta.3
v1.0.0-beta.2
This beta 2 release adds in two levels of scenario testing:
- Quick scenarios run as part of the CI tests
- Long-running scenarios run are available in a new release-gate scenario test suite, run on-demand via workflow dispatch
This beta also fixes issues identified during beta testing.
What's Changed
- Remove setup-dotnet cache to fix post-action failure by @Copilot in #256
- Fix CodeQL security issues in TemplateEngineHelper by @Copilot in #257
- Fix dotnet_sdk template listing via CLI fallback by @jongalloway in #255
- Deduplicate parsed CLI diagnostics by @jongalloway in #258
- Make performance smoke tests non-blocking by @jongalloway in #260
- Fix dotnet_project Test on .NET 10 by @jongalloway in #259
- Fix template validation fallback when Template Engine API returns empty by @Copilot in #262
- Fix CI test failure: align tool-manifest test assertion with codebase pattern by @Copilot in #264
- Address scenario test code review: Add XML docs, IDisposable cleanup, and null safety by @Copilot in #265
- Address PR review feedback for scenario test infrastructure by @Copilot in #266
- Fix scenario tests: use explicit .Path property instead of implicit conversion by @Copilot in #267
- Address PR review feedback: process cleanup, code deduplication, and unused variable removal by @Copilot in #268
- Add MCP scenario tests and update build workflow by @jongalloway in #263
- Fix resource leak in BuildErrorScenarioTests by @Copilot in #271
- Run scenario tests by default and add a few new scenario tests by @jongalloway in #270
- deps: Bump MinVer from 6.1.0 to 7.0.0 by @dependabot[bot] in #272
- Add release-gate scenario test tier by @jongalloway in #274
- Replace Path.Combine with Path.Join by @jongalloway in #275
- Docs: Configuration instructions for GitHub Copilot coding agent by @jongalloway in #276
- Enhance workflow to run both Scenario and Release Scenario tests by @jongalloway in #277
- Add test coverage and optimize SanitizeDotnetNewOutput method by @Copilot in #279
- Enhance TemplateEngineHelper to sanitize output from dotnet CLI by @jongalloway in #278
Full Changelog: v1.0.0-beta.1...v1.0.0-beta.2
v1.0.0-beta.1
This is beta 1 of the first major release focused on a consolidated, v1-ready MCP tool surface with richer SDK metadata, structured output, and much stronger test + CI coverage.
The major feature change has been a consolidated tool refactor which moves from 74 individual tools to 10 consolidated tools (8 high-level domain tools plus 2 utility tools) while preserving full functionality
Highlights (since 0.1.0)
- Consolidated tool surface for better AI orchestration (domain tools + utility tools), replacing the legacy per-command tool explosion (breaking change for callers relying on old tool names)
- Machine-readable JSON output and contract compliance improvements, including MCP v0.5 metadata/error code alignment
- Enhanced error diagnostics (CS/MSB/NU/NETSDK codes) with actionable guidance and documentation links
- SDK integration upgrades (Template Engine + MSBuild project analysis) plus resources for fast, structured environment discovery
- Caching + concurrency improvements (TimeProvider-driven determinism, reduced lock contention, safer disposal behavior)
- CI/CD hardening: NuGet publish with MinVer tags, separate MCP registry publishing workflow with retry, CodeQL + Codecov, and a much larger/stronger test suite (incl. conformance + performance smoke tests)
What's Changed
- [WIP] Implement MCP registry publishing as a separate workflow by @Copilot in #121
- Implement MCP registry publishing as a separate workflow with retry by @jongalloway in #120
- Fix retry loop inefficiencies and update wait time documentation by @Copilot in #122
- Add InteractiveFact attribute for opt-in interactive tests by @jongalloway in #124
- deps: Bump Microsoft.Build from 17.14.28 to 18.0.2 by @dependabot[bot] in #123
- Migrate to xUnit v3 with Microsoft Testing Platform by @Copilot in #126
- Address PR review comments on testing workflow by @Copilot in #128
- Enhance testing workflow with coverage collection by @jongalloway in #127
- Refactor tests to use cancellation tokens for improved task management by @jongalloway in #129
- Restore DisableParallelization for tests with shared static state by @Copilot in #131
- Optimize testing by @jongalloway in #130
- Audit SDK v0.5 RequestOptions/Meta integration - add regression tests by @Copilot in #132
- Add MCP v0.5 error codes and structured data to machine-readable output by @Copilot in #133
- Add MCP Registry badge to README by @Copilot in #135
- Add CancellationToken support to CachedResourceManager by @Copilot in #143
- Guard CachedResourceManager public methods against use-after-dispose by @Copilot in #145
- ci(deps): bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #136
- deps: Bump MinVer from 6.0.0 to 6.1.0 by @dependabot[bot] in #144
- Optimize GitHub Actions workflow: concurrency control, diagnostics, and test artifacts by @Copilot in #138
- CachedResourceManager: reduce lock contention with fast-path and double-check pattern by @Copilot in #146
- Make time source injectable (TimeProvider) for deterministic cache expiry tests by @Copilot in #147
- Add MSBuild-based project file analysis and introspection tools by @Copilot in #153
- Optimize CodeQL workflow: add .NET SDK setup and performance improvements by @Copilot in #155
- [WIP] Add CodeQL analysis workflow configuration by @Copilot in #156
- Optimize CodeQL workflow for faster PR checks by @Copilot in #157
- Add CodeQL analysis workflow configuration by @jongalloway in #154
- Fix xUnit analyzer warnings (xUnit1051, xUnit2009) by @Copilot in #159
- Address code review feedback: extract constants, add checksum verification, improve error handling by @Copilot in #161
- Fix CodeQL Actions untrusted-checkout alerts by @jongalloway in #160
- ci(deps): bump actions/upload-artifact from 4 to 6 by @dependabot[bot] in #163
- ci(deps): bump actions/download-artifact from 4 to 7 by @dependabot[bot] in #164
- Extract MCP Publisher workflow logic into reusable composite actions by @Copilot in #162
- Add CodeQL badge to README by @jongalloway in #165
- Fix CodeQL warning by removing conditional language analysis on PRs by @Copilot in #167
- Add enhanced error diagnostics with 52 error code explanations by @Copilot in #168
- Add comprehensive test coverage for all 67 MCP tools by @Copilot in #169
- Architecture review: baseline analysis and refactoring recommendations by @Copilot in #171
- Refactor DotNetCliTools into partial classes by functional category by @Copilot in #173
- feat: add Codecov integration for coverage reporting by @jongalloway in #174
- Upgrade Codecov action to version 5 by @jongalloway in #175
- Fix Codecov upload condition in build.yml by @jongalloway in #176
- Make implicit foreach filtering explicit using LINQ by @Copilot in #179
- Fix cross-platform path separator issues in DotNetResourcesParsingTests by @Copilot in #180
- [WIP] Refactor tests to support machine-readable output by @Copilot in #181
- Refactor tests to support machine-readable output by @jongalloway in #178
- Add pre-CLI parameter validation with SDK integration by @Copilot in #182
- Add .NET Workload Management Tools by @Copilot in #183
- Add CAPABILITY_NOT_AVAILABLE error strategy for unimplemented/unavailable features by @Copilot in #184
- Replace generic exception handler with specific handlers in DotNetCommandExecutor by @Copilot in #186
- Address PR review comments: consolidate exception handlers, strengthen tests, fix hint logic by @Copilot in #187
- Add CAPABILITY_NOT_AVAILABLE error strategy by @jongalloway in #185
- Add MCP server conformance tests for protocol validation by @Copilot in #189
- Return structured JSON for validation errors when machineReadable=true by @Copilot in #193
- Reorganize source files into feature directories by @Copilot in #195
- Document machine-readable JSON contract (v1.0) with compliance tests by @Copilot in #196
- Add performance smoke tests with baseline measurements (v1.0) by @Copilot in #197
- Add AI assistant best practices and integration patterns documentation by @Copilot in #198
- Update documentation: package versions, tool counts, CI/CD descriptions by @Copilot in #200
- Fix code style inconsistency in test cleanup by @Copilot in #202
- Replace Path.Combine with Directory.CreateTempSubdirectory to resolve security alert by @Copilot in #203
- Refactor DotnetToolManifestCreate by @jongalloway in #201
- Add tool surface consolidation proposal document by @Copilot in #205
- Fix markdown in tool surface consolidation proposal by @jongalloway in #220
- Add shared infrastructure for consolidated tools: action enums, validation helpers, and error factories by @Copilot in #219
- Add consolidated dotnet_tool command with action-based routing by @Copilot in #223
- Add consolidated dotnet_solution tool with action-based routing by @Copilot in #221
- Add consolidated dotnet_workload tool with enum-based action routing...
v0.1.0
🎉 v0.1.0
This is the first stable v0.1.0 release of the .NET MCP Server, promoted from v0.1.0-rc4.
✨ Highlights
- 🚀 Natural-language .NET automation: create projects, manage packages, build/test, and more via MCP tools.
- 🧠 SDK-aware validation: template discovery/parameter info via Template Engine + framework intelligence.
- 🧰 Rich metadata via MCP Resources: structured info like
dotnet://sdk-info,dotnet://templates, anddotnet://frameworks. - 🔒 Security-first output: automatic secret redaction to keep credentials out of tool output.
- 🧵 Performance & reliability: caching for expensive SDK lookups, safe command execution, and consistent structured results.
📦 Install / Use
- VS Code / Visual Studio / Claude Desktop: use the install links in the README (runs via
dnx). - Manual: run via
dnx Community.Mcp.DotNet@0.1.0 --yes(requires .NET 10 SDK).