一个基于.NET的超级英雄管理系统,由一个采用Clean Architecture原则构建的API后端和一个用于AI助手集成的模型上下文协议(MCP)服务器组成。
本项目展示了如何使用Clean Architecture原则构建现代.NET应用程序,并将其与模型上下文协议(MCP)集成以实现AI助手功能。该项目主要包含两个部分:
该应用围绕一个超级英雄领域模型构建,包括:
cd Api/tools/AppHost
dotnet run
这将:
cd Mcp
dotnet run
这将启动提供与HeroApi交互工具的MCP服务器。
MCP检查器是一个有用的工具,可以直接测试你的MCP服务器。它允许你检查可用工具并进行交互式调用。
cd Mcp
npx @modelcontextprotocol/inspector dotnet run
这将:
检查器将显示来自你的MCP服务器的所有可用工具,并提供一个简单的接口来调用它们并查看响应,这对于开发和调试非常有用。
该项目使用Microsoft Kiota生成强类型的API客户端。要重新生成客户端:
cd Mcp
dotnet kiota generate --openapi https://localhost:7255/openapi/v1.json --language csharp --class-name HeroClient --clean-output --additional-data false
这将根据最新的OpenAPI规范在output目录中重新生成API客户端。
HeroApi提供了以下端点:
MCP服务器向AI助手提供了以下工具:
dotnet-mcp-hero/
├── Api/ # Clean Architecture API
│ ├── src/ # 源代码
│ │ ├── Application/ # 应用层(用例)
│ │ ├── Domain/ # 领域层(业务实体)
│ │ ├── Infrastructure/ # 基础设施层
│ │ └── WebApi/ # WebApi层(控制器)
│ ├── tests/ # 测试项目
│ │ ├── Architecture.Tests/ # 架构测试
│ │ ├── Domain.UnitTests/ # 领域单元测试
│ │ └── WebApi.IntegrationTests/ # API集成测试
│ └── tools/ # 开发者工具
│ ├── AppHost/ # Aspire主机
│ └── MigrationService/ # 数据库迁移
├── Mcp/ # 模型上下文协议服务器
│ ├── Program.cs # MCP服务器设置
│ ├── Tools/ # MCP工具
│ │ ├── Echo/ # Echo工具
│ │ ├── Heroes/ # 英雄管理工具
│ │ └── Teams/ # 团队管理工具
│ └── output/ # 生成的API客户端
└── McMcpHero.sln # 解决方案文件
本项目遵循Clean Architecture原则,包含以下层次:
本项目在MIT许可证下发布 - 查看LICENSE文件了解详情。