@frontmcp/skills 1.0.0-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +2 -2
  2. package/catalog/TEMPLATE.md +69 -0
  3. package/catalog/frontmcp-config/SKILL.md +38 -22
  4. package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +87 -0
  5. package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +63 -0
  6. package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +76 -0
  7. package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +77 -0
  8. package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +73 -0
  9. package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +64 -0
  10. package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +83 -0
  11. package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +87 -0
  12. package/catalog/frontmcp-config/examples/configure-http/cors-restricted-origins.md +52 -0
  13. package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +72 -0
  14. package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +64 -0
  15. package/catalog/frontmcp-config/examples/configure-session/multi-server-key-prefix.md +68 -0
  16. package/catalog/frontmcp-config/examples/configure-session/redis-session-store.md +52 -0
  17. package/catalog/frontmcp-config/examples/configure-session/vercel-kv-session.md +52 -0
  18. package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +94 -0
  19. package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +92 -0
  20. package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +83 -0
  21. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/full-guard-config.md +99 -0
  22. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/minimal-guard-config.md +55 -0
  23. package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +74 -0
  24. package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +86 -0
  25. package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +69 -0
  26. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +65 -0
  27. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +69 -0
  28. package/catalog/frontmcp-config/references/configure-auth-modes.md +15 -0
  29. package/catalog/frontmcp-config/references/configure-auth.md +15 -0
  30. package/catalog/frontmcp-config/references/configure-elicitation.md +14 -0
  31. package/catalog/frontmcp-config/references/configure-http.md +15 -0
  32. package/catalog/frontmcp-config/references/configure-session.md +15 -0
  33. package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +14 -0
  34. package/catalog/frontmcp-config/references/configure-throttle.md +15 -0
  35. package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +14 -0
  36. package/catalog/frontmcp-config/references/configure-transport.md +15 -0
  37. package/catalog/frontmcp-config/references/setup-redis.md +10 -0
  38. package/catalog/frontmcp-config/references/setup-sqlite.md +10 -0
  39. package/catalog/frontmcp-deployment/SKILL.md +40 -12
  40. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-build-with-custom-entry.md +43 -0
  41. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-crypto-and-storage.md +85 -0
  42. package/catalog/frontmcp-deployment/examples/build-for-browser/react-provider-setup.md +61 -0
  43. package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +66 -0
  44. package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +76 -0
  45. package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +78 -0
  46. package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +85 -0
  47. package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +104 -0
  48. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +82 -0
  49. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +97 -0
  50. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +92 -0
  51. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/cdk-deployment.md +92 -0
  52. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +113 -0
  53. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/sam-template-basic.md +100 -0
  54. package/catalog/frontmcp-deployment/examples/deploy-to-node/docker-compose-with-redis.md +101 -0
  55. package/catalog/frontmcp-deployment/examples/deploy-to-node/pm2-with-nginx.md +79 -0
  56. package/catalog/frontmcp-deployment/examples/deploy-to-node/resource-limits.md +92 -0
  57. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/basic-multistage-dockerfile.md +63 -0
  58. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md +89 -0
  59. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-mcp-endpoint-test.md +69 -0
  60. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +82 -0
  61. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-skills-cache.md +90 -0
  62. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/minimal-vercel-config.md +49 -0
  63. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/vercel-config-with-security-headers.md +92 -0
  64. package/catalog/frontmcp-deployment/references/build-for-browser.md +15 -0
  65. package/catalog/frontmcp-deployment/references/build-for-cli.md +65 -3
  66. package/catalog/frontmcp-deployment/references/build-for-sdk.md +15 -0
  67. package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +15 -0
  68. package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +18 -3
  69. package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +16 -2
  70. package/catalog/frontmcp-deployment/references/deploy-to-node.md +19 -4
  71. package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +14 -0
  72. package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +15 -0
  73. package/catalog/frontmcp-development/SKILL.md +25 -17
  74. package/catalog/frontmcp-development/examples/create-adapter/basic-api-adapter.md +92 -0
  75. package/catalog/frontmcp-development/examples/create-adapter/namespaced-adapter.md +124 -0
  76. package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +121 -0
  77. package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +95 -0
  78. package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +111 -0
  79. package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +81 -0
  80. package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +80 -0
  81. package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +87 -0
  82. package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +117 -0
  83. package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +88 -0
  84. package/catalog/frontmcp-development/examples/create-plugin/basic-plugin-with-provider.md +69 -0
  85. package/catalog/frontmcp-development/examples/create-plugin/configurable-dynamic-plugin.md +178 -0
  86. package/catalog/frontmcp-development/examples/create-plugin/plugin-with-context-extension.md +107 -0
  87. package/catalog/frontmcp-development/examples/create-plugin-hooks/basic-logging-plugin.md +69 -0
  88. package/catalog/frontmcp-development/examples/create-plugin-hooks/caching-with-around.md +80 -0
  89. package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +100 -0
  90. package/catalog/frontmcp-development/examples/create-prompt/basic-prompt.md +72 -0
  91. package/catalog/frontmcp-development/examples/create-prompt/dynamic-rag-prompt.md +92 -0
  92. package/catalog/frontmcp-development/examples/create-prompt/multi-turn-debug-session.md +86 -0
  93. package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +113 -0
  94. package/catalog/frontmcp-development/examples/create-provider/config-and-api-providers.md +107 -0
  95. package/catalog/frontmcp-development/examples/create-resource/basic-static-resource.md +72 -0
  96. package/catalog/frontmcp-development/examples/create-resource/binary-and-multi-content.md +111 -0
  97. package/catalog/frontmcp-development/examples/create-resource/parameterized-template.md +84 -0
  98. package/catalog/frontmcp-development/examples/create-skill/basic-inline-skill.md +96 -0
  99. package/catalog/frontmcp-development/examples/create-skill/directory-based-skill.md +115 -0
  100. package/catalog/frontmcp-development/examples/create-skill/parameterized-skill.md +96 -0
  101. package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md +76 -0
  102. package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +149 -0
  103. package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md +92 -0
  104. package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +62 -0
  105. package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +84 -0
  106. package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +93 -0
  107. package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +94 -0
  108. package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +60 -0
  109. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +104 -0
  110. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +63 -0
  111. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +103 -0
  112. package/catalog/frontmcp-development/examples/create-workflow/basic-deploy-pipeline.md +91 -0
  113. package/catalog/frontmcp-development/examples/create-workflow/parallel-validation-pipeline.md +90 -0
  114. package/catalog/frontmcp-development/examples/create-workflow/webhook-triggered-workflow.md +136 -0
  115. package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +145 -0
  116. package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +124 -0
  117. package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +149 -0
  118. package/catalog/frontmcp-development/examples/official-adapters/authenticated-adapter-with-polling.md +84 -0
  119. package/catalog/frontmcp-development/examples/official-adapters/basic-openapi-adapter.md +54 -0
  120. package/catalog/frontmcp-development/examples/official-adapters/multi-api-hub-with-inline-spec.md +130 -0
  121. package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +117 -0
  122. package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +147 -0
  123. package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +104 -0
  124. package/catalog/frontmcp-development/references/create-adapter.md +14 -0
  125. package/catalog/frontmcp-development/references/create-agent-llm-config.md +14 -0
  126. package/catalog/frontmcp-development/references/create-agent.md +15 -0
  127. package/catalog/frontmcp-development/references/create-job.md +15 -0
  128. package/catalog/frontmcp-development/references/create-plugin-hooks.md +51 -0
  129. package/catalog/frontmcp-development/references/create-plugin.md +186 -11
  130. package/catalog/frontmcp-development/references/create-prompt.md +17 -0
  131. package/catalog/frontmcp-development/references/create-provider.md +14 -0
  132. package/catalog/frontmcp-development/references/create-resource.md +127 -0
  133. package/catalog/frontmcp-development/references/create-skill-with-tools.md +126 -7
  134. package/catalog/frontmcp-development/references/create-skill.md +57 -12
  135. package/catalog/frontmcp-development/references/create-tool-annotations.md +14 -0
  136. package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +15 -0
  137. package/catalog/frontmcp-development/references/create-tool.md +205 -1
  138. package/catalog/frontmcp-development/references/create-workflow.md +15 -0
  139. package/catalog/frontmcp-development/references/decorators-guide.md +155 -78
  140. package/catalog/frontmcp-development/references/official-adapters.md +31 -16
  141. package/catalog/frontmcp-development/references/official-plugins.md +62 -28
  142. package/catalog/frontmcp-extensibility/SKILL.md +103 -0
  143. package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +175 -0
  144. package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +138 -0
  145. package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +103 -0
  146. package/catalog/frontmcp-extensibility/references/vectoriadb.md +299 -0
  147. package/catalog/frontmcp-guides/SKILL.md +7 -4
  148. package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +160 -0
  149. package/catalog/frontmcp-guides/examples/example-knowledge-base/multi-app-composition.md +92 -0
  150. package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +135 -0
  151. package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +135 -0
  152. package/catalog/frontmcp-guides/examples/example-task-manager/authenticated-e2e-tests.md +148 -0
  153. package/catalog/frontmcp-guides/examples/example-task-manager/redis-provider-with-di.md +129 -0
  154. package/catalog/frontmcp-guides/examples/example-weather-api/server-and-app-setup.md +75 -0
  155. package/catalog/frontmcp-guides/examples/example-weather-api/unit-and-e2e-tests.md +142 -0
  156. package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +74 -0
  157. package/catalog/frontmcp-guides/references/example-knowledge-base.md +15 -0
  158. package/catalog/frontmcp-guides/references/example-task-manager.md +30 -21
  159. package/catalog/frontmcp-guides/references/example-weather-api.md +18 -6
  160. package/catalog/frontmcp-observability/SKILL.md +144 -0
  161. package/catalog/frontmcp-observability/examples/structured-logging/stdout-logging.md +71 -0
  162. package/catalog/frontmcp-observability/examples/structured-logging/winston-integration.md +70 -0
  163. package/catalog/frontmcp-observability/examples/telemetry-api/agent-nested-tracing.md +86 -0
  164. package/catalog/frontmcp-observability/examples/telemetry-api/plugin-telemetry.md +93 -0
  165. package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +72 -0
  166. package/catalog/frontmcp-observability/examples/testing-observability/test-custom-spans.md +90 -0
  167. package/catalog/frontmcp-observability/examples/testing-observability/test-log-correlation.md +104 -0
  168. package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +82 -0
  169. package/catalog/frontmcp-observability/examples/tracing-setup/production-tracing.md +73 -0
  170. package/catalog/frontmcp-observability/examples/vendor-integrations/coralogix-setup.md +74 -0
  171. package/catalog/frontmcp-observability/references/structured-logging.md +114 -0
  172. package/catalog/frontmcp-observability/references/telemetry-api.md +155 -0
  173. package/catalog/frontmcp-observability/references/testing-observability.md +169 -0
  174. package/catalog/frontmcp-observability/references/tracing-setup.md +146 -0
  175. package/catalog/frontmcp-observability/references/vendor-integrations.md +164 -0
  176. package/catalog/frontmcp-production-readiness/SKILL.md +99 -0
  177. package/catalog/frontmcp-production-readiness/examples/common-checklist/caching-and-performance.md +102 -0
  178. package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +104 -0
  179. package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +95 -0
  180. package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/basic-health-setup.md +81 -0
  181. package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/custom-probes.md +136 -0
  182. package/catalog/frontmcp-production-readiness/examples/production-browser/browser-bundle-config.md +93 -0
  183. package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +116 -0
  184. package/catalog/frontmcp-production-readiness/examples/production-browser/security-and-performance.md +128 -0
  185. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/binary-build-config.md +109 -0
  186. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +132 -0
  187. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/daemon-socket-config.md +82 -0
  188. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/graceful-shutdown-cleanup.md +107 -0
  189. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/security-and-permissions.md +119 -0
  190. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +124 -0
  191. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +103 -0
  192. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/wrangler-config.md +89 -0
  193. package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +122 -0
  194. package/catalog/frontmcp-production-readiness/examples/production-lambda/sam-template.md +107 -0
  195. package/catalog/frontmcp-production-readiness/examples/production-lambda/scaling-and-monitoring.md +138 -0
  196. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/basic-sdk-lifecycle.md +85 -0
  197. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/multi-instance-cleanup.md +110 -0
  198. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/package-json-config.md +107 -0
  199. package/catalog/frontmcp-production-readiness/examples/production-node-server/docker-multi-stage.md +103 -0
  200. package/catalog/frontmcp-production-readiness/examples/production-node-server/graceful-shutdown.md +87 -0
  201. package/catalog/frontmcp-production-readiness/examples/production-node-server/redis-session-scaling.md +97 -0
  202. package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +104 -0
  203. package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +91 -0
  204. package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md +78 -0
  205. package/catalog/frontmcp-production-readiness/references/common-checklist.md +175 -0
  206. package/catalog/frontmcp-production-readiness/references/health-readiness-endpoints.md +198 -0
  207. package/catalog/frontmcp-production-readiness/references/production-browser.md +56 -0
  208. package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +71 -0
  209. package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +71 -0
  210. package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +62 -0
  211. package/catalog/frontmcp-production-readiness/references/production-lambda.md +63 -0
  212. package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +76 -0
  213. package/catalog/frontmcp-production-readiness/references/production-node-server.md +71 -0
  214. package/catalog/frontmcp-production-readiness/references/production-vercel.md +62 -0
  215. package/catalog/frontmcp-setup/SKILL.md +19 -14
  216. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/bundle-presets-scaffolding.md +61 -0
  217. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/install-and-search-skills.md +83 -0
  218. package/catalog/frontmcp-setup/examples/multi-app-composition/local-apps-with-shared-tools.md +87 -0
  219. package/catalog/frontmcp-setup/examples/multi-app-composition/per-app-auth-and-isolation.md +88 -0
  220. package/catalog/frontmcp-setup/examples/multi-app-composition/remote-and-esm-apps.md +81 -0
  221. package/catalog/frontmcp-setup/examples/nx-workflow/build-test-affected.md +77 -0
  222. package/catalog/frontmcp-setup/examples/nx-workflow/multi-server-deployment.md +93 -0
  223. package/catalog/frontmcp-setup/examples/nx-workflow/scaffold-and-generate.md +62 -0
  224. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-generator-scaffolding.md +73 -0
  225. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-workspace-with-apps.md +85 -0
  226. package/catalog/frontmcp-setup/examples/project-structure-nx/shared-library-usage.md +89 -0
  227. package/catalog/frontmcp-setup/examples/project-structure-standalone/dev-workflow-commands.md +64 -0
  228. package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +111 -0
  229. package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +73 -0
  230. package/catalog/frontmcp-setup/examples/readme-guide/node-server-readme.md +89 -0
  231. package/catalog/frontmcp-setup/examples/readme-guide/vercel-deployment-readme.md +90 -0
  232. package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +99 -0
  233. package/catalog/frontmcp-setup/examples/setup-project/cli-scaffold-with-flags.md +77 -0
  234. package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +89 -0
  235. package/catalog/frontmcp-setup/examples/setup-redis/docker-redis-local-dev.md +88 -0
  236. package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +78 -0
  237. package/catalog/frontmcp-setup/examples/setup-redis/vercel-kv-serverless.md +78 -0
  238. package/catalog/frontmcp-setup/examples/setup-sqlite/basic-sqlite-setup.md +75 -0
  239. package/catalog/frontmcp-setup/examples/setup-sqlite/encrypted-sqlite-storage.md +55 -0
  240. package/catalog/frontmcp-setup/examples/setup-sqlite/unix-socket-daemon.md +70 -0
  241. package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +33 -9
  242. package/catalog/frontmcp-setup/references/multi-app-composition.md +15 -0
  243. package/catalog/frontmcp-setup/references/nx-workflow.md +15 -0
  244. package/catalog/frontmcp-setup/references/project-structure-nx.md +15 -0
  245. package/catalog/frontmcp-setup/references/project-structure-standalone.md +15 -0
  246. package/catalog/frontmcp-setup/references/readme-guide.md +235 -0
  247. package/catalog/frontmcp-setup/references/setup-project.md +16 -1
  248. package/catalog/frontmcp-setup/references/setup-redis.md +15 -0
  249. package/catalog/frontmcp-setup/references/setup-sqlite.md +15 -0
  250. package/catalog/frontmcp-testing/SKILL.md +41 -27
  251. package/catalog/frontmcp-testing/examples/setup-testing/fixture-based-e2e-test.md +70 -0
  252. package/catalog/frontmcp-testing/examples/setup-testing/jest-config-with-coverage.md +59 -0
  253. package/catalog/frontmcp-testing/examples/setup-testing/unit-test-tool-resource-prompt.md +115 -0
  254. package/catalog/frontmcp-testing/examples/test-auth/oauth-flow-test.md +78 -0
  255. package/catalog/frontmcp-testing/examples/test-auth/role-based-access-test.md +88 -0
  256. package/catalog/frontmcp-testing/examples/test-auth/token-factory-test.md +71 -0
  257. package/catalog/frontmcp-testing/examples/test-browser-build/browser-bundle-validation.md +58 -0
  258. package/catalog/frontmcp-testing/examples/test-browser-build/playwright-browser-test.md +69 -0
  259. package/catalog/frontmcp-testing/examples/test-cli-binary/binary-startup-test.md +77 -0
  260. package/catalog/frontmcp-testing/examples/test-cli-binary/js-bundle-import-test.md +56 -0
  261. package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +74 -0
  262. package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +79 -0
  263. package/catalog/frontmcp-testing/examples/test-e2e-handler/basic-e2e-test.md +67 -0
  264. package/catalog/frontmcp-testing/examples/test-e2e-handler/manual-client-with-transport.md +72 -0
  265. package/catalog/frontmcp-testing/examples/test-e2e-handler/tool-call-and-error-e2e.md +73 -0
  266. package/catalog/frontmcp-testing/examples/test-tool-unit/basic-tool-test.md +69 -0
  267. package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +82 -0
  268. package/catalog/frontmcp-testing/examples/test-tool-unit/tool-error-handling-test.md +92 -0
  269. package/catalog/frontmcp-testing/references/setup-testing.md +17 -0
  270. package/catalog/frontmcp-testing/references/test-auth.md +15 -0
  271. package/catalog/frontmcp-testing/references/test-browser-build.md +14 -0
  272. package/catalog/frontmcp-testing/references/test-cli-binary.md +14 -0
  273. package/catalog/frontmcp-testing/references/test-direct-client.md +14 -0
  274. package/catalog/frontmcp-testing/references/test-e2e-handler.md +15 -0
  275. package/catalog/frontmcp-testing/references/test-tool-unit.md +15 -0
  276. package/catalog/skills-manifest.json +2849 -32
  277. package/package.json +2 -2
  278. package/src/index.d.ts +1 -1
  279. package/src/index.js.map +1 -1
  280. package/src/loader.js +0 -1
  281. package/src/loader.js.map +1 -1
  282. package/src/manifest.d.ts +36 -1
  283. package/src/manifest.js +6 -1
  284. package/src/manifest.js.map +1 -1
@@ -0,0 +1,175 @@
1
+ ---
2
+ name: common-checklist
3
+ description: Security, performance, reliability, and observability checks for all deployment targets
4
+ ---
5
+
6
+ # Common Production Readiness Checklist
7
+
8
+ These checks apply to ALL deployment targets. Run them first, then proceed to your target-specific checklist.
9
+
10
+ ## Security
11
+
12
+ ### Authentication & Authorization
13
+
14
+ - [ ] JWT_SECRET is set to a strong random value (not the default)
15
+ - [ ] Authentication is enabled (`auth` config in `@FrontMcp` or `@frontmcp/auth`)
16
+ - [ ] API keys/tokens are loaded from environment variables, never hardcoded
17
+ - [ ] Session storage uses Redis or platform-native store (not in-memory) for multi-instance
18
+ - [ ] Session TTL is configured appropriately (not infinite)
19
+ - [ ] Tool-level authorization is enforced where needed (ApprovalPlugin or custom)
20
+ - [ ] OAuth redirect URIs are restricted to known domains
21
+
22
+ ### CORS Configuration
23
+
24
+ - [ ] CORS is NOT permissive (don't allow all origins in production)
25
+ - [ ] Specific allowed origins are listed: `cors: { origin: ['https://your-app.com'] }`
26
+ - [ ] Credentials mode is only enabled if cookies/sessions are needed
27
+ - [ ] Preflight cache (`maxAge`) is set to reduce OPTIONS requests
28
+
29
+ ### Input Validation
30
+
31
+ - [ ] All tool inputs use Zod schemas (never trust raw input)
32
+ - [ ] All tool outputs use `outputSchema` to prevent data leaks
33
+ - [ ] Path parameters and query params are validated
34
+ - [ ] File paths are sanitized to prevent directory traversal
35
+ - [ ] SQL queries use parameterized statements (never string interpolation)
36
+
37
+ ### Secrets Management
38
+
39
+ - [ ] No secrets in source code or git history
40
+ - [ ] `.env` files are in `.gitignore`
41
+ - [ ] Production secrets are managed via secret manager (AWS SSM, Vault, etc.)
42
+ - [ ] API keys have minimum required permissions
43
+ - [ ] Secrets are rotated on a schedule
44
+
45
+ ### Rate Limiting
46
+
47
+ - [ ] Rate limiting is configured for public-facing endpoints
48
+ - [ ] Per-client/per-IP limits are set
49
+ - [ ] Throttle configuration uses `@FrontMcp({ throttle: {...} })`
50
+ - [ ] Large payload limits are set to prevent memory exhaustion
51
+
52
+ ### Dependencies
53
+
54
+ - [ ] `npm audit` shows no high/critical vulnerabilities
55
+ - [ ] Dependencies are pinned or use tilde ranges (not `*` or `latest`)
56
+ - [ ] No unused dependencies in package.json
57
+
58
+ ## Performance
59
+
60
+ ### Caching
61
+
62
+ - [ ] CachePlugin is configured for read-heavy tools
63
+ - [ ] Cache TTL is tuned per tool (not one-size-fits-all)
64
+ - [ ] Stale cache invalidation strategy is defined
65
+
66
+ ### Response Optimization
67
+
68
+ - [ ] Large responses are paginated or streamed
69
+ - [ ] Tools return only necessary data (no over-fetching)
70
+ - [ ] Binary data uses proper encoding (base64 only when necessary)
71
+
72
+ ### Memory Management
73
+
74
+ - [ ] No memory leaks from event listeners or unclosed connections
75
+ - [ ] Large data processing uses streams instead of buffering
76
+ - [ ] Provider lifecycle `dispose()` is implemented for cleanup
77
+ - [ ] Session storage has TTL to prevent unbounded growth
78
+
79
+ ## Reliability
80
+
81
+ ### Error Handling
82
+
83
+ - [ ] All tools use `this.fail()` with specific MCP error classes
84
+ - [ ] Unknown errors are caught and wrapped (never expose stack traces)
85
+ - [ ] Error responses include MCP error codes for client handling
86
+ - [ ] Async errors are properly caught (no unhandled promise rejections)
87
+
88
+ ### Retry & Circuit Breaking
89
+
90
+ - [ ] External API calls have retry logic with exponential backoff
91
+ - [ ] Circuit breaker pattern for unreliable downstream services
92
+ - [ ] Timeouts are set for all external calls
93
+ - [ ] Job retries have maximum attempt limits
94
+
95
+ ## Observability
96
+
97
+ ### Logging
98
+
99
+ - [ ] Logs use structured format (JSON in production)
100
+ - [ ] Log levels are appropriate (info for normal, error for failures)
101
+ - [ ] Sensitive data is redacted from logs (tokens, passwords, PII)
102
+ - [ ] Request/response logging includes correlation IDs
103
+
104
+ ### Health & Readiness
105
+
106
+ - [ ] `/healthz` endpoint is reachable from load balancer or orchestrator
107
+ - [ ] `/readyz` endpoint is configured for Kubernetes readiness or similar
108
+ - [ ] Custom probes added for external dependencies (databases, APIs, queues)
109
+ - [ ] `includeDetails: false` in production to avoid leaking infrastructure topology
110
+ - [ ] Probe timeout (`readyz.timeoutMs`) is lower than orchestrator probe timeout
111
+ - [ ] `toolsHash` from `/readyz` is monitored for config drift across instances
112
+
113
+ ### Monitoring
114
+
115
+ - [ ] Request count and latency metrics are exposed
116
+ - [ ] Error rate metrics are tracked
117
+ - [ ] Tool execution duration is measured
118
+ - [ ] Error tracking service is integrated (Sentry, Datadog, etc.)
119
+
120
+ ## Jobs & Workflows (if enabled)
121
+
122
+ - [ ] Jobs Redis store is configured for production (`jobs: { enabled: true, store: { redis } }`)
123
+ - [ ] Job retry config has reasonable `maxAttempts` and `maxBackoffMs`
124
+ - [ ] Workflow timeout is set to prevent runaway workflows
125
+ - [ ] Job execution times are monitored (long-running jobs need alerting)
126
+ - [ ] Workflow step `continueOnError` is only used for non-critical steps
127
+
128
+ ## Skills HTTP Endpoints (if enabled)
129
+
130
+ - [ ] Skills HTTP auth is configured (`skillsConfig.auth: 'api-key'` or `'bearer'`)
131
+ - [ ] Skills caching is enabled for production (`skillsConfig.cache: { enabled: true }`)
132
+ - [ ] Cache TTL is tuned for skill instruction freshness requirements
133
+ - [ ] `/llm.txt` and `/skills` endpoints are tested for correct responses
134
+
135
+ ## ExtApps / Widgets (if enabled)
136
+
137
+ - [ ] Host capabilities are reviewed — only enable what widgets need
138
+ - [ ] `serverToolProxy` is disabled if widgets should not call MCP tools
139
+ - [ ] Widget session validation is active (default with HTTP transport)
140
+ - [ ] CSP headers are configured for hosted widget origins
141
+
142
+ ## SQLite (if used)
143
+
144
+ - [ ] WAL mode is enabled for concurrent read/write performance
145
+ - [ ] Database file path is writable and persistent (not ephemeral storage)
146
+ - [ ] Backup strategy is defined (periodic file copy or WAL checkpoint)
147
+ - [ ] Database size is monitored to prevent disk exhaustion
148
+
149
+ ## Documentation
150
+
151
+ - [ ] README.md is up-to-date for the deployment target (see `frontmcp-setup` → `references/readme-guide.md`)
152
+ - [ ] API documentation covers all tools and resources
153
+ - [ ] Environment variables are documented in `.env.example`
154
+
155
+ ## Common Anti-Patterns
156
+
157
+ | Anti-Pattern | Fix |
158
+ | ------------------------- | ------------------------------------------- |
159
+ | Default JWT_SECRET | Set a strong random secret |
160
+ | In-memory session store | Use Redis or platform-native storage |
161
+ | `cors: { origin: '*' }` | Restrict to known origins |
162
+ | No output schema on tools | Always define `outputSchema` |
163
+ | Synchronous file I/O | Use async operations from `@frontmcp/utils` |
164
+ | Hardcoded secrets | Use environment variables |
165
+ | Unbounded caching | Set TTL on all caches |
166
+
167
+ ## Examples
168
+
169
+ | Example | Level | Description |
170
+ | ------------------------------------------------------------------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------- |
171
+ | [`caching-and-performance`](../examples/common-checklist/caching-and-performance.md) | Advanced | Shows how to configure caching with TTL, optimize responses, and manage memory with proper provider lifecycle cleanup. |
172
+ | [`observability-setup`](../examples/common-checklist/observability-setup.md) | Intermediate | Shows how to configure structured logging, error handling with MCP error codes, and monitoring integration for production. |
173
+ | [`security-hardening`](../examples/common-checklist/security-hardening.md) | Basic | Shows how to configure authentication, CORS, input validation, and rate limiting for a production FrontMCP server. |
174
+
175
+ > See all examples in [`examples/common-checklist/`](../examples/common-checklist/)
@@ -0,0 +1,198 @@
1
+ ---
2
+ name: health-readiness-endpoints
3
+ description: Configure /healthz and /readyz endpoints with custom probes, runtime-aware readiness, and dependency health checks
4
+ ---
5
+
6
+ # Health & Readiness Endpoints
7
+
8
+ FrontMCP provides Kubernetes-style `/healthz` (liveness) and `/readyz` (readiness) endpoints with automatic dependency probing, catalog introspection, and runtime-aware behavior.
9
+
10
+ ## Runtime Availability
11
+
12
+ | Runtime | `/healthz` | `/readyz` | Notes |
13
+ | -------------------------- | ---------- | --------- | ---------------------------------- |
14
+ | Node.js / Bun / Deno | yes | yes | Full support |
15
+ | Edge / Cloudflare / Vercel | yes | no | No persistent connections to probe |
16
+ | CLI | yes | no | No HTTP server in stdio mode |
17
+ | Browser | yes | yes | Full support |
18
+
19
+ ## Default Behavior
20
+
21
+ Health endpoints are **enabled by default** with zero configuration:
22
+
23
+ ```typescript
24
+ @FrontMcp({
25
+ info: { name: 'my-server', version: '1.0.0' },
26
+ apps: [MyApp],
27
+ // health endpoints are auto-registered:
28
+ // GET /healthz -> liveness probe
29
+ // GET /readyz -> readiness probe (Node.js, Bun, Deno, Browser)
30
+ // GET /health -> legacy alias for /healthz
31
+ })
32
+ export default class Server {}
33
+ ```
34
+
35
+ ## Endpoint Responses
36
+
37
+ ### `/healthz` (Liveness)
38
+
39
+ Lightweight, no I/O. Returns server info, runtime context, and uptime.
40
+
41
+ ```json
42
+ {
43
+ "status": "ok",
44
+ "server": { "name": "my-server", "version": "1.0.0" },
45
+ "runtime": { "platform": "linux", "runtime": "node", "deployment": "standalone", "env": "production" },
46
+ "uptime": 3600.5
47
+ }
48
+ ```
49
+
50
+ - **HTTP 200**: Server process is alive
51
+ - **HTTP 503**: Server is in a degraded state
52
+
53
+ ### `/readyz` (Readiness)
54
+
55
+ Deep check: probes all registered dependencies, returns catalog hash and registry counts.
56
+
57
+ ```json
58
+ {
59
+ "status": "ready",
60
+ "totalLatencyMs": 45,
61
+ "catalog": {
62
+ "toolsHash": "a1b2c3d4e5f6...",
63
+ "toolCount": 12,
64
+ "resourceCount": 3,
65
+ "promptCount": 2,
66
+ "skillCount": 1,
67
+ "agentCount": 0
68
+ },
69
+ "probes": {
70
+ "session-store": { "status": "healthy", "latencyMs": 12 },
71
+ "remote:payment-svc": { "status": "healthy", "latencyMs": 25 }
72
+ }
73
+ }
74
+ ```
75
+
76
+ - **HTTP 200**: All probes pass (`status: "ready"`)
77
+ - **HTTP 503**: At least one probe unhealthy (`status: "not_ready"`)
78
+
79
+ ## Auto-Discovered Probes
80
+
81
+ The health service automatically registers probes for:
82
+
83
+ - **Session store** (Redis/Vercel KV) via `TransportService.pingSessionStore()`
84
+ - **Remote MCP apps** via the existing `HealthCheckManager` background checks
85
+
86
+ ## Custom Probes
87
+
88
+ Add your own dependency checks via the `health.probes` config:
89
+
90
+ ```typescript
91
+ @FrontMcp({
92
+ info: { name: 'my-server', version: '1.0.0' },
93
+ apps: [MyApp],
94
+ redis: { host: 'localhost' },
95
+ health: {
96
+ probes: [
97
+ {
98
+ name: 'postgres',
99
+ async check() {
100
+ const start = Date.now();
101
+ await pool.query('SELECT 1');
102
+ return { status: 'healthy', latencyMs: Date.now() - start };
103
+ },
104
+ },
105
+ {
106
+ name: 'external-api',
107
+ async check() {
108
+ const res = await fetch('https://api.example.com/ping');
109
+ return { status: res.ok ? 'healthy' : 'unhealthy' };
110
+ },
111
+ },
112
+ ],
113
+ },
114
+ })
115
+ ```
116
+
117
+ ## Configuration Options
118
+
119
+ ```typescript
120
+ health: {
121
+ enabled: true, // default: true
122
+ healthzPath: '/healthz', // default: '/healthz'
123
+ readyzPath: '/readyz', // default: '/readyz'
124
+ includeDetails: false, // default: true in dev, false in production
125
+ readyz: {
126
+ enabled: true, // auto-determined by runtime when omitted
127
+ timeoutMs: 5000, // per-probe timeout, default: 5000
128
+ },
129
+ probes: [], // custom user-defined probes
130
+ }
131
+ ```
132
+
133
+ ### Probe Result Shape
134
+
135
+ Each probe must return:
136
+
137
+ ```typescript
138
+ interface HealthProbeResult {
139
+ status: 'healthy' | 'degraded' | 'unhealthy';
140
+ latencyMs?: number;
141
+ details?: Record<string, unknown>;
142
+ error?: string;
143
+ }
144
+ ```
145
+
146
+ ## Production Recommendations
147
+
148
+ - [ ] Set `includeDetails: false` in production to avoid leaking infrastructure topology
149
+ - [ ] Set `readyz.timeoutMs` to a value lower than your orchestrator's probe timeout
150
+ - [ ] Add custom probes for all external dependencies (databases, APIs, queues)
151
+ - [ ] Use the `toolsHash` from `/readyz` to detect config drift across instances
152
+ - [ ] Point Kubernetes liveness probe at `/healthz` and readiness probe at `/readyz`
153
+ - [ ] Point load balancer health checks at `/health` or `/healthz`
154
+
155
+ ## Kubernetes Example
156
+
157
+ ```yaml
158
+ livenessProbe:
159
+ httpGet:
160
+ path: /healthz
161
+ port: 3001
162
+ initialDelaySeconds: 5
163
+ periodSeconds: 10
164
+ readinessProbe:
165
+ httpGet:
166
+ path: /readyz
167
+ port: 3001
168
+ initialDelaySeconds: 10
169
+ periodSeconds: 15
170
+ timeoutSeconds: 5
171
+ ```
172
+
173
+ ## Docker Example
174
+
175
+ ```dockerfile
176
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
177
+ CMD curl -f http://localhost:3001/healthz || exit 1
178
+ ```
179
+
180
+ ## Disabling Health Endpoints
181
+
182
+ ```typescript
183
+ @FrontMcp({
184
+ health: { enabled: false },
185
+ })
186
+ ```
187
+
188
+ ## Examples
189
+
190
+ | Example | Level | Description |
191
+ | ------------------------------------------------------------------------------------ | ------------ | ------------------------------------------------------------------------------------------ |
192
+ | [`basic-health-setup`](../examples/health-readiness-endpoints/basic-health-setup.md) | Basic | Default health endpoints with Redis session store, showing /healthz and /readyz responses. |
193
+ | [`custom-probes`](../examples/health-readiness-endpoints/custom-probes.md) | Intermediate | Custom database and API probes with Kubernetes deployment configuration. |
194
+
195
+ ## Reference
196
+
197
+ - [Health Checks Documentation](https://docs.agentfront.dev/frontmcp/deployment/health-checks)
198
+ - Related skills: `frontmcp-observability`, `frontmcp-deployment`, `frontmcp-config`
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: production-browser
3
+ description: Checklist for publishing FrontMCP as a browser-compatible SDK bundle
4
+ ---
5
+
6
+ # Production Readiness: Browser SDK
7
+
8
+ Target-specific checklist for publishing FrontMCP as a browser-compatible SDK.
9
+
10
+ > Run the `common-checklist` first, then use this checklist for browser-specific items.
11
+
12
+ ## Build
13
+
14
+ - [ ] `frontmcp build --target browser` produces a correct ESM/UMD bundle
15
+ - [ ] Bundle size is acceptable (check with `npx bundlesize` or similar)
16
+ - [ ] Tree-shaking works (no unnecessary code in final bundle)
17
+ - [ ] Source maps are generated for debugging (but not shipped to production CDN)
18
+
19
+ ## Browser Compatibility
20
+
21
+ - [ ] No Node.js-only APIs (`fs`, `path`, `child_process`, `net`, `crypto`)
22
+ - [ ] All crypto uses `@frontmcp/utils` (wraps Web Crypto API)
23
+ - [ ] All file operations removed or polyfilled
24
+ - [ ] Fetch API used instead of Node http/https modules
25
+ - [ ] Works in major browsers (Chrome, Firefox, Safari, Edge)
26
+
27
+ ## Security
28
+
29
+ - [ ] No secrets bundled in the client-side code
30
+ - [ ] API keys are NOT in the browser bundle (use server-side proxy)
31
+ - [ ] CORS is configured on the server to accept browser origins
32
+ - [ ] Content Security Policy (CSP) headers are compatible
33
+
34
+ ## Distribution
35
+
36
+ - [ ] Package exports both ESM and CJS: `"module"` and `"main"` in package.json
37
+ - [ ] `"browser"` field in package.json points to the browser build
38
+ - [ ] TypeScript declarations (`.d.ts`) are included
39
+ - [ ] CDN-friendly: works via `<script>` tag or `import` from CDN
40
+
41
+ ## Performance
42
+
43
+ - [ ] Bundle is minified for production
44
+ - [ ] Code splitting is used for large optional features
45
+ - [ ] No synchronous operations that block the main thread
46
+ - [ ] WebSocket/SSE connections handle reconnection gracefully
47
+
48
+ ## Examples
49
+
50
+ | Example | Level | Description |
51
+ | ---------------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
52
+ | [`browser-bundle-config`](../examples/production-browser/browser-bundle-config.md) | Basic | Shows how to configure package.json for browser-compatible SDK distribution with ESM/CJS/UMD entry points, TypeScript declarations, and CDN support. |
53
+ | [`cross-platform-crypto`](../examples/production-browser/cross-platform-crypto.md) | Intermediate | Shows how to use `@frontmcp/utils` for cross-platform crypto operations that work in both browser and Node.js, and how to avoid Node.js-only APIs. |
54
+ | [`security-and-performance`](../examples/production-browser/security-and-performance.md) | Advanced | Shows how to ensure no secrets are bundled in browser code, configure CSP headers on the server, optimize bundle size, and avoid blocking the main thread. |
55
+
56
+ > See all examples in [`examples/production-browser/`](../examples/production-browser/)
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: production-cli-binary
3
+ description: Checklist for publishing FrontMCP as a one-shot CLI binary with stdin/stdout transport
4
+ ---
5
+
6
+ # Production Readiness: CLI Binary (One-Shot Execution)
7
+
8
+ Checklist for publishing FrontMCP as a one-shot CLI binary — runs a command, processes input, exits. Not a long-running server.
9
+
10
+ > Run the `common-checklist` first, then use this checklist for binary-specific items.
11
+
12
+ ## Build
13
+
14
+ - [ ] `frontmcp build --target cli` produces a working binary
15
+ - [ ] Binary starts and responds to `--help` within 500ms
16
+ - [ ] `package.json` has correct `bin` field pointing to the built output
17
+ - [ ] Shebang line is correct: `#!/usr/bin/env node`
18
+ - [ ] Binary file has execute permissions (`chmod +x`)
19
+
20
+ ## Startup Performance
21
+
22
+ - [ ] Cold start time is under 1 second
23
+ - [ ] No heavy initialization at module scope (lazy-load dependencies)
24
+ - [ ] No network calls during startup (model downloads, API fetches)
25
+ - [ ] No async initialization that blocks first output
26
+
27
+ ## stdin/stdout Transport
28
+
29
+ - [ ] MCP stdio transport works: reads JSON-RPC from stdin, writes to stdout
30
+ - [ ] stderr is used for logging (not stdout — that's the MCP channel)
31
+ - [ ] Handles EOF on stdin gracefully (clean exit)
32
+ - [ ] Handles broken pipe on stdout gracefully (no crash)
33
+
34
+ ## Exit Behavior
35
+
36
+ - [ ] Exit code 0 on success
37
+ - [ ] Exit code 1 on user error (bad input, missing args)
38
+ - [ ] Exit code 2 on internal error
39
+ - [ ] No hanging — process exits promptly after work is done
40
+ - [ ] All async operations complete before exit (no dangling promises)
41
+
42
+ ## npm Distribution
43
+
44
+ - [ ] Package name is available on npm
45
+ - [ ] `package.json` has `name`, `version`, `description`, `keywords`, `license`
46
+ - [ ] `files` field includes only: `dist/`, `README.md`, `LICENSE`
47
+ - [ ] `.npmignore` or `files` excludes: `src/`, `e2e/`, `.env`, `coverage/`
48
+ - [ ] `README.md` has: `npm install -g <name>` and usage examples
49
+
50
+ ## Error Messages
51
+
52
+ - [ ] User errors show helpful messages (not stack traces)
53
+ - [ ] `--version` flag works correctly
54
+ - [ ] Unknown flags produce a helpful error
55
+ - [ ] Missing required arguments show usage hint
56
+
57
+ ## Security
58
+
59
+ - [ ] No secrets bundled in the binary
60
+ - [ ] No secrets logged to stderr
61
+ - [ ] No hardcoded paths (use `os.homedir()`, `os.tmpdir()`)
62
+ - [ ] No writes to unexpected locations
63
+
64
+ ## Examples
65
+
66
+ | Example | Level | Description |
67
+ | ------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
68
+ | [`binary-build-config`](../examples/production-cli-binary/binary-build-config.md) | Basic | Shows how to configure a FrontMCP CLI binary with correct package.json `bin` field, shebang, stdio transport, and npm distribution settings. |
69
+ | [`stdio-transport-error-handling`](../examples/production-cli-binary/stdio-transport-error-handling.md) | Intermediate | Shows how to handle stdin/stdout transport correctly, implement proper exit codes, and handle edge cases like EOF and broken pipes. |
70
+
71
+ > See all examples in [`examples/production-cli-binary/`](../examples/production-cli-binary/)
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: production-cli-daemon
3
+ description: Checklist for deploying FrontMCP as a long-running local daemon with socket transport
4
+ ---
5
+
6
+ # Production Readiness: CLI Daemon (Local MCP Server)
7
+
8
+ Checklist for deploying FrontMCP as a long-running local MCP server managed by the FrontMCP process manager (`frontmcp start/stop/restart`).
9
+
10
+ > Run the `common-checklist` first, then use this checklist for daemon-specific items.
11
+
12
+ ## Process Management
13
+
14
+ - [ ] Server starts via `frontmcp start <name> --entry ./src/main.ts`
15
+ - [ ] `frontmcp stop <name>` cleanly shuts down the daemon
16
+ - [ ] `frontmcp restart <name>` works without orphaned processes
17
+ - [ ] `frontmcp status` shows the daemon as running
18
+ - [ ] `frontmcp logs <name> --follow` streams daemon output
19
+
20
+ ## Socket / Transport
21
+
22
+ - [ ] Unix socket path is configured: `http: { socketPath: '/tmp/my-app.sock' }`
23
+ - [ ] Socket file is cleaned up on shutdown (no stale `.sock` files)
24
+ - [ ] Stdio transport works as fallback: `frontmcp socket ./src/main.ts`
25
+ - [ ] Socket permissions are restrictive (only the owning user can connect)
26
+
27
+ ## Service Registration
28
+
29
+ - [ ] `frontmcp service install <name>` registers as a system service (launchd/systemd)
30
+ - [ ] Service starts automatically on boot (if desired)
31
+ - [ ] Service restarts on crash with backoff
32
+ - [ ] Logs are captured by the system journal / log file
33
+
34
+ ## Storage
35
+
36
+ - [ ] SQLite used for local persistence (session, cache)
37
+ - [ ] Database file location is configurable (not hardcoded)
38
+ - [ ] WAL mode enabled for concurrent reads
39
+ - [ ] Automatic migration on startup (if schema changes)
40
+ - [ ] Redis optional (only if shared state is needed between instances)
41
+
42
+ ## Graceful Shutdown
43
+
44
+ - [ ] SIGTERM handler completes in-flight requests
45
+ - [ ] Database connections are closed
46
+ - [ ] Socket file is removed
47
+ - [ ] PID file is cleaned up
48
+
49
+ ## Health & Monitoring
50
+
51
+ - [ ] `/health` endpoint responds on the socket
52
+ - [ ] Startup errors are logged clearly (not swallowed)
53
+ - [ ] `frontmcp doctor` passes all checks
54
+ - [ ] Memory usage is stable over time (no leaks)
55
+
56
+ ## Security
57
+
58
+ - [ ] Socket file has restrictive permissions
59
+ - [ ] No network exposure (socket-only, not TCP)
60
+ - [ ] Secrets stored in config file with `600` permissions
61
+ - [ ] Config stored in `~/.config/<app>/` or XDG directories
62
+
63
+ ## Examples
64
+
65
+ | Example | Level | Description |
66
+ | --------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
67
+ | [`daemon-socket-config`](../examples/production-cli-daemon/daemon-socket-config.md) | Basic | Shows how to configure a FrontMCP server as a long-running local daemon with Unix socket transport, process management, and SQLite storage. |
68
+ | [`graceful-shutdown-cleanup`](../examples/production-cli-daemon/graceful-shutdown-cleanup.md) | Intermediate | Shows how to implement graceful shutdown for a daemon process, including completing in-flight requests, closing database connections, removing the socket file, and cleaning up the PID file. |
69
+ | [`security-and-permissions`](../examples/production-cli-daemon/security-and-permissions.md) | Advanced | Shows how to secure a local daemon with restrictive socket permissions, XDG-compliant config storage, and file-based secret management. |
70
+
71
+ > See all examples in [`examples/production-cli-daemon/`](../examples/production-cli-daemon/)
@@ -0,0 +1,62 @@
1
+ ---
2
+ name: production-cloudflare
3
+ description: Checklist for deploying FrontMCP to Cloudflare Workers with KV and Durable Objects
4
+ ---
5
+
6
+ # Production Readiness: Cloudflare Workers
7
+
8
+ Target-specific checklist for deploying FrontMCP to Cloudflare Workers.
9
+
10
+ > Run the `common-checklist` first, then use this checklist for Cloudflare-specific items.
11
+
12
+ ## Wrangler Configuration
13
+
14
+ - [ ] `wrangler.toml` is configured with correct routes and bindings
15
+ - [ ] `frontmcp build --target cloudflare` produces the correct output
16
+ - [ ] Environment variables are set via `wrangler secret put` or dashboard
17
+ - [ ] Custom domain or `*.workers.dev` subdomain is configured for CORS
18
+
19
+ ## Workers Runtime
20
+
21
+ - [ ] No Node.js-only APIs used (Workers use V8 isolates, not Node)
22
+ - [ ] No `node:crypto` or `node:fs` — use `@frontmcp/utils` or Web APIs
23
+ - [ ] Bundle size is within Workers limits (< 10MB compressed)
24
+ - [ ] No `eval()` or dynamic `Function()` (prohibited in Workers)
25
+ - [ ] Async I/O only — no synchronous blocking operations
26
+
27
+ ## Storage
28
+
29
+ - [ ] Session storage uses Workers KV, Durable Objects, or D1
30
+ - [ ] Cache uses Workers KV or Cache API
31
+ - [ ] No file system access (Workers have no filesystem)
32
+ - [ ] R2 is used for blob/file storage if needed
33
+
34
+ ## Performance
35
+
36
+ - [ ] Cold start time is within Workers limits (< 50ms)
37
+ - [ ] No heavy initialization at module scope
38
+ - [ ] Lazy-load dependencies
39
+ - [ ] Request handling completes within CPU time limits
40
+
41
+ ## Scaling
42
+
43
+ - [ ] Stateless design (Workers are ephemeral)
44
+ - [ ] Durable Objects used for stateful coordination (if needed)
45
+ - [ ] No in-memory caching between requests (use KV instead)
46
+
47
+ ## CI/CD
48
+
49
+ - [ ] `wrangler.toml` environment configs for staging/production
50
+ - [ ] Secrets set via `wrangler secret put`
51
+ - [ ] Deploy with `wrangler deploy` (not manual upload)
52
+ - [ ] Tail logs: `wrangler tail` for production debugging
53
+
54
+ ## Examples
55
+
56
+ | Example | Level | Description |
57
+ | ------------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
58
+ | [`durable-objects-state`](../examples/production-cloudflare/durable-objects-state.md) | Advanced | Shows how to use Cloudflare Durable Objects for stateful coordination alongside the stateless Workers runtime, with KV for cache and R2 for blob storage. |
59
+ | [`workers-runtime-constraints`](../examples/production-cloudflare/workers-runtime-constraints.md) | Intermediate | Shows how to write tools that are compatible with the Cloudflare Workers runtime: no Node.js APIs, no eval, only async I/O, and using Web APIs. |
60
+ | [`wrangler-config`](../examples/production-cloudflare/wrangler-config.md) | Basic | Shows how to configure `wrangler.toml` with correct routes, KV bindings for session storage, and secret management for a FrontMCP Cloudflare Worker. |
61
+
62
+ > See all examples in [`examples/production-cloudflare/`](../examples/production-cloudflare/)