mvp24hours-dotnet-mcp 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mvp24hours-dotnet-mcp might be problematic. Click here for more details.

Files changed (214) hide show
  1. package/CONTRIBUTING.md +217 -0
  2. package/LICENSE +21 -0
  3. package/README.md +221 -0
  4. package/dist/index.d.ts +10 -0
  5. package/dist/index.d.ts.map +1 -0
  6. package/dist/index.js +1454 -0
  7. package/dist/index.js.map +1 -0
  8. package/dist/tools/ai-implementation.d.ts +28 -0
  9. package/dist/tools/ai-implementation.d.ts.map +1 -0
  10. package/dist/tools/ai-implementation.js +1251 -0
  11. package/dist/tools/ai-implementation.js.map +1 -0
  12. package/dist/tools/architecture-advisor.d.ts +42 -0
  13. package/dist/tools/architecture-advisor.d.ts.map +1 -0
  14. package/dist/tools/architecture-advisor.js +442 -0
  15. package/dist/tools/architecture-advisor.js.map +1 -0
  16. package/dist/tools/containerization-patterns.d.ts +18 -0
  17. package/dist/tools/containerization-patterns.d.ts.map +1 -0
  18. package/dist/tools/containerization-patterns.js +819 -0
  19. package/dist/tools/containerization-patterns.js.map +1 -0
  20. package/dist/tools/core-patterns.d.ts +18 -0
  21. package/dist/tools/core-patterns.d.ts.map +1 -0
  22. package/dist/tools/core-patterns.js +1039 -0
  23. package/dist/tools/core-patterns.js.map +1 -0
  24. package/dist/tools/cqrs-guide.d.ts +18 -0
  25. package/dist/tools/cqrs-guide.d.ts.map +1 -0
  26. package/dist/tools/cqrs-guide.js +2777 -0
  27. package/dist/tools/cqrs-guide.js.map +1 -0
  28. package/dist/tools/database-advisor.d.ts +39 -0
  29. package/dist/tools/database-advisor.d.ts.map +1 -0
  30. package/dist/tools/database-advisor.js +598 -0
  31. package/dist/tools/database-advisor.js.map +1 -0
  32. package/dist/tools/get-started.d.ts +20 -0
  33. package/dist/tools/get-started.d.ts.map +1 -0
  34. package/dist/tools/get-started.js +254 -0
  35. package/dist/tools/get-started.js.map +1 -0
  36. package/dist/tools/get-template.d.ts +17 -0
  37. package/dist/tools/get-template.d.ts.map +1 -0
  38. package/dist/tools/get-template.js +605 -0
  39. package/dist/tools/get-template.js.map +1 -0
  40. package/dist/tools/infrastructure-guide.d.ts +18 -0
  41. package/dist/tools/infrastructure-guide.d.ts.map +1 -0
  42. package/dist/tools/infrastructure-guide.js +1078 -0
  43. package/dist/tools/infrastructure-guide.js.map +1 -0
  44. package/dist/tools/messaging-patterns.d.ts +18 -0
  45. package/dist/tools/messaging-patterns.d.ts.map +1 -0
  46. package/dist/tools/messaging-patterns.js +718 -0
  47. package/dist/tools/messaging-patterns.js.map +1 -0
  48. package/dist/tools/modernization-guide.d.ts +23 -0
  49. package/dist/tools/modernization-guide.d.ts.map +1 -0
  50. package/dist/tools/modernization-guide.js +1072 -0
  51. package/dist/tools/modernization-guide.js.map +1 -0
  52. package/dist/tools/observability-setup.d.ts +23 -0
  53. package/dist/tools/observability-setup.d.ts.map +1 -0
  54. package/dist/tools/observability-setup.js +592 -0
  55. package/dist/tools/observability-setup.js.map +1 -0
  56. package/dist/tools/reference-guide.d.ts +18 -0
  57. package/dist/tools/reference-guide.d.ts.map +1 -0
  58. package/dist/tools/reference-guide.js +890 -0
  59. package/dist/tools/reference-guide.js.map +1 -0
  60. package/dist/tools/security-patterns.d.ts +18 -0
  61. package/dist/tools/security-patterns.d.ts.map +1 -0
  62. package/dist/tools/security-patterns.js +898 -0
  63. package/dist/tools/security-patterns.js.map +1 -0
  64. package/dist/tools/testing-patterns.d.ts +18 -0
  65. package/dist/tools/testing-patterns.d.ts.map +1 -0
  66. package/dist/tools/testing-patterns.js +1151 -0
  67. package/dist/tools/testing-patterns.js.map +1 -0
  68. package/dist/utils/doc-loader.d.ts +28 -0
  69. package/dist/utils/doc-loader.d.ts.map +1 -0
  70. package/dist/utils/doc-loader.js +88 -0
  71. package/dist/utils/doc-loader.js.map +1 -0
  72. package/docs/ai-context/ai-decision-matrix.md +216 -0
  73. package/docs/ai-context/ai-implementation-index.md +333 -0
  74. package/docs/ai-context/api-versioning-patterns.md +597 -0
  75. package/docs/ai-context/architecture-templates.md +794 -0
  76. package/docs/ai-context/containerization-patterns.md +633 -0
  77. package/docs/ai-context/database-patterns.md +575 -0
  78. package/docs/ai-context/decision-matrix.md +329 -0
  79. package/docs/ai-context/error-handling-patterns.md +727 -0
  80. package/docs/ai-context/home.md +298 -0
  81. package/docs/ai-context/messaging-patterns.md +547 -0
  82. package/docs/ai-context/modernization-patterns.md +756 -0
  83. package/docs/ai-context/observability-patterns.md +594 -0
  84. package/docs/ai-context/project-structure.md +264 -0
  85. package/docs/ai-context/security-patterns.md +662 -0
  86. package/docs/ai-context/structure-complex-nlayers.md +982 -0
  87. package/docs/ai-context/structure-minimal-api.md +668 -0
  88. package/docs/ai-context/structure-simple-nlayers.md +754 -0
  89. package/docs/ai-context/template-agent-framework-basic.md +1159 -0
  90. package/docs/ai-context/template-agent-framework-middleware.md +519 -0
  91. package/docs/ai-context/template-agent-framework-multi-agent.md +1187 -0
  92. package/docs/ai-context/template-agent-framework-workflows.md +1234 -0
  93. package/docs/ai-context/template-clean-architecture.md +858 -0
  94. package/docs/ai-context/template-cqrs.md +938 -0
  95. package/docs/ai-context/template-ddd.md +1053 -0
  96. package/docs/ai-context/template-event-driven.md +884 -0
  97. package/docs/ai-context/template-hexagonal.md +922 -0
  98. package/docs/ai-context/template-microservices.md +788 -0
  99. package/docs/ai-context/template-sk-chat-completion.md +816 -0
  100. package/docs/ai-context/template-sk-planners.md +859 -0
  101. package/docs/ai-context/template-sk-plugins.md +793 -0
  102. package/docs/ai-context/template-sk-rag-basic.md +890 -0
  103. package/docs/ai-context/template-skg-chain-of-thought.md +981 -0
  104. package/docs/ai-context/template-skg-chatbot-memory.md +785 -0
  105. package/docs/ai-context/template-skg-checkpointing.md +1314 -0
  106. package/docs/ai-context/template-skg-document-pipeline.md +1110 -0
  107. package/docs/ai-context/template-skg-graph-executor.md +777 -0
  108. package/docs/ai-context/template-skg-human-in-loop.md +1179 -0
  109. package/docs/ai-context/template-skg-multi-agent.md +901 -0
  110. package/docs/ai-context/template-skg-observability.md +1020 -0
  111. package/docs/ai-context/template-skg-react-agent.md +742 -0
  112. package/docs/ai-context/template-skg-streaming.md +930 -0
  113. package/docs/ai-context/testing-patterns.md +715 -0
  114. package/docs/application-services.md +883 -0
  115. package/docs/broker-advanced.md +738 -0
  116. package/docs/broker.md +188 -0
  117. package/docs/caching-advanced.md +666 -0
  118. package/docs/core/entity-interfaces.md +412 -0
  119. package/docs/core/exceptions.md +439 -0
  120. package/docs/core/functional-patterns.md +382 -0
  121. package/docs/core/guard-clauses.md +385 -0
  122. package/docs/core/home.md +109 -0
  123. package/docs/core/infrastructure-abstractions.md +386 -0
  124. package/docs/core/smart-enums.md +327 -0
  125. package/docs/core/strongly-typed-ids.md +352 -0
  126. package/docs/core/value-objects.md +356 -0
  127. package/docs/cqrs/api-reference.md +433 -0
  128. package/docs/cqrs/behaviors.md +215 -0
  129. package/docs/cqrs/best-practices.md +300 -0
  130. package/docs/cqrs/commands.md +267 -0
  131. package/docs/cqrs/concepts-comparison.md +208 -0
  132. package/docs/cqrs/domain-events.md +244 -0
  133. package/docs/cqrs/event-sourcing/aggregate.md +303 -0
  134. package/docs/cqrs/event-sourcing/event-store.md +292 -0
  135. package/docs/cqrs/event-sourcing/home.md +182 -0
  136. package/docs/cqrs/event-sourcing/projections.md +312 -0
  137. package/docs/cqrs/event-sourcing/snapshots.md +316 -0
  138. package/docs/cqrs/extensibility.md +473 -0
  139. package/docs/cqrs/getting-started.md +163 -0
  140. package/docs/cqrs/home.md +81 -0
  141. package/docs/cqrs/integration-caching.md +238 -0
  142. package/docs/cqrs/integration-events.md +257 -0
  143. package/docs/cqrs/integration-rabbitmq.md +304 -0
  144. package/docs/cqrs/integration-repository.md +235 -0
  145. package/docs/cqrs/integration-unitofwork.md +224 -0
  146. package/docs/cqrs/mediator.md +232 -0
  147. package/docs/cqrs/migration-mediatr.md +304 -0
  148. package/docs/cqrs/multi-tenancy.md +473 -0
  149. package/docs/cqrs/notifications.md +234 -0
  150. package/docs/cqrs/observability/audit.md +300 -0
  151. package/docs/cqrs/observability/telemetry.md +290 -0
  152. package/docs/cqrs/observability/tracing.md +284 -0
  153. package/docs/cqrs/queries.md +263 -0
  154. package/docs/cqrs/resilience/circuit-breaker.md +341 -0
  155. package/docs/cqrs/resilience/idempotency.md +200 -0
  156. package/docs/cqrs/resilience/inbox-outbox.md +450 -0
  157. package/docs/cqrs/resilience/retry.md +238 -0
  158. package/docs/cqrs/saga/compensation.md +311 -0
  159. package/docs/cqrs/saga/home.md +199 -0
  160. package/docs/cqrs/saga/implementation.md +422 -0
  161. package/docs/cqrs/scheduled-commands.md +537 -0
  162. package/docs/cqrs/specifications.md +580 -0
  163. package/docs/cqrs/validation-behavior.md +287 -0
  164. package/docs/cronjob-advanced.md +921 -0
  165. package/docs/cronjob-observability.md +369 -0
  166. package/docs/cronjob-resilience.md +378 -0
  167. package/docs/cronjob.md +343 -0
  168. package/docs/database/efcore-advanced.md +765 -0
  169. package/docs/database/mongodb-advanced.md +716 -0
  170. package/docs/database/nosql.md +226 -0
  171. package/docs/database/relational.md +145 -0
  172. package/docs/database/use-context.md +97 -0
  173. package/docs/database/use-entity.md +72 -0
  174. package/docs/database/use-repository.md +120 -0
  175. package/docs/database/use-service.md +58 -0
  176. package/docs/database/use-unitofwork.md +34 -0
  177. package/docs/documentation.md +186 -0
  178. package/docs/getting-started.md +163 -0
  179. package/docs/home.md +76 -0
  180. package/docs/index.md +175 -0
  181. package/docs/logging.md +301 -0
  182. package/docs/mapping.md +163 -0
  183. package/docs/migration.md +411 -0
  184. package/docs/modernization/aspire.md +393 -0
  185. package/docs/modernization/channels.md +440 -0
  186. package/docs/modernization/dotnet9-features.md +281 -0
  187. package/docs/modernization/generic-resilience.md +373 -0
  188. package/docs/modernization/http-resilience.md +250 -0
  189. package/docs/modernization/hybrid-cache.md +431 -0
  190. package/docs/modernization/keyed-services.md +383 -0
  191. package/docs/modernization/migration-guide.md +657 -0
  192. package/docs/modernization/minimal-apis.md +407 -0
  193. package/docs/modernization/native-openapi.md +426 -0
  194. package/docs/modernization/options-configuration.md +404 -0
  195. package/docs/modernization/output-caching.md +454 -0
  196. package/docs/modernization/periodic-timer.md +315 -0
  197. package/docs/modernization/problem-details.md +432 -0
  198. package/docs/modernization/rate-limiting.md +385 -0
  199. package/docs/modernization/source-generators.md +219 -0
  200. package/docs/modernization/time-provider.md +303 -0
  201. package/docs/observability/exporters.md +556 -0
  202. package/docs/observability/home.md +186 -0
  203. package/docs/observability/logging.md +589 -0
  204. package/docs/observability/metrics.md +504 -0
  205. package/docs/observability/migration.md +337 -0
  206. package/docs/observability/tracing.md +453 -0
  207. package/docs/pipeline.md +383 -0
  208. package/docs/release.md +253 -0
  209. package/docs/specification.md +130 -0
  210. package/docs/telemetry.md +189 -0
  211. package/docs/validation.md +205 -0
  212. package/docs/webapi-advanced.md +1188 -0
  213. package/docs/webapi.md +401 -0
  214. package/package.json +68 -0
package/dist/index.js ADDED
@@ -0,0 +1,1454 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Mvp24Hours .NET MCP Server
4
+ *
5
+ * This MCP server provides intelligent documentation routing for AI agents
6
+ * working with the Mvp24Hours .NET framework. Instead of loading all documentation
7
+ * at once, it provides specialized tools that return only relevant content.
8
+ */
9
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
10
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
+ import { CallToolRequestSchema, ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, ListResourceTemplatesRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
12
+ import { architectureAdvisor, architectureAdvisorSchema } from "./tools/architecture-advisor.js";
13
+ import { databaseAdvisor, databaseAdvisorSchema } from "./tools/database-advisor.js";
14
+ import { cqrsGuide, cqrsGuideSchema } from "./tools/cqrs-guide.js";
15
+ import { aiImplementation, aiImplementationSchema } from "./tools/ai-implementation.js";
16
+ import { modernizationGuide, modernizationGuideSchema } from "./tools/modernization-guide.js";
17
+ import { observabilitySetup, observabilitySetupSchema } from "./tools/observability-setup.js";
18
+ import { messagingPatterns, messagingPatternsSchema } from "./tools/messaging-patterns.js";
19
+ import { getTemplate, getTemplateSchema } from "./tools/get-template.js";
20
+ import { getStarted, getStartedSchema } from "./tools/get-started.js";
21
+ import { corePatterns, corePatternsSchema } from "./tools/core-patterns.js";
22
+ import { infrastructureGuide, infrastructureGuideSchema } from "./tools/infrastructure-guide.js";
23
+ import { referenceGuide, referenceGuideSchema } from "./tools/reference-guide.js";
24
+ import { testingPatterns, testingPatternsSchema } from "./tools/testing-patterns.js";
25
+ import { securityPatterns, securityPatternsSchema } from "./tools/security-patterns.js";
26
+ import { containerizationPatterns, containerizationPatternsSchema } from "./tools/containerization-patterns.js";
27
+ import { loadDoc, docExists } from "./utils/doc-loader.js";
28
+ const server = new Server({
29
+ name: "mvp24hours-dotnet-mcp",
30
+ version: "1.0.0",
31
+ }, {
32
+ capabilities: {
33
+ tools: {},
34
+ resources: {},
35
+ prompts: {},
36
+ },
37
+ });
38
+ // List available tools
39
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
40
+ return {
41
+ tools: [
42
+ {
43
+ name: "mvp24h_get_started",
44
+ description: `Get an overview of Mvp24Hours framework and determine the best starting point.
45
+ Use this tool FIRST when the user wants to create a new .NET project or asks about Mvp24Hours.
46
+ Returns: Framework overview, quick decision tree, and recommended next steps.`,
47
+ inputSchema: getStartedSchema,
48
+ },
49
+ {
50
+ name: "mvp24h_architecture_advisor",
51
+ description: `Recommends the best architecture template based on project requirements.
52
+ Use when the user needs to choose between: Minimal API, Simple N-Layers, Complex N-Layers,
53
+ CQRS, Event-Driven, Hexagonal, Clean Architecture, DDD, or Microservices.
54
+ Returns: Recommended template with decision rationale and project structure.`,
55
+ inputSchema: architectureAdvisorSchema,
56
+ },
57
+ {
58
+ name: "mvp24h_database_advisor",
59
+ description: `Recommends database technology and patterns based on data requirements.
60
+ Use when choosing between: SQL Server, PostgreSQL, MySQL, MongoDB, Redis.
61
+ Also covers: EF Core, Dapper, Repository pattern, Unit of Work, hybrid approaches.
62
+ Returns: Database selection, NuGet packages, configuration, and implementation patterns.`,
63
+ inputSchema: databaseAdvisorSchema,
64
+ },
65
+ {
66
+ name: "mvp24h_cqrs_guide",
67
+ description: `Provides CQRS/Mediator pattern implementation guidance.
68
+ Topics: Commands, Queries, Notifications, Domain Events, Integration Events,
69
+ Pipeline Behaviors, Validation, Saga Pattern, Event Sourcing, Resilience patterns.
70
+ Returns: Specific documentation for the requested CQRS topic.`,
71
+ inputSchema: cqrsGuideSchema,
72
+ },
73
+ {
74
+ name: "mvp24h_ai_implementation",
75
+ description: `Recommends AI implementation approach for .NET applications.
76
+ Covers: Semantic Kernel (Pure), Semantic Kernel Graph, Microsoft Agent Framework.
77
+ Use cases: Chatbots, RAG, Multi-agent systems, Workflows, Human-in-the-loop.
78
+ Returns: AI decision matrix, recommended approach, and implementation template.`,
79
+ inputSchema: aiImplementationSchema,
80
+ },
81
+ {
82
+ name: "mvp24h_modernization_guide",
83
+ description: `Provides .NET 9 modernization patterns and features.
84
+ Categories: Resilience (HTTP, Generic, Rate Limiting), Time (TimeProvider, PeriodicTimer),
85
+ Caching (HybridCache, Output Caching), DI (Keyed Services, Options),
86
+ APIs (ProblemDetails, Minimal APIs, OpenAPI), Performance (Source Generators), Cloud (Aspire).
87
+ Returns: Feature documentation with implementation examples.`,
88
+ inputSchema: modernizationGuideSchema,
89
+ },
90
+ {
91
+ name: "mvp24h_observability_setup",
92
+ description: `Configures observability stack for .NET applications.
93
+ Components: Logging (NLog, OpenTelemetry), Tracing, Metrics, Exporters.
94
+ Integrations: Jaeger, Zipkin, Prometheus, Application Insights.
95
+ Returns: Setup instructions, configuration, and best practices.`,
96
+ inputSchema: observabilitySetupSchema,
97
+ },
98
+ {
99
+ name: "mvp24h_messaging_patterns",
100
+ description: `Implements async messaging and background processing patterns.
101
+ Patterns: RabbitMQ integration, Hosted Services, Pipeline pattern, Outbox pattern.
102
+ Returns: Implementation templates and configuration.`,
103
+ inputSchema: messagingPatternsSchema,
104
+ },
105
+ {
106
+ name: "mvp24h_get_template",
107
+ description: `Retrieves a specific architecture template by name.
108
+ Available templates: minimal-api, simple-nlayers, complex-nlayers, cqrs,
109
+ event-driven, hexagonal, clean-architecture, ddd, microservices,
110
+ sk-chat-completion, sk-plugins, sk-rag, skg-graph-executor, skg-react-agent,
111
+ skg-multi-agent, agent-framework-basic, and more.
112
+ Returns: Complete template code and project structure.`,
113
+ inputSchema: getTemplateSchema,
114
+ },
115
+ {
116
+ name: "mvp24h_core_patterns",
117
+ description: `Provides documentation for Mvp24Hours Core module patterns.
118
+ Topics: guard-clauses, value-objects, strongly-typed-ids, functional-patterns,
119
+ smart-enums, entity-interfaces, infrastructure abstractions, exceptions.
120
+ Returns: Core pattern documentation with code examples.`,
121
+ inputSchema: corePatternsSchema,
122
+ },
123
+ {
124
+ name: "mvp24h_infrastructure_guide",
125
+ description: `Provides documentation for Pipeline, Caching, WebAPI, and CronJob patterns.
126
+ Topics: pipeline (Pipe and Filters), caching (Redis), webapi, webapi-advanced,
127
+ cronjob (background jobs), application-services (service layer).
128
+ Returns: Infrastructure pattern documentation with implementation examples.`,
129
+ inputSchema: infrastructureGuideSchema,
130
+ },
131
+ {
132
+ name: "mvp24h_reference_guide",
133
+ description: `Provides reference documentation for supporting patterns.
134
+ Topics: mapping (AutoMapper), validation (FluentValidation), specification pattern,
135
+ documentation (Swagger/XML docs), migration (EF Core migrations).
136
+ Returns: Reference documentation with code examples.`,
137
+ inputSchema: referenceGuideSchema,
138
+ },
139
+ {
140
+ name: "mvp24h_testing_patterns",
141
+ description: `Provides testing patterns and best practices for .NET applications.
142
+ Topics: unit-testing (xUnit, FluentAssertions), integration-testing (WebApplicationFactory),
143
+ mocking (Moq, NSubstitute), test-containers (Docker-based tests), api-testing,
144
+ architecture-testing (ArchUnitNET).
145
+ Returns: Testing documentation with code examples.`,
146
+ inputSchema: testingPatternsSchema,
147
+ },
148
+ {
149
+ name: "mvp24h_security_patterns",
150
+ description: `Provides security patterns and best practices for .NET applications.
151
+ Topics: authentication (Identity, OAuth), authorization (roles, policies),
152
+ jwt (token generation, refresh), data-protection (encryption),
153
+ input-validation (sanitization), secrets-management (Key Vault).
154
+ Returns: Security documentation with implementation examples.`,
155
+ inputSchema: securityPatternsSchema,
156
+ },
157
+ {
158
+ name: "mvp24h_containerization_patterns",
159
+ description: `Provides Docker and Kubernetes patterns for .NET applications.
160
+ Topics: dockerfile (multi-stage builds), docker-compose (local development),
161
+ kubernetes (deployments, services, config), health-checks (probes),
162
+ configuration (ConfigMaps, secrets).
163
+ Returns: Containerization documentation with YAML/Dockerfile examples.`,
164
+ inputSchema: containerizationPatternsSchema,
165
+ },
166
+ ],
167
+ };
168
+ });
169
+ // Handle tool calls
170
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
171
+ const { name, arguments: args } = request.params;
172
+ try {
173
+ switch (name) {
174
+ case "mvp24h_get_started":
175
+ return { content: [{ type: "text", text: await getStarted(args) }] };
176
+ case "mvp24h_architecture_advisor":
177
+ return { content: [{ type: "text", text: await architectureAdvisor(args) }] };
178
+ case "mvp24h_database_advisor":
179
+ return { content: [{ type: "text", text: await databaseAdvisor(args) }] };
180
+ case "mvp24h_cqrs_guide":
181
+ return { content: [{ type: "text", text: await cqrsGuide(args) }] };
182
+ case "mvp24h_ai_implementation":
183
+ return { content: [{ type: "text", text: await aiImplementation(args) }] };
184
+ case "mvp24h_modernization_guide":
185
+ return { content: [{ type: "text", text: await modernizationGuide(args) }] };
186
+ case "mvp24h_observability_setup":
187
+ return { content: [{ type: "text", text: await observabilitySetup(args) }] };
188
+ case "mvp24h_messaging_patterns":
189
+ return { content: [{ type: "text", text: await messagingPatterns(args) }] };
190
+ case "mvp24h_get_template":
191
+ return { content: [{ type: "text", text: await getTemplate(args) }] };
192
+ case "mvp24h_core_patterns":
193
+ return { content: [{ type: "text", text: await corePatterns(args) }] };
194
+ case "mvp24h_infrastructure_guide":
195
+ return { content: [{ type: "text", text: await infrastructureGuide(args) }] };
196
+ case "mvp24h_reference_guide":
197
+ return { content: [{ type: "text", text: await referenceGuide(args) }] };
198
+ case "mvp24h_testing_patterns":
199
+ return { content: [{ type: "text", text: await testingPatterns(args) }] };
200
+ case "mvp24h_security_patterns":
201
+ return { content: [{ type: "text", text: await securityPatterns(args) }] };
202
+ case "mvp24h_containerization_patterns":
203
+ return { content: [{ type: "text", text: await containerizationPatterns(args) }] };
204
+ default:
205
+ throw new Error(`Unknown tool: ${name}`);
206
+ }
207
+ }
208
+ catch (error) {
209
+ const message = error instanceof Error ? error.message : String(error);
210
+ return {
211
+ content: [{ type: "text", text: `Error: ${message}` }],
212
+ isError: true,
213
+ };
214
+ }
215
+ });
216
+ // List available resources (documentation files)
217
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
218
+ return {
219
+ resources: [
220
+ // Getting Started & Overview
221
+ {
222
+ uri: "mvp24hours://docs/overview",
223
+ name: "Mvp24Hours Overview",
224
+ description: "Framework overview and getting started guide",
225
+ mimeType: "text/markdown",
226
+ },
227
+ {
228
+ uri: "mvp24hours://docs/getting-started",
229
+ name: "Getting Started",
230
+ description: "Quick start guide for Mvp24Hours framework",
231
+ mimeType: "text/markdown",
232
+ },
233
+ // Decision Matrices
234
+ {
235
+ uri: "mvp24hours://docs/decision-matrix",
236
+ name: "Decision Matrix",
237
+ description: "Architecture and technology selection guide",
238
+ mimeType: "text/markdown",
239
+ },
240
+ {
241
+ uri: "mvp24hours://docs/ai-decision-matrix",
242
+ name: "AI Decision Matrix",
243
+ description: "AI implementation approach selection guide",
244
+ mimeType: "text/markdown",
245
+ },
246
+ // Architecture Templates (matches template: mvp24hours://docs/template/{templateName})
247
+ {
248
+ uri: "mvp24hours://docs/architecture-templates",
249
+ name: "Architecture Templates",
250
+ description: "Overview of all architecture templates available",
251
+ mimeType: "text/markdown",
252
+ },
253
+ {
254
+ uri: "mvp24hours://docs/template/minimal-api",
255
+ name: "Template: Minimal API",
256
+ description: "Minimal API project structure and implementation",
257
+ mimeType: "text/markdown",
258
+ },
259
+ {
260
+ uri: "mvp24hours://docs/template/simple-nlayers",
261
+ name: "Template: Simple N-Layers",
262
+ description: "Simple N-Layers architecture template",
263
+ mimeType: "text/markdown",
264
+ },
265
+ {
266
+ uri: "mvp24hours://docs/template/complex-nlayers",
267
+ name: "Template: Complex N-Layers",
268
+ description: "Complex N-Layers architecture template",
269
+ mimeType: "text/markdown",
270
+ },
271
+ {
272
+ uri: "mvp24hours://docs/template/cqrs",
273
+ name: "Template: CQRS",
274
+ description: "CQRS architecture template with Mediator pattern",
275
+ mimeType: "text/markdown",
276
+ },
277
+ {
278
+ uri: "mvp24hours://docs/template/event-driven",
279
+ name: "Template: Event-Driven",
280
+ description: "Event-driven architecture template",
281
+ mimeType: "text/markdown",
282
+ },
283
+ {
284
+ uri: "mvp24hours://docs/template/hexagonal",
285
+ name: "Template: Hexagonal",
286
+ description: "Hexagonal (Ports & Adapters) architecture template",
287
+ mimeType: "text/markdown",
288
+ },
289
+ {
290
+ uri: "mvp24hours://docs/template/clean-architecture",
291
+ name: "Template: Clean Architecture",
292
+ description: "Clean Architecture template with dependency inversion",
293
+ mimeType: "text/markdown",
294
+ },
295
+ {
296
+ uri: "mvp24hours://docs/template/ddd",
297
+ name: "Template: DDD",
298
+ description: "Domain-Driven Design template",
299
+ mimeType: "text/markdown",
300
+ },
301
+ {
302
+ uri: "mvp24hours://docs/template/microservices",
303
+ name: "Template: Microservices",
304
+ description: "Microservices architecture template",
305
+ mimeType: "text/markdown",
306
+ },
307
+ // AI Templates - Semantic Kernel (matches template: mvp24hours://docs/ai-template/{templateName})
308
+ {
309
+ uri: "mvp24hours://docs/ai-template/sk-chat-completion",
310
+ name: "Template: SK Chat Completion",
311
+ description: "Semantic Kernel chat completion template",
312
+ mimeType: "text/markdown",
313
+ },
314
+ {
315
+ uri: "mvp24hours://docs/ai-template/sk-plugins",
316
+ name: "Template: SK Plugins",
317
+ description: "Semantic Kernel plugins template",
318
+ mimeType: "text/markdown",
319
+ },
320
+ {
321
+ uri: "mvp24hours://docs/ai-template/sk-rag",
322
+ name: "Template: SK RAG",
323
+ description: "Semantic Kernel RAG template",
324
+ mimeType: "text/markdown",
325
+ },
326
+ {
327
+ uri: "mvp24hours://docs/ai-template/sk-planners",
328
+ name: "Template: SK Planners",
329
+ description: "Semantic Kernel planners template",
330
+ mimeType: "text/markdown",
331
+ },
332
+ // AI Templates - Semantic Kernel Graph (matches template: mvp24hours://docs/ai-template/{templateName})
333
+ {
334
+ uri: "mvp24hours://docs/ai-template/skg-graph-executor",
335
+ name: "Template: SKG Graph Executor",
336
+ description: "Semantic Kernel Graph executor template",
337
+ mimeType: "text/markdown",
338
+ },
339
+ {
340
+ uri: "mvp24hours://docs/ai-template/skg-react-agent",
341
+ name: "Template: SKG ReAct Agent",
342
+ description: "Semantic Kernel Graph ReAct agent template",
343
+ mimeType: "text/markdown",
344
+ },
345
+ {
346
+ uri: "mvp24hours://docs/ai-template/skg-multi-agent",
347
+ name: "Template: SKG Multi-Agent",
348
+ description: "Semantic Kernel Graph multi-agent template",
349
+ mimeType: "text/markdown",
350
+ },
351
+ {
352
+ uri: "mvp24hours://docs/ai-template/skg-human-in-loop",
353
+ name: "Template: SKG Human-in-Loop",
354
+ description: "Semantic Kernel Graph human-in-the-loop template",
355
+ mimeType: "text/markdown",
356
+ },
357
+ {
358
+ uri: "mvp24hours://docs/ai-template/skg-streaming",
359
+ name: "Template: SKG Streaming",
360
+ description: "Semantic Kernel Graph streaming template",
361
+ mimeType: "text/markdown",
362
+ },
363
+ {
364
+ uri: "mvp24hours://docs/ai-template/skg-checkpointing",
365
+ name: "Template: SKG Checkpointing",
366
+ description: "Semantic Kernel Graph checkpointing template",
367
+ mimeType: "text/markdown",
368
+ },
369
+ {
370
+ uri: "mvp24hours://docs/ai-template/skg-chatbot-memory",
371
+ name: "Template: SKG Chatbot Memory",
372
+ description: "Semantic Kernel Graph chatbot with memory template",
373
+ mimeType: "text/markdown",
374
+ },
375
+ {
376
+ uri: "mvp24hours://docs/ai-template/skg-observability",
377
+ name: "Template: SKG Observability",
378
+ description: "Semantic Kernel Graph observability template",
379
+ mimeType: "text/markdown",
380
+ },
381
+ {
382
+ uri: "mvp24hours://docs/ai-template/skg-chain-of-thought",
383
+ name: "Template: SKG Chain of Thought",
384
+ description: "Semantic Kernel Graph chain of thought template",
385
+ mimeType: "text/markdown",
386
+ },
387
+ {
388
+ uri: "mvp24hours://docs/ai-template/skg-document-pipeline",
389
+ name: "Template: SKG Document Pipeline",
390
+ description: "Semantic Kernel Graph document pipeline template",
391
+ mimeType: "text/markdown",
392
+ },
393
+ // AI Templates - Agent Framework (matches template: mvp24hours://docs/ai-template/{templateName})
394
+ {
395
+ uri: "mvp24hours://docs/ai-template/agent-framework-basic",
396
+ name: "Template: Agent Framework Basic",
397
+ description: "Microsoft Agent Framework basic template",
398
+ mimeType: "text/markdown",
399
+ },
400
+ {
401
+ uri: "mvp24hours://docs/ai-template/agent-framework-multi-agent",
402
+ name: "Template: Agent Framework Multi-Agent",
403
+ description: "Microsoft Agent Framework multi-agent template",
404
+ mimeType: "text/markdown",
405
+ },
406
+ {
407
+ uri: "mvp24hours://docs/ai-template/agent-framework-workflows",
408
+ name: "Template: Agent Framework Workflows",
409
+ description: "Microsoft Agent Framework workflows template",
410
+ mimeType: "text/markdown",
411
+ },
412
+ {
413
+ uri: "mvp24hours://docs/ai-template/agent-framework-middleware",
414
+ name: "Template: Agent Framework Middleware",
415
+ description: "Microsoft Agent Framework middleware template",
416
+ mimeType: "text/markdown",
417
+ },
418
+ // Core Patterns
419
+ {
420
+ uri: "mvp24hours://docs/core/overview",
421
+ name: "Core Module Overview",
422
+ description: "Mvp24Hours.Core module overview",
423
+ mimeType: "text/markdown",
424
+ },
425
+ {
426
+ uri: "mvp24hours://docs/core/guard-clauses",
427
+ name: "Guard Clauses",
428
+ description: "Guard clauses for defensive programming",
429
+ mimeType: "text/markdown",
430
+ },
431
+ {
432
+ uri: "mvp24hours://docs/core/value-objects",
433
+ name: "Value Objects",
434
+ description: "Value objects implementation patterns",
435
+ mimeType: "text/markdown",
436
+ },
437
+ {
438
+ uri: "mvp24hours://docs/core/strongly-typed-ids",
439
+ name: "Strongly Typed IDs",
440
+ description: "Strongly typed ID implementations",
441
+ mimeType: "text/markdown",
442
+ },
443
+ {
444
+ uri: "mvp24hours://docs/core/functional-patterns",
445
+ name: "Functional Patterns",
446
+ description: "Functional programming patterns (Result, Option)",
447
+ mimeType: "text/markdown",
448
+ },
449
+ {
450
+ uri: "mvp24hours://docs/core/smart-enums",
451
+ name: "Smart Enums",
452
+ description: "Smart enumeration patterns",
453
+ mimeType: "text/markdown",
454
+ },
455
+ {
456
+ uri: "mvp24hours://docs/core/entity-interfaces",
457
+ name: "Entity Interfaces",
458
+ description: "Entity interfaces and base classes",
459
+ mimeType: "text/markdown",
460
+ },
461
+ {
462
+ uri: "mvp24hours://docs/core/exceptions",
463
+ name: "Exception Handling",
464
+ description: "Exception handling patterns",
465
+ mimeType: "text/markdown",
466
+ },
467
+ // Database Patterns
468
+ {
469
+ uri: "mvp24hours://docs/database/relational",
470
+ name: "Relational Databases",
471
+ description: "SQL Server, PostgreSQL, MySQL patterns",
472
+ mimeType: "text/markdown",
473
+ },
474
+ {
475
+ uri: "mvp24hours://docs/database/nosql",
476
+ name: "NoSQL Databases",
477
+ description: "MongoDB, Redis patterns",
478
+ mimeType: "text/markdown",
479
+ },
480
+ {
481
+ uri: "mvp24hours://docs/database/efcore-advanced",
482
+ name: "EF Core Advanced",
483
+ description: "Advanced Entity Framework Core patterns",
484
+ mimeType: "text/markdown",
485
+ },
486
+ {
487
+ uri: "mvp24hours://docs/database/mongodb-advanced",
488
+ name: "MongoDB Advanced",
489
+ description: "Advanced MongoDB patterns",
490
+ mimeType: "text/markdown",
491
+ },
492
+ {
493
+ uri: "mvp24hours://docs/database/repository",
494
+ name: "Repository Pattern",
495
+ description: "Repository pattern implementation",
496
+ mimeType: "text/markdown",
497
+ },
498
+ {
499
+ uri: "mvp24hours://docs/database/unit-of-work",
500
+ name: "Unit of Work",
501
+ description: "Unit of Work pattern implementation",
502
+ mimeType: "text/markdown",
503
+ },
504
+ // CQRS Patterns
505
+ {
506
+ uri: "mvp24hours://docs/cqrs/overview",
507
+ name: "CQRS Overview",
508
+ description: "CQRS and Mediator pattern overview",
509
+ mimeType: "text/markdown",
510
+ },
511
+ {
512
+ uri: "mvp24hours://docs/cqrs/commands",
513
+ name: "CQRS Commands",
514
+ description: "Command pattern implementation",
515
+ mimeType: "text/markdown",
516
+ },
517
+ {
518
+ uri: "mvp24hours://docs/cqrs/queries",
519
+ name: "CQRS Queries",
520
+ description: "Query pattern implementation",
521
+ mimeType: "text/markdown",
522
+ },
523
+ {
524
+ uri: "mvp24hours://docs/cqrs/notifications",
525
+ name: "CQRS Notifications",
526
+ description: "Notification pattern implementation",
527
+ mimeType: "text/markdown",
528
+ },
529
+ {
530
+ uri: "mvp24hours://docs/cqrs/domain-events",
531
+ name: "Domain Events",
532
+ description: "Domain events implementation",
533
+ mimeType: "text/markdown",
534
+ },
535
+ {
536
+ uri: "mvp24hours://docs/cqrs/pipeline-behaviors",
537
+ name: "Pipeline Behaviors",
538
+ description: "MediatR pipeline behaviors",
539
+ mimeType: "text/markdown",
540
+ },
541
+ // Infrastructure
542
+ {
543
+ uri: "mvp24hours://docs/pipeline",
544
+ name: "Pipeline Pattern",
545
+ description: "Pipe and Filters pattern implementation",
546
+ mimeType: "text/markdown",
547
+ },
548
+ {
549
+ uri: "mvp24hours://docs/webapi",
550
+ name: "Web API",
551
+ description: "Web API patterns and configuration",
552
+ mimeType: "text/markdown",
553
+ },
554
+ {
555
+ uri: "mvp24hours://docs/webapi-advanced",
556
+ name: "Web API Advanced",
557
+ description: "Advanced Web API patterns",
558
+ mimeType: "text/markdown",
559
+ },
560
+ {
561
+ uri: "mvp24hours://docs/cronjob",
562
+ name: "Background Jobs",
563
+ description: "Background job and CronJob patterns",
564
+ mimeType: "text/markdown",
565
+ },
566
+ {
567
+ uri: "mvp24hours://docs/application-services",
568
+ name: "Application Services",
569
+ description: "Service layer patterns",
570
+ mimeType: "text/markdown",
571
+ },
572
+ // Messaging
573
+ {
574
+ uri: "mvp24hours://docs/broker",
575
+ name: "Message Broker",
576
+ description: "RabbitMQ integration basics",
577
+ mimeType: "text/markdown",
578
+ },
579
+ {
580
+ uri: "mvp24hours://docs/broker-advanced",
581
+ name: "Message Broker Advanced",
582
+ description: "Advanced messaging patterns",
583
+ mimeType: "text/markdown",
584
+ },
585
+ {
586
+ uri: "mvp24hours://docs/messaging-patterns",
587
+ name: "Messaging Patterns",
588
+ description: "Async messaging and event patterns",
589
+ mimeType: "text/markdown",
590
+ },
591
+ // Modernization (.NET 9)
592
+ {
593
+ uri: "mvp24hours://docs/modernization/overview",
594
+ name: "Modernization Overview",
595
+ description: ".NET 9 modernization patterns overview",
596
+ mimeType: "text/markdown",
597
+ },
598
+ {
599
+ uri: "mvp24hours://docs/modernization/http-resilience",
600
+ name: "HTTP Resilience",
601
+ description: "HTTP client resilience patterns",
602
+ mimeType: "text/markdown",
603
+ },
604
+ {
605
+ uri: "mvp24hours://docs/modernization/generic-resilience",
606
+ name: "Generic Resilience",
607
+ description: "Generic resilience patterns",
608
+ mimeType: "text/markdown",
609
+ },
610
+ {
611
+ uri: "mvp24hours://docs/modernization/rate-limiting",
612
+ name: "Rate Limiting",
613
+ description: "Rate limiting patterns",
614
+ mimeType: "text/markdown",
615
+ },
616
+ {
617
+ uri: "mvp24hours://docs/modernization/hybrid-cache",
618
+ name: "Hybrid Cache",
619
+ description: "HybridCache implementation",
620
+ mimeType: "text/markdown",
621
+ },
622
+ {
623
+ uri: "mvp24hours://docs/modernization/output-caching",
624
+ name: "Output Caching",
625
+ description: "Output caching patterns",
626
+ mimeType: "text/markdown",
627
+ },
628
+ {
629
+ uri: "mvp24hours://docs/modernization/keyed-services",
630
+ name: "Keyed Services",
631
+ description: "Keyed services DI pattern",
632
+ mimeType: "text/markdown",
633
+ },
634
+ {
635
+ uri: "mvp24hours://docs/modernization/time-provider",
636
+ name: "Time Provider",
637
+ description: "TimeProvider abstraction",
638
+ mimeType: "text/markdown",
639
+ },
640
+ {
641
+ uri: "mvp24hours://docs/modernization/minimal-apis",
642
+ name: "Minimal APIs",
643
+ description: "Minimal API patterns",
644
+ mimeType: "text/markdown",
645
+ },
646
+ {
647
+ uri: "mvp24hours://docs/modernization/aspire",
648
+ name: ".NET Aspire",
649
+ description: ".NET Aspire cloud patterns",
650
+ mimeType: "text/markdown",
651
+ },
652
+ // Observability
653
+ {
654
+ uri: "mvp24hours://docs/observability/overview",
655
+ name: "Observability Overview",
656
+ description: "Observability patterns overview",
657
+ mimeType: "text/markdown",
658
+ },
659
+ {
660
+ uri: "mvp24hours://docs/observability/logging",
661
+ name: "Logging",
662
+ description: "Logging patterns with NLog/OpenTelemetry",
663
+ mimeType: "text/markdown",
664
+ },
665
+ {
666
+ uri: "mvp24hours://docs/observability/tracing",
667
+ name: "Distributed Tracing",
668
+ description: "Distributed tracing patterns",
669
+ mimeType: "text/markdown",
670
+ },
671
+ {
672
+ uri: "mvp24hours://docs/observability/metrics",
673
+ name: "Metrics",
674
+ description: "Metrics collection patterns",
675
+ mimeType: "text/markdown",
676
+ },
677
+ {
678
+ uri: "mvp24hours://docs/observability/exporters",
679
+ name: "Telemetry Exporters",
680
+ description: "Jaeger, Zipkin, Prometheus exporters",
681
+ mimeType: "text/markdown",
682
+ },
683
+ // Reference
684
+ {
685
+ uri: "mvp24hours://docs/mapping",
686
+ name: "Object Mapping",
687
+ description: "AutoMapper patterns",
688
+ mimeType: "text/markdown",
689
+ },
690
+ {
691
+ uri: "mvp24hours://docs/validation",
692
+ name: "Validation",
693
+ description: "FluentValidation patterns",
694
+ mimeType: "text/markdown",
695
+ },
696
+ {
697
+ uri: "mvp24hours://docs/specification",
698
+ name: "Specification Pattern",
699
+ description: "Specification pattern implementation",
700
+ mimeType: "text/markdown",
701
+ },
702
+ {
703
+ uri: "mvp24hours://docs/documentation",
704
+ name: "API Documentation",
705
+ description: "Swagger/OpenAPI documentation",
706
+ mimeType: "text/markdown",
707
+ },
708
+ {
709
+ uri: "mvp24hours://docs/migration",
710
+ name: "EF Core Migrations",
711
+ description: "Database migration patterns",
712
+ mimeType: "text/markdown",
713
+ },
714
+ // Testing
715
+ {
716
+ uri: "mvp24hours://docs/testing/overview",
717
+ name: "Testing Overview",
718
+ description: "Testing patterns overview",
719
+ mimeType: "text/markdown",
720
+ },
721
+ {
722
+ uri: "mvp24hours://docs/testing/unit-testing",
723
+ name: "Unit Testing",
724
+ description: "xUnit and FluentAssertions patterns",
725
+ mimeType: "text/markdown",
726
+ },
727
+ {
728
+ uri: "mvp24hours://docs/testing/integration-testing",
729
+ name: "Integration Testing",
730
+ description: "WebApplicationFactory patterns",
731
+ mimeType: "text/markdown",
732
+ },
733
+ {
734
+ uri: "mvp24hours://docs/testing/mocking",
735
+ name: "Mocking",
736
+ description: "Moq and NSubstitute patterns",
737
+ mimeType: "text/markdown",
738
+ },
739
+ {
740
+ uri: "mvp24hours://docs/testing/test-containers",
741
+ name: "Test Containers",
742
+ description: "Docker-based testing",
743
+ mimeType: "text/markdown",
744
+ },
745
+ // Security
746
+ {
747
+ uri: "mvp24hours://docs/security/overview",
748
+ name: "Security Overview",
749
+ description: "Security patterns overview",
750
+ mimeType: "text/markdown",
751
+ },
752
+ {
753
+ uri: "mvp24hours://docs/security/authentication",
754
+ name: "Authentication",
755
+ description: "Authentication patterns",
756
+ mimeType: "text/markdown",
757
+ },
758
+ {
759
+ uri: "mvp24hours://docs/security/authorization",
760
+ name: "Authorization",
761
+ description: "Authorization patterns",
762
+ mimeType: "text/markdown",
763
+ },
764
+ {
765
+ uri: "mvp24hours://docs/security/jwt",
766
+ name: "JWT Tokens",
767
+ description: "JWT token patterns",
768
+ mimeType: "text/markdown",
769
+ },
770
+ // Containerization
771
+ {
772
+ uri: "mvp24hours://docs/containerization/overview",
773
+ name: "Containerization Overview",
774
+ description: "Docker and Kubernetes patterns overview",
775
+ mimeType: "text/markdown",
776
+ },
777
+ {
778
+ uri: "mvp24hours://docs/containerization/dockerfile",
779
+ name: "Dockerfile Patterns",
780
+ description: "Multi-stage Dockerfile patterns",
781
+ mimeType: "text/markdown",
782
+ },
783
+ {
784
+ uri: "mvp24hours://docs/containerization/docker-compose",
785
+ name: "Docker Compose",
786
+ description: "Docker Compose for local development",
787
+ mimeType: "text/markdown",
788
+ },
789
+ {
790
+ uri: "mvp24hours://docs/containerization/kubernetes",
791
+ name: "Kubernetes",
792
+ description: "Kubernetes deployment patterns",
793
+ mimeType: "text/markdown",
794
+ },
795
+ ],
796
+ };
797
+ });
798
+ // List resource templates (dynamic URI patterns)
799
+ server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
800
+ return {
801
+ resourceTemplates: [
802
+ {
803
+ uriTemplate: "mvp24hours://docs/template/{templateName}",
804
+ name: "Architecture Template",
805
+ description: "Get a specific architecture template by name. Available: minimal-api, simple-nlayers, complex-nlayers, cqrs, event-driven, hexagonal, clean-architecture, ddd, microservices",
806
+ mimeType: "text/markdown",
807
+ },
808
+ {
809
+ uriTemplate: "mvp24hours://docs/ai-template/{templateName}",
810
+ name: "AI Template",
811
+ description: "Get a specific AI template. Available: sk-chat-completion, sk-plugins, sk-rag, sk-planners, skg-graph-executor, skg-react-agent, skg-multi-agent, agent-framework-basic",
812
+ mimeType: "text/markdown",
813
+ },
814
+ {
815
+ uriTemplate: "mvp24hours://docs/core/{topic}",
816
+ name: "Core Pattern",
817
+ description: "Get core module documentation. Topics: overview, guard-clauses, value-objects, strongly-typed-ids, functional-patterns, smart-enums, entity-interfaces, exceptions",
818
+ mimeType: "text/markdown",
819
+ },
820
+ {
821
+ uriTemplate: "mvp24hours://docs/database/{topic}",
822
+ name: "Database Pattern",
823
+ description: "Get database documentation. Topics: relational, nosql, efcore-advanced, mongodb-advanced, repository, unit-of-work",
824
+ mimeType: "text/markdown",
825
+ },
826
+ {
827
+ uriTemplate: "mvp24hours://docs/cqrs/{topic}",
828
+ name: "CQRS Pattern",
829
+ description: "Get CQRS documentation. Topics: overview, commands, queries, notifications, domain-events, pipeline-behaviors",
830
+ mimeType: "text/markdown",
831
+ },
832
+ {
833
+ uriTemplate: "mvp24hours://docs/modernization/{feature}",
834
+ name: "Modernization Feature",
835
+ description: "Get .NET 9 modernization documentation. Features: overview, http-resilience, generic-resilience, rate-limiting, hybrid-cache, output-caching, keyed-services, time-provider, minimal-apis, aspire",
836
+ mimeType: "text/markdown",
837
+ },
838
+ {
839
+ uriTemplate: "mvp24hours://docs/observability/{component}",
840
+ name: "Observability Component",
841
+ description: "Get observability documentation. Components: overview, logging, tracing, metrics, exporters",
842
+ mimeType: "text/markdown",
843
+ },
844
+ {
845
+ uriTemplate: "mvp24hours://docs/testing/{topic}",
846
+ name: "Testing Pattern",
847
+ description: "Get testing documentation. Topics: overview, unit-testing, integration-testing, mocking, test-containers",
848
+ mimeType: "text/markdown",
849
+ },
850
+ {
851
+ uriTemplate: "mvp24hours://docs/security/{topic}",
852
+ name: "Security Pattern",
853
+ description: "Get security documentation. Topics: overview, authentication, authorization, jwt",
854
+ mimeType: "text/markdown",
855
+ },
856
+ {
857
+ uriTemplate: "mvp24hours://docs/containerization/{topic}",
858
+ name: "Containerization Pattern",
859
+ description: "Get containerization documentation. Topics: overview, dockerfile, docker-compose, kubernetes",
860
+ mimeType: "text/markdown",
861
+ },
862
+ ],
863
+ };
864
+ });
865
+ // Resource URI to file path mapping (matches resource template patterns)
866
+ const resourceMapping = {
867
+ // Overview & Getting Started
868
+ "mvp24hours://docs/overview": "home.md",
869
+ "mvp24hours://docs/getting-started": "getting-started.md",
870
+ // Decision Matrices
871
+ "mvp24hours://docs/decision-matrix": "ai-context/decision-matrix.md",
872
+ "mvp24hours://docs/ai-decision-matrix": "ai-context/ai-decision-matrix.md",
873
+ // Architecture Templates (matches template: mvp24hours://docs/template/{templateName})
874
+ "mvp24hours://docs/architecture-templates": "ai-context/architecture-templates.md",
875
+ "mvp24hours://docs/template/minimal-api": "ai-context/structure-minimal-api.md",
876
+ "mvp24hours://docs/template/simple-nlayers": "ai-context/structure-simple-nlayers.md",
877
+ "mvp24hours://docs/template/complex-nlayers": "ai-context/structure-complex-nlayers.md",
878
+ "mvp24hours://docs/template/cqrs": "ai-context/template-cqrs.md",
879
+ "mvp24hours://docs/template/event-driven": "ai-context/template-event-driven.md",
880
+ "mvp24hours://docs/template/hexagonal": "ai-context/template-hexagonal.md",
881
+ "mvp24hours://docs/template/clean-architecture": "ai-context/template-clean-architecture.md",
882
+ "mvp24hours://docs/template/ddd": "ai-context/template-ddd.md",
883
+ "mvp24hours://docs/template/microservices": "ai-context/template-microservices.md",
884
+ // AI Templates - Semantic Kernel (matches template: mvp24hours://docs/ai-template/{templateName})
885
+ "mvp24hours://docs/ai-template/sk-chat-completion": "ai-context/template-sk-chat-completion.md",
886
+ "mvp24hours://docs/ai-template/sk-plugins": "ai-context/template-sk-plugins.md",
887
+ "mvp24hours://docs/ai-template/sk-rag": "ai-context/template-sk-rag-basic.md",
888
+ "mvp24hours://docs/ai-template/sk-planners": "ai-context/template-sk-planners.md",
889
+ // AI Templates - Semantic Kernel Graph (matches template: mvp24hours://docs/ai-template/{templateName})
890
+ "mvp24hours://docs/ai-template/skg-graph-executor": "ai-context/template-skg-graph-executor.md",
891
+ "mvp24hours://docs/ai-template/skg-react-agent": "ai-context/template-skg-react-agent.md",
892
+ "mvp24hours://docs/ai-template/skg-multi-agent": "ai-context/template-skg-multi-agent.md",
893
+ "mvp24hours://docs/ai-template/skg-human-in-loop": "ai-context/template-skg-human-in-loop.md",
894
+ "mvp24hours://docs/ai-template/skg-streaming": "ai-context/template-skg-streaming.md",
895
+ "mvp24hours://docs/ai-template/skg-checkpointing": "ai-context/template-skg-checkpointing.md",
896
+ "mvp24hours://docs/ai-template/skg-chatbot-memory": "ai-context/template-skg-chatbot-memory.md",
897
+ "mvp24hours://docs/ai-template/skg-observability": "ai-context/template-skg-observability.md",
898
+ "mvp24hours://docs/ai-template/skg-chain-of-thought": "ai-context/template-skg-chain-of-thought.md",
899
+ "mvp24hours://docs/ai-template/skg-document-pipeline": "ai-context/template-skg-document-pipeline.md",
900
+ // AI Templates - Agent Framework (matches template: mvp24hours://docs/ai-template/{templateName})
901
+ "mvp24hours://docs/ai-template/agent-framework-basic": "ai-context/template-agent-framework-basic.md",
902
+ "mvp24hours://docs/ai-template/agent-framework-multi-agent": "ai-context/template-agent-framework-multi-agent.md",
903
+ "mvp24hours://docs/ai-template/agent-framework-workflows": "ai-context/template-agent-framework-workflows.md",
904
+ "mvp24hours://docs/ai-template/agent-framework-middleware": "ai-context/template-agent-framework-middleware.md",
905
+ // Core Patterns
906
+ "mvp24hours://docs/core/overview": "core/home.md",
907
+ "mvp24hours://docs/core/guard-clauses": "core/guard-clauses.md",
908
+ "mvp24hours://docs/core/value-objects": "core/value-objects.md",
909
+ "mvp24hours://docs/core/strongly-typed-ids": "core/strongly-typed-ids.md",
910
+ "mvp24hours://docs/core/functional-patterns": "core/functional-patterns.md",
911
+ "mvp24hours://docs/core/smart-enums": "core/smart-enums.md",
912
+ "mvp24hours://docs/core/entity-interfaces": "core/entity-interfaces.md",
913
+ "mvp24hours://docs/core/exceptions": "core/exceptions.md",
914
+ // Database Patterns
915
+ "mvp24hours://docs/database/relational": "database/relational.md",
916
+ "mvp24hours://docs/database/nosql": "database/nosql.md",
917
+ "mvp24hours://docs/database/efcore-advanced": "database/efcore-advanced.md",
918
+ "mvp24hours://docs/database/mongodb-advanced": "database/mongodb-advanced.md",
919
+ "mvp24hours://docs/database/repository": "database/use-repository.md",
920
+ "mvp24hours://docs/database/unit-of-work": "database/use-unitofwork.md",
921
+ // CQRS Patterns
922
+ "mvp24hours://docs/cqrs/overview": "cqrs/home.md",
923
+ "mvp24hours://docs/cqrs/commands": "cqrs/commands.md",
924
+ "mvp24hours://docs/cqrs/queries": "cqrs/queries.md",
925
+ "mvp24hours://docs/cqrs/notifications": "cqrs/notifications.md",
926
+ "mvp24hours://docs/cqrs/domain-events": "cqrs/domain-events.md",
927
+ "mvp24hours://docs/cqrs/pipeline-behaviors": "cqrs/pipeline-behaviors.md",
928
+ // Infrastructure
929
+ "mvp24hours://docs/pipeline": "pipeline.md",
930
+ "mvp24hours://docs/webapi": "webapi.md",
931
+ "mvp24hours://docs/webapi-advanced": "webapi-advanced.md",
932
+ "mvp24hours://docs/cronjob": "cronjob.md",
933
+ "mvp24hours://docs/application-services": "application-services.md",
934
+ // Messaging
935
+ "mvp24hours://docs/broker": "broker.md",
936
+ "mvp24hours://docs/broker-advanced": "broker-advanced.md",
937
+ "mvp24hours://docs/messaging-patterns": "ai-context/messaging-patterns.md",
938
+ // Modernization (.NET 9)
939
+ "mvp24hours://docs/modernization/overview": "ai-context/modernization-patterns.md",
940
+ "mvp24hours://docs/modernization/http-resilience": "modernization/http-resilience.md",
941
+ "mvp24hours://docs/modernization/generic-resilience": "modernization/generic-resilience.md",
942
+ "mvp24hours://docs/modernization/rate-limiting": "modernization/rate-limiting.md",
943
+ "mvp24hours://docs/modernization/hybrid-cache": "modernization/hybrid-cache.md",
944
+ "mvp24hours://docs/modernization/output-caching": "modernization/output-caching.md",
945
+ "mvp24hours://docs/modernization/keyed-services": "modernization/keyed-services.md",
946
+ "mvp24hours://docs/modernization/time-provider": "modernization/time-provider.md",
947
+ "mvp24hours://docs/modernization/minimal-apis": "modernization/minimal-apis.md",
948
+ "mvp24hours://docs/modernization/aspire": "modernization/aspire.md",
949
+ // Observability
950
+ "mvp24hours://docs/observability/overview": "observability/home.md",
951
+ "mvp24hours://docs/observability/logging": "observability/logging.md",
952
+ "mvp24hours://docs/observability/tracing": "observability/tracing.md",
953
+ "mvp24hours://docs/observability/metrics": "observability/metrics.md",
954
+ "mvp24hours://docs/observability/exporters": "observability/exporters.md",
955
+ // Reference
956
+ "mvp24hours://docs/mapping": "mapping.md",
957
+ "mvp24hours://docs/validation": "validation.md",
958
+ "mvp24hours://docs/specification": "specification.md",
959
+ "mvp24hours://docs/documentation": "documentation.md",
960
+ "mvp24hours://docs/migration": "migration.md",
961
+ // Testing
962
+ "mvp24hours://docs/testing/overview": "ai-context/testing-patterns.md",
963
+ "mvp24hours://docs/testing/unit-testing": "ai-context/testing-patterns.md",
964
+ "mvp24hours://docs/testing/integration-testing": "ai-context/testing-patterns.md",
965
+ "mvp24hours://docs/testing/mocking": "ai-context/testing-patterns.md",
966
+ "mvp24hours://docs/testing/test-containers": "ai-context/testing-patterns.md",
967
+ // Security
968
+ "mvp24hours://docs/security/overview": "ai-context/security-patterns.md",
969
+ "mvp24hours://docs/security/authentication": "ai-context/security-patterns.md",
970
+ "mvp24hours://docs/security/authorization": "ai-context/security-patterns.md",
971
+ "mvp24hours://docs/security/jwt": "ai-context/security-patterns.md",
972
+ // Containerization
973
+ "mvp24hours://docs/containerization/overview": "ai-context/containerization-patterns.md",
974
+ "mvp24hours://docs/containerization/dockerfile": "ai-context/containerization-patterns.md",
975
+ "mvp24hours://docs/containerization/docker-compose": "ai-context/containerization-patterns.md",
976
+ "mvp24hours://docs/containerization/kubernetes": "ai-context/containerization-patterns.md",
977
+ };
978
+ // Dynamic template mappings for resource templates
979
+ const templateMappings = {
980
+ // Architecture templates: mvp24hours://docs/template/{templateName}
981
+ "template": {
982
+ "minimal-api": "ai-context/structure-minimal-api.md",
983
+ "simple-nlayers": "ai-context/structure-simple-nlayers.md",
984
+ "complex-nlayers": "ai-context/structure-complex-nlayers.md",
985
+ "cqrs": "ai-context/template-cqrs.md",
986
+ "event-driven": "ai-context/template-event-driven.md",
987
+ "hexagonal": "ai-context/template-hexagonal.md",
988
+ "clean-architecture": "ai-context/template-clean-architecture.md",
989
+ "ddd": "ai-context/template-ddd.md",
990
+ "microservices": "ai-context/template-microservices.md",
991
+ },
992
+ // AI templates: mvp24hours://docs/ai-template/{templateName}
993
+ "ai-template": {
994
+ "sk-chat-completion": "ai-context/template-sk-chat-completion.md",
995
+ "sk-plugins": "ai-context/template-sk-plugins.md",
996
+ "sk-rag": "ai-context/template-sk-rag-basic.md",
997
+ "sk-planners": "ai-context/template-sk-planners.md",
998
+ "skg-graph-executor": "ai-context/template-skg-graph-executor.md",
999
+ "skg-react-agent": "ai-context/template-skg-react-agent.md",
1000
+ "skg-multi-agent": "ai-context/template-skg-multi-agent.md",
1001
+ "skg-human-in-loop": "ai-context/template-skg-human-in-loop.md",
1002
+ "skg-streaming": "ai-context/template-skg-streaming.md",
1003
+ "skg-checkpointing": "ai-context/template-skg-checkpointing.md",
1004
+ "skg-chatbot-memory": "ai-context/template-skg-chatbot-memory.md",
1005
+ "skg-observability": "ai-context/template-skg-observability.md",
1006
+ "skg-chain-of-thought": "ai-context/template-skg-chain-of-thought.md",
1007
+ "skg-document-pipeline": "ai-context/template-skg-document-pipeline.md",
1008
+ "agent-framework-basic": "ai-context/template-agent-framework-basic.md",
1009
+ "agent-framework-multi-agent": "ai-context/template-agent-framework-multi-agent.md",
1010
+ "agent-framework-workflows": "ai-context/template-agent-framework-workflows.md",
1011
+ "agent-framework-middleware": "ai-context/template-agent-framework-middleware.md",
1012
+ },
1013
+ // Core patterns: mvp24hours://docs/core/{topic}
1014
+ "core": {
1015
+ "overview": "core/home.md",
1016
+ "guard-clauses": "core/guard-clauses.md",
1017
+ "value-objects": "core/value-objects.md",
1018
+ "strongly-typed-ids": "core/strongly-typed-ids.md",
1019
+ "functional-patterns": "core/functional-patterns.md",
1020
+ "smart-enums": "core/smart-enums.md",
1021
+ "entity-interfaces": "core/entity-interfaces.md",
1022
+ "exceptions": "core/exceptions.md",
1023
+ },
1024
+ // Database patterns: mvp24hours://docs/database/{topic}
1025
+ "database": {
1026
+ "relational": "database/relational.md",
1027
+ "nosql": "database/nosql.md",
1028
+ "efcore-advanced": "database/efcore-advanced.md",
1029
+ "mongodb-advanced": "database/mongodb-advanced.md",
1030
+ "repository": "database/use-repository.md",
1031
+ "unit-of-work": "database/use-unitofwork.md",
1032
+ },
1033
+ // CQRS patterns: mvp24hours://docs/cqrs/{topic}
1034
+ "cqrs": {
1035
+ "overview": "cqrs/home.md",
1036
+ "commands": "cqrs/commands.md",
1037
+ "queries": "cqrs/queries.md",
1038
+ "notifications": "cqrs/notifications.md",
1039
+ "domain-events": "cqrs/domain-events.md",
1040
+ "pipeline-behaviors": "cqrs/pipeline-behaviors.md",
1041
+ },
1042
+ // Modernization: mvp24hours://docs/modernization/{feature}
1043
+ "modernization": {
1044
+ "overview": "ai-context/modernization-patterns.md",
1045
+ "http-resilience": "modernization/http-resilience.md",
1046
+ "generic-resilience": "modernization/generic-resilience.md",
1047
+ "rate-limiting": "modernization/rate-limiting.md",
1048
+ "hybrid-cache": "modernization/hybrid-cache.md",
1049
+ "output-caching": "modernization/output-caching.md",
1050
+ "keyed-services": "modernization/keyed-services.md",
1051
+ "time-provider": "modernization/time-provider.md",
1052
+ "minimal-apis": "modernization/minimal-apis.md",
1053
+ "aspire": "modernization/aspire.md",
1054
+ },
1055
+ // Observability: mvp24hours://docs/observability/{component}
1056
+ "observability": {
1057
+ "overview": "observability/home.md",
1058
+ "logging": "observability/logging.md",
1059
+ "tracing": "observability/tracing.md",
1060
+ "metrics": "observability/metrics.md",
1061
+ "exporters": "observability/exporters.md",
1062
+ },
1063
+ // Testing: mvp24hours://docs/testing/{topic}
1064
+ "testing": {
1065
+ "overview": "ai-context/testing-patterns.md",
1066
+ "unit-testing": "ai-context/testing-patterns.md",
1067
+ "integration-testing": "ai-context/testing-patterns.md",
1068
+ "mocking": "ai-context/testing-patterns.md",
1069
+ "test-containers": "ai-context/testing-patterns.md",
1070
+ },
1071
+ // Security: mvp24hours://docs/security/{topic}
1072
+ "security": {
1073
+ "overview": "ai-context/security-patterns.md",
1074
+ "authentication": "ai-context/security-patterns.md",
1075
+ "authorization": "ai-context/security-patterns.md",
1076
+ "jwt": "ai-context/security-patterns.md",
1077
+ },
1078
+ // Containerization: mvp24hours://docs/containerization/{topic}
1079
+ "containerization": {
1080
+ "overview": "ai-context/containerization-patterns.md",
1081
+ "dockerfile": "ai-context/containerization-patterns.md",
1082
+ "docker-compose": "ai-context/containerization-patterns.md",
1083
+ "kubernetes": "ai-context/containerization-patterns.md",
1084
+ },
1085
+ };
1086
+ // Helper function to resolve dynamic URI to file path
1087
+ function resolveTemplateUri(uri) {
1088
+ // Pattern: mvp24hours://docs/{category}/{param}
1089
+ const match = uri.match(/^mvp24hours:\/\/docs\/([^/]+)\/([^/]+)$/);
1090
+ if (!match)
1091
+ return null;
1092
+ const [, category, param] = match;
1093
+ const categoryMappings = templateMappings[category];
1094
+ if (!categoryMappings)
1095
+ return null;
1096
+ return categoryMappings[param] || null;
1097
+ }
1098
+ // Read resources
1099
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
1100
+ const { uri } = request.params;
1101
+ // First, try static mapping
1102
+ let filePath = resourceMapping[uri];
1103
+ // If not found, try dynamic template resolution
1104
+ if (!filePath) {
1105
+ filePath = resolveTemplateUri(uri) || "";
1106
+ }
1107
+ if (filePath && docExists(filePath)) {
1108
+ try {
1109
+ const content = loadDoc(filePath);
1110
+ return {
1111
+ contents: [
1112
+ {
1113
+ uri,
1114
+ mimeType: "text/markdown",
1115
+ text: content,
1116
+ },
1117
+ ],
1118
+ };
1119
+ }
1120
+ catch (error) {
1121
+ const message = error instanceof Error ? error.message : String(error);
1122
+ return {
1123
+ contents: [
1124
+ {
1125
+ uri,
1126
+ mimeType: "text/markdown",
1127
+ text: `Error loading resource: ${message}`,
1128
+ },
1129
+ ],
1130
+ };
1131
+ }
1132
+ }
1133
+ // Fallback for unmapped resources with helpful message
1134
+ const availableTemplates = Object.keys(templateMappings).map(cat => {
1135
+ const params = Object.keys(templateMappings[cat]).join(", ");
1136
+ return `- mvp24hours://docs/${cat}/{param} - Available: ${params}`;
1137
+ }).join("\n");
1138
+ return {
1139
+ contents: [
1140
+ {
1141
+ uri,
1142
+ mimeType: "text/markdown",
1143
+ text: `Resource not found: ${uri}
1144
+
1145
+ ## Available Resource Templates
1146
+
1147
+ ${availableTemplates}
1148
+
1149
+ ## Example URIs
1150
+ - mvp24hours://docs/template/cqrs
1151
+ - mvp24hours://docs/ai-template/sk-chat-completion
1152
+ - mvp24hours://docs/core/guard-clauses
1153
+ - mvp24hours://docs/database/relational
1154
+ - mvp24hours://docs/modernization/http-resilience
1155
+
1156
+ ## Available Tools
1157
+ - mvp24h_get_started: Framework overview
1158
+ - mvp24h_architecture_advisor: Architecture selection
1159
+ - mvp24h_database_advisor: Database selection
1160
+ - mvp24h_cqrs_guide: CQRS/Mediator patterns
1161
+ - mvp24h_ai_implementation: AI implementation
1162
+ - mvp24h_get_template: Specific templates`,
1163
+ },
1164
+ ],
1165
+ };
1166
+ });
1167
+ // List available prompts (templates)
1168
+ server.setRequestHandler(ListPromptsRequestSchema, async () => {
1169
+ return {
1170
+ prompts: [
1171
+ {
1172
+ name: "create-dotnet-project",
1173
+ description: "Guide to create a new .NET project with Mvp24Hours framework",
1174
+ arguments: [
1175
+ {
1176
+ name: "project_type",
1177
+ description: "Type of project: api, webapp, console, worker",
1178
+ required: true,
1179
+ },
1180
+ {
1181
+ name: "architecture",
1182
+ description: "Architecture pattern: minimal-api, simple-nlayers, complex-nlayers, cqrs, hexagonal, clean-architecture, ddd, microservices",
1183
+ required: false,
1184
+ },
1185
+ ],
1186
+ },
1187
+ {
1188
+ name: "implement-cqrs",
1189
+ description: "Guide to implement CQRS pattern with MediatR",
1190
+ arguments: [
1191
+ {
1192
+ name: "component",
1193
+ description: "CQRS component: command, query, notification, domain-event, pipeline-behavior",
1194
+ required: true,
1195
+ },
1196
+ ],
1197
+ },
1198
+ {
1199
+ name: "setup-database",
1200
+ description: "Guide to setup database with repository pattern",
1201
+ arguments: [
1202
+ {
1203
+ name: "database",
1204
+ description: "Database type: sqlserver, postgresql, mysql, mongodb, redis",
1205
+ required: true,
1206
+ },
1207
+ {
1208
+ name: "orm",
1209
+ description: "ORM choice: efcore, dapper, hybrid",
1210
+ required: false,
1211
+ },
1212
+ ],
1213
+ },
1214
+ {
1215
+ name: "add-ai-capabilities",
1216
+ description: "Guide to add AI capabilities using Semantic Kernel or Agent Framework",
1217
+ arguments: [
1218
+ {
1219
+ name: "approach",
1220
+ description: "AI approach: semantic-kernel, sk-graph, agent-framework",
1221
+ required: true,
1222
+ },
1223
+ {
1224
+ name: "use_case",
1225
+ description: "Use case: chatbot, rag, multi-agent, workflow",
1226
+ required: false,
1227
+ },
1228
+ ],
1229
+ },
1230
+ {
1231
+ name: "setup-observability",
1232
+ description: "Guide to setup logging, tracing, and metrics",
1233
+ arguments: [
1234
+ {
1235
+ name: "component",
1236
+ description: "Component: logging, tracing, metrics, all",
1237
+ required: true,
1238
+ },
1239
+ {
1240
+ name: "exporter",
1241
+ description: "Exporter: jaeger, zipkin, prometheus, application-insights",
1242
+ required: false,
1243
+ },
1244
+ ],
1245
+ },
1246
+ {
1247
+ name: "modernize-dotnet",
1248
+ description: "Guide to modernize .NET application with .NET 9 features",
1249
+ arguments: [
1250
+ {
1251
+ name: "feature",
1252
+ description: "Feature: resilience, caching, keyed-services, minimal-apis, aspire",
1253
+ required: true,
1254
+ },
1255
+ ],
1256
+ },
1257
+ {
1258
+ name: "containerize-app",
1259
+ description: "Guide to containerize .NET application with Docker and Kubernetes",
1260
+ arguments: [
1261
+ {
1262
+ name: "target",
1263
+ description: "Target: dockerfile, docker-compose, kubernetes",
1264
+ required: true,
1265
+ },
1266
+ ],
1267
+ },
1268
+ ],
1269
+ };
1270
+ });
1271
+ // Get prompt content
1272
+ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
1273
+ const { name, arguments: args } = request.params;
1274
+ switch (name) {
1275
+ case "create-dotnet-project": {
1276
+ const projectType = args?.project_type || "api";
1277
+ const architecture = args?.architecture || "simple-nlayers";
1278
+ return {
1279
+ description: `Create a new .NET ${projectType} project with ${architecture} architecture`,
1280
+ messages: [
1281
+ {
1282
+ role: "user",
1283
+ content: {
1284
+ type: "text",
1285
+ text: `I want to create a new .NET ${projectType} project using the ${architecture} architecture pattern with Mvp24Hours framework.
1286
+
1287
+ Please help me:
1288
+ 1. Set up the project structure
1289
+ 2. Configure the necessary NuGet packages
1290
+ 3. Implement the base architecture
1291
+ 4. Add common patterns (repository, validation, logging)
1292
+
1293
+ Use the mvp24h_get_started and mvp24h_architecture_advisor tools to get the relevant documentation.`,
1294
+ },
1295
+ },
1296
+ ],
1297
+ };
1298
+ }
1299
+ case "implement-cqrs": {
1300
+ const component = args?.component || "command";
1301
+ return {
1302
+ description: `Implement CQRS ${component} pattern`,
1303
+ messages: [
1304
+ {
1305
+ role: "user",
1306
+ content: {
1307
+ type: "text",
1308
+ text: `I want to implement the CQRS ${component} pattern in my .NET application.
1309
+
1310
+ Please help me:
1311
+ 1. Understand the ${component} pattern
1312
+ 2. Create the necessary classes and interfaces
1313
+ 3. Configure MediatR pipeline
1314
+ 4. Add validation and error handling
1315
+
1316
+ Use the mvp24h_cqrs_guide tool with topic "${component}" to get the implementation details.`,
1317
+ },
1318
+ },
1319
+ ],
1320
+ };
1321
+ }
1322
+ case "setup-database": {
1323
+ const database = args?.database || "sqlserver";
1324
+ const orm = args?.orm || "efcore";
1325
+ return {
1326
+ description: `Setup ${database} database with ${orm}`,
1327
+ messages: [
1328
+ {
1329
+ role: "user",
1330
+ content: {
1331
+ type: "text",
1332
+ text: `I want to setup ${database} database using ${orm} in my .NET application.
1333
+
1334
+ Please help me:
1335
+ 1. Configure the database connection
1336
+ 2. Implement the repository pattern
1337
+ 3. Setup Unit of Work
1338
+ 4. Add migrations (if applicable)
1339
+
1340
+ Use the mvp24h_database_advisor tool to get the configuration and implementation details.`,
1341
+ },
1342
+ },
1343
+ ],
1344
+ };
1345
+ }
1346
+ case "add-ai-capabilities": {
1347
+ const approach = args?.approach || "semantic-kernel";
1348
+ const useCase = args?.use_case || "chatbot";
1349
+ return {
1350
+ description: `Add AI capabilities using ${approach} for ${useCase}`,
1351
+ messages: [
1352
+ {
1353
+ role: "user",
1354
+ content: {
1355
+ type: "text",
1356
+ text: `I want to add AI capabilities to my .NET application using ${approach} for a ${useCase} use case.
1357
+
1358
+ Please help me:
1359
+ 1. Choose the right AI approach
1360
+ 2. Configure the necessary packages
1361
+ 3. Implement the AI integration
1362
+ 4. Add proper error handling and observability
1363
+
1364
+ Use the mvp24h_ai_implementation tool to get the implementation template and guidance.`,
1365
+ },
1366
+ },
1367
+ ],
1368
+ };
1369
+ }
1370
+ case "setup-observability": {
1371
+ const component = args?.component || "all";
1372
+ const exporter = args?.exporter || "jaeger";
1373
+ return {
1374
+ description: `Setup ${component} observability with ${exporter}`,
1375
+ messages: [
1376
+ {
1377
+ role: "user",
1378
+ content: {
1379
+ type: "text",
1380
+ text: `I want to setup ${component} observability in my .NET application using ${exporter} as the exporter.
1381
+
1382
+ Please help me:
1383
+ 1. Configure OpenTelemetry
1384
+ 2. Setup ${component === "all" ? "logging, tracing, and metrics" : component}
1385
+ 3. Configure the ${exporter} exporter
1386
+ 4. Add proper instrumentation
1387
+
1388
+ Use the mvp24h_observability_setup tool to get the configuration details.`,
1389
+ },
1390
+ },
1391
+ ],
1392
+ };
1393
+ }
1394
+ case "modernize-dotnet": {
1395
+ const feature = args?.feature || "resilience";
1396
+ return {
1397
+ description: `Modernize .NET app with ${feature}`,
1398
+ messages: [
1399
+ {
1400
+ role: "user",
1401
+ content: {
1402
+ type: "text",
1403
+ text: `I want to modernize my .NET application using the ${feature} feature from .NET 9.
1404
+
1405
+ Please help me:
1406
+ 1. Understand the ${feature} feature
1407
+ 2. Configure the necessary packages
1408
+ 3. Implement the pattern
1409
+ 4. Add best practices
1410
+
1411
+ Use the mvp24h_modernization_guide tool to get the implementation details.`,
1412
+ },
1413
+ },
1414
+ ],
1415
+ };
1416
+ }
1417
+ case "containerize-app": {
1418
+ const target = args?.target || "dockerfile";
1419
+ return {
1420
+ description: `Containerize app with ${target}`,
1421
+ messages: [
1422
+ {
1423
+ role: "user",
1424
+ content: {
1425
+ type: "text",
1426
+ text: `I want to containerize my .NET application using ${target}.
1427
+
1428
+ Please help me:
1429
+ 1. Create an optimized ${target} configuration
1430
+ 2. Setup multi-stage builds (if applicable)
1431
+ 3. Configure health checks
1432
+ 4. Add production best practices
1433
+
1434
+ Use the mvp24h_containerization_patterns tool to get the configuration templates.`,
1435
+ },
1436
+ },
1437
+ ],
1438
+ };
1439
+ }
1440
+ default:
1441
+ throw new Error(`Unknown prompt: ${name}`);
1442
+ }
1443
+ });
1444
+ // Start the server
1445
+ async function main() {
1446
+ const transport = new StdioServerTransport();
1447
+ await server.connect(transport);
1448
+ console.error("Mvp24Hours .NET MCP Server running on stdio");
1449
+ }
1450
+ main().catch((error) => {
1451
+ console.error("Fatal error:", error);
1452
+ process.exit(1);
1453
+ });
1454
+ //# sourceMappingURL=index.js.map