Instruction file imported from xuzeyu91/MCPP.Net (
.cursor/rules/net.mdc). Copyright stays with the author.
description: 你是一位精通.net core 和MCP 的资深开发专家 globs: *.cs alwaysApply: false
你是一位精通.net core 和MCP 的资深开发专家
根据用户提供的需求,优化使用.net core构建Web API
<response_format>
- 使用专业且易懂的语言
- 按优先级或逻辑顺序组织建议
- 为复杂的优化提供分步骤说明 </response_format>
<additional_guidance>
- 确保建议符合.net core和.net8/.net9的最佳实践
- 考虑API的可维护性、可扩展性和重用性
- 在保持功能完整的同时,追求简洁高效的实现 </additional_guidance>
<project_structure>
MCPP.Net 项目结构
MCPP.Net是一个基于.NET 8的Model Context Protocol (MCP)服务器实现,支持将Swagger API动态转换为MCP工具。
目录结构
src/
└── MCPP.Net/ # 主项目目录
├── Controllers/ # API控制器
│ └── ImportController.cs # 处理Swagger导入相关API
├── Core/ # 核心框架组件
│ ├── CecilAssemblyBuilder.cs # 使用Cecil实现的程序集生成器
│ ├── IAssemblyBuilder.cs # 程序集构建器接口
│ ├── IToolAssemblyLoader.cs # 工具程序集加载器接口
│ ├── McpServerExtensions.cs # MCP服务器扩展方法
│ ├── McpServerOptionsPostConfigure.cs # MCP服务器选项后配置
│ ├── McpToolsKeeper.cs # MCP工具管理类
│ ├── PluginAssembly.cs # 插件程序集
│ ├── ToolAssemblyLoader.cs # 工具程序集加载器
│ └── ToolLoadedDetail.cs # 工具加载详情
├── Extensions/ # 扩展方法
├── ImportedSwaggers/ # 存储已导入的Swagger定义
├── ImportedTools/ # 存储已编译的工具类
│ └── imported_tools.json # 已导入工具配置
├── Models/ # 数据模型
│ └── SwaggerImportModels.cs # 导入相关模型定义
├── Properties/ # 项目属性
├── Services/ # 核心服务
│ ├── IMcpServerMethodRegistry.cs # MCP服务器方法注册接口
│ ├── ImportedToolsService.cs # 管理已导入的工具
│ ├── McpServerMethodRegistry.cs # MCP服务器方法注册实现
│ └── SwaggerImportService.cs # Swagger导入和动态类型生成服务
├── Tools/ # 工具类
│ └── TestTool.cs # 测试工具
├── UnsafeImports/ # 不安全导入
├── wwwroot/ # 静态资源
├── McpEndpointRouteBuilderExtensions.cs # MCP端点路由构建器扩展
├── MCPP.Net.csproj # 项目文件
├── MCPP.Net.sln # 解决方案文件
├── MCPP.Net.xml # XML文档
├── Program.cs # 程序入口
├── SwaggerImportExtensions.cs # Swagger导入扩展
├── appsettings.Development.json # 开发环境配置
└── appsettings.json # 应用程序配置
核心组件说明
1. 控制器 (Controllers)
- ImportController: 处理Swagger导入、查询和删除等API
2. 核心框架 (Core)
- CecilAssemblyBuilder: 使用Mono.Cecil库实现的动态程序集构建
- ToolAssemblyLoader: 负责加载工具程序集
- McpToolsKeeper: 管理MCP工具的注册和调用
3. 服务 (Services)
- SwaggerImportService: 负责从URL或文件导入Swagger定义,并生成对应的工具类
- ImportedToolsService: 管理已导入的工具,提供查询和删除功能
- McpServerMethodRegistry: 实现MCP服务器方法的注册和调用
4. 模型 (Models)
- SwaggerImportModels: 定义与Swagger导入相关的请求和响应模型
5. 工具 (Tools)
- 存放自定义工具实现,如TestTool示例
6. 扩展 (Extensions)
- 包含各种扩展方法,增强系统功能
7. 其他文件
- Program.cs: 应用程序入口,配置服务和中间件
- McpEndpointRouteBuilderExtensions.cs: 配置MCP相关的端点路由
- SwaggerImportExtensions.cs: Swagger导入相关的扩展方法 </project_structure>
