关于 csharp-mcp-server-generator
用于生成 C# MCP 服务的技能,面向需要创建基于 .NET 8.0 或更高版本的服务的开发者。它规定了 Host、依赖注入、stdio 传输、工具属性、错误处理和运行说明等实现要求。
主要功能
- 01创建 C# 控制台项目结构
- 02配置 Host 与依赖注入
- 03设置 stdio 传输和日志
- 04生成带描述与验证的工具
- 05提供运行、测试和故障排查说明
适用场景
- 01从头搭建 C# MCP 服务
- 02为服务添加自定义工具
- 03生成含错误处理与文档的服务模板
MCP 相关
该技能生成 MCP 服务,供 MCP 客户端通过 stdio 传输连接。生成的服务可注册工具供客户端调用。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill csharp-mcp-server-generator安装后在 Claude Code 中输入/csharp-mcp-server-generator确认已加载。
详细介绍
生成 C# MCP 服务
使用 C# 创建一个完整的 Model Context Protocol (MCP) 服务,具体规格如下:
要求
- 项目结构:创建新的 C# 控制台应用程序,并具备合适的目录结构
- NuGet 包:包含 ModelContextProtocol(预发布版)和 Microsoft.Extensions.Hosting
- 日志配置:将所有日志配置为输出到 stderr,以免干扰 stdio 传输
- 服务设置:使用 Host 构建器模式,并配置好 DI
- 工具:创建至少一个有用的工具,并带有合适的特性和描述
- 错误处理:包含合适的错误处理和验证
实现细节
基本项目设置
- 使用 .NET 8.0 或更高版本
- 创建控制台应用程序
- 使用 --prerelease 标志添加必要的 NuGet 包
- 将日志配置为输出到 stderr
服务配置
- 使用
Host.CreateApplicationBuilder进行 DI 和生命周期管理 - 使用 stdio 传输配置
AddMcpServer() - 使用
WithToolsFromAssembly()自动发现工具 - 确保服务通过
RunAsync()运行
工具实现
- 在工具类上使用
[McpServerToolType]特性 - 在工具方法上使用
[McpServerTool]特性 - 为工具和参数添加
[Description]特性 - 在合适的情况下支持异步操作
- 包含合适的参数验证
代码质量
- 遵循 C# 命名约定
- 包含 XML 文档注释
- 使用可空引用类型
- 使用 McpProtocolException 实现合适的错误处理
- 使用结构化日志进行调试
可考虑的工具类型示例
- 文件操作(读取、写入、搜索)
- 数据处理(转换、验证、分析)
- 外部 API 集成(HTTP 请求)
- 系统操作(执行命令、检查状态)
- 数据库操作(查询、更新)
测试指引
- 说明如何运行服务
- 提供用于 MCP 客户端测试的示例命令
- 包含故障排除提示
生成一个完整的、生产就绪的 MCP 服务,并具备全面的文档和错误处理。
评论
支持 Markdown