Featured

Deploy OpenClaw in 60 seconds β€” 20% off logoDeploy OpenClaw in 60 seconds β€” 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger β†’
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger β†’
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free β†’
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now β†’
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data β€” no proxies, no parsers, no maintenance.

Start building free β†’
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it β€” secured from day one.

Get it set up for you β†’
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free β†’
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here β†’

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

dotnet-template-mcp MCP server](https://glama.ai/mcp/servers/@YuliiaKovalova/dotnet-template-mcp/badges/score.svg)](https://glama.ai/mcp/servers/@YuliiaKovalova/dotnet-template-mcp) #️⃣ 🏠 🍎 πŸͺŸ 🐧 - .NET Template Engine MCP server for AI-driven project...

README.md

Microsoft.TemplateEngine.MCP

<!-- mcp-name: io.github.YuliiaKovalova/dotnet-template-mcp -->

An MCP server that lets AI agents work with dotnet new templates β€” search, inspect, preview, and create projects through natural conversation instead of memorizing CLI flags.

<a href="https://glama.ai/mcp/servers/@YuliiaKovalova/dotnet-template-mcp"> <img width="380" height="200" src="https://glama.ai/mcp/servers/@YuliiaKovalova/dotnet-template-mcp/badge" alt="DotnetTemplateMCP MCP server" /> </a>

Instead of this: ``bash dotnet new list --language C# dotnet new webapi --help dotnet new webapi --auth Individual --use-controllers --name MyApi --output ./MyApi ``

Your AI agent just says: "I need a web API with authentication and controllers" β€” and the MCP server figures out the rest.

Template Validation for Authors

Building a custom dotnet new template? template_validate catches mistakes before you publish β€” no more guessing if your template.json is correct:

Agent calls: template_validate("./my-template")

← Returns:
{
  "valid": false,
  "summary": "2 error(s), 1 warning(s), 3 suggestion(s)",
  "errors": [
    "Missing required field 'shortName'.",
    "Parameter 'Framework': default value 'net7.0' is not in the choices list."
  ],
  "warnings": [
    "Missing 'sourceName'. Without it, the generated project name won't be customizable via --name."
  ],
  "suggestions": [
    "Consider adding a 'description' field to help users understand what this template creates.",
    "Consider adding 'language' tag (e.g., 'C#') for better discoverability.",
    "Consider adding 'type' tag (e.g., 'project', 'item') for filtering."
  ]
}

What it catches: missing required fields, invalid identity format, short name conflicts with CLI commands, parameter issues (missing defaults, empty choices, prefix collisions, type mismatches), broken computed symbols, constraint misconfiguration, and missing tags.

No existing tooling does this β€” most template authors discover issues only after dotnet new install fails or produces wrong output.

Tools

| Tool | What it does | |------|-------------| | template_search | Search locally and on NuGet.org β€” one call, ranked results | | template_list | List what's installed, filter by language/type/classification | | template_inspect | Parameters, constraints, post-actions β€” all in one shot | | template_instantiate | Create a project. Not installed? Auto-resolves from NuGet. Elicits missing params interactively | | template_dry_run | Preview files without touching disk | | template_install | Install a package (idempotent β€” skips if already there) | | template_uninstall | Remove a template package | | templates_installed | Inventory of everything installed | | template_from_intent | "web API with auth" β†’ webapi + auth=Individual β€” no LLM needed | | template_create_from_existing | Analyze a .csproj β†’ generate a reusable template matching repo conventions | | template_compose | Execute a sequence of templates (project + items) in one workflow | | template_suggest_parameters | Suggest parameter values with rationale based on cross-parameter relationships | | template_validate | Validate a local template directory for authoring issues before publishing | | template_compare | Compare 2+ templates side by side β€” parameters, features, frameworks | | solution_analyze | Analyze a solution/workspace β€” project structure, frameworks, CPM status | | packages_upgrade | Scan a project/solution/folder for outdated NuGet versions and report or apply upgrades (CPM-aware) |

πŸ“– Full tool reference β†’

Hosted deployment

A hosted deployment is available on Fronteir AI.

Quick Start

Global tool (.NET 8+)

dotnet tool install --global DotnetTemplateMCP --version 1.4.0

Zero-install with dnx (.NET 10+)

dnx -y DotnetTemplateMCP --version 1.4.0

VS Code / GitHub Copilot

Add to mcp.json:

{
  "servers": {
    "dotnet-templates": {
      "type": "stdio",
      "command": "dnx",
      "args": ["-y", "DotnetTemplateMCP", "--version", "1.4.0"]
    }
  }
}

πŸ“– Claude Desktop, Cursor, and more β†’

Transport Modes

Stdio (default)

Standard I/O transport for local CLI and tool usage:

template-engine-mcp                     # stdio is the default
template-engine-mcp --transport stdio   # explicit

HTTP (remote / cloud / team-shared)

Streamable HTTP transport for remote, multi-tenant, or CI/CD deployment:

template-engine-mcp --transport http
# or via environment variable:
MCP_TEMPLATE_TRANSPORT=http template-engine-mcp

The HTTP server exposes:

  • /mcp β€” MCP streamable HTTP endpoint
  • /health β€” Health check endpoint

Configure the listen URL: ``bash MCP_TEMPLATE_HTTP_URL=http://0.0.0.0:8080 template-engine-mcp --transport http ``

Connect your MCP client: ``json { "servers": { "dotnet-templates": { "type": "http", "url": "http://localhost:5005/mcp" } } } ``

Interactive Elicitation

When a template has required parameters that weren't provided, the server asks the user interactively via MCP elicitation β€” instead of failing. Template parameter types are mapped to form fields:

| Template Parameter | Elicitation Field | |---|---| | string | Text input | | bool / boolean | Checkbox | | int / number | Number input | | Choice parameter | Single-select dropdown |

Disable with MCP_TEMPLATE_ELICITATION=false.

How it works

You: "I need a web API with authentication, controllers, and Docker support"

β†’ template_from_intent extracts keywords: web api, authentication, controllers, docker
β†’ Matches: webapi (confidence: 0.85)
β†’ Resolves: auth=Individual, UseControllers=true, EnableDocker=true
β†’ template_instantiate creates the project

The server also does smart defaults (AOT β†’ latest framework, auth β†’ HTTPS stays on), parameter validation before writing files, constraint checking (OS, SDK, workload), interactive elicitation of missing required parameters, and auto-resolves templates from NuGet if they're not installed.

CPM & Latest Package Versions

When creating a project inside a solution that uses Central Package Management, the server automatically:

  1. Detects Directory.Packages.props by walking up the directory tree
  2. Strips Version attributes from generated .csproj PackageReferences
  3. Adds missing <PackageVersion> entries to Directory.Packages.props
  4. Resolves latest stable NuGet versions β€” no more stale hardcoded versions from templates
Before (what dotnet new generates):
  <PackageReference Include="Serilog" Version="3.1.0" />    ← stale, breaks CPM

After (what template_instantiate produces):
  .csproj:                    <PackageReference Include="Serilog" />
  Directory.Packages.props:   <PackageVersion Include="Serilog" Version="4.2.0" />

Works for standalone projects too β€” versions are updated directly in the .csproj.

Multi-Template Composition

Chain multiple templates in one call with template_compose:

[
  {"templateName": "webapi", "name": "MyApi", "parametersJson": "{\"auth\": \"Individual\"}"},
  {"templateName": "gitignore", "target": "."}
]

πŸ“– Architecture & smart behaviors β†’

Tool Profiles (Lite vs Full)

By default, all 15 tools are available. If your agent works better with fewer tools, set the MCP_TEMPLATE_TOOL_PROFILE environment variable:

| Profile | Tools | When to use | |---------|-------|-------------| | full (default) | All 15 tools | Full control β€” advanced workflows, composition, custom templates | | lite | 5 core tools | Simpler agents that just need to find and create projects |

Lite profile tools: template_from_intent, template_instantiate, template_inspect, template_search, template_dry_run

{
  "servers": {
    "dotnet-template-mcp": {
      "command": "dotnet-template-mcp",
      "env": {
        "MCP_TEMPLATE_TOOL_PROFILE": "lite"
      }
    }
  }
}

Non-lite tools will return a helpful message explaining they're disabled and how to enable them.

Documentation

| Doc | What's in it | |-----|-------------| | Configuration | VS Code, Claude Desktop, Cursor setup + troubleshooting | | Tool Reference | Every tool's parameters, types, and examples | | Architecture | Template cache, smart behaviors, telemetry, project structure | | MCP vs Skills | Why MCP over Copilot Skills β€” benefits and downsides | | Plain LLM vs MCP | Side-by-side: what a plain LLM does vs. the MCP tool (4 scenarios) | | Skills Equivalent | What it'd take to cover this with Skills instead |

Building & Testing

dotnet build
dotnet test    # 185+ tests β€” unit, integration, and E2E

CI runs on push/PR via GitHub Actions (Ubuntu + Windows).

Contributing

Contributions are welcome! Please open an issue to discuss proposed changes before submitting a PR.

# Setup
dotnet restore
dotnet build

# Run tests
dotnet test

# Pack locally
dotnet pack src/Microsoft.TemplateEngine.MCP -o nupkg/

Changelog

See CHANGELOG.md for release history.

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Search servers.