Model Context Protocol .NET Template
@NikiforovAll
This repository contains a template for creating a Model Context Protocol (MCP) applications in .NET.
Overview
What is Model Context Protocol .NET Template?
A NuGet template for creating Model Context Protocol (MCP) applications in .NET. It provides a basic project structure and example code to help developers build MCP-enabled servers that integrate LLM applications with external data sources.
How to use Model Context Protocol .NET Template?
Install the template using dotnet new install Nall.ModelContextProtocol.Template, then create a new project with commands like dotnet new mcp-server -o MyProject -n MyProject. The generated code registers tools marked with the [McpServerTool] attribute automatically. Build and run locally, or distribute as a .NET tool.
Key features of Model Context Protocol .NET Template
- Four templates: mcp-server, mcp-server-http, mcp-server-http-auth, and mcp-server-hybrid
- Supports both Stdio and HTTP transport modes
- Automatic tool discovery with
WithToolsFromAssembly() - Can be packaged and distributed as a global .NET tool
- Integrates with Aspire hosting for cloud-native scenarios
Use cases of Model Context Protocol .NET Template
- Building a simple echo server to test MCP basics
- Creating production MCP servers in .NET with tool registration
- Switching between Stdio and HTTP modes for different deployment needs
- Distributing MCP servers as globally installable .NET tools
- Hosting MCP servers in Aspire orchestrations
FAQ from Model Context Protocol .NET Template
What is the Model Context Protocol (MCP)?
A protocol for seamless integration between LLM applications and external data sources. The .NET template helps you create servers that implement this protocol.
What templates are available?
Four templates: mcp-server (Stdio), mcp-server-http (HTTP), mcp-server-http-auth (HTTP with authentication), and mcp-server-hybrid (supports both Stdio and HTTP modes). The hybrid template is recommended for flexibility.
How do I run the server locally?
Build the project with dotnet build, then use the inspector: npx @modelcontextprotocol/inspector -e DOTNET_ENVIRONMENT=Production dotnet <path-to-dll>. Alternatively, package as a .NET tool and run directly.
Can I distribute the server as a .NET tool?
Yes. Pack with dotnet pack, then install globally with dotnet tool install --global --add-source <path>. The tool will be available system-wide.
How does Aspire hosting work?
Add the server project and the MCP inspector to your AppHost. Use WithStdio<Projects.MCPServer>() for Stdio mode or WithMcp(project) for HTTP mode.