SuperAPI AI 工具集

dotnet-template-mcp

dotnet-template-mcp 是一个封装 .NET Template Engine 的 MCP 服务器,让 AI 智能体能够通过自然对话搜索、检查、预览和创建 dotnet new 项目模板,而无需记忆 CLI 参数。它支持参数验证、智能默认值、约束检查、交互式参数补全以及从 NuGet 自动解析模板,还提供模板作者验证工具,帮助在发布前发现 template.json 中的错误。支持 Stdio 和 HTTP 两种传输模式,可作为全局工具、dnx 零安装或集成到 VS Code / GitHub Copilot 等 MCP 客户端中使用。

访问官网

工具介绍

用途

dotnet-template-mcp 是一个 MCP(Model Context Protocol)服务器,封装了 .NET Template Engine,使 AI 智能体能够通过自然语言对话来搜索、检查、预览和创建 dotnet new 项目模板,而不需要记忆复杂的 CLI 标志。例如,AI 智能体只需说“我需要一个带身份验证和控制器的 Web API”,MCP 服务器就会自动完成后续工作。

主要能力

  • 模板发现与检查:搜索、查看模板详情。
  • 模板实例化:通过对话创建项目。
  • 模板作者验证:template_validate 工具可在发布前捕获 template.json 中的错误,包括缺失必填字段、无效的 identity 格式、短名称与 CLI 命令冲突、参数问题(缺少默认值、空选项、前缀冲突、类型不匹配)、损坏的计算符号、约束配置错误以及缺失标签。该工具以单个结构化 JSON 载荷返回,分为 errors / warnings / suggestions,并附带面向修复的消息,直接返回给正在编辑模板的智能体。官方工具是参考实现,若在 CI 中人工编写模板,建议优先使用官方工具。
  • 智能默认值:例如 AOT 使用最新框架,auth 保持 HTTPS 开启。
  • 参数验证:在写入文件前进行验证。
  • 约束检查:检查操作系统、SDK、工作负载。
  • 交互式参数补全:当模板有必填参数未提供时,通过 MCP elicitation 交互式询问用户,而不是直接失败。模板参数类型会映射到表单字段。可通过 MCP_TEMPLATE_ELICITATION=false 禁用。
  • NuGet 自动解析:如果模板未安装,自动从 NuGet 解析。
  • CPM 与最新包版本:在使用了中央包管理(Central Package Management)的解决方案中创建项目时,服务器会自动检测 Directory.Packages.props,从生成的 .csproj PackageReferences 中移除 Version 属性,向 Directory.Packages.props 添加缺失的 <PackageVersion> 条目,并解析最新的稳定 NuGet 版本。独立项目也适用,版本会直接在 .csproj 中更新。
  • 多模板组合:通过 template_compose 在一次调用中链式组合多个模板。
  • 工具配置文件(Lite vs Full):默认提供全部 15 个工具。可通过 MCP_TEMPLATE_TOOL_PROFILE 环境变量设置。Lite 配置文件工具包括:template_from_intent、template_instantiate、template_inspect、template_search、template_dry_run。非 Lite 工具会返回说明其已禁用及如何启用的提示信息。

使用方式

安装与部署

  • 托管部署:在 Fronteir AI 上提供托管部署。
  • 全局工具:需要 .NET 8+。
  • 零安装:使用 dnx,需要 .NET 10+。
  • VS Code / GitHub Copilot:添加到 mcp.json。
  • 还支持 Claude Desktop、Cursor 等客户端。

传输模式

  • Stdio(默认):标准输入输出传输,用于本地 CLI 和工具使用。
  • HTTP(远程 / 团队共享):可流式 HTTP 传输,用于远程或 CI/CD 部署。认证是强制性的。服务器中的每个工具都会写入文件并安装 NuGet 包,因此开放端点会成为远程代码执行面。除非设置了令牌或明确选择匿名访问,否则服务器拒绝启动 HTTP 传输。客户端使用 Authorization: Bearer <shared-secret> 认证。对 /mcp 的请求按客户端限速(默认 120/分钟,MCP_TEMPLATE_HTTP_RATE_LIMIT=0 可禁用)。/health 保持匿名用于探针。

HTTP 服务器暴露:

  • /mcp — MCP 可流式 HTTP 端点(需要 bearer 令牌)
  • /health — 健康检查端点(匿名)

可配置监听 URL 并连接 MCP 客户端。

非多租户说明

TemplateEngineService 是进程级单例,virtualizeSettings: false,因此已安装模板集由所有调用者共享,工作区根目录也是进程级的。每个受信任团队或租户应运行一个实例,不要将单个实例暴露给互不信任的用户。

适用场景

  • AI 智能体驱动的 .NET 项目脚手架创建。
  • 模板作者在发布前验证 template.json 的正确性。
  • 团队共享的远程 MCP 部署,用于 CI/CD 中的项目生成。
  • 与 VS Code、GitHub Copilot、Claude Desktop、Cursor 等 MCP 客户端集成。

限制

  • HTTP 模式非多租户,需按团队或租户隔离实例。
  • HTTP 模式必须配置认证,否则拒绝启动。
  • 全局工具需要 .NET 8+,dnx 零安装需要 .NET 10+。
  • 模板作者验证工具不替代官方工具,官方工具是参考实现且覆盖更多情况。
  • 构建与测试:CI 通过 GitHub Actions 在 push/PR 时运行(Ubuntu + Windows)。欢迎贡献,提交 PR 前请先开 issue 讨论。发布历史见 CHANGELOG.md。