Nall.ModelContextProtocol.Inspector.Aspire.Hosting
0.4.0
dotnet add package Nall.ModelContextProtocol.Inspector.Aspire.Hosting --version 0.4.0
NuGet\Install-Package Nall.ModelContextProtocol.Inspector.Aspire.Hosting -Version 0.4.0
<PackageReference Include="Nall.ModelContextProtocol.Inspector.Aspire.Hosting" Version="0.4.0" />
<PackageVersion Include="Nall.ModelContextProtocol.Inspector.Aspire.Hosting" Version="0.4.0" />
<PackageReference Include="Nall.ModelContextProtocol.Inspector.Aspire.Hosting" />
paket add Nall.ModelContextProtocol.Inspector.Aspire.Hosting --version 0.4.0
#r "nuget: Nall.ModelContextProtocol.Inspector.Aspire.Hosting, 0.4.0"
#addin nuget:?package=Nall.ModelContextProtocol.Inspector.Aspire.Hosting&version=0.4.0
#tool nuget:?package=Nall.ModelContextProtocol.Inspector.Aspire.Hosting&version=0.4.0
Model Context Protocol .NET Template
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
Verify installation:
dotnet new list mcp
# These templates matched your input: 'mcp'
# Template Name Short Name Language Tags
# ----------------- ----------------- -------- -------------
# MCP Server mcp-server [C#] dotnet/ai/mcp
# MCP Server SSE mcp-server-sse [C#] dotnet/ai/mcp
# MCP Server Hybrid mcp-server-hybrid [C#] dotnet/ai/mcp
[!INFO] Based on my experience, it is convenient to be able to switch between mode, so I recommend using
mcp-server-hybrid
template. It allows you to run the server in bothStdio
andSSE
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:
<p align="center"> <img src="assets/inspector-demo.png" alt="Inspector Demo" /> </p>
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 SSE
mode
In AppHost/Program.cs
:
var builder = DistributedApplication.CreateBuilder(args);
var mcp = builder.AddProject<Projects.MCPServerSSE>("server");
builder.AddMCPInspector().WithSSE(mcp);
builder.Build().Run();
Reference
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. |
-
net9.0
- Aspire.Hosting (>= 9.2.0)
- Aspire.Hosting.NodeJS (>= 9.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.