Skip to content

Add conceptual document of MCP and NuGet packages #3450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jul 29, 2025
Merged

Conversation

joelverhagen
Copy link
Member

This should help folks understand more about why we think NuGet and .NET are great for building MCP servers. I didn't want the document to come across as too push, or be too direct since some of the points are subjective and depend on team/author context. Also, until we have a dnx that is more easily acquired (either via dotnet/sdk#49796 or a standalone dnx), the user will continue to need some toolchain to do the package download and tool process launch.

@Copilot Copilot AI review requested due to automatic review settings July 25, 2025 21:56
@joelverhagen joelverhagen requested review from a team as code owners July 25, 2025 21:56
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds conceptual documentation explaining how MCP (Model Context Protocol) servers can be packaged and distributed using NuGet. The documentation aims to help developers understand the benefits of using .NET and NuGet for building MCP servers while providing guidance on when this approach is appropriate.

Key changes:

  • Introduction of a new McpServer package type for categorizing MCP server packages
  • Comprehensive documentation covering benefits, scenarios, and technical considerations for NuGet-based MCP servers
  • Comparison with other ecosystem approaches (npm, Python, Docker) for MCP server distribution

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
docs/create-packages/set-package-type.md Adds the new McpServer package type definition with reference to the conceptual documentation
docs/concepts/nuget-mcp.md New comprehensive guide explaining MCP servers in NuGet packages, including benefits, scenarios, and technical implementation details

joelverhagen and others added 2 commits July 25, 2025 17:58
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@NuGet NuGet deleted a comment from learn-build-service-prod bot Jul 25, 2025
@NuGet NuGet deleted a comment from learn-build-service-prod bot Jul 25, 2025
Copy link

Learn Build status updates of commit afcbea7:

✅ Validation status: passed

File Status Preview URL Details
docs/concepts/nuget-mcp.md ✅Succeeded View
docs/create-packages/set-package-type.md ✅Succeeded View

For more details, please refer to the build report.

Copy link

Learn Build status updates of commit e454c93:

✅ Validation status: passed

File Status Preview URL Details
docs/concepts/nuget-mcp.md ✅Succeeded View
docs/create-packages/set-package-type.md ✅Succeeded View

For more details, please refer to the build report.

baronfel
baronfel previously approved these changes Jul 25, 2025
Copy link

@baronfel baronfel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a solid take 👍 I suspect that node will be the most popular MCP server shipping format, but we can put up a heck of a fight on the raw performance axis. And once we get a native dnx then IMO node will have nothing on us!

Copy link

Learn Build status updates of commit f73dbe1:

✅ Validation status: passed

File Status Preview URL Details
docs/concepts/nuget-mcp.md ✅Succeeded View
docs/create-packages/set-package-type.md ✅Succeeded View

For more details, please refer to the build report.

Copy link
Contributor

@jeffkl jeffkl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@joelverhagen joelverhagen merged commit 6195050 into main Jul 29, 2025
2 checks passed
@joelverhagen joelverhagen deleted the jver-split branch July 29, 2025 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants