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,809 @@
1
+ ---
2
+ description: 'Best practices for building Model Context Protocol servers in PHP using the official PHP SDK with attribute-based discovery and multiple transport options'
3
+ applyTo: '**/*.php'
4
+ ---
5
+
6
+ # PHP MCP Server Development Best Practices
7
+
8
+ This guide provides best practices for building Model Context Protocol (MCP) servers using the official PHP SDK maintained in collaboration with The PHP Foundation.
9
+
10
+ ## Installation and Setup
11
+
12
+ ### Install via Composer
13
+
14
+ ```bash
15
+ composer require mcp/sdk
16
+ ```
17
+
18
+ ### Project Structure
19
+
20
+ Organize your PHP MCP server project:
21
+
22
+ ```
23
+ my-mcp-server/
24
+ ├── composer.json
25
+ ├── src/
26
+ │ ├── Tools/
27
+ │ │ ├── Calculator.php
28
+ │ │ └── FileManager.php
29
+ │ ├── Resources/
30
+ │ │ ├── ConfigProvider.php
31
+ │ │ └── DataProvider.php
32
+ │ ├── Prompts/
33
+ │ │ └── PromptGenerator.php
34
+ │ └── Server.php
35
+ ├── server.php # Server entry point
36
+ └── tests/
37
+ └── ToolsTest.php
38
+ ```
39
+
40
+ ### Composer Configuration
41
+
42
+ ```json
43
+ {
44
+ "name": "your-org/mcp-server",
45
+ "description": "MCP Server for...",
46
+ "type": "project",
47
+ "require": {
48
+ "php": "^8.2",
49
+ "mcp/sdk": "^0.1"
50
+ },
51
+ "require-dev": {
52
+ "phpunit/phpunit": "^10.0"
53
+ },
54
+ "autoload": {
55
+ "psr-4": {
56
+ "App\\": "src/"
57
+ }
58
+ }
59
+ }
60
+ ```
61
+
62
+ ## Server Implementation
63
+
64
+ ### Basic Server with Attribute Discovery
65
+
66
+ Create your server entry point:
67
+
68
+ ```php
69
+ #!/usr/bin/env php
70
+ <?php
71
+
72
+ declare(strict_types=1);
73
+
74
+ require_once __DIR__ . '/vendor/autoload.php';
75
+
76
+ use Mcp\Server;
77
+ use Mcp\Server\Transport\StdioTransport;
78
+
79
+ $server = Server::builder()
80
+ ->setServerInfo('My MCP Server', '1.0.0')
81
+ ->setDiscovery(__DIR__, ['.'])
82
+ ->build();
83
+
84
+ $transport = new StdioTransport();
85
+
86
+ $server->run($transport);
87
+ ```
88
+
89
+ ### Server with Caching
90
+
91
+ Use PSR-16 cache for better performance:
92
+
93
+ ```php
94
+ use Symfony\Component\Cache\Adapter\FilesystemAdapter;
95
+ use Symfony\Component\Cache\Psr16Cache;
96
+
97
+ $cache = new Psr16Cache(new FilesystemAdapter('mcp-discovery'));
98
+
99
+ $server = Server::builder()
100
+ ->setServerInfo('My MCP Server', '1.0.0')
101
+ ->setDiscovery(
102
+ basePath: __DIR__,
103
+ scanDirs: ['.', 'src'],
104
+ excludeDirs: ['vendor', 'tests'],
105
+ cache: $cache
106
+ )
107
+ ->build();
108
+ ```
109
+
110
+ ### Manual Registration
111
+
112
+ Register capabilities programmatically:
113
+
114
+ ```php
115
+ use App\Tools\Calculator;
116
+ use App\Resources\Config;
117
+
118
+ $server = Server::builder()
119
+ ->setServerInfo('My MCP Server', '1.0.0')
120
+ ->addTool([Calculator::class, 'add'], 'add')
121
+ ->addTool([Calculator::class, 'multiply'], 'multiply')
122
+ ->addResource([Config::class, 'getSettings'], 'config://app/settings')
123
+ ->build();
124
+ ```
125
+
126
+ ## Tool Development
127
+
128
+ ### Simple Tool with Attribute
129
+
130
+ ```php
131
+ <?php
132
+
133
+ namespace App\Tools;
134
+
135
+ use Mcp\Capability\Attribute\McpTool;
136
+
137
+ class Calculator
138
+ {
139
+ /**
140
+ * Adds two numbers together.
141
+ *
142
+ * @param int $a The first number
143
+ * @param int $b The second number
144
+ * @return int The sum of the two numbers
145
+ */
146
+ #[McpTool]
147
+ public function add(int $a, int $b): int
148
+ {
149
+ return $a + $b;
150
+ }
151
+ }
152
+ ```
153
+
154
+ ### Tool with Custom Name
155
+
156
+ ```php
157
+ use Mcp\Capability\Attribute\McpTool;
158
+
159
+ class FileManager
160
+ {
161
+ /**
162
+ * Reads file content from the filesystem.
163
+ */
164
+ #[McpTool(name: 'read_file')]
165
+ public function readFileContent(string $path): string
166
+ {
167
+ if (!file_exists($path)) {
168
+ throw new \InvalidArgumentException("File not found: {$path}");
169
+ }
170
+
171
+ return file_get_contents($path);
172
+ }
173
+ }
174
+ ```
175
+
176
+ ### Tool with Validation and Schema
177
+
178
+ ```php
179
+ use Mcp\Capability\Attribute\{McpTool, Schema};
180
+
181
+ class UserManager
182
+ {
183
+ #[McpTool(name: 'create_user')]
184
+ public function createUser(
185
+ #[Schema(format: 'email')]
186
+ string $email,
187
+
188
+ #[Schema(minimum: 18, maximum: 120)]
189
+ int $age,
190
+
191
+ #[Schema(
192
+ pattern: '^[A-Z][a-z]+$',
193
+ description: 'Capitalized first name'
194
+ )]
195
+ string $firstName
196
+ ): array
197
+ {
198
+ return [
199
+ 'id' => uniqid(),
200
+ 'email' => $email,
201
+ 'age' => $age,
202
+ 'firstName' => $firstName
203
+ ];
204
+ }
205
+ }
206
+ ```
207
+
208
+ ### Tool with Complex Return Types
209
+
210
+ ```php
211
+ use Mcp\Schema\Content\{TextContent, ImageContent};
212
+
213
+ class ReportGenerator
214
+ {
215
+ #[McpTool]
216
+ public function generateReport(string $type): array
217
+ {
218
+ return [
219
+ new TextContent('Report generated:'),
220
+ TextContent::code($this->generateCode($type), 'php'),
221
+ new TextContent('Summary: All checks passed.')
222
+ ];
223
+ }
224
+
225
+ #[McpTool]
226
+ public function getChart(string $chartType): ImageContent
227
+ {
228
+ $imageData = $this->generateChartImage($chartType);
229
+
230
+ return new ImageContent(
231
+ data: base64_encode($imageData),
232
+ mimeType: 'image/png'
233
+ );
234
+ }
235
+ }
236
+ ```
237
+
238
+ ### Tool with Match Expression
239
+
240
+ ```php
241
+ #[McpTool(name: 'calculate')]
242
+ public function performCalculation(float $a, float $b, string $operation): float
243
+ {
244
+ return match($operation) {
245
+ 'add' => $a + $b,
246
+ 'subtract' => $a - $b,
247
+ 'multiply' => $a * $b,
248
+ 'divide' => $b != 0 ? $a / $b :
249
+ throw new \InvalidArgumentException('Division by zero'),
250
+ default => throw new \InvalidArgumentException('Invalid operation')
251
+ };
252
+ }
253
+ ```
254
+
255
+ ## Resource Implementation
256
+
257
+ ### Static Resource
258
+
259
+ ```php
260
+ <?php
261
+
262
+ namespace App\Resources;
263
+
264
+ use Mcp\Capability\Attribute\McpResource;
265
+
266
+ class ConfigProvider
267
+ {
268
+ /**
269
+ * Provides the current application configuration.
270
+ */
271
+ #[McpResource(
272
+ uri: 'config://app/settings',
273
+ name: 'app_settings',
274
+ mimeType: 'application/json'
275
+ )]
276
+ public function getSettings(): array
277
+ {
278
+ return [
279
+ 'version' => '1.0.0',
280
+ 'debug' => false,
281
+ 'features' => ['auth', 'logging']
282
+ ];
283
+ }
284
+ }
285
+ ```
286
+
287
+ ### Resource Template with Variables
288
+
289
+ ```php
290
+ use Mcp\Capability\Attribute\McpResourceTemplate;
291
+
292
+ class UserProvider
293
+ {
294
+ /**
295
+ * Retrieves user profile information by ID and section.
296
+ */
297
+ #[McpResourceTemplate(
298
+ uriTemplate: 'user://{userId}/profile/{section}',
299
+ name: 'user_profile',
300
+ description: 'User profile data by section',
301
+ mimeType: 'application/json'
302
+ )]
303
+ public function getUserProfile(string $userId, string $section): array
304
+ {
305
+ // Variable order must match URI template order
306
+ return $this->users[$userId][$section] ??
307
+ throw new \InvalidArgumentException("Profile section not found");
308
+ }
309
+ }
310
+ ```
311
+
312
+ ### Resource with File Content
313
+
314
+ ```php
315
+ use Mcp\Schema\Content\{TextResourceContents, BlobResourceContents};
316
+
317
+ class FileProvider
318
+ {
319
+ #[McpResource(uri: 'file://readme.txt', mimeType: 'text/plain')]
320
+ public function getReadme(): TextResourceContents
321
+ {
322
+ return new TextResourceContents(
323
+ uri: 'file://readme.txt',
324
+ mimeType: 'text/plain',
325
+ text: file_get_contents(__DIR__ . '/README.txt')
326
+ );
327
+ }
328
+
329
+ #[McpResource(uri: 'file://image.png', mimeType: 'image/png')]
330
+ public function getImage(): BlobResourceContents
331
+ {
332
+ $imageData = file_get_contents(__DIR__ . '/image.png');
333
+
334
+ return new BlobResourceContents(
335
+ uri: 'file://image.png',
336
+ mimeType: 'image/png',
337
+ blob: base64_encode($imageData)
338
+ );
339
+ }
340
+ }
341
+ ```
342
+
343
+ ## Prompt Implementation
344
+
345
+ ### Basic Prompt
346
+
347
+ ```php
348
+ <?php
349
+
350
+ namespace App\Prompts;
351
+
352
+ use Mcp\Capability\Attribute\McpPrompt;
353
+
354
+ class PromptGenerator
355
+ {
356
+ /**
357
+ * Generates a code review request prompt.
358
+ */
359
+ #[McpPrompt(name: 'code_review')]
360
+ public function reviewCode(string $language, string $code, string $focus = 'general'): array
361
+ {
362
+ return [
363
+ ['role' => 'assistant', 'content' => 'You are an expert code reviewer.'],
364
+ ['role' => 'user', 'content' => "Review this {$language} code focusing on {$focus}:\n\n```{$language}\n{$code}\n```"]
365
+ ];
366
+ }
367
+ }
368
+ ```
369
+
370
+ ### Prompt with Mixed Content
371
+
372
+ ```php
373
+ use Mcp\Schema\Content\{TextContent, ImageContent};
374
+ use Mcp\Schema\PromptMessage;
375
+ use Mcp\Schema\Enum\Role;
376
+
377
+ #[McpPrompt]
378
+ public function analyzeImage(string $imageUrl, string $question): array
379
+ {
380
+ $imageData = file_get_contents($imageUrl);
381
+
382
+ return [
383
+ new PromptMessage(Role::Assistant, [
384
+ new TextContent('You are an image analysis expert.')
385
+ ]),
386
+ new PromptMessage(Role::User, [
387
+ new TextContent($question),
388
+ new ImageContent(
389
+ data: base64_encode($imageData),
390
+ mimeType: 'image/jpeg'
391
+ )
392
+ ])
393
+ ];
394
+ }
395
+ ```
396
+
397
+ ## Completion Providers
398
+
399
+ ### Value List Completion
400
+
401
+ ```php
402
+ use Mcp\Capability\Attribute\{McpPrompt, CompletionProvider};
403
+
404
+ #[McpPrompt]
405
+ public function generateContent(
406
+ #[CompletionProvider(values: ['blog', 'article', 'tutorial', 'guide'])]
407
+ string $contentType,
408
+
409
+ #[CompletionProvider(values: ['beginner', 'intermediate', 'advanced'])]
410
+ string $difficulty
411
+ ): array
412
+ {
413
+ return [
414
+ ['role' => 'user', 'content' => "Create a {$difficulty} level {$contentType}"]
415
+ ];
416
+ }
417
+ ```
418
+
419
+ ### Enum Completion
420
+
421
+ ```php
422
+ enum Priority: string
423
+ {
424
+ case LOW = 'low';
425
+ case MEDIUM = 'medium';
426
+ case HIGH = 'high';
427
+ }
428
+
429
+ enum Status
430
+ {
431
+ case DRAFT;
432
+ case PUBLISHED;
433
+ case ARCHIVED;
434
+ }
435
+
436
+ #[McpResourceTemplate(uriTemplate: 'tasks/{taskId}')]
437
+ public function getTask(
438
+ string $taskId,
439
+
440
+ #[CompletionProvider(enum: Priority::class)]
441
+ string $priority,
442
+
443
+ #[CompletionProvider(enum: Status::class)]
444
+ string $status
445
+ ): array
446
+ {
447
+ return $this->tasks[$taskId] ?? [];
448
+ }
449
+ ```
450
+
451
+ ### Custom Completion Provider
452
+
453
+ ```php
454
+ use Mcp\Capability\Prompt\Completion\ProviderInterface;
455
+
456
+ class UserIdCompletionProvider implements ProviderInterface
457
+ {
458
+ public function __construct(
459
+ private DatabaseService $db
460
+ ) {}
461
+
462
+ public function getCompletions(string $currentValue): array
463
+ {
464
+ return $this->db->searchUserIds($currentValue);
465
+ }
466
+ }
467
+
468
+ #[McpResourceTemplate(uriTemplate: 'user://{userId}/profile')]
469
+ public function getUserProfile(
470
+ #[CompletionProvider(provider: UserIdCompletionProvider::class)]
471
+ string $userId
472
+ ): array
473
+ {
474
+ return $this->users[$userId] ??
475
+ throw new \InvalidArgumentException('User not found');
476
+ }
477
+ ```
478
+
479
+ ## Transport Options
480
+
481
+ ### Stdio Transport
482
+
483
+ For command-line integration (default):
484
+
485
+ ```php
486
+ use Mcp\Server\Transport\StdioTransport;
487
+
488
+ $transport = new StdioTransport();
489
+ $server->run($transport);
490
+ ```
491
+
492
+ ### HTTP Transport
493
+
494
+ For web-based integration:
495
+
496
+ ```php
497
+ use Mcp\Server\Transport\StreamableHttpTransport;
498
+ use Nyholm\Psr7\Factory\Psr17Factory;
499
+
500
+ $psr17Factory = new Psr17Factory();
501
+
502
+ $request = $psr17Factory->createServerRequestFromGlobals();
503
+
504
+ $transport = new StreamableHttpTransport(
505
+ $request,
506
+ $psr17Factory, // Response factory
507
+ $psr17Factory // Stream factory
508
+ );
509
+
510
+ $response = $server->run($transport);
511
+
512
+ // Send response in your web framework
513
+ foreach ($response->getHeaders() as $name => $values) {
514
+ foreach ($values as $value) {
515
+ header("$name: $value", false);
516
+ }
517
+ }
518
+
519
+ http_response_code($response->getStatusCode());
520
+ echo $response->getBody();
521
+ ```
522
+
523
+ ## Session Management
524
+
525
+ ### In-Memory Sessions (Default)
526
+
527
+ ```php
528
+ $server = Server::builder()
529
+ ->setServerInfo('My Server', '1.0.0')
530
+ ->setSession(ttl: 7200) // 2 hours
531
+ ->build();
532
+ ```
533
+
534
+ ### File-Based Sessions
535
+
536
+ ```php
537
+ use Mcp\Server\Session\FileSessionStore;
538
+
539
+ $server = Server::builder()
540
+ ->setServerInfo('My Server', '1.0.0')
541
+ ->setSession(new FileSessionStore(__DIR__ . '/sessions'))
542
+ ->build();
543
+ ```
544
+
545
+ ### Custom Session Store
546
+
547
+ ```php
548
+ use Mcp\Server\Session\InMemorySessionStore;
549
+
550
+ $server = Server::builder()
551
+ ->setServerInfo('My Server', '1.0.0')
552
+ ->setSession(new InMemorySessionStore(3600))
553
+ ->build();
554
+ ```
555
+
556
+ ## Error Handling
557
+
558
+ ### Exception Handling in Tools
559
+
560
+ ```php
561
+ #[McpTool]
562
+ public function divideNumbers(float $a, float $b): float
563
+ {
564
+ if ($b === 0.0) {
565
+ throw new \InvalidArgumentException('Division by zero is not allowed');
566
+ }
567
+
568
+ return $a / $b;
569
+ }
570
+
571
+ #[McpTool]
572
+ public function processFile(string $filename): string
573
+ {
574
+ if (!file_exists($filename)) {
575
+ throw new \InvalidArgumentException("File not found: {$filename}");
576
+ }
577
+
578
+ if (!is_readable($filename)) {
579
+ throw new \RuntimeException("File not readable: {$filename}");
580
+ }
581
+
582
+ return file_get_contents($filename);
583
+ }
584
+ ```
585
+
586
+ ### Custom Error Responses
587
+
588
+ The SDK automatically converts exceptions into JSON-RPC error responses that MCP clients understand.
589
+
590
+ ## Testing
591
+
592
+ ### PHPUnit Tests for Tools
593
+
594
+ ```php
595
+ <?php
596
+
597
+ namespace Tests;
598
+
599
+ use PHPUnit\Framework\TestCase;
600
+ use App\Tools\Calculator;
601
+
602
+ class CalculatorTest extends TestCase
603
+ {
604
+ private Calculator $calculator;
605
+
606
+ protected function setUp(): void
607
+ {
608
+ $this->calculator = new Calculator();
609
+ }
610
+
611
+ public function testAdd(): void
612
+ {
613
+ $result = $this->calculator->add(5, 3);
614
+ $this->assertSame(8, $result);
615
+ }
616
+
617
+ public function testDivideByZero(): void
618
+ {
619
+ $this->expectException(\InvalidArgumentException::class);
620
+ $this->expectExceptionMessage('Division by zero');
621
+
622
+ $this->calculator->divide(10, 0);
623
+ }
624
+ }
625
+ ```
626
+
627
+ ### Testing Server Discovery
628
+
629
+ ```php
630
+ public function testServerDiscoversTools(): void
631
+ {
632
+ $server = Server::builder()
633
+ ->setServerInfo('Test Server', '1.0.0')
634
+ ->setDiscovery(__DIR__ . '/../src', ['.'])
635
+ ->build();
636
+
637
+ $capabilities = $server->getCapabilities();
638
+
639
+ $this->assertArrayHasKey('tools', $capabilities);
640
+ $this->assertNotEmpty($capabilities['tools']);
641
+ }
642
+ ```
643
+
644
+ ## Performance Best Practices
645
+
646
+ ### Use Discovery Caching
647
+
648
+ Always use caching in production:
649
+
650
+ ```php
651
+ use Symfony\Component\Cache\Adapter\RedisAdapter;
652
+ use Symfony\Component\Cache\Psr16Cache;
653
+
654
+ $redis = new \Redis();
655
+ $redis->connect('127.0.0.1', 6379);
656
+
657
+ $cache = new Psr16Cache(new RedisAdapter($redis));
658
+
659
+ $server = Server::builder()
660
+ ->setServerInfo('My Server', '1.0.0')
661
+ ->setDiscovery(
662
+ basePath: __DIR__,
663
+ scanDirs: ['src'],
664
+ excludeDirs: ['vendor', 'tests', 'var'],
665
+ cache: $cache
666
+ )
667
+ ->build();
668
+ ```
669
+
670
+ ### Optimize Scan Directories
671
+
672
+ Only scan necessary directories:
673
+
674
+ ```php
675
+ $server = Server::builder()
676
+ ->setDiscovery(
677
+ basePath: __DIR__,
678
+ scanDirs: ['src/Tools', 'src/Resources'], // Specific dirs
679
+ excludeDirs: ['vendor', 'tests', 'var', 'cache']
680
+ )
681
+ ->build();
682
+ ```
683
+
684
+ ### Use OPcache
685
+
686
+ Enable OPcache in production for better PHP performance:
687
+
688
+ ```ini
689
+ ; php.ini
690
+ opcache.enable=1
691
+ opcache.memory_consumption=256
692
+ opcache.interned_strings_buffer=16
693
+ opcache.max_accelerated_files=10000
694
+ opcache.validate_timestamps=0
695
+ ```
696
+
697
+ ## Framework Integration
698
+
699
+ ### Laravel Integration
700
+
701
+ ```php
702
+ // app/Console/Commands/McpServer.php
703
+ namespace App\Console\Commands;
704
+
705
+ use Illuminate\Console\Command;
706
+ use Mcp\Server;
707
+ use Mcp\Server\Transport\StdioTransport;
708
+
709
+ class McpServer extends Command
710
+ {
711
+ protected $signature = 'mcp:serve';
712
+ protected $description = 'Start MCP server';
713
+
714
+ public function handle()
715
+ {
716
+ $server = Server::builder()
717
+ ->setServerInfo('Laravel MCP Server', '1.0.0')
718
+ ->setDiscovery(app_path(), ['Tools', 'Resources'])
719
+ ->build();
720
+
721
+ $transport = new StdioTransport();
722
+ $server->run($transport);
723
+ }
724
+ }
725
+ ```
726
+
727
+ ### Symfony Integration
728
+
729
+ ```php
730
+ // Use symfony/mcp-bundle for native integration
731
+ composer require symfony/mcp-bundle
732
+ ```
733
+
734
+ ## Deployment
735
+
736
+ ### Docker Deployment
737
+
738
+ ```dockerfile
739
+ FROM php:8.2-cli
740
+
741
+ # Install extensions
742
+ RUN docker-php-ext-install pdo pdo_mysql
743
+
744
+ # Install Composer
745
+ COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
746
+
747
+ # Set working directory
748
+ WORKDIR /app
749
+
750
+ # Copy application
751
+ COPY . /app
752
+
753
+ # Install dependencies
754
+ RUN composer install --no-dev --optimize-autoloader
755
+
756
+ # Make server executable
757
+ RUN chmod +x /app/server.php
758
+
759
+ CMD ["php", "/app/server.php"]
760
+ ```
761
+
762
+ ### Systemd Service
763
+
764
+ ```ini
765
+ [Unit]
766
+ Description=MCP PHP Server
767
+ After=network.target
768
+
769
+ [Service]
770
+ Type=simple
771
+ User=www-data
772
+ WorkingDirectory=/var/www/mcp-server
773
+ ExecStart=/usr/bin/php /var/www/mcp-server/server.php
774
+ Restart=always
775
+
776
+ [Install]
777
+ WantedBy=multi-user.target
778
+ ```
779
+
780
+ ## Configuration for MCP Clients
781
+
782
+ ### Claude Desktop Configuration
783
+
784
+ ```json
785
+ {
786
+ "mcpServers": {
787
+ "php-server": {
788
+ "command": "php",
789
+ "args": ["/absolute/path/to/server.php"]
790
+ }
791
+ }
792
+ }
793
+ ```
794
+
795
+ ### MCP Inspector Testing
796
+
797
+ ```bash
798
+ npx @modelcontextprotocol/inspector php /path/to/server.php
799
+ ```
800
+
801
+ ## Additional Resources
802
+
803
+ - [Official PHP SDK Repository](https://github.com/modelcontextprotocol/php-sdk)
804
+ - [MCP Elements Documentation](https://github.com/modelcontextprotocol/php-sdk/blob/main/docs/mcp-elements.md)
805
+ - [Server Builder Documentation](https://github.com/modelcontextprotocol/php-sdk/blob/main/docs/server-builder.md)
806
+ - [Transport Documentation](https://github.com/modelcontextprotocol/php-sdk/blob/main/docs/transports.md)
807
+ - [Examples](https://github.com/modelcontextprotocol/php-sdk/blob/main/docs/examples.md)
808
+ - [MCP Specification](https://spec.modelcontextprotocol.io/)
809
+ - [Model Context Protocol](https://modelcontextprotocol.io/)