This is a demonstration server built with the C# MCP SDK that exposes two simple tools: generating random numbers and returning random weather conditions. It's designed as a teaching example rather than a production tool, showing C# developers how to package and distribute MCP servers via NuGet. The weather tool accepts configurable choices through environment variables. Reach for this when you're learning the C# MCP SDK implementation patterns or need a minimal working example to fork for your own .NET based server. The source includes complete setup instructions for both local development and NuGet package distribution.
This README was created using the C# MCP server template project. It demonstrates how you can easily create an MCP server using C# and then package it in a NuGet package.
See aka.ms/nuget/mcp/guide for the full guide.
<PackageId>..mcp/server.json to declare your MCP server's inputs.
dotnet pack.The bin/Release directory will contain the package file (.nupkg), which can be published to NuGet.org.
Once the MCP server package is published to NuGet.org, you can use the following VS Code user configuration to download and install the MCP server package. See Use MCP servers in VS Code (Preview) for more information about using MCP servers in VS Code.
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"Knapcode.SampleMcpServer@0.4.0-beta",
"--yes",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
}
Now you can ask Copilot Chat for a random number, for example, Give me 3 random numbers. It should prompt you to use the get_random_number tool on the Knapcode.SampleMcpServer MCP server and show you the results.
To test this MCP server from source code (locally) without using a built MCP server package, create a .vscode/mcp.json file (a VS Code workspace settings file) in your project directory and add the following configuration:
{
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<RELATIVE PATH TO PROJECT DIRECTORY>",
"--",
"mcp",
"start"
],
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
Alternatively, you can configure your VS Code user settings to use your local project:
{
"mcp": {
"servers": {
"Knapcode.SampleMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<FULL PATH TO PROJECT DIRECTORY>"
"--",
"mcp",
"start"
]
},
"env": {
"WEATHER_CHOICES": "sunny,humid,freezing"
}
}
}
}
WEATHER_CHOICES