Model Context Protocol .NET Template
NikiforovAll/mcp-template-dotnet · 26 stars · C# · MIT
MCP server This repository contains a template for creating a Model Context Protocol (MCP) applications in .NET.
Install
The repo has no one-line install. Follow its README.
Files
Model Context Protocol .NET Template
A protocol for seamless integration between LLM applications and external data sources
Documentation | Specification | Discussions
This repository contains a template for creating a Model Context Protocol (MCP) application in .NET. It provides a basic structure and example code to help you get started with building your own MCP-enabled applications.
| Package | Version | Description |
|---|---|---|
Nall.ModelContextProtocol.Template |
Templates | |
Nall.ModelContextProtocol.Inspector.Aspire.Hosting |
Aspire Hosting Integration |
Getting Started
Install:
dotnet new install Nall.ModelContextProtocol.Template # dotnet new install ./Artefact/Nall.ModelContextProtocol.Template
Verify installation:
dotnet new list mcp # These templates matched your input: 'mcp' # Template Name Short Name Language Tags # ----------------- ----------------- -------- ------------- # Template Name Short Name Language Tags # -------------------- -------------------- -------- ------------- # MCP Server mcp-server [C#] dotnet/ai/mcp # MCP Server HTTP mcp-server-http [C#] dotnet/ai/mcp # MCP Server HTTP Auth mcp-server-http-auth [C#] dotnet/ai/mcp # MCP Server Hybrid mcp-server-hybrid [C#] dotnet/ai/mcp
Tip
Practically, you want to switch between modes, so I recommend using the
mcp-server-hybridtemplate. It allows you to run the server in both Stdio and HTTP modes.
Verify output:
dotnet new mcp-server -o MyAwesomeMCPServer -n MyAwesomeMCPServer --dry-run # File actions would have been taken: # Create: MyAwesomeMCPServer\.vscode\launch.json # Create: MyAwesomeMCPServer\MyAwesomeMCPServer.csproj # Create: MyAwesomeMCPServer\Program.cs # Create: MyAwesomeMCPServer\Properties\launchSettings.json # Create: MyAwesomeMCPServer\README.md # Create: MyAwesomeMCPServer\appsettings.Development.json # Create: MyAwesomeMCPServer\appsettings.json
Create from template:
dotnet new mcp-server -o MyAwesomeMCPServer -n MyAwesomeMCPServer
Here is a content of Program.cs:
using Microsoft.Extensions.Hosting;
var builder = Host.CreateApplicationBuilder(args);
builder.Services
.AddMcpServer()
.WithStdioServerTransport()
.WithToolsFromAssembly();
await builder.Build().RunAsync();
[McpServerToolType]
public static class EchoTool
{
[McpServerTool, Description("Echoes the message back to the client.")]
public static string Echo(string message) => $"hello {message}";
}
It is a simple echo server that listens for incoming messages and responds with a greeting. You can add more tools by creating additional methods with the [McpServerTool] attribute. The WithToolsFromAssembly() method automatically registers all tools in the assembly.
Run Locally
Build from the project directory:
dotnet build -o Artefacts -c Release
Run the inspector:
npx @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Production dotnet "$(PWD)/Artefacts/MyAwesomeMCPServer.dll"
Open inspector in your browser and test the server:
Distribute as .NET Tool
Pack from the project directory:
dotnet pack -o Artefacts -c Release
Install the tool globally:
dotnet tool install --global --add-source ./Artefacts MyAwesomeMCPServer
Now, after you installed this tool globally, you can run it from anywhere on your system. The tool will be available as MyAwesomeMCPServer (or myawesomemcpserver) in your terminal.
💡 You can also create local tool manifest and install MCPs as tools locally.
Run the inspector:
npx @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Production myawesomemcpserver
Run with Aspire
In Stdio mode
In AppHost/Program.cs:
var builder = DistributedApplication.CreateBuilder(args); builder.AddMCPInspector().WithStdio<Projects.MCPServer>(); builder.Build().Run();
In HTTP mode
In AppHost/Program.cs:
var builder = DistributedApplication.CreateBuilder(args);
var mcp = builder.AddProject<Projects.MCPServerRemote>("server");
builder.AddMCPInspector().WithMcp(mcp);
builder.Build().Run();
Reference
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 26
- License
- MIT
- Language
- C#
- Last push
- 2026-07-11
- Forks
- 1
- Topics
- mcp, mcp-server, template
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k

