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.
- package/.env.example +1 -0
- package/.gitattributes +1 -0
- package/.github/workflows/manual-publish.yml +36 -0
- package/.github/workflows/sync-and-publish.yml +58 -0
- package/.release-it.json +20 -0
- package/CHANGELOG.md +43 -0
- package/README.md +62 -0
- package/assets/chatmodes/4.1-Beast.chatmode.md +152 -0
- package/assets/chatmodes/Thinking-Beast-Mode.chatmode.md +337 -0
- package/assets/chatmodes/Ultimate-Transparent-Thinking-Beast-Mode.chatmode.md +644 -0
- package/assets/chatmodes/accessibility.chatmode.md +298 -0
- package/assets/chatmodes/address-comments.chatmode.md +59 -0
- package/assets/chatmodes/aem-frontend-specialist.chatmode.md +385 -0
- package/assets/chatmodes/api-architect.chatmode.md +40 -0
- package/assets/chatmodes/atlassian-requirements-to-jira.chatmode.md +444 -0
- package/assets/chatmodes/azure-logic-apps-expert.chatmode.md +100 -0
- package/assets/chatmodes/azure-principal-architect.chatmode.md +58 -0
- package/assets/chatmodes/azure-saas-architect.chatmode.md +118 -0
- package/assets/chatmodes/azure-verified-modules-bicep.chatmode.md +44 -0
- package/assets/chatmodes/azure-verified-modules-terraform.chatmode.md +58 -0
- package/assets/chatmodes/bicep-implement.chatmode.md +40 -0
- package/assets/chatmodes/bicep-plan.chatmode.md +112 -0
- package/assets/chatmodes/blueprint-mode-codex.chatmode.md +110 -0
- package/assets/chatmodes/blueprint-mode.chatmode.md +171 -0
- package/assets/chatmodes/clojure-interactive-programming.chatmode.md +174 -0
- package/assets/chatmodes/code-tour.chatmode.md +205 -0
- package/assets/chatmodes/critical-thinking.chatmode.md +23 -0
- package/assets/chatmodes/csharp-dotnet-janitor.chatmode.md +83 -0
- package/assets/chatmodes/csharp-mcp-expert.chatmode.md +69 -0
- package/assets/chatmodes/debug.chatmode.md +79 -0
- package/assets/chatmodes/declarative-agents-architect.chatmode.md +76 -0
- package/assets/chatmodes/demonstrate-understanding.chatmode.md +60 -0
- package/assets/chatmodes/dotnet-upgrade.chatmode.md +222 -0
- package/assets/chatmodes/drupal-expert.chatmode.md +687 -0
- package/assets/chatmodes/electron-angular-native.chatmode.md +285 -0
- package/assets/chatmodes/expert-cpp-software-engineer.chatmode.md +27 -0
- package/assets/chatmodes/expert-dotnet-software-engineer.chatmode.md +22 -0
- package/assets/chatmodes/expert-nextjs-developer.chatmode.md +477 -0
- package/assets/chatmodes/expert-react-frontend-engineer.chatmode.md +738 -0
- package/assets/chatmodes/gilfoyle.chatmode.md +66 -0
- package/assets/chatmodes/go-mcp-expert.chatmode.md +122 -0
- package/assets/chatmodes/gpt-5-beast-mode.chatmode.md +109 -0
- package/assets/chatmodes/hlbpa.chatmode.md +232 -0
- package/assets/chatmodes/implementation-plan.chatmode.md +159 -0
- package/assets/chatmodes/janitor.chatmode.md +89 -0
- package/assets/chatmodes/java-mcp-expert.chatmode.md +325 -0
- package/assets/chatmodes/kotlin-mcp-expert.chatmode.md +181 -0
- package/assets/chatmodes/kusto-assistant.chatmode.md +143 -0
- package/assets/chatmodes/laravel-expert-agent.chatmode.md +628 -0
- package/assets/chatmodes/mentor.chatmode.md +32 -0
- package/assets/chatmodes/meta-agentic-project-scaffold.chatmode.md +15 -0
- package/assets/chatmodes/microsoft-agent-framework-dotnet.chatmode.md +62 -0
- package/assets/chatmodes/microsoft-agent-framework-python.chatmode.md +62 -0
- package/assets/chatmodes/microsoft-study-mode.chatmode.md +32 -0
- package/assets/chatmodes/microsoft_learn_contributor.chatmode.md +388 -0
- package/assets/chatmodes/ms-sql-dba.chatmode.md +25 -0
- package/assets/chatmodes/php-mcp-expert.chatmode.md +498 -0
- package/assets/chatmodes/pimcore-expert.chatmode.md +869 -0
- package/assets/chatmodes/plan.chatmode.md +114 -0
- package/assets/chatmodes/planner.chatmode.md +14 -0
- package/assets/chatmodes/playwright-tester.chatmode.md +13 -0
- package/assets/chatmodes/postgresql-dba.chatmode.md +17 -0
- package/assets/chatmodes/power-bi-data-modeling-expert.chatmode.md +319 -0
- package/assets/chatmodes/power-bi-dax-expert.chatmode.md +334 -0
- package/assets/chatmodes/power-bi-performance-expert.chatmode.md +533 -0
- package/assets/chatmodes/power-bi-visualization-expert.chatmode.md +549 -0
- package/assets/chatmodes/power-platform-expert.chatmode.md +116 -0
- package/assets/chatmodes/power-platform-mcp-integration-expert.chatmode.md +149 -0
- package/assets/chatmodes/prd.chatmode.md +201 -0
- package/assets/chatmodes/principal-software-engineer.chatmode.md +41 -0
- package/assets/chatmodes/prompt-builder.chatmode.md +352 -0
- package/assets/chatmodes/prompt-engineer.chatmode.md +72 -0
- package/assets/chatmodes/python-mcp-expert.chatmode.md +99 -0
- package/assets/chatmodes/refine-issue.chatmode.md +34 -0
- package/assets/chatmodes/research-technical-spike.chatmode.md +169 -0
- package/assets/chatmodes/ruby-mcp-expert.chatmode.md +346 -0
- package/assets/chatmodes/rust-gpt-4.1-beast-mode.chatmode.md +197 -0
- package/assets/chatmodes/rust-mcp-expert.chatmode.md +465 -0
- package/assets/chatmodes/search-ai-optimization-expert.chatmode.md +227 -0
- package/assets/chatmodes/semantic-kernel-dotnet.chatmode.md +31 -0
- package/assets/chatmodes/semantic-kernel-python.chatmode.md +28 -0
- package/assets/chatmodes/shopify-expert.chatmode.md +681 -0
- package/assets/chatmodes/simple-app-idea-generator.chatmode.md +134 -0
- package/assets/chatmodes/software-engineer-agent-v1.chatmode.md +164 -0
- package/assets/chatmodes/specification.chatmode.md +127 -0
- package/assets/chatmodes/swift-mcp-expert.chatmode.md +240 -0
- package/assets/chatmodes/task-planner.chatmode.md +374 -0
- package/assets/chatmodes/task-researcher.chatmode.md +254 -0
- package/assets/chatmodes/tdd-green.chatmode.md +59 -0
- package/assets/chatmodes/tdd-red.chatmode.md +59 -0
- package/assets/chatmodes/tdd-refactor.chatmode.md +84 -0
- package/assets/chatmodes/tech-debt-remediation-plan.chatmode.md +49 -0
- package/assets/chatmodes/terraform-azure-implement.chatmode.md +104 -0
- package/assets/chatmodes/terraform-azure-planning.chatmode.md +157 -0
- package/assets/chatmodes/typescript-mcp-expert.chatmode.md +91 -0
- package/assets/chatmodes/voidbeast-gpt41enhanced.chatmode.md +230 -0
- package/assets/chatmodes/wg-code-alchemist.chatmode.md +61 -0
- package/assets/chatmodes/wg-code-sentinel.chatmode.md +55 -0
- package/assets/collections/ai-prompt-engineering.json +18 -0
- package/assets/collections/angular-development.json +7 -0
- package/assets/collections/azure-cloud-architect.json +29 -0
- package/assets/collections/cpp-development.json +6 -0
- package/assets/collections/database-administration.json +8 -0
- package/assets/collections/devops-sre.json +11 -0
- package/assets/collections/dotnet-development.json +22 -0
- package/assets/collections/general-productivity.json +9 -0
- package/assets/collections/go-development.json +7 -0
- package/assets/collections/java-spring-developer.json +26 -0
- package/assets/collections/learning-mentoring.json +10 -0
- package/assets/collections/legacy-migration.json +4 -0
- package/assets/collections/mcp-specialist.json +41 -0
- package/assets/collections/mobile-development.json +4 -0
- package/assets/collections/php-cms-development.json +11 -0
- package/assets/collections/power-platform-specialist.json +31 -0
- package/assets/collections/project-management.json +12 -0
- package/assets/collections/python-development.json +13 -0
- package/assets/collections/quality-assurance.json +13 -0
- package/assets/collections/ruby-development.json +9 -0
- package/assets/collections/rust-development.json +10 -0
- package/assets/collections/security-specialist.json +8 -0
- package/assets/collections/software-architect.json +25 -0
- package/assets/collections/technical-writing.json +9 -0
- package/assets/collections/web-frontend-development.json +14 -0
- package/assets/instructions/a11y.instructions.md +369 -0
- package/assets/instructions/ai-prompt-engineering-safety-best-practices.instructions.md +867 -0
- package/assets/instructions/angular.instructions.md +104 -0
- package/assets/instructions/ansible.instructions.md +88 -0
- package/assets/instructions/aspnet-rest-apis.instructions.md +110 -0
- package/assets/instructions/astro.instructions.md +182 -0
- package/assets/instructions/azure-devops-pipelines.instructions.md +185 -0
- package/assets/instructions/azure-functions-typescript.instructions.md +14 -0
- package/assets/instructions/azure-logic-apps-power-automate.instructions.md +1943 -0
- package/assets/instructions/azure-verified-modules-terraform.instructions.md +229 -0
- package/assets/instructions/bicep-code-best-practices.instructions.md +54 -0
- package/assets/instructions/blazor.instructions.md +77 -0
- package/assets/instructions/clojure.instructions.md +349 -0
- package/assets/instructions/cmake-vcpkg.instructions.md +10 -0
- package/assets/instructions/codexer.instructions.md +428 -0
- package/assets/instructions/coldfusion-cfc.instructions.md +30 -0
- package/assets/instructions/coldfusion-cfm.instructions.md +28 -0
- package/assets/instructions/collections.instructions.md +54 -0
- package/assets/instructions/containerization-docker-best-practices.instructions.md +681 -0
- package/assets/instructions/convert-jpa-to-spring-data-cosmos.instructions.md +949 -0
- package/assets/instructions/copilot-thought-logging.instructions.md +62 -0
- package/assets/instructions/csharp-ja.instructions.md +114 -0
- package/assets/instructions/csharp-ko.instructions.md +77 -0
- package/assets/instructions/csharp-mcp-server.instructions.md +95 -0
- package/assets/instructions/csharp.instructions.md +114 -0
- package/assets/instructions/dart-n-flutter.instructions.md +447 -0
- package/assets/instructions/declarative-agents-microsoft365.instructions.md +316 -0
- package/assets/instructions/devbox-image-definition.instructions.md +302 -0
- package/assets/instructions/devops-core-principles.instructions.md +167 -0
- package/assets/instructions/dotnet-architecture-good-practices.instructions.md +279 -0
- package/assets/instructions/dotnet-framework.instructions.md +113 -0
- package/assets/instructions/dotnet-maui-9-to-dotnet-maui-10-upgrade.instructions.md +1922 -0
- package/assets/instructions/dotnet-maui.instructions.md +69 -0
- package/assets/instructions/dotnet-upgrade.instructions.md +287 -0
- package/assets/instructions/dotnet-wpf.instructions.md +79 -0
- package/assets/instructions/genaiscript.instructions.md +21 -0
- package/assets/instructions/generate-modern-terraform-code-for-azure.instructions.md +82 -0
- package/assets/instructions/gilfoyle-code-review.instructions.md +114 -0
- package/assets/instructions/github-actions-ci-cd-best-practices.instructions.md +607 -0
- package/assets/instructions/go-mcp-server.instructions.md +346 -0
- package/assets/instructions/go.instructions.md +373 -0
- package/assets/instructions/instructions.instructions.md +256 -0
- package/assets/instructions/java-11-to-java-17-upgrade.instructions.md +793 -0
- package/assets/instructions/java-17-to-java-21-upgrade.instructions.md +464 -0
- package/assets/instructions/java-21-to-java-25-upgrade.instructions.md +311 -0
- package/assets/instructions/java-mcp-server.instructions.md +553 -0
- package/assets/instructions/java.instructions.md +81 -0
- package/assets/instructions/joyride-user-project.instructions.md +206 -0
- package/assets/instructions/joyride-workspace-automation.instructions.md +46 -0
- package/assets/instructions/kotlin-mcp-server.instructions.md +481 -0
- package/assets/instructions/kubernetes-deployment-best-practices.instructions.md +307 -0
- package/assets/instructions/langchain-python.instructions.md +229 -0
- package/assets/instructions/localization.instructions.md +39 -0
- package/assets/instructions/makefile.instructions.md +410 -0
- package/assets/instructions/markdown.instructions.md +52 -0
- package/assets/instructions/memory-bank.instructions.md +299 -0
- package/assets/instructions/mongo-dba.instructions.md +25 -0
- package/assets/instructions/ms-sql-dba.instructions.md +25 -0
- package/assets/instructions/nestjs.instructions.md +406 -0
- package/assets/instructions/nextjs-tailwind.instructions.md +72 -0
- package/assets/instructions/nextjs.instructions.md +143 -0
- package/assets/instructions/nodejs-javascript-vitest.instructions.md +30 -0
- package/assets/instructions/object-calisthenics.instructions.md +302 -0
- package/assets/instructions/oqtane.instructions.md +86 -0
- package/assets/instructions/performance-optimization.instructions.md +420 -0
- package/assets/instructions/php-mcp-server.instructions.md +809 -0
- package/assets/instructions/playwright-dotnet.instructions.md +101 -0
- package/assets/instructions/playwright-python.instructions.md +62 -0
- package/assets/instructions/playwright-typescript.instructions.md +86 -0
- package/assets/instructions/power-apps-canvas-yaml.instructions.md +827 -0
- package/assets/instructions/power-apps-code-apps.instructions.md +601 -0
- package/assets/instructions/power-bi-custom-visuals-development.instructions.md +810 -0
- package/assets/instructions/power-bi-data-modeling-best-practices.instructions.md +639 -0
- package/assets/instructions/power-bi-dax-best-practices.instructions.md +795 -0
- package/assets/instructions/power-bi-devops-alm-best-practices.instructions.md +623 -0
- package/assets/instructions/power-bi-report-design-best-practices.instructions.md +752 -0
- package/assets/instructions/power-bi-security-rls-best-practices.instructions.md +504 -0
- package/assets/instructions/power-platform-connector.instructions.md +430 -0
- package/assets/instructions/power-platform-mcp-development.instructions.md +88 -0
- package/assets/instructions/powershell-pester-5.instructions.md +197 -0
- package/assets/instructions/powershell.instructions.md +356 -0
- package/assets/instructions/prompt.instructions.md +73 -0
- package/assets/instructions/python-mcp-server.instructions.md +204 -0
- package/assets/instructions/python.instructions.md +56 -0
- package/assets/instructions/quarkus-mcp-server-sse.instructions.md +49 -0
- package/assets/instructions/quarkus.instructions.md +98 -0
- package/assets/instructions/r.instructions.md +116 -0
- package/assets/instructions/reactjs.instructions.md +162 -0
- package/assets/instructions/ruby-mcp-server.instructions.md +629 -0
- package/assets/instructions/ruby-on-rails.instructions.md +124 -0
- package/assets/instructions/rust-mcp-server.instructions.md +715 -0
- package/assets/instructions/rust.instructions.md +135 -0
- package/assets/instructions/security-and-owasp.instructions.md +51 -0
- package/assets/instructions/self-explanatory-code-commenting.instructions.md +162 -0
- package/assets/instructions/shell.instructions.md +132 -0
- package/assets/instructions/spec-driven-workflow-v1.instructions.md +323 -0
- package/assets/instructions/springboot.instructions.md +68 -0
- package/assets/instructions/sql-sp-generation.instructions.md +74 -0
- package/assets/instructions/svelte.instructions.md +161 -0
- package/assets/instructions/swift-mcp-server.instructions.md +498 -0
- package/assets/instructions/taming-copilot.instructions.md +40 -0
- package/assets/instructions/tanstack-start-shadcn-tailwind.instructions.md +212 -0
- package/assets/instructions/task-implementation.instructions.md +190 -0
- package/assets/instructions/tasksync.instructions.md +352 -0
- package/assets/instructions/terraform-azure.instructions.md +254 -0
- package/assets/instructions/terraform-sap-btp.instructions.md +195 -0
- package/assets/instructions/terraform.instructions.md +113 -0
- package/assets/instructions/typescript-5-es2022.instructions.md +114 -0
- package/assets/instructions/typescript-mcp-server.instructions.md +228 -0
- package/assets/instructions/update-code-from-shorthand.instructions.md +130 -0
- package/assets/instructions/vuejs3.instructions.md +153 -0
- package/assets/instructions/wordpress.instructions.md +186 -0
- package/assets/prompts/add-educational-comments.prompt.md +129 -0
- package/assets/prompts/ai-prompt-engineering-safety-review.prompt.md +230 -0
- package/assets/prompts/architecture-blueprint-generator.prompt.md +322 -0
- package/assets/prompts/aspnet-minimal-api-openapi.prompt.md +42 -0
- package/assets/prompts/az-cost-optimize.prompt.md +305 -0
- package/assets/prompts/azure-resource-health-diagnose.prompt.md +290 -0
- package/assets/prompts/boost-prompt.prompt.md +25 -0
- package/assets/prompts/breakdown-epic-arch.prompt.md +66 -0
- package/assets/prompts/breakdown-epic-pm.prompt.md +58 -0
- package/assets/prompts/breakdown-feature-implementation.prompt.md +128 -0
- package/assets/prompts/breakdown-feature-prd.prompt.md +61 -0
- package/assets/prompts/breakdown-plan.prompt.md +509 -0
- package/assets/prompts/breakdown-test.prompt.md +365 -0
- package/assets/prompts/code-exemplars-blueprint-generator.prompt.md +126 -0
- package/assets/prompts/comment-code-generate-a-tutorial.prompt.md +26 -0
- package/assets/prompts/containerize-aspnet-framework.prompt.md +455 -0
- package/assets/prompts/containerize-aspnetcore.prompt.md +393 -0
- package/assets/prompts/conventional-commit.prompt.md +73 -0
- package/assets/prompts/copilot-instructions-blueprint-generator.prompt.md +294 -0
- package/assets/prompts/cosmosdb-datamodeling.prompt.md +1045 -0
- package/assets/prompts/create-agentsmd.prompt.md +249 -0
- package/assets/prompts/create-architectural-decision-record.prompt.md +97 -0
- package/assets/prompts/create-github-action-workflow-specification.prompt.md +276 -0
- package/assets/prompts/create-github-issue-feature-from-specification.prompt.md +28 -0
- package/assets/prompts/create-github-issues-feature-from-implementation-plan.prompt.md +28 -0
- package/assets/prompts/create-github-issues-for-unmet-specification-requirements.prompt.md +35 -0
- package/assets/prompts/create-github-pull-request-from-specification.prompt.md +24 -0
- package/assets/prompts/create-implementation-plan.prompt.md +157 -0
- package/assets/prompts/create-llms.prompt.md +210 -0
- package/assets/prompts/create-oo-component-documentation.prompt.md +193 -0
- package/assets/prompts/create-readme.prompt.md +21 -0
- package/assets/prompts/create-specification.prompt.md +127 -0
- package/assets/prompts/create-spring-boot-java-project.prompt.md +163 -0
- package/assets/prompts/create-spring-boot-kotlin-project.prompt.md +147 -0
- package/assets/prompts/create-technical-spike.prompt.md +231 -0
- package/assets/prompts/csharp-async.prompt.md +50 -0
- package/assets/prompts/csharp-docs.prompt.md +63 -0
- package/assets/prompts/csharp-mcp-server-generator.prompt.md +59 -0
- package/assets/prompts/csharp-mstest.prompt.md +67 -0
- package/assets/prompts/csharp-nunit.prompt.md +72 -0
- package/assets/prompts/csharp-tunit.prompt.md +101 -0
- package/assets/prompts/csharp-xunit.prompt.md +69 -0
- package/assets/prompts/declarative-agents.prompt.md +93 -0
- package/assets/prompts/documentation-writer.prompt.md +46 -0
- package/assets/prompts/dotnet-best-practices.prompt.md +84 -0
- package/assets/prompts/dotnet-design-pattern-review.prompt.md +41 -0
- package/assets/prompts/dotnet-upgrade.prompt.md +116 -0
- package/assets/prompts/editorconfig.prompt.md +64 -0
- package/assets/prompts/ef-core.prompt.md +76 -0
- package/assets/prompts/finalize-agent-prompt.prompt.md +27 -0
- package/assets/prompts/first-ask.prompt.md +29 -0
- package/assets/prompts/folder-structure-blueprint-generator.prompt.md +405 -0
- package/assets/prompts/gen-specs-as-issues.prompt.md +165 -0
- package/assets/prompts/generate-custom-instructions-from-codebase.prompt.md +240 -0
- package/assets/prompts/git-flow-branch-creator.prompt.md +293 -0
- package/assets/prompts/github-copilot-starter.prompt.md +372 -0
- package/assets/prompts/go-mcp-server-generator.prompt.md +334 -0
- package/assets/prompts/java-docs.prompt.md +24 -0
- package/assets/prompts/java-junit.prompt.md +64 -0
- package/assets/prompts/java-mcp-server-generator.prompt.md +756 -0
- package/assets/prompts/java-refactoring-extract-method.prompt.md +105 -0
- package/assets/prompts/java-refactoring-remove-parameter.prompt.md +85 -0
- package/assets/prompts/java-springboot.prompt.md +66 -0
- package/assets/prompts/javascript-typescript-jest.prompt.md +44 -0
- package/assets/prompts/kotlin-mcp-server-generator.prompt.md +449 -0
- package/assets/prompts/kotlin-springboot.prompt.md +71 -0
- package/assets/prompts/mcp-copilot-studio-server-generator.prompt.md +118 -0
- package/assets/prompts/memory-merger.prompt.md +107 -0
- package/assets/prompts/mkdocs-translations.prompt.md +110 -0
- package/assets/prompts/model-recommendation.prompt.md +677 -0
- package/assets/prompts/multi-stage-dockerfile.prompt.md +47 -0
- package/assets/prompts/my-issues.prompt.md +9 -0
- package/assets/prompts/my-pull-requests.prompt.md +15 -0
- package/assets/prompts/next-intl-add-language.prompt.md +20 -0
- package/assets/prompts/php-mcp-server-generator.prompt.md +522 -0
- package/assets/prompts/playwright-automation-fill-in-form.prompt.md +30 -0
- package/assets/prompts/playwright-explore-website.prompt.md +19 -0
- package/assets/prompts/playwright-generate-test.prompt.md +19 -0
- package/assets/prompts/postgresql-code-review.prompt.md +214 -0
- package/assets/prompts/postgresql-optimization.prompt.md +406 -0
- package/assets/prompts/power-apps-code-app-scaffold.prompt.md +150 -0
- package/assets/prompts/power-bi-dax-optimization.prompt.md +175 -0
- package/assets/prompts/power-bi-model-design-review.prompt.md +405 -0
- package/assets/prompts/power-bi-performance-troubleshooting.prompt.md +384 -0
- package/assets/prompts/power-bi-report-design-consultation.prompt.md +353 -0
- package/assets/prompts/power-platform-mcp-connector-suite.prompt.md +156 -0
- package/assets/prompts/project-workflow-analysis-blueprint-generator.prompt.md +294 -0
- package/assets/prompts/prompt-builder.prompt.md +142 -0
- package/assets/prompts/pytest-coverage.prompt.md +28 -0
- package/assets/prompts/python-mcp-server-generator.prompt.md +105 -0
- package/assets/prompts/readme-blueprint-generator.prompt.md +79 -0
- package/assets/prompts/remember-interactive-programming.prompt.md +13 -0
- package/assets/prompts/remember.prompt.md +125 -0
- package/assets/prompts/repo-story-time.prompt.md +156 -0
- package/assets/prompts/review-and-refactor.prompt.md +15 -0
- package/assets/prompts/ruby-mcp-server-generator.prompt.md +660 -0
- package/assets/prompts/rust-mcp-server-generator.prompt.md +578 -0
- package/assets/prompts/shuffle-json-data.prompt.md +151 -0
- package/assets/prompts/sql-code-review.prompt.md +303 -0
- package/assets/prompts/sql-optimization.prompt.md +298 -0
- package/assets/prompts/suggest-awesome-github-copilot-agents.prompt.md +72 -0
- package/assets/prompts/suggest-awesome-github-copilot-chatmodes.prompt.md +71 -0
- package/assets/prompts/suggest-awesome-github-copilot-collections.prompt.md +149 -0
- package/assets/prompts/suggest-awesome-github-copilot-instructions.prompt.md +88 -0
- package/assets/prompts/suggest-awesome-github-copilot-prompts.prompt.md +71 -0
- package/assets/prompts/swift-mcp-server-generator.prompt.md +669 -0
- package/assets/prompts/technology-stack-blueprint-generator.prompt.md +242 -0
- package/assets/prompts/typescript-mcp-server-generator.prompt.md +90 -0
- package/assets/prompts/update-avm-modules-in-bicep.prompt.md +60 -0
- package/assets/prompts/update-implementation-plan.prompt.md +157 -0
- package/assets/prompts/update-llms.prompt.md +216 -0
- package/assets/prompts/update-markdown-file-index.prompt.md +76 -0
- package/assets/prompts/update-oo-component-documentation.prompt.md +162 -0
- package/assets/prompts/update-specification.prompt.md +127 -0
- package/assets/prompts/write-coding-standards-from-file.prompt.md +316 -0
- package/bin/cli.js +200 -0
- package/package.json +53 -0
- package/scripts/sync.js +99 -0
- package/verdaccio/config.yaml +202 -0
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: agent
|
|
3
|
+
description: 'Generate a complete Kotlin MCP server project with proper structure, dependencies, and implementation using the official io.modelcontextprotocol:kotlin-sdk library.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Kotlin MCP Server Project Generator
|
|
7
|
+
|
|
8
|
+
Generate a complete, production-ready Model Context Protocol (MCP) server project in Kotlin.
|
|
9
|
+
|
|
10
|
+
## Project Requirements
|
|
11
|
+
|
|
12
|
+
You will create a Kotlin MCP server with:
|
|
13
|
+
|
|
14
|
+
1. **Project Structure**: Gradle-based Kotlin project layout
|
|
15
|
+
2. **Dependencies**: Official MCP SDK, Ktor, and kotlinx libraries
|
|
16
|
+
3. **Server Setup**: Configured MCP server with transports
|
|
17
|
+
4. **Tools**: At least 2-3 useful tools with typed inputs/outputs
|
|
18
|
+
5. **Error Handling**: Proper exception handling and validation
|
|
19
|
+
6. **Documentation**: README with setup and usage instructions
|
|
20
|
+
7. **Testing**: Basic test structure with coroutines
|
|
21
|
+
|
|
22
|
+
## Template Structure
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
myserver/
|
|
26
|
+
├── build.gradle.kts
|
|
27
|
+
├── settings.gradle.kts
|
|
28
|
+
├── gradle.properties
|
|
29
|
+
├── src/
|
|
30
|
+
│ ├── main/
|
|
31
|
+
│ │ └── kotlin/
|
|
32
|
+
│ │ └── com/example/myserver/
|
|
33
|
+
│ │ ├── Main.kt
|
|
34
|
+
│ │ ├── Server.kt
|
|
35
|
+
│ │ ├── config/
|
|
36
|
+
│ │ │ └── Config.kt
|
|
37
|
+
│ │ └── tools/
|
|
38
|
+
│ │ ├── Tool1.kt
|
|
39
|
+
│ │ └── Tool2.kt
|
|
40
|
+
│ └── test/
|
|
41
|
+
│ └── kotlin/
|
|
42
|
+
│ └── com/example/myserver/
|
|
43
|
+
│ └── ServerTest.kt
|
|
44
|
+
└── README.md
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## build.gradle.kts Template
|
|
48
|
+
|
|
49
|
+
```kotlin
|
|
50
|
+
plugins {
|
|
51
|
+
kotlin("jvm") version "2.1.0"
|
|
52
|
+
kotlin("plugin.serialization") version "2.1.0"
|
|
53
|
+
application
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
group = "com.example"
|
|
57
|
+
version = "1.0.0"
|
|
58
|
+
|
|
59
|
+
repositories {
|
|
60
|
+
mavenCentral()
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
dependencies {
|
|
64
|
+
implementation("io.modelcontextprotocol:kotlin-sdk:0.7.2")
|
|
65
|
+
|
|
66
|
+
// Ktor for transports
|
|
67
|
+
implementation("io.ktor:ktor-server-netty:3.0.0")
|
|
68
|
+
implementation("io.ktor:ktor-client-cio:3.0.0")
|
|
69
|
+
|
|
70
|
+
// Serialization
|
|
71
|
+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
|
|
72
|
+
|
|
73
|
+
// Coroutines
|
|
74
|
+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
|
|
75
|
+
|
|
76
|
+
// Logging
|
|
77
|
+
implementation("io.github.oshai:kotlin-logging-jvm:7.0.0")
|
|
78
|
+
implementation("ch.qos.logback:logback-classic:1.5.12")
|
|
79
|
+
|
|
80
|
+
// Testing
|
|
81
|
+
testImplementation(kotlin("test"))
|
|
82
|
+
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.9.0")
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
application {
|
|
86
|
+
mainClass.set("com.example.myserver.MainKt")
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
tasks.test {
|
|
90
|
+
useJUnitPlatform()
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
kotlin {
|
|
94
|
+
jvmToolchain(17)
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## settings.gradle.kts Template
|
|
99
|
+
|
|
100
|
+
```kotlin
|
|
101
|
+
rootProject.name = "{{PROJECT_NAME}}"
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Main.kt Template
|
|
105
|
+
|
|
106
|
+
```kotlin
|
|
107
|
+
package com.example.myserver
|
|
108
|
+
|
|
109
|
+
import io.modelcontextprotocol.kotlin.sdk.server.StdioServerTransport
|
|
110
|
+
import kotlinx.coroutines.runBlocking
|
|
111
|
+
import io.github.oshai.kotlinlogging.KotlinLogging
|
|
112
|
+
|
|
113
|
+
private val logger = KotlinLogging.logger {}
|
|
114
|
+
|
|
115
|
+
fun main() = runBlocking {
|
|
116
|
+
logger.info { "Starting MCP server..." }
|
|
117
|
+
|
|
118
|
+
val config = loadConfig()
|
|
119
|
+
val server = createServer(config)
|
|
120
|
+
|
|
121
|
+
// Use stdio transport
|
|
122
|
+
val transport = StdioServerTransport()
|
|
123
|
+
|
|
124
|
+
logger.info { "Server '${config.name}' v${config.version} ready" }
|
|
125
|
+
server.connect(transport)
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Server.kt Template
|
|
130
|
+
|
|
131
|
+
```kotlin
|
|
132
|
+
package com.example.myserver
|
|
133
|
+
|
|
134
|
+
import io.modelcontextprotocol.kotlin.sdk.server.Server
|
|
135
|
+
import io.modelcontextprotocol.kotlin.sdk.server.ServerOptions
|
|
136
|
+
import io.modelcontextprotocol.kotlin.sdk.Implementation
|
|
137
|
+
import io.modelcontextprotocol.kotlin.sdk.ServerCapabilities
|
|
138
|
+
import com.example.myserver.tools.registerTools
|
|
139
|
+
|
|
140
|
+
fun createServer(config: Config): Server {
|
|
141
|
+
val server = Server(
|
|
142
|
+
serverInfo = Implementation(
|
|
143
|
+
name = config.name,
|
|
144
|
+
version = config.version
|
|
145
|
+
),
|
|
146
|
+
options = ServerOptions(
|
|
147
|
+
capabilities = ServerCapabilities(
|
|
148
|
+
tools = ServerCapabilities.Tools(),
|
|
149
|
+
resources = ServerCapabilities.Resources(
|
|
150
|
+
subscribe = true,
|
|
151
|
+
listChanged = true
|
|
152
|
+
),
|
|
153
|
+
prompts = ServerCapabilities.Prompts(listChanged = true)
|
|
154
|
+
)
|
|
155
|
+
)
|
|
156
|
+
) {
|
|
157
|
+
config.description
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Register all tools
|
|
161
|
+
server.registerTools()
|
|
162
|
+
|
|
163
|
+
return server
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Config.kt Template
|
|
168
|
+
|
|
169
|
+
```kotlin
|
|
170
|
+
package com.example.myserver.config
|
|
171
|
+
|
|
172
|
+
import kotlinx.serialization.Serializable
|
|
173
|
+
|
|
174
|
+
@Serializable
|
|
175
|
+
data class Config(
|
|
176
|
+
val name: String = "{{PROJECT_NAME}}",
|
|
177
|
+
val version: String = "1.0.0",
|
|
178
|
+
val description: String = "{{PROJECT_DESCRIPTION}}"
|
|
179
|
+
)
|
|
180
|
+
|
|
181
|
+
fun loadConfig(): Config {
|
|
182
|
+
return Config(
|
|
183
|
+
name = System.getenv("SERVER_NAME") ?: "{{PROJECT_NAME}}",
|
|
184
|
+
version = System.getenv("VERSION") ?: "1.0.0",
|
|
185
|
+
description = System.getenv("DESCRIPTION") ?: "{{PROJECT_DESCRIPTION}}"
|
|
186
|
+
)
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## Tool1.kt Template
|
|
191
|
+
|
|
192
|
+
```kotlin
|
|
193
|
+
package com.example.myserver.tools
|
|
194
|
+
|
|
195
|
+
import io.modelcontextprotocol.kotlin.sdk.server.Server
|
|
196
|
+
import io.modelcontextprotocol.kotlin.sdk.CallToolRequest
|
|
197
|
+
import io.modelcontextprotocol.kotlin.sdk.CallToolResult
|
|
198
|
+
import io.modelcontextprotocol.kotlin.sdk.TextContent
|
|
199
|
+
import kotlinx.serialization.json.buildJsonObject
|
|
200
|
+
import kotlinx.serialization.json.put
|
|
201
|
+
import kotlinx.serialization.json.putJsonObject
|
|
202
|
+
import kotlinx.serialization.json.putJsonArray
|
|
203
|
+
|
|
204
|
+
fun Server.registerTool1() {
|
|
205
|
+
addTool(
|
|
206
|
+
name = "tool1",
|
|
207
|
+
description = "Description of what tool1 does",
|
|
208
|
+
inputSchema = buildJsonObject {
|
|
209
|
+
put("type", "object")
|
|
210
|
+
putJsonObject("properties") {
|
|
211
|
+
putJsonObject("param1") {
|
|
212
|
+
put("type", "string")
|
|
213
|
+
put("description", "First parameter")
|
|
214
|
+
}
|
|
215
|
+
putJsonObject("param2") {
|
|
216
|
+
put("type", "integer")
|
|
217
|
+
put("description", "Optional second parameter")
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
putJsonArray("required") {
|
|
221
|
+
add("param1")
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
) { request: CallToolRequest ->
|
|
225
|
+
// Extract and validate parameters
|
|
226
|
+
val param1 = request.params.arguments["param1"] as? String
|
|
227
|
+
?: throw IllegalArgumentException("param1 is required")
|
|
228
|
+
val param2 = (request.params.arguments["param2"] as? Number)?.toInt() ?: 0
|
|
229
|
+
|
|
230
|
+
// Perform tool logic
|
|
231
|
+
val result = performTool1Logic(param1, param2)
|
|
232
|
+
|
|
233
|
+
CallToolResult(
|
|
234
|
+
content = listOf(
|
|
235
|
+
TextContent(text = result)
|
|
236
|
+
)
|
|
237
|
+
)
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
private fun performTool1Logic(param1: String, param2: Int): String {
|
|
242
|
+
// Implement tool logic here
|
|
243
|
+
return "Processed: $param1 with value $param2"
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
## tools/ToolRegistry.kt Template
|
|
248
|
+
|
|
249
|
+
```kotlin
|
|
250
|
+
package com.example.myserver.tools
|
|
251
|
+
|
|
252
|
+
import io.modelcontextprotocol.kotlin.sdk.server.Server
|
|
253
|
+
|
|
254
|
+
fun Server.registerTools() {
|
|
255
|
+
registerTool1()
|
|
256
|
+
registerTool2()
|
|
257
|
+
// Register additional tools here
|
|
258
|
+
}
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## ServerTest.kt Template
|
|
262
|
+
|
|
263
|
+
```kotlin
|
|
264
|
+
package com.example.myserver
|
|
265
|
+
|
|
266
|
+
import kotlinx.coroutines.test.runTest
|
|
267
|
+
import kotlin.test.Test
|
|
268
|
+
import kotlin.test.assertEquals
|
|
269
|
+
import kotlin.test.assertFalse
|
|
270
|
+
|
|
271
|
+
class ServerTest {
|
|
272
|
+
|
|
273
|
+
@Test
|
|
274
|
+
fun `test server creation`() = runTest {
|
|
275
|
+
val config = Config(
|
|
276
|
+
name = "test-server",
|
|
277
|
+
version = "1.0.0",
|
|
278
|
+
description = "Test server"
|
|
279
|
+
)
|
|
280
|
+
|
|
281
|
+
val server = createServer(config)
|
|
282
|
+
|
|
283
|
+
assertEquals("test-server", server.serverInfo.name)
|
|
284
|
+
assertEquals("1.0.0", server.serverInfo.version)
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
@Test
|
|
288
|
+
fun `test tool1 execution`() = runTest {
|
|
289
|
+
val config = Config()
|
|
290
|
+
val server = createServer(config)
|
|
291
|
+
|
|
292
|
+
// Test tool execution
|
|
293
|
+
// Note: You'll need to implement proper testing utilities
|
|
294
|
+
// for calling tools in the server
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
## README.md Template
|
|
300
|
+
|
|
301
|
+
```markdown
|
|
302
|
+
# {{PROJECT_NAME}}
|
|
303
|
+
|
|
304
|
+
A Model Context Protocol (MCP) server built with Kotlin.
|
|
305
|
+
|
|
306
|
+
## Description
|
|
307
|
+
|
|
308
|
+
{{PROJECT_DESCRIPTION}}
|
|
309
|
+
|
|
310
|
+
## Requirements
|
|
311
|
+
|
|
312
|
+
- Java 17 or higher
|
|
313
|
+
- Kotlin 2.1.0
|
|
314
|
+
|
|
315
|
+
## Installation
|
|
316
|
+
|
|
317
|
+
Build the project:
|
|
318
|
+
|
|
319
|
+
\`\`\`bash
|
|
320
|
+
./gradlew build
|
|
321
|
+
\`\`\`
|
|
322
|
+
|
|
323
|
+
## Usage
|
|
324
|
+
|
|
325
|
+
Run the server with stdio transport:
|
|
326
|
+
|
|
327
|
+
\`\`\`bash
|
|
328
|
+
./gradlew run
|
|
329
|
+
\`\`\`
|
|
330
|
+
|
|
331
|
+
Or build and run the jar:
|
|
332
|
+
|
|
333
|
+
\`\`\`bash
|
|
334
|
+
./gradlew installDist
|
|
335
|
+
./build/install/{{PROJECT_NAME}}/bin/{{PROJECT_NAME}}
|
|
336
|
+
\`\`\`
|
|
337
|
+
|
|
338
|
+
## Configuration
|
|
339
|
+
|
|
340
|
+
Configure via environment variables:
|
|
341
|
+
|
|
342
|
+
- `SERVER_NAME`: Server name (default: "{{PROJECT_NAME}}")
|
|
343
|
+
- `VERSION`: Server version (default: "1.0.0")
|
|
344
|
+
- `DESCRIPTION`: Server description
|
|
345
|
+
|
|
346
|
+
## Available Tools
|
|
347
|
+
|
|
348
|
+
### tool1
|
|
349
|
+
{{TOOL1_DESCRIPTION}}
|
|
350
|
+
|
|
351
|
+
**Input:**
|
|
352
|
+
- `param1` (string, required): First parameter
|
|
353
|
+
- `param2` (integer, optional): Second parameter
|
|
354
|
+
|
|
355
|
+
**Output:**
|
|
356
|
+
- Text result of the operation
|
|
357
|
+
|
|
358
|
+
## Development
|
|
359
|
+
|
|
360
|
+
Run tests:
|
|
361
|
+
|
|
362
|
+
\`\`\`bash
|
|
363
|
+
./gradlew test
|
|
364
|
+
\`\`\`
|
|
365
|
+
|
|
366
|
+
Build:
|
|
367
|
+
|
|
368
|
+
\`\`\`bash
|
|
369
|
+
./gradlew build
|
|
370
|
+
\`\`\`
|
|
371
|
+
|
|
372
|
+
Run with auto-reload (development):
|
|
373
|
+
|
|
374
|
+
\`\`\`bash
|
|
375
|
+
./gradlew run --continuous
|
|
376
|
+
\`\`\`
|
|
377
|
+
|
|
378
|
+
## Multiplatform
|
|
379
|
+
|
|
380
|
+
This project uses Kotlin Multiplatform and can target JVM, Wasm, and iOS.
|
|
381
|
+
See `build.gradle.kts` for platform configuration.
|
|
382
|
+
|
|
383
|
+
## License
|
|
384
|
+
|
|
385
|
+
MIT
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
## Generation Instructions
|
|
389
|
+
|
|
390
|
+
When generating a Kotlin MCP server:
|
|
391
|
+
|
|
392
|
+
1. **Gradle Setup**: Create proper `build.gradle.kts` with all dependencies
|
|
393
|
+
2. **Package Structure**: Follow Kotlin package conventions
|
|
394
|
+
3. **Type Safety**: Use data classes and kotlinx.serialization
|
|
395
|
+
4. **Coroutines**: All operations should be suspending functions
|
|
396
|
+
5. **Error Handling**: Use Kotlin exceptions and validation
|
|
397
|
+
6. **JSON Schemas**: Use `buildJsonObject` for tool schemas
|
|
398
|
+
7. **Testing**: Include coroutine test utilities
|
|
399
|
+
8. **Logging**: Use kotlin-logging for structured logging
|
|
400
|
+
9. **Configuration**: Use data classes and environment variables
|
|
401
|
+
10. **Documentation**: KDoc comments for public APIs
|
|
402
|
+
|
|
403
|
+
## Best Practices
|
|
404
|
+
|
|
405
|
+
- Use suspending functions for all async operations
|
|
406
|
+
- Leverage Kotlin's null safety and type system
|
|
407
|
+
- Use data classes for structured data
|
|
408
|
+
- Apply kotlinx.serialization for JSON handling
|
|
409
|
+
- Use sealed classes for result types
|
|
410
|
+
- Implement proper error handling with Result/Either patterns
|
|
411
|
+
- Write tests using kotlinx-coroutines-test
|
|
412
|
+
- Use dependency injection for testability
|
|
413
|
+
- Follow Kotlin coding conventions
|
|
414
|
+
- Use meaningful names and KDoc comments
|
|
415
|
+
|
|
416
|
+
## Transport Options
|
|
417
|
+
|
|
418
|
+
### Stdio Transport
|
|
419
|
+
```kotlin
|
|
420
|
+
val transport = StdioServerTransport()
|
|
421
|
+
server.connect(transport)
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
### SSE Transport (Ktor)
|
|
425
|
+
```kotlin
|
|
426
|
+
embeddedServer(Netty, port = 8080) {
|
|
427
|
+
mcp {
|
|
428
|
+
Server(/*...*/) { "Description" }
|
|
429
|
+
}
|
|
430
|
+
}.start(wait = true)
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
## Multiplatform Configuration
|
|
434
|
+
|
|
435
|
+
For multiplatform projects, add to `build.gradle.kts`:
|
|
436
|
+
|
|
437
|
+
```kotlin
|
|
438
|
+
kotlin {
|
|
439
|
+
jvm()
|
|
440
|
+
js(IR) { nodejs() }
|
|
441
|
+
wasmJs()
|
|
442
|
+
|
|
443
|
+
sourceSets {
|
|
444
|
+
commonMain.dependencies {
|
|
445
|
+
implementation("io.modelcontextprotocol:kotlin-sdk:0.7.2")
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
```
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
mode: 'agent'
|
|
3
|
+
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems', 'search']
|
|
4
|
+
description: 'Get best practices for developing applications with Spring Boot and Kotlin.'
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Spring Boot with Kotlin Best Practices
|
|
8
|
+
|
|
9
|
+
Your goal is to help me write high-quality, idiomatic Spring Boot applications using Kotlin.
|
|
10
|
+
|
|
11
|
+
## Project Setup & Structure
|
|
12
|
+
|
|
13
|
+
- **Build Tool:** Use Maven (`pom.xml`) or Gradle (`build.gradle`) with the Kotlin plugins (`kotlin-maven-plugin` or `org.jetbrains.kotlin.jvm`).
|
|
14
|
+
- **Kotlin Plugins:** For JPA, enable the `kotlin-jpa` plugin to automatically make entity classes `open` without boilerplate.
|
|
15
|
+
- **Starters:** Use Spring Boot starters (e.g., `spring-boot-starter-web`, `spring-boot-starter-data-jpa`) as usual.
|
|
16
|
+
- **Package Structure:** Organize code by feature/domain (e.g., `com.example.app.order`, `com.example.app.user`) rather than by layer.
|
|
17
|
+
|
|
18
|
+
## Dependency Injection & Components
|
|
19
|
+
|
|
20
|
+
- **Primary Constructors:** Always use the primary constructor for required dependency injection. It's the most idiomatic and concise approach in Kotlin.
|
|
21
|
+
- **Immutability:** Declare dependencies as `private val` in the primary constructor. Prefer `val` over `var` everywhere to promote immutability.
|
|
22
|
+
- **Component Stereotypes:** Use `@Service`, `@Repository`, and `@RestController` annotations just as you would in Java.
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
- **Externalized Configuration:** Use `application.yml` for its readability and hierarchical structure.
|
|
27
|
+
- **Type-Safe Properties:** Use `@ConfigurationProperties` with `data class` to create immutable, type-safe configuration objects.
|
|
28
|
+
- **Profiles:** Use Spring Profiles (`application-dev.yml`, `application-prod.yml`) to manage environment-specific configurations.
|
|
29
|
+
- **Secrets Management:** Never hardcode secrets. Use environment variables or a dedicated secret management tool like HashiCorp Vault or AWS Secrets Manager.
|
|
30
|
+
|
|
31
|
+
## Web Layer (Controllers)
|
|
32
|
+
|
|
33
|
+
- **RESTful APIs:** Design clear and consistent RESTful endpoints.
|
|
34
|
+
- **Data Classes for DTOs:** Use Kotlin `data class` for all DTOs. This provides `equals()`, `hashCode()`, `toString()`, and `copy()` for free and promotes immutability.
|
|
35
|
+
- **Validation:** Use Java Bean Validation (JSR 380) with annotations (`@Valid`, `@NotNull`, `@Size`) on your DTO data classes.
|
|
36
|
+
- **Error Handling:** Implement a global exception handler using `@ControllerAdvice` and `@ExceptionHandler` for consistent error responses.
|
|
37
|
+
|
|
38
|
+
## Service Layer
|
|
39
|
+
|
|
40
|
+
- **Business Logic:** Encapsulate business logic within `@Service` classes.
|
|
41
|
+
- **Statelessness:** Services should be stateless.
|
|
42
|
+
- **Transaction Management:** Use `@Transactional` on service methods. In Kotlin, this can be applied to class or function level.
|
|
43
|
+
|
|
44
|
+
## Data Layer (Repositories)
|
|
45
|
+
|
|
46
|
+
- **JPA Entities:** Define entities as classes. Remember they must be `open`. It's highly recommended to use the `kotlin-jpa` compiler plugin to handle this automatically.
|
|
47
|
+
- **Null Safety:** Leverage Kotlin's null-safety (`?`) to clearly define which entity fields are optional or required at the type level.
|
|
48
|
+
- **Spring Data JPA:** Use Spring Data JPA repositories by extending `JpaRepository` or `CrudRepository`.
|
|
49
|
+
- **Coroutines:** For reactive applications, leverage Spring Boot's support for Kotlin Coroutines in the data layer.
|
|
50
|
+
|
|
51
|
+
## Logging
|
|
52
|
+
|
|
53
|
+
- **Companion Object Logger:** The idiomatic way to declare a logger is in a companion object.
|
|
54
|
+
```kotlin
|
|
55
|
+
companion object {
|
|
56
|
+
private val logger = LoggerFactory.getLogger(MyClass::class.java)
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
- **Parameterized Logging:** Use parameterized messages (`logger.info("Processing user {}...", userId)`) for performance and clarity.
|
|
60
|
+
|
|
61
|
+
## Testing
|
|
62
|
+
|
|
63
|
+
- **JUnit 5:** JUnit 5 is the default and works seamlessly with Kotlin.
|
|
64
|
+
- **Idiomatic Testing Libraries:** For more fluent and idiomatic tests, consider using **Kotest** for assertions and **MockK** for mocking. They are designed for Kotlin and offer a more expressive syntax.
|
|
65
|
+
- **Test Slices:** Use test slice annotations like `@WebMvcTest` or `@DataJpaTest` to test specific parts of the application.
|
|
66
|
+
- **Testcontainers:** Use Testcontainers for reliable integration tests with real databases, message brokers, etc.
|
|
67
|
+
|
|
68
|
+
## Coroutines & Asynchronous Programming
|
|
69
|
+
|
|
70
|
+
- **`suspend` functions:** For non-blocking asynchronous code, use `suspend` functions in your controllers and services. Spring Boot has excellent support for coroutines.
|
|
71
|
+
- **Structured Concurrency:** Use `coroutineScope` or `supervisorScope` to manage the lifecycle of coroutines.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generate a complete MCP server implementation optimized for Copilot Studio integration with proper schema constraints and streamable HTTP support
|
|
3
|
+
mode: agent
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Power Platform MCP Connector Generator
|
|
7
|
+
|
|
8
|
+
Generate a complete Power Platform custom connector with Model Context Protocol (MCP) integration for Microsoft Copilot Studio. This prompt creates all necessary files following Power Platform connector standards with MCP streamable HTTP support.
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
Create a complete MCP server implementation that:
|
|
13
|
+
|
|
14
|
+
1. **Uses Copilot Studio MCP Pattern:**
|
|
15
|
+
- Implement `x-ms-agentic-protocol: mcp-streamable-1.0`
|
|
16
|
+
- Support JSON-RPC 2.0 communication protocol
|
|
17
|
+
- Provide streamable HTTP endpoint at `/mcp`
|
|
18
|
+
- Follow Power Platform connector structure
|
|
19
|
+
|
|
20
|
+
2. **Schema Compliance Requirements:**
|
|
21
|
+
- **NO reference types** in tool inputs/outputs (filtered by Copilot Studio)
|
|
22
|
+
- **Single type values only** (not arrays of multiple types)
|
|
23
|
+
- **Avoid enum inputs** (interpreted as string, not enum)
|
|
24
|
+
- Use primitive types: string, number, integer, boolean, array, object
|
|
25
|
+
- Ensure all endpoints return full URIs
|
|
26
|
+
|
|
27
|
+
3. **MCP Components to Include:**
|
|
28
|
+
- **Tools**: Functions for the language model to call (✅ Supported in Copilot Studio)
|
|
29
|
+
- **Resources**: File-like data outputs from tools (✅ Supported in Copilot Studio - must be tool outputs to be accessible)
|
|
30
|
+
- **Prompts**: Predefined templates for specific tasks (❌ Not yet supported in Copilot Studio)
|
|
31
|
+
|
|
32
|
+
4. **Implementation Structure:**
|
|
33
|
+
```
|
|
34
|
+
/apiDefinition.swagger.json (Power Platform connector schema)
|
|
35
|
+
/apiProperties.json (Connector metadata and configuration)
|
|
36
|
+
/script.csx (Custom code transformations and logic)
|
|
37
|
+
/server/ (MCP server implementation)
|
|
38
|
+
/tools/ (Individual MCP tools)
|
|
39
|
+
/resources/ (MCP resource handlers)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Context Variables
|
|
43
|
+
|
|
44
|
+
- **Server Purpose**: [Describe what the MCP server should accomplish]
|
|
45
|
+
- **Tools Needed**: [List of specific tools to implement]
|
|
46
|
+
- **Resources**: [Types of resources to provide]
|
|
47
|
+
- **Authentication**: [Auth method: none, api-key, oauth2]
|
|
48
|
+
- **Host Environment**: [Azure Function, Express.js, FastAPI, etc.]
|
|
49
|
+
- **Target APIs**: [External APIs to integrate with]
|
|
50
|
+
|
|
51
|
+
## Expected Output
|
|
52
|
+
|
|
53
|
+
Generate:
|
|
54
|
+
|
|
55
|
+
1. **apiDefinition.swagger.json** with:
|
|
56
|
+
- Proper `x-ms-agentic-protocol: mcp-streamable-1.0`
|
|
57
|
+
- MCP endpoint at POST `/mcp`
|
|
58
|
+
- Compliant schema definitions (no reference types)
|
|
59
|
+
- McpResponse and McpErrorResponse definitions
|
|
60
|
+
|
|
61
|
+
2. **apiProperties.json** with:
|
|
62
|
+
- Connector metadata and branding
|
|
63
|
+
- Authentication configuration
|
|
64
|
+
- Policy templates if needed
|
|
65
|
+
|
|
66
|
+
3. **script.csx** with:
|
|
67
|
+
- Custom C# code for request/response transformations
|
|
68
|
+
- MCP JSON-RPC message handling logic
|
|
69
|
+
- Data validation and processing functions
|
|
70
|
+
- Error handling and logging capabilities
|
|
71
|
+
|
|
72
|
+
4. **MCP Server Code** with:
|
|
73
|
+
- JSON-RPC 2.0 request handler
|
|
74
|
+
- Tool registration and execution
|
|
75
|
+
- Resource management (as tool outputs)
|
|
76
|
+
- Proper error handling
|
|
77
|
+
- Copilot Studio compatibility checks
|
|
78
|
+
|
|
79
|
+
5. **Individual Tools** that:
|
|
80
|
+
- Accept only primitive type inputs
|
|
81
|
+
- Return structured outputs
|
|
82
|
+
- Include resources as outputs when needed
|
|
83
|
+
- Provide clear descriptions for Copilot Studio
|
|
84
|
+
|
|
85
|
+
6. **Deployment Configuration** for:
|
|
86
|
+
- Power Platform environment
|
|
87
|
+
- Copilot Studio agent integration
|
|
88
|
+
- Testing and validation
|
|
89
|
+
|
|
90
|
+
## Validation Checklist
|
|
91
|
+
|
|
92
|
+
Ensure generated code:
|
|
93
|
+
- [ ] No reference types in schemas
|
|
94
|
+
- [ ] All type fields are single types
|
|
95
|
+
- [ ] Enum handling via string with validation
|
|
96
|
+
- [ ] Resources available through tool outputs
|
|
97
|
+
- [ ] Full URI endpoints
|
|
98
|
+
- [ ] JSON-RPC 2.0 compliance
|
|
99
|
+
- [ ] Proper x-ms-agentic-protocol header
|
|
100
|
+
- [ ] McpResponse/McpErrorResponse schemas
|
|
101
|
+
- [ ] Clear tool descriptions for Copilot Studio
|
|
102
|
+
- [ ] Generative Orchestration compatible
|
|
103
|
+
|
|
104
|
+
## Example Usage
|
|
105
|
+
|
|
106
|
+
```yaml
|
|
107
|
+
Server Purpose: Customer data management and analysis
|
|
108
|
+
Tools Needed:
|
|
109
|
+
- searchCustomers
|
|
110
|
+
- getCustomerDetails
|
|
111
|
+
- analyzeCustomerTrends
|
|
112
|
+
Resources:
|
|
113
|
+
- Customer profiles
|
|
114
|
+
- Analysis reports
|
|
115
|
+
Authentication: oauth2
|
|
116
|
+
Host Environment: Azure Function
|
|
117
|
+
Target APIs: CRM System REST API
|
|
118
|
+
```
|