Install
$ agentstack add mcp-nikiforovall-mcp-template-dotnet ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 | [](https://nuget.org/packages/Nall.ModelContextProtocol.Template) | Templates | | Nall.ModelContextProtocol.Inspector.Aspire.Hosting | [](https://nuget.org/packages/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-hybrid template. 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();
builder.Build().Run();
In HTTP mode
In AppHost/Program.cs:
var builder = DistributedApplication.CreateBuilder(args);
var mcp = builder.AddProject("server");
builder.AddMCPInspector().WithMcp(mcp);
builder.Build().Run();
Reference
-
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: NikiforovAll
- Source: NikiforovAll/mcp-template-dotnet
- License: MIT
- Homepage: https://nikiforovall.blog/dotnet/2025/04/02/mcp-template-getting-started
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.