workspace-architect 1.3.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.
Files changed (354) hide show
  1. package/.env.example +1 -0
  2. package/.gitattributes +1 -0
  3. package/.github/workflows/manual-publish.yml +36 -0
  4. package/.github/workflows/sync-and-publish.yml +58 -0
  5. package/.release-it.json +20 -0
  6. package/CHANGELOG.md +43 -0
  7. package/README.md +62 -0
  8. package/assets/chatmodes/4.1-Beast.chatmode.md +152 -0
  9. package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +337 -0
  10. package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +644 -0
  11. package/assets/chatmodes/accessibility.chatmode.md +298 -0
  12. package/assets/chatmodes/address-comments.chatmode.md +59 -0
  13. package/assets/chatmodes/aem-frontend-specialist.chatmode.md +385 -0
  14. package/assets/chatmodes/api-architect.chatmode.md +40 -0
  15. package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +444 -0
  16. package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +100 -0
  17. package/assets/chatmodes/azure-principal-architect.chatmode.md +58 -0
  18. package/assets/chatmodes/azure-saas-architect.chatmode.md +118 -0
  19. package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +44 -0
  20. package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +58 -0
  21. package/assets/chatmodes/bicep-implement.chatmode.md +40 -0
  22. package/assets/chatmodes/bicep-plan.chatmode.md +112 -0
  23. package/assets/chatmodes/blueprint-mode-codex.chatmode.md +110 -0
  24. package/assets/chatmodes/blueprint-mode.chatmode.md +171 -0
  25. package/assets/chatmodes/clojure-interactive-programming.chatmode.md +174 -0
  26. package/assets/chatmodes/code-tour.chatmode.md +205 -0
  27. package/assets/chatmodes/critical-thinking.chatmode.md +23 -0
  28. package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +83 -0
  29. package/assets/chatmodes/csharp-mcp-expert.chatmode.md +69 -0
  30. package/assets/chatmodes/debug.chatmode.md +79 -0
  31. package/assets/chatmodes/declarative-agents-architect.chatmode.md +76 -0
  32. package/assets/chatmodes/demonstrate-understanding.chatmode.md +60 -0
  33. package/assets/chatmodes/dotnet-upgrade.chatmode.md +222 -0
  34. package/assets/chatmodes/drupal-expert.chatmode.md +687 -0
  35. package/assets/chatmodes/electron-angular-native.chatmode.md +285 -0
  36. package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +27 -0
  37. package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +22 -0
  38. package/assets/chatmodes/expert-nextjs-developer.chatmode.md +477 -0
  39. package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +738 -0
  40. package/assets/chatmodes/gilfoyle.chatmode.md +66 -0
  41. package/assets/chatmodes/go-mcp-expert.chatmode.md +122 -0
  42. package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +109 -0
  43. package/assets/chatmodes/hlbpa.chatmode.md +232 -0
  44. package/assets/chatmodes/implementation-plan.chatmode.md +159 -0
  45. package/assets/chatmodes/janitor.chatmode.md +89 -0
  46. package/assets/chatmodes/java-mcp-expert.chatmode.md +325 -0
  47. package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +181 -0
  48. package/assets/chatmodes/kusto-assistant.chatmode.md +143 -0
  49. package/assets/chatmodes/laravel-expert-agent.chatmode.md +628 -0
  50. package/assets/chatmodes/mentor.chatmode.md +32 -0
  51. package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +15 -0
  52. package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +62 -0
  53. package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +62 -0
  54. package/assets/chatmodes/microsoft-study-mode.chatmode.md +32 -0
  55. package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +388 -0
  56. package/assets/chatmodes/ms-sql-dba.chatmode.md +25 -0
  57. package/assets/chatmodes/php-mcp-expert.chatmode.md +498 -0
  58. package/assets/chatmodes/pimcore-expert.chatmode.md +869 -0
  59. package/assets/chatmodes/plan.chatmode.md +114 -0
  60. package/assets/chatmodes/planner.chatmode.md +14 -0
  61. package/assets/chatmodes/playwright-tester.chatmode.md +13 -0
  62. package/assets/chatmodes/postgresql-dba.chatmode.md +17 -0
  63. package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +319 -0
  64. package/assets/chatmodes/power-bi-dax-expert.chatmode.md +334 -0
  65. package/assets/chatmodes/power-bi-performance-expert.chatmode.md +533 -0
  66. package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +549 -0
  67. package/assets/chatmodes/power-platform-expert.chatmode.md +116 -0
  68. package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +149 -0
  69. package/assets/chatmodes/prd.chatmode.md +201 -0
  70. package/assets/chatmodes/principal-software-engineer.chatmode.md +41 -0
  71. package/assets/chatmodes/prompt-builder.chatmode.md +352 -0
  72. package/assets/chatmodes/prompt-engineer.chatmode.md +72 -0
  73. package/assets/chatmodes/python-mcp-expert.chatmode.md +99 -0
  74. package/assets/chatmodes/refine-issue.chatmode.md +34 -0
  75. package/assets/chatmodes/research-technical-spike.chatmode.md +169 -0
  76. package/assets/chatmodes/ruby-mcp-expert.chatmode.md +346 -0
  77. package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +197 -0
  78. package/assets/chatmodes/rust-mcp-expert.chatmode.md +465 -0
  79. package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +227 -0
  80. package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +31 -0
  81. package/assets/chatmodes/semantic-kernel-python.chatmode.md +28 -0
  82. package/assets/chatmodes/shopify-expert.chatmode.md +681 -0
  83. package/assets/chatmodes/simple-app-idea-generator.chatmode.md +134 -0
  84. package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +164 -0
  85. package/assets/chatmodes/specification.chatmode.md +127 -0
  86. package/assets/chatmodes/swift-mcp-expert.chatmode.md +240 -0
  87. package/assets/chatmodes/task-planner.chatmode.md +374 -0
  88. package/assets/chatmodes/task-researcher.chatmode.md +254 -0
  89. package/assets/chatmodes/tdd-green.chatmode.md +59 -0
  90. package/assets/chatmodes/tdd-red.chatmode.md +59 -0
  91. package/assets/chatmodes/tdd-refactor.chatmode.md +84 -0
  92. package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +49 -0
  93. package/assets/chatmodes/terraform-azure-implement.chatmode.md +104 -0
  94. package/assets/chatmodes/terraform-azure-planning.chatmode.md +157 -0
  95. package/assets/chatmodes/typescript-mcp-expert.chatmode.md +91 -0
  96. package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +230 -0
  97. package/assets/chatmodes/wg-code-alchemist.chatmode.md +61 -0
  98. package/assets/chatmodes/wg-code-sentinel.chatmode.md +55 -0
  99. package/assets/collections/ai-prompt-engineering.json +18 -0
  100. package/assets/collections/angular-development.json +7 -0
  101. package/assets/collections/azure-cloud-architect.json +29 -0
  102. package/assets/collections/cpp-development.json +6 -0
  103. package/assets/collections/database-administration.json +8 -0
  104. package/assets/collections/devops-sre.json +11 -0
  105. package/assets/collections/dotnet-development.json +22 -0
  106. package/assets/collections/general-productivity.json +9 -0
  107. package/assets/collections/go-development.json +7 -0
  108. package/assets/collections/java-spring-developer.json +26 -0
  109. package/assets/collections/learning-mentoring.json +10 -0
  110. package/assets/collections/legacy-migration.json +4 -0
  111. package/assets/collections/mcp-specialist.json +41 -0
  112. package/assets/collections/mobile-development.json +4 -0
  113. package/assets/collections/php-cms-development.json +11 -0
  114. package/assets/collections/power-platform-specialist.json +31 -0
  115. package/assets/collections/project-management.json +12 -0
  116. package/assets/collections/python-development.json +13 -0
  117. package/assets/collections/quality-assurance.json +13 -0
  118. package/assets/collections/ruby-development.json +9 -0
  119. package/assets/collections/rust-development.json +10 -0
  120. package/assets/collections/security-specialist.json +8 -0
  121. package/assets/collections/software-architect.json +25 -0
  122. package/assets/collections/technical-writing.json +9 -0
  123. package/assets/collections/web-frontend-development.json +14 -0
  124. package/assets/instructions/a11y.instructions.md +369 -0
  125. package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +867 -0
  126. package/assets/instructions/angular.instructions.md +104 -0
  127. package/assets/instructions/ansible.instructions.md +88 -0
  128. package/assets/instructions/aspnet-rest-apis.instructions.md +110 -0
  129. package/assets/instructions/astro.instructions.md +182 -0
  130. package/assets/instructions/azure-devops-pipelines.instructions.md +185 -0
  131. package/assets/instructions/azure-functions-typescript.instructions.md +14 -0
  132. package/assets/instructions/azure-logic-apps-power-automate.instructions.md +1943 -0
  133. package/assets/instructions/azure-verified-modules-terraform.instructions.md +229 -0
  134. package/assets/instructions/bicep-code-best-practices.instructions.md +54 -0
  135. package/assets/instructions/blazor.instructions.md +77 -0
  136. package/assets/instructions/clojure.instructions.md +349 -0
  137. package/assets/instructions/cmake-vcpkg.instructions.md +10 -0
  138. package/assets/instructions/codexer.instructions.md +428 -0
  139. package/assets/instructions/coldfusion-cfc.instructions.md +30 -0
  140. package/assets/instructions/coldfusion-cfm.instructions.md +28 -0
  141. package/assets/instructions/collections.instructions.md +54 -0
  142. package/assets/instructions/containerization-docker-best-practices.instructions.md +681 -0
  143. package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +949 -0
  144. package/assets/instructions/copilot-thought-logging.instructions.md +62 -0
  145. package/assets/instructions/csharp-ja.instructions.md +114 -0
  146. package/assets/instructions/csharp-ko.instructions.md +77 -0
  147. package/assets/instructions/csharp-mcp-server.instructions.md +95 -0
  148. package/assets/instructions/csharp.instructions.md +114 -0
  149. package/assets/instructions/dart-n-flutter.instructions.md +447 -0
  150. package/assets/instructions/declarative-agents-microsoft365.instructions.md +316 -0
  151. package/assets/instructions/devbox-image-definition.instructions.md +302 -0
  152. package/assets/instructions/devops-core-principles.instructions.md +167 -0
  153. package/assets/instructions/dotnet-architecture-good-practices.instructions.md +279 -0
  154. package/assets/instructions/dotnet-framework.instructions.md +113 -0
  155. package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +1922 -0
  156. package/assets/instructions/dotnet-maui.instructions.md +69 -0
  157. package/assets/instructions/dotnet-upgrade.instructions.md +287 -0
  158. package/assets/instructions/dotnet-wpf.instructions.md +79 -0
  159. package/assets/instructions/genaiscript.instructions.md +21 -0
  160. package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +82 -0
  161. package/assets/instructions/gilfoyle-code-review.instructions.md +114 -0
  162. package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
  163. package/assets/instructions/go-mcp-server.instructions.md +346 -0
  164. package/assets/instructions/go.instructions.md +373 -0
  165. package/assets/instructions/instructions.instructions.md +256 -0
  166. package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +793 -0
  167. package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +464 -0
  168. package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +311 -0
  169. package/assets/instructions/java-mcp-server.instructions.md +553 -0
  170. package/assets/instructions/java.instructions.md +81 -0
  171. package/assets/instructions/joyride-user-project.instructions.md +206 -0
  172. package/assets/instructions/joyride-workspace-automation.instructions.md +46 -0
  173. package/assets/instructions/kotlin-mcp-server.instructions.md +481 -0
  174. package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +307 -0
  175. package/assets/instructions/langchain-python.instructions.md +229 -0
  176. package/assets/instructions/localization.instructions.md +39 -0
  177. package/assets/instructions/makefile.instructions.md +410 -0
  178. package/assets/instructions/markdown.instructions.md +52 -0
  179. package/assets/instructions/memory-bank.instructions.md +299 -0
  180. package/assets/instructions/mongo-dba.instructions.md +25 -0
  181. package/assets/instructions/ms-sql-dba.instructions.md +25 -0
  182. package/assets/instructions/nestjs.instructions.md +406 -0
  183. package/assets/instructions/nextjs-tailwind.instructions.md +72 -0
  184. package/assets/instructions/nextjs.instructions.md +143 -0
  185. package/assets/instructions/nodejs-javascript-vitest.instructions.md +30 -0
  186. package/assets/instructions/object-calisthenics.instructions.md +302 -0
  187. package/assets/instructions/oqtane.instructions.md +86 -0
  188. package/assets/instructions/performance-optimization.instructions.md +420 -0
  189. package/assets/instructions/php-mcp-server.instructions.md +809 -0
  190. package/assets/instructions/playwright-dotnet.instructions.md +101 -0
  191. package/assets/instructions/playwright-python.instructions.md +62 -0
  192. package/assets/instructions/playwright-typescript.instructions.md +86 -0
  193. package/assets/instructions/power-apps-canvas-yaml.instructions.md +827 -0
  194. package/assets/instructions/power-apps-code-apps.instructions.md +601 -0
  195. package/assets/instructions/power-bi-custom-visuals-development.instructions.md +810 -0
  196. package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +639 -0
  197. package/assets/instructions/power-bi-dax-best-practices.instructions.md +795 -0
  198. package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +623 -0
  199. package/assets/instructions/power-bi-report-design-best-practices.instructions.md +752 -0
  200. package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +504 -0
  201. package/assets/instructions/power-platform-connector.instructions.md +430 -0
  202. package/assets/instructions/power-platform-mcp-development.instructions.md +88 -0
  203. package/assets/instructions/powershell-pester-5.instructions.md +197 -0
  204. package/assets/instructions/powershell.instructions.md +356 -0
  205. package/assets/instructions/prompt.instructions.md +73 -0
  206. package/assets/instructions/python-mcp-server.instructions.md +204 -0
  207. package/assets/instructions/python.instructions.md +56 -0
  208. package/assets/instructions/quarkus-mcp-server-sse.instructions.md +49 -0
  209. package/assets/instructions/quarkus.instructions.md +98 -0
  210. package/assets/instructions/r.instructions.md +116 -0
  211. package/assets/instructions/reactjs.instructions.md +162 -0
  212. package/assets/instructions/ruby-mcp-server.instructions.md +629 -0
  213. package/assets/instructions/ruby-on-rails.instructions.md +124 -0
  214. package/assets/instructions/rust-mcp-server.instructions.md +715 -0
  215. package/assets/instructions/rust.instructions.md +135 -0
  216. package/assets/instructions/security-and-owasp.instructions.md +51 -0
  217. package/assets/instructions/self-explanatory-code-commenting.instructions.md +162 -0
  218. package/assets/instructions/shell.instructions.md +132 -0
  219. package/assets/instructions/spec-driven-workflow-v1.instructions.md +323 -0
  220. package/assets/instructions/springboot.instructions.md +68 -0
  221. package/assets/instructions/sql-sp-generation.instructions.md +74 -0
  222. package/assets/instructions/svelte.instructions.md +161 -0
  223. package/assets/instructions/swift-mcp-server.instructions.md +498 -0
  224. package/assets/instructions/taming-copilot.instructions.md +40 -0
  225. package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +212 -0
  226. package/assets/instructions/task-implementation.instructions.md +190 -0
  227. package/assets/instructions/tasksync.instructions.md +352 -0
  228. package/assets/instructions/terraform-azure.instructions.md +254 -0
  229. package/assets/instructions/terraform-sap-btp.instructions.md +195 -0
  230. package/assets/instructions/terraform.instructions.md +113 -0
  231. package/assets/instructions/typescript-5-es2022.instructions.md +114 -0
  232. package/assets/instructions/typescript-mcp-server.instructions.md +228 -0
  233. package/assets/instructions/update-code-from-shorthand.instructions.md +130 -0
  234. package/assets/instructions/vuejs3.instructions.md +153 -0
  235. package/assets/instructions/wordpress.instructions.md +186 -0
  236. package/assets/prompts/add-educational-comments.prompt.md +129 -0
  237. package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +230 -0
  238. package/assets/prompts/architecture-blueprint-generator.prompt.md +322 -0
  239. package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +42 -0
  240. package/assets/prompts/az-cost-optimize.prompt.md +305 -0
  241. package/assets/prompts/azure-resource-health-diagnose.prompt.md +290 -0
  242. package/assets/prompts/boost-prompt.prompt.md +25 -0
  243. package/assets/prompts/breakdown-epic-arch.prompt.md +66 -0
  244. package/assets/prompts/breakdown-epic-pm.prompt.md +58 -0
  245. package/assets/prompts/breakdown-feature-implementation.prompt.md +128 -0
  246. package/assets/prompts/breakdown-feature-prd.prompt.md +61 -0
  247. package/assets/prompts/breakdown-plan.prompt.md +509 -0
  248. package/assets/prompts/breakdown-test.prompt.md +365 -0
  249. package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
  250. package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +26 -0
  251. package/assets/prompts/containerize-aspnet-framework.prompt.md +455 -0
  252. package/assets/prompts/containerize-aspnetcore.prompt.md +393 -0
  253. package/assets/prompts/conventional-commit.prompt.md +73 -0
  254. package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
  255. package/assets/prompts/cosmosdb-datamodeling.prompt.md +1045 -0
  256. package/assets/prompts/create-agentsmd.prompt.md +249 -0
  257. package/assets/prompts/create-architectural-decision-record.prompt.md +97 -0
  258. package/assets/prompts/create-github-action-workflow-specification.prompt.md +276 -0
  259. package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +28 -0
  260. package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
  261. package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
  262. package/assets/prompts/create-github-pull-request-from-specification.prompt.md +24 -0
  263. package/assets/prompts/create-implementation-plan.prompt.md +157 -0
  264. package/assets/prompts/create-llms.prompt.md +210 -0
  265. package/assets/prompts/create-oo-component-documentation.prompt.md +193 -0
  266. package/assets/prompts/create-readme.prompt.md +21 -0
  267. package/assets/prompts/create-specification.prompt.md +127 -0
  268. package/assets/prompts/create-spring-boot-java-project.prompt.md +163 -0
  269. package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +147 -0
  270. package/assets/prompts/create-technical-spike.prompt.md +231 -0
  271. package/assets/prompts/csharp-async.prompt.md +50 -0
  272. package/assets/prompts/csharp-docs.prompt.md +63 -0
  273. package/assets/prompts/csharp-mcp-server-generator.prompt.md +59 -0
  274. package/assets/prompts/csharp-mstest.prompt.md +67 -0
  275. package/assets/prompts/csharp-nunit.prompt.md +72 -0
  276. package/assets/prompts/csharp-tunit.prompt.md +101 -0
  277. package/assets/prompts/csharp-xunit.prompt.md +69 -0
  278. package/assets/prompts/declarative-agents.prompt.md +93 -0
  279. package/assets/prompts/documentation-writer.prompt.md +46 -0
  280. package/assets/prompts/dotnet-best-practices.prompt.md +84 -0
  281. package/assets/prompts/dotnet-design-pattern-review.prompt.md +41 -0
  282. package/assets/prompts/dotnet-upgrade.prompt.md +116 -0
  283. package/assets/prompts/editorconfig.prompt.md +64 -0
  284. package/assets/prompts/ef-core.prompt.md +76 -0
  285. package/assets/prompts/finalize-agent-prompt.prompt.md +27 -0
  286. package/assets/prompts/first-ask.prompt.md +29 -0
  287. package/assets/prompts/folder-structure-blueprint-generator.prompt.md +405 -0
  288. package/assets/prompts/gen-specs-as-issues.prompt.md +165 -0
  289. package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +240 -0
  290. package/assets/prompts/git-flow-branch-creator.prompt.md +293 -0
  291. package/assets/prompts/github-copilot-starter.prompt.md +372 -0
  292. package/assets/prompts/go-mcp-server-generator.prompt.md +334 -0
  293. package/assets/prompts/java-docs.prompt.md +24 -0
  294. package/assets/prompts/java-junit.prompt.md +64 -0
  295. package/assets/prompts/java-mcp-server-generator.prompt.md +756 -0
  296. package/assets/prompts/java-refactoring-extract-method.prompt.md +105 -0
  297. package/assets/prompts/java-refactoring-remove-parameter.prompt.md +85 -0
  298. package/assets/prompts/java-springboot.prompt.md +66 -0
  299. package/assets/prompts/javascript-typescript-jest.prompt.md +44 -0
  300. package/assets/prompts/kotlin-mcp-server-generator.prompt.md +449 -0
  301. package/assets/prompts/kotlin-springboot.prompt.md +71 -0
  302. package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +118 -0
  303. package/assets/prompts/memory-merger.prompt.md +107 -0
  304. package/assets/prompts/mkdocs-translations.prompt.md +110 -0
  305. package/assets/prompts/model-recommendation.prompt.md +677 -0
  306. package/assets/prompts/multi-stage-dockerfile.prompt.md +47 -0
  307. package/assets/prompts/my-issues.prompt.md +9 -0
  308. package/assets/prompts/my-pull-requests.prompt.md +15 -0
  309. package/assets/prompts/next-intl-add-language.prompt.md +20 -0
  310. package/assets/prompts/php-mcp-server-generator.prompt.md +522 -0
  311. package/assets/prompts/playwright-automation-fill-in-form.prompt.md +30 -0
  312. package/assets/prompts/playwright-explore-website.prompt.md +19 -0
  313. package/assets/prompts/playwright-generate-test.prompt.md +19 -0
  314. package/assets/prompts/postgresql-code-review.prompt.md +214 -0
  315. package/assets/prompts/postgresql-optimization.prompt.md +406 -0
  316. package/assets/prompts/power-apps-code-app-scaffold.prompt.md +150 -0
  317. package/assets/prompts/power-bi-dax-optimization.prompt.md +175 -0
  318. package/assets/prompts/power-bi-model-design-review.prompt.md +405 -0
  319. package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +384 -0
  320. package/assets/prompts/power-bi-report-design-consultation.prompt.md +353 -0
  321. package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +156 -0
  322. package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
  323. package/assets/prompts/prompt-builder.prompt.md +142 -0
  324. package/assets/prompts/pytest-coverage.prompt.md +28 -0
  325. package/assets/prompts/python-mcp-server-generator.prompt.md +105 -0
  326. package/assets/prompts/readme-blueprint-generator.prompt.md +79 -0
  327. package/assets/prompts/remember-interactive-programming.prompt.md +13 -0
  328. package/assets/prompts/remember.prompt.md +125 -0
  329. package/assets/prompts/repo-story-time.prompt.md +156 -0
  330. package/assets/prompts/review-and-refactor.prompt.md +15 -0
  331. package/assets/prompts/ruby-mcp-server-generator.prompt.md +660 -0
  332. package/assets/prompts/rust-mcp-server-generator.prompt.md +578 -0
  333. package/assets/prompts/shuffle-json-data.prompt.md +151 -0
  334. package/assets/prompts/sql-code-review.prompt.md +303 -0
  335. package/assets/prompts/sql-optimization.prompt.md +298 -0
  336. package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
  337. package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
  338. package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
  339. package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
  340. package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
  341. package/assets/prompts/swift-mcp-server-generator.prompt.md +669 -0
  342. package/assets/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
  343. package/assets/prompts/typescript-mcp-server-generator.prompt.md +90 -0
  344. package/assets/prompts/update-avm-modules-in-bicep.prompt.md +60 -0
  345. package/assets/prompts/update-implementation-plan.prompt.md +157 -0
  346. package/assets/prompts/update-llms.prompt.md +216 -0
  347. package/assets/prompts/update-markdown-file-index.prompt.md +76 -0
  348. package/assets/prompts/update-oo-component-documentation.prompt.md +162 -0
  349. package/assets/prompts/update-specification.prompt.md +127 -0
  350. package/assets/prompts/write-coding-standards-from-file.prompt.md +316 -0
  351. package/bin/cli.js +200 -0
  352. package/package.json +53 -0
  353. package/scripts/sync.js +99 -0
  354. package/verdaccio/config.yaml +202 -0
@@ -0,0 +1,756 @@
1
+ ---
2
+ description: 'Generate a complete Model Context Protocol server project in Java using the official MCP Java SDK with reactive streams and optional Spring Boot integration.'
3
+ mode: agent
4
+ ---
5
+
6
+ # Java MCP Server Generator
7
+
8
+ Generate a complete, production-ready MCP server in Java using the official Java SDK with Maven or Gradle.
9
+
10
+ ## Project Generation
11
+
12
+ When asked to create a Java MCP server, generate a complete project with this structure:
13
+
14
+ ```
15
+ my-mcp-server/
16
+ ├── pom.xml (or build.gradle.kts)
17
+ ├── src/
18
+ │ ├── main/
19
+ │ │ ├── java/
20
+ │ │ │ └── com/example/mcp/
21
+ │ │ │ ├── McpServerApplication.java
22
+ │ │ │ ├── config/
23
+ │ │ │ │ └── ServerConfiguration.java
24
+ │ │ │ ├── tools/
25
+ │ │ │ │ ├── ToolDefinitions.java
26
+ │ │ │ │ └── ToolHandlers.java
27
+ │ │ │ ├── resources/
28
+ │ │ │ │ ├── ResourceDefinitions.java
29
+ │ │ │ │ └── ResourceHandlers.java
30
+ │ │ │ └── prompts/
31
+ │ │ │ ├── PromptDefinitions.java
32
+ │ │ │ └── PromptHandlers.java
33
+ │ │ └── resources/
34
+ │ │ └── application.properties (if using Spring)
35
+ │ └── test/
36
+ │ └── java/
37
+ │ └── com/example/mcp/
38
+ │ └── McpServerTest.java
39
+ └── README.md
40
+ ```
41
+
42
+ ## Maven pom.xml Template
43
+
44
+ ```xml
45
+ <?xml version="1.0" encoding="UTF-8"?>
46
+ <project xmlns="http://maven.apache.org/POM/4.0.0"
47
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
48
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
49
+ http://maven.apache.org/xsd/maven-4.0.0.xsd">
50
+ <modelVersion>4.0.0</modelVersion>
51
+
52
+ <groupId>com.example</groupId>
53
+ <artifactId>my-mcp-server</artifactId>
54
+ <version>1.0.0</version>
55
+ <packaging>jar</packaging>
56
+
57
+ <name>My MCP Server</name>
58
+ <description>Model Context Protocol server implementation</description>
59
+
60
+ <properties>
61
+ <java.version>17</java.version>
62
+ <maven.compiler.source>17</maven.compiler.source>
63
+ <maven.compiler.target>17</maven.compiler.target>
64
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
65
+ <mcp.version>0.14.1</mcp.version>
66
+ <slf4j.version>2.0.9</slf4j.version>
67
+ <logback.version>1.4.11</logback.version>
68
+ <junit.version>5.10.0</junit.version>
69
+ </properties>
70
+
71
+ <dependencies>
72
+ <!-- MCP Java SDK -->
73
+ <dependency>
74
+ <groupId>io.modelcontextprotocol.sdk</groupId>
75
+ <artifactId>mcp</artifactId>
76
+ <version>${mcp.version}</version>
77
+ </dependency>
78
+
79
+ <!-- Logging -->
80
+ <dependency>
81
+ <groupId>org.slf4j</groupId>
82
+ <artifactId>slf4j-api</artifactId>
83
+ <version>${slf4j.version}</version>
84
+ </dependency>
85
+ <dependency>
86
+ <groupId>ch.qos.logback</groupId>
87
+ <artifactId>logback-classic</artifactId>
88
+ <version>${logback.version}</version>
89
+ </dependency>
90
+
91
+ <!-- Testing -->
92
+ <dependency>
93
+ <groupId>org.junit.jupiter</groupId>
94
+ <artifactId>junit-jupiter</artifactId>
95
+ <version>${junit.version}</version>
96
+ <scope>test</scope>
97
+ </dependency>
98
+ <dependency>
99
+ <groupId>io.projectreactor</groupId>
100
+ <artifactId>reactor-test</artifactId>
101
+ <scope>test</scope>
102
+ </dependency>
103
+ </dependencies>
104
+
105
+ <build>
106
+ <plugins>
107
+ <plugin>
108
+ <groupId>org.apache.maven.plugins</groupId>
109
+ <artifactId>maven-compiler-plugin</artifactId>
110
+ <version>3.11.0</version>
111
+ </plugin>
112
+ <plugin>
113
+ <groupId>org.apache.maven.plugins</groupId>
114
+ <artifactId>maven-surefire-plugin</artifactId>
115
+ <version>3.1.2</version>
116
+ </plugin>
117
+ <plugin>
118
+ <groupId>org.apache.maven.plugins</groupId>
119
+ <artifactId>maven-shade-plugin</artifactId>
120
+ <version>3.5.0</version>
121
+ <executions>
122
+ <execution>
123
+ <phase>package</phase>
124
+ <goals>
125
+ <goal>shade</goal>
126
+ </goals>
127
+ <configuration>
128
+ <transformers>
129
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
130
+ <mainClass>com.example.mcp.McpServerApplication</mainClass>
131
+ </transformer>
132
+ </transformers>
133
+ </configuration>
134
+ </execution>
135
+ </executions>
136
+ </plugin>
137
+ </plugins>
138
+ </build>
139
+ </project>
140
+ ```
141
+
142
+ ## Gradle build.gradle.kts Template
143
+
144
+ ```kotlin
145
+ plugins {
146
+ id("java")
147
+ id("application")
148
+ }
149
+
150
+ group = "com.example"
151
+ version = "1.0.0"
152
+
153
+ java {
154
+ sourceCompatibility = JavaVersion.VERSION_17
155
+ targetCompatibility = JavaVersion.VERSION_17
156
+ }
157
+
158
+ repositories {
159
+ mavenCentral()
160
+ }
161
+
162
+ dependencies {
163
+ // MCP Java SDK
164
+ implementation("io.modelcontextprotocol.sdk:mcp:0.14.1")
165
+
166
+ // Logging
167
+ implementation("org.slf4j:slf4j-api:2.0.9")
168
+ implementation("ch.qos.logback:logback-classic:1.4.11")
169
+
170
+ // Testing
171
+ testImplementation("org.junit.jupiter:junit-jupiter:5.10.0")
172
+ testImplementation("io.projectreactor:reactor-test:3.5.0")
173
+ }
174
+
175
+ application {
176
+ mainClass.set("com.example.mcp.McpServerApplication")
177
+ }
178
+
179
+ tasks.test {
180
+ useJUnitPlatform()
181
+ }
182
+ ```
183
+
184
+ ## McpServerApplication.java Template
185
+
186
+ ```java
187
+ package com.example.mcp;
188
+
189
+ import com.example.mcp.tools.ToolHandlers;
190
+ import com.example.mcp.resources.ResourceHandlers;
191
+ import com.example.mcp.prompts.PromptHandlers;
192
+ import io.mcp.server.McpServer;
193
+ import io.mcp.server.McpServerBuilder;
194
+ import io.mcp.server.transport.StdioServerTransport;
195
+ import org.slf4j.Logger;
196
+ import org.slf4j.LoggerFactory;
197
+ import reactor.core.Disposable;
198
+
199
+ public class McpServerApplication {
200
+
201
+ private static final Logger log = LoggerFactory.getLogger(McpServerApplication.class);
202
+
203
+ public static void main(String[] args) {
204
+ log.info("Starting MCP Server...");
205
+
206
+ try {
207
+ McpServer server = createServer();
208
+ StdioServerTransport transport = new StdioServerTransport();
209
+
210
+ // Start server
211
+ Disposable serverDisposable = server.start(transport).subscribe();
212
+
213
+ // Graceful shutdown
214
+ Runtime.getRuntime().addShutdownHook(new Thread(() -> {
215
+ log.info("Shutting down MCP server");
216
+ serverDisposable.dispose();
217
+ server.stop().block();
218
+ }));
219
+
220
+ log.info("MCP Server started successfully");
221
+
222
+ // Keep running
223
+ Thread.currentThread().join();
224
+
225
+ } catch (Exception e) {
226
+ log.error("Failed to start MCP server", e);
227
+ System.exit(1);
228
+ }
229
+ }
230
+
231
+ private static McpServer createServer() {
232
+ McpServer server = McpServerBuilder.builder()
233
+ .serverInfo("my-mcp-server", "1.0.0")
234
+ .capabilities(capabilities -> capabilities
235
+ .tools(true)
236
+ .resources(true)
237
+ .prompts(true))
238
+ .build();
239
+
240
+ // Register handlers
241
+ ToolHandlers.register(server);
242
+ ResourceHandlers.register(server);
243
+ PromptHandlers.register(server);
244
+
245
+ return server;
246
+ }
247
+ }
248
+ ```
249
+
250
+ ## ToolDefinitions.java Template
251
+
252
+ ```java
253
+ package com.example.mcp.tools;
254
+
255
+ import io.mcp.json.JsonSchema;
256
+ import io.mcp.server.tool.Tool;
257
+
258
+ import java.util.List;
259
+
260
+ public class ToolDefinitions {
261
+
262
+ public static List<Tool> getTools() {
263
+ return List.of(
264
+ createGreetTool(),
265
+ createCalculateTool()
266
+ );
267
+ }
268
+
269
+ private static Tool createGreetTool() {
270
+ return Tool.builder()
271
+ .name("greet")
272
+ .description("Generate a greeting message")
273
+ .inputSchema(JsonSchema.object()
274
+ .property("name", JsonSchema.string()
275
+ .description("Name to greet")
276
+ .required(true)))
277
+ .build();
278
+ }
279
+
280
+ private static Tool createCalculateTool() {
281
+ return Tool.builder()
282
+ .name("calculate")
283
+ .description("Perform mathematical calculations")
284
+ .inputSchema(JsonSchema.object()
285
+ .property("operation", JsonSchema.string()
286
+ .description("Operation to perform")
287
+ .enumValues(List.of("add", "subtract", "multiply", "divide"))
288
+ .required(true))
289
+ .property("a", JsonSchema.number()
290
+ .description("First operand")
291
+ .required(true))
292
+ .property("b", JsonSchema.number()
293
+ .description("Second operand")
294
+ .required(true)))
295
+ .build();
296
+ }
297
+ }
298
+ ```
299
+
300
+ ## ToolHandlers.java Template
301
+
302
+ ```java
303
+ package com.example.mcp.tools;
304
+
305
+ import com.fasterxml.jackson.databind.JsonNode;
306
+ import io.mcp.server.McpServer;
307
+ import io.mcp.server.tool.ToolResponse;
308
+ import org.slf4j.Logger;
309
+ import org.slf4j.LoggerFactory;
310
+ import reactor.core.publisher.Mono;
311
+
312
+ public class ToolHandlers {
313
+
314
+ private static final Logger log = LoggerFactory.getLogger(ToolHandlers.class);
315
+
316
+ public static void register(McpServer server) {
317
+ // Register tool list handler
318
+ server.addToolListHandler(() -> {
319
+ log.debug("Listing available tools");
320
+ return Mono.just(ToolDefinitions.getTools());
321
+ });
322
+
323
+ // Register greet handler
324
+ server.addToolHandler("greet", ToolHandlers::handleGreet);
325
+
326
+ // Register calculate handler
327
+ server.addToolHandler("calculate", ToolHandlers::handleCalculate);
328
+ }
329
+
330
+ private static Mono<ToolResponse> handleGreet(JsonNode arguments) {
331
+ log.info("Greet tool called");
332
+
333
+ if (!arguments.has("name")) {
334
+ return Mono.just(ToolResponse.error()
335
+ .message("Missing 'name' parameter")
336
+ .build());
337
+ }
338
+
339
+ String name = arguments.get("name").asText();
340
+ String greeting = "Hello, " + name + "! Welcome to MCP.";
341
+
342
+ log.debug("Generated greeting for: {}", name);
343
+
344
+ return Mono.just(ToolResponse.success()
345
+ .addTextContent(greeting)
346
+ .build());
347
+ }
348
+
349
+ private static Mono<ToolResponse> handleCalculate(JsonNode arguments) {
350
+ log.info("Calculate tool called");
351
+
352
+ if (!arguments.has("operation") || !arguments.has("a") || !arguments.has("b")) {
353
+ return Mono.just(ToolResponse.error()
354
+ .message("Missing required parameters")
355
+ .build());
356
+ }
357
+
358
+ String operation = arguments.get("operation").asText();
359
+ double a = arguments.get("a").asDouble();
360
+ double b = arguments.get("b").asDouble();
361
+
362
+ double result;
363
+ switch (operation) {
364
+ case "add":
365
+ result = a + b;
366
+ break;
367
+ case "subtract":
368
+ result = a - b;
369
+ break;
370
+ case "multiply":
371
+ result = a * b;
372
+ break;
373
+ case "divide":
374
+ if (b == 0) {
375
+ return Mono.just(ToolResponse.error()
376
+ .message("Division by zero")
377
+ .build());
378
+ }
379
+ result = a / b;
380
+ break;
381
+ default:
382
+ return Mono.just(ToolResponse.error()
383
+ .message("Unknown operation: " + operation)
384
+ .build());
385
+ }
386
+
387
+ log.debug("Calculation: {} {} {} = {}", a, operation, b, result);
388
+
389
+ return Mono.just(ToolResponse.success()
390
+ .addTextContent("Result: " + result)
391
+ .build());
392
+ }
393
+ }
394
+ ```
395
+
396
+ ## ResourceDefinitions.java Template
397
+
398
+ ```java
399
+ package com.example.mcp.resources;
400
+
401
+ import io.mcp.server.resource.Resource;
402
+
403
+ import java.util.List;
404
+
405
+ public class ResourceDefinitions {
406
+
407
+ public static List<Resource> getResources() {
408
+ return List.of(
409
+ Resource.builder()
410
+ .name("Example Data")
411
+ .uri("resource://data/example")
412
+ .description("Example resource data")
413
+ .mimeType("application/json")
414
+ .build(),
415
+ Resource.builder()
416
+ .name("Configuration")
417
+ .uri("resource://config")
418
+ .description("Server configuration")
419
+ .mimeType("application/json")
420
+ .build()
421
+ );
422
+ }
423
+ }
424
+ ```
425
+
426
+ ## ResourceHandlers.java Template
427
+
428
+ ```java
429
+ package com.example.mcp.resources;
430
+
431
+ import io.mcp.server.McpServer;
432
+ import io.mcp.server.resource.ResourceContent;
433
+ import org.slf4j.Logger;
434
+ import org.slf4j.LoggerFactory;
435
+ import reactor.core.publisher.Mono;
436
+
437
+ import java.time.Instant;
438
+ import java.util.Map;
439
+ import java.util.concurrent.ConcurrentHashMap;
440
+
441
+ public class ResourceHandlers {
442
+
443
+ private static final Logger log = LoggerFactory.getLogger(ResourceHandlers.class);
444
+ private static final Map<String, Boolean> subscriptions = new ConcurrentHashMap<>();
445
+
446
+ public static void register(McpServer server) {
447
+ // Register resource list handler
448
+ server.addResourceListHandler(() -> {
449
+ log.debug("Listing available resources");
450
+ return Mono.just(ResourceDefinitions.getResources());
451
+ });
452
+
453
+ // Register resource read handler
454
+ server.addResourceReadHandler(ResourceHandlers::handleRead);
455
+
456
+ // Register resource subscribe handler
457
+ server.addResourceSubscribeHandler(ResourceHandlers::handleSubscribe);
458
+
459
+ // Register resource unsubscribe handler
460
+ server.addResourceUnsubscribeHandler(ResourceHandlers::handleUnsubscribe);
461
+ }
462
+
463
+ private static Mono<ResourceContent> handleRead(String uri) {
464
+ log.info("Reading resource: {}", uri);
465
+
466
+ switch (uri) {
467
+ case "resource://data/example":
468
+ String jsonData = String.format(
469
+ "{\"message\":\"Example resource data\",\"timestamp\":\"%s\"}",
470
+ Instant.now()
471
+ );
472
+ return Mono.just(ResourceContent.text(jsonData, uri, "application/json"));
473
+
474
+ case "resource://config":
475
+ String config = "{\"serverName\":\"my-mcp-server\",\"version\":\"1.0.0\"}";
476
+ return Mono.just(ResourceContent.text(config, uri, "application/json"));
477
+
478
+ default:
479
+ log.warn("Unknown resource requested: {}", uri);
480
+ return Mono.error(new IllegalArgumentException("Unknown resource URI: " + uri));
481
+ }
482
+ }
483
+
484
+ private static Mono<Void> handleSubscribe(String uri) {
485
+ log.info("Client subscribed to resource: {}", uri);
486
+ subscriptions.put(uri, true);
487
+ return Mono.empty();
488
+ }
489
+
490
+ private static Mono<Void> handleUnsubscribe(String uri) {
491
+ log.info("Client unsubscribed from resource: {}", uri);
492
+ subscriptions.remove(uri);
493
+ return Mono.empty();
494
+ }
495
+ }
496
+ ```
497
+
498
+ ## PromptDefinitions.java Template
499
+
500
+ ```java
501
+ package com.example.mcp.prompts;
502
+
503
+ import io.mcp.server.prompt.Prompt;
504
+ import io.mcp.server.prompt.PromptArgument;
505
+
506
+ import java.util.List;
507
+
508
+ public class PromptDefinitions {
509
+
510
+ public static List<Prompt> getPrompts() {
511
+ return List.of(
512
+ Prompt.builder()
513
+ .name("code-review")
514
+ .description("Generate a code review prompt")
515
+ .argument(PromptArgument.builder()
516
+ .name("language")
517
+ .description("Programming language")
518
+ .required(true)
519
+ .build())
520
+ .argument(PromptArgument.builder()
521
+ .name("focus")
522
+ .description("Review focus area")
523
+ .required(false)
524
+ .build())
525
+ .build()
526
+ );
527
+ }
528
+ }
529
+ ```
530
+
531
+ ## PromptHandlers.java Template
532
+
533
+ ```java
534
+ package com.example.mcp.prompts;
535
+
536
+ import io.mcp.server.McpServer;
537
+ import io.mcp.server.prompt.PromptMessage;
538
+ import io.mcp.server.prompt.PromptResult;
539
+ import org.slf4j.Logger;
540
+ import org.slf4j.LoggerFactory;
541
+ import reactor.core.publisher.Mono;
542
+
543
+ import java.util.List;
544
+ import java.util.Map;
545
+
546
+ public class PromptHandlers {
547
+
548
+ private static final Logger log = LoggerFactory.getLogger(PromptHandlers.class);
549
+
550
+ public static void register(McpServer server) {
551
+ // Register prompt list handler
552
+ server.addPromptListHandler(() -> {
553
+ log.debug("Listing available prompts");
554
+ return Mono.just(PromptDefinitions.getPrompts());
555
+ });
556
+
557
+ // Register prompt get handler
558
+ server.addPromptGetHandler(PromptHandlers::handleCodeReview);
559
+ }
560
+
561
+ private static Mono<PromptResult> handleCodeReview(String name, Map<String, String> arguments) {
562
+ log.info("Getting prompt: {}", name);
563
+
564
+ if (!name.equals("code-review")) {
565
+ return Mono.error(new IllegalArgumentException("Unknown prompt: " + name));
566
+ }
567
+
568
+ String language = arguments.getOrDefault("language", "Java");
569
+ String focus = arguments.getOrDefault("focus", "general quality");
570
+
571
+ String description = "Code review for " + language + " with focus on " + focus;
572
+
573
+ List<PromptMessage> messages = List.of(
574
+ PromptMessage.user("Please review this " + language + " code with focus on " + focus + "."),
575
+ PromptMessage.assistant("I'll review the code focusing on " + focus + ". Please share the code."),
576
+ PromptMessage.user("Here's the code to review: [paste code here]")
577
+ );
578
+
579
+ log.debug("Generated code review prompt for {} ({})", language, focus);
580
+
581
+ return Mono.just(PromptResult.builder()
582
+ .description(description)
583
+ .messages(messages)
584
+ .build());
585
+ }
586
+ }
587
+ ```
588
+
589
+ ## McpServerTest.java Template
590
+
591
+ ```java
592
+ package com.example.mcp;
593
+
594
+ import com.fasterxml.jackson.databind.ObjectMapper;
595
+ import com.fasterxml.jackson.databind.node.ObjectNode;
596
+ import io.mcp.server.McpServer;
597
+ import io.mcp.server.McpSyncServer;
598
+ import io.mcp.server.tool.ToolResponse;
599
+ import org.junit.jupiter.api.BeforeEach;
600
+ import org.junit.jupiter.api.Test;
601
+
602
+ import static org.junit.jupiter.api.Assertions.*;
603
+
604
+ class McpServerTest {
605
+
606
+ private McpSyncServer syncServer;
607
+ private ObjectMapper objectMapper;
608
+
609
+ @BeforeEach
610
+ void setUp() {
611
+ McpServer server = createTestServer();
612
+ syncServer = server.toSyncServer();
613
+ objectMapper = new ObjectMapper();
614
+ }
615
+
616
+ private McpServer createTestServer() {
617
+ // Same setup as main application
618
+ McpServer server = McpServerBuilder.builder()
619
+ .serverInfo("test-server", "1.0.0")
620
+ .capabilities(cap -> cap.tools(true))
621
+ .build();
622
+
623
+ // Register handlers
624
+ ToolHandlers.register(server);
625
+
626
+ return server;
627
+ }
628
+
629
+ @Test
630
+ void testGreetTool() {
631
+ ObjectNode args = objectMapper.createObjectNode();
632
+ args.put("name", "Java");
633
+
634
+ ToolResponse response = syncServer.callTool("greet", args);
635
+
636
+ assertFalse(response.isError());
637
+ assertEquals(1, response.getContent().size());
638
+ assertTrue(response.getContent().get(0).getText().contains("Java"));
639
+ }
640
+
641
+ @Test
642
+ void testCalculateTool() {
643
+ ObjectNode args = objectMapper.createObjectNode();
644
+ args.put("operation", "add");
645
+ args.put("a", 5);
646
+ args.put("b", 3);
647
+
648
+ ToolResponse response = syncServer.callTool("calculate", args);
649
+
650
+ assertFalse(response.isError());
651
+ assertTrue(response.getContent().get(0).getText().contains("8"));
652
+ }
653
+
654
+ @Test
655
+ void testDivideByZero() {
656
+ ObjectNode args = objectMapper.createObjectNode();
657
+ args.put("operation", "divide");
658
+ args.put("a", 10);
659
+ args.put("b", 0);
660
+
661
+ ToolResponse response = syncServer.callTool("calculate", args);
662
+
663
+ assertTrue(response.isError());
664
+ }
665
+ }
666
+ ```
667
+
668
+ ## README.md Template
669
+
670
+ ```markdown
671
+ # My MCP Server
672
+
673
+ A Model Context Protocol server built with Java and the official MCP Java SDK.
674
+
675
+ ## Features
676
+
677
+ - ✅ Tools: greet, calculate
678
+ - ✅ Resources: example data, configuration
679
+ - ✅ Prompts: code-review
680
+ - ✅ Reactive Streams with Project Reactor
681
+ - ✅ Structured logging with SLF4J
682
+ - ✅ Full test coverage
683
+
684
+ ## Requirements
685
+
686
+ - Java 17 or later
687
+ - Maven 3.6+ or Gradle 7+
688
+
689
+ ## Build
690
+
691
+ ### Maven
692
+ ```bash
693
+ mvn clean package
694
+ ```
695
+
696
+ ### Gradle
697
+ ```bash
698
+ ./gradlew build
699
+ ```
700
+
701
+ ## Run
702
+
703
+ ### Maven
704
+ ```bash
705
+ java -jar target/my-mcp-server-1.0.0.jar
706
+ ```
707
+
708
+ ### Gradle
709
+ ```bash
710
+ ./gradlew run
711
+ ```
712
+
713
+ ## Testing
714
+
715
+ ### Maven
716
+ ```bash
717
+ mvn test
718
+ ```
719
+
720
+ ### Gradle
721
+ ```bash
722
+ ./gradlew test
723
+ ```
724
+
725
+ ## Integration with Claude Desktop
726
+
727
+ Add to `claude_desktop_config.json`:
728
+
729
+ ```json
730
+ {
731
+ "mcpServers": {
732
+ "my-mcp-server": {
733
+ "command": "java",
734
+ "args": ["-jar", "/path/to/my-mcp-server-1.0.0.jar"]
735
+ }
736
+ }
737
+ }
738
+ ```
739
+
740
+ ## License
741
+
742
+ MIT
743
+ ```
744
+
745
+ ## Generation Instructions
746
+
747
+ 1. **Ask for project name and package**
748
+ 2. **Choose build tool** (Maven or Gradle)
749
+ 3. **Generate all files** with proper package structure
750
+ 4. **Use Reactive Streams** for async handlers
751
+ 5. **Include comprehensive logging** with SLF4J
752
+ 6. **Add tests** for all handlers
753
+ 7. **Follow Java conventions** (camelCase, PascalCase)
754
+ 8. **Include error handling** with proper responses
755
+ 9. **Document public APIs** with Javadoc
756
+ 10. **Provide both sync and async** examples