|
1 | | -# McpPack MCP Server (.NET) |
| 1 | +# MCP.Pack 🚀 |
2 | 2 |
|
3 | | -This project is a Model Context Protocol (MCP) server built with .NET, following Clean Architecture and Domain-Driven Design (DDD) principles. |
| 3 | +A modern .NET server for Model Context Protocol (MCP) and NuGet package management 📦. |
| 4 | +Built with Clean Architecture 🏗️ and Domain-Driven Design (DDD) 🧠, supporting AOT compilation ⚡ and comprehensive automated testing 🧪. |
4 | 5 |
|
5 | | -## Structure |
6 | | -- **McpPack.Domain**: Domain logic, aggregates, entities, value objects, repositories, domain events |
7 | | -- **McpPack.Application**: Application services, use cases, interfaces |
8 | | -- **McpPack.Infrastructure**: Infrastructure implementations (e.g., data access, external services) |
9 | | -- **McpPack.Api**: ASP.NET Core Web API (entry point) |
| 6 | +--- |
10 | 7 |
|
11 | | -## Getting Started |
| 8 | +## ✨ Features |
| 9 | +- 🔍 Discover and search NuGet packages via the Model Context Protocol (MCP) |
| 10 | +- 📑 Retrieve rich package metadata for any NuGet feed |
| 11 | +- 🧩 Designed for extensibility and integration in modern .NET ecosystems |
12 | 12 |
|
13 | | -### Prerequisites |
14 | | -- [.NET 8 SDK](https://dotnet.microsoft.com/download) |
| 13 | +## 🛠️ Technical Highlights |
| 14 | +- 🏗️ **Clean Architecture**: strict separation of Domain, Application, Infrastructure, and API layers |
| 15 | +- ⚡ **AOT (Ahead-Of-Time) compilation**: fast startup, low memory usage |
| 16 | +- 🧪 **Comprehensive automated tests**: unit, integration, and architecture validation |
| 17 | +- 💎 **Modern .NET 9**: minimal APIs, dependency injection, async/await everywhere |
15 | 18 |
|
16 | | -### Build |
| 19 | +## 🗂️ Project Structure |
| 20 | + |
| 21 | +``` |
| 22 | +McpPack.sln |
| 23 | +src/ |
| 24 | + McpPack.Domain/ # Domain logic, aggregates, value objects, repositories |
| 25 | + McpPack.Application/ # Use cases, service interfaces |
| 26 | + McpPack.Infrastructure/ # Implementations for repositories, external services |
| 27 | + McpPack.Api/ # API endpoints, orchestration |
| 28 | +
|
| 29 | +tests/ |
| 30 | + McpPack.UnitTests/ # Unit tests for Domain & Application |
| 31 | + McpPack.IntegrationTests/ # Integration & architecture tests |
| 32 | +``` |
| 33 | + |
| 34 | +## 🚀 Getting Started |
| 35 | + |
| 36 | +### 🧰 Prerequisites |
| 37 | +- 🟣 [.NET 9 SDK](https://dotnet.microsoft.com/download) |
| 38 | +- 📊 (Optional) [dotnet-reportgenerator-globaltool](https://github.com/danielpalme/ReportGenerator) for coverage reports |
| 39 | + |
| 40 | +### 🏃♂️ Build & Run |
17 | 41 | ```sh |
18 | 42 | dotnet build |
| 43 | +dotnet run --project src/McpPack.Api |
19 | 44 | ``` |
20 | 45 |
|
21 | | -### Run |
| 46 | +### 🧪 Test |
22 | 47 | ```sh |
23 | | -dotnet run --project McpPack.Api |
| 48 | +dotnet test |
24 | 49 | ``` |
25 | 50 |
|
26 | | -### Debug |
27 | | -- Open the solution in VS Code or Visual Studio |
28 | | -- Set breakpoints in any project |
29 | | -- Start debugging (F5) |
| 51 | +## 🏛️ Architecture Principles |
| 52 | +- 🧠 **Domain**: no dependencies, pure business logic |
| 53 | +- 🎯 **Application**: orchestrates use cases, depends only on Domain |
| 54 | +- 🏗️ **Infrastructure**: implements interfaces, depends on Application & Domain |
| 55 | +- 🌐 **API**: exposes endpoints, depends only on Infrastructure |
| 56 | +- 🧪 **Tests**: separated by type (unit/integration/architecture) |
| 57 | + |
| 58 | +## 🤝 Contributing |
| 59 | +- 📝 Follow [Conventional Commits](https://www.conventionalcommits.org/) |
| 60 | +- 🧪 Write tests for all new features and bugfixes |
| 61 | +- 🧹 Keep code clean and robust |
| 62 | + |
| 63 | +## 📄 License |
| 64 | +MIT |
| 65 | + |
| 66 | +--- |
30 | 67 |
|
31 | | -## Notes |
32 | | -- Follow DDD and Clean Architecture best practices for all new code. |
33 | | -- See `.github/copilot-instructions.md` for Copilot guidance. |
| 68 | +> Because good enough is never enough. 😎 |
0 commit comments