mcpField
C
csharp-mcp-server-generator

csharp-mcp-server-generator

github.com/github开发40.5k8.4k 次安装今天更新
代码仓库

关于 csharp-mcp-server-generator

用于生成 C# MCP 服务的技能,面向需要创建基于 .NET 8.0 或更高版本的服务的开发者。它规定了 Host、依赖注入、stdio 传输、工具属性、错误处理和运行说明等实现要求。

主要功能

  1. 01创建 C# 控制台项目结构
  2. 02配置 Host 与依赖注入
  3. 03设置 stdio 传输和日志
  4. 04生成带描述与验证的工具
  5. 05提供运行、测试和故障排查说明

适用场景

  1. 01从头搭建 C# MCP 服务
  2. 02为服务添加自定义工具
  3. 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) 服务,具体规格如下:

要求

  1. 项目结构:创建新的 C# 控制台应用程序,并具备合适的目录结构
  2. NuGet 包:包含 ModelContextProtocol(预发布版)和 Microsoft.Extensions.Hosting
  3. 日志配置:将所有日志配置为输出到 stderr,以免干扰 stdio 传输
  4. 服务设置:使用 Host 构建器模式,并配置好 DI
  5. 工具:创建至少一个有用的工具,并带有合适的特性和描述
  6. 错误处理:包含合适的错误处理和验证

实现细节

基本项目设置
  • 使用 .NET 8.0 或更高版本
  • 创建控制台应用程序
  • 使用 --prerelease 标志添加必要的 NuGet 包
  • 将日志配置为输出到 stderr
服务配置
  • 使用 Host.CreateApplicationBuilder 进行 DI 和生命周期管理
  • 使用 stdio 传输配置 AddMcpServer()
  • 使用 WithToolsFromAssembly() 自动发现工具
  • 确保服务通过 RunAsync() 运行
工具实现
  • 在工具类上使用 [McpServerToolType] 特性
  • 在工具方法上使用 [McpServerTool] 特性
  • 为工具和参数添加 [Description] 特性
  • 在合适的情况下支持异步操作
  • 包含合适的参数验证
代码质量
  • 遵循 C# 命名约定
  • 包含 XML 文档注释
  • 使用可空引用类型
  • 使用 McpProtocolException 实现合适的错误处理
  • 使用结构化日志进行调试

可考虑的工具类型示例

  • 文件操作(读取、写入、搜索)
  • 数据处理(转换、验证、分析)
  • 外部 API 集成(HTTP 请求)
  • 系统操作(执行命令、检查状态)
  • 数据库操作(查询、更新)

测试指引

  • 说明如何运行服务
  • 提供用于 MCP 客户端测试的示例命令
  • 包含故障排除提示

生成一个完整的、生产就绪的 MCP 服务,并具备全面的文档和错误处理。

评论

支持 Markdown