TimHeuer.SampleMcpServer
0.1.3-beta
dotnet tool install --global TimHeuer.SampleMcpServer --version 0.1.3-beta
dotnet new tool-manifest
dotnet tool install --local TimHeuer.SampleMcpServer --version 0.1.3-beta
#tool dotnet:?package=TimHeuer.SampleMcpServer&version=0.1.3-beta&prerelease
nuke :add-package TimHeuer.SampleMcpServer --version 0.1.3-beta
SampleDotnetMcpServer
This project is a sample implementation of a Model Context Protocol (MCP) server in .NET, designed to demonstrate how to build, run, and publish an MCP server using C# and the ModelContextProtocol SDK.
mcp-name: io.github.timheuer/sampledotnetmcpserver
What is this?
SampleDotnetMcpServer is a reference MCP server for .NET, showing how to:
- Implement MCP tools in C# (see
Tools/RandomNumberTools.cs
) - Register tools and configure the MCP server transport (see
Program.cs
) - Package and publish the server as a NuGet package for use in IDEs like VS Code and Visual Studio
The included tool, get_random_number
, generates random numbers and can be invoked by MCP clients (such as Copilot Chat) for demonstration purposes.
Features
- Implements the MCP protocol using stdio transport
- Provides a sample tool:
get_random_number
(returns a random integer in a range) - Ready to be packed and published as a NuGet MCP server
- Example configuration files and metadata included
How to use
Run locally
You can run the MCP server directly from source for development and testing:
dotnet run --project .
Or configure your IDE to use the following MCP server definition:
{
"servers": {
"SampleDotnetMcpServer": {
"type": "stdio",
"command": "dotnet",
"args": [
"run",
"--project",
"<PATH TO PROJECT DIRECTORY>"
]
}
}
}
Test the MCP server
Once running, you can use Copilot Chat or any MCP client to invoke the get_random_number
tool. For example, ask: "Give me 3 random numbers" and select the tool from the SampleDotnetMcpServer MCP server.
Publish to NuGet.org
- Run:
dotnet pack -c Release
- Publish:
dotnet nuget push bin/Release/*.nupkg --api-key <your-api-key> --source https://api.nuget.org/v3/index.json
Use from NuGet.org
After publishing, configure your IDE to use the MCP server from NuGet.org. Example configuration:
{
"servers": {
"SampleDotnetMcpServer": {
"type": "stdio",
"command": "dnx",
"args": [
"TimHeuer.SampleMcpServer",
"--version",
"0.1.0-beta",
"--yes"
]
}
}
}
Project structure
Program.cs
: MCP server entry point and configurationTools/RandomNumberTools.cs
: Example MCP tool implementation.mcp/server.json
: MCP server metadata and NuGet package infoSampleDotnetMcpServer.csproj
: Project and NuGet packaging configuration
Learn more
- ModelContextProtocol SDK
- Model Context Protocol Documentation
- Protocol Specification
- GitHub Organization
- Use MCP servers in VS Code (Preview)
- Use MCP servers in Visual Studio (Preview)
This project is for demonstration and reference purposes only. For feedback or contributions, see the GitHub repository.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
Version | Downloads | Last Updated |
---|---|---|
0.1.3-beta | 122 | 9/9/2025 |
0.1.2-beta | 120 | 9/9/2025 |
0.1.1-beta | 117 | 9/9/2025 |
0.1.0-beta | 117 | 9/9/2025 |