@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,164 @@
1
+ ---
2
+ name: vendor-integrations
3
+ description: 'Connect FrontMCP observability to Coralogix, Datadog, Logz.io, Grafana Cloud, or any OTLP backend.'
4
+ tags: [vendor, coralogix, datadog, logz, grafana, otlp, integration]
5
+ ---
6
+
7
+ # Vendor Integrations
8
+
9
+ Connect FrontMCP traces and logs to any monitoring platform. All major vendors accept OTLP — the standard OpenTelemetry protocol.
10
+
11
+ ## OTLP — Universal Standard
12
+
13
+ The `otlp` sink type sends structured logs (with trace correlation) to any OTLP-compatible endpoint:
14
+
15
+ ```typescript
16
+ @FrontMcp({
17
+ observability: {
18
+ tracing: true,
19
+ logging: {
20
+ sinks: [{
21
+ type: 'otlp',
22
+ endpoint: 'http://your-collector:4318',
23
+ headers: { Authorization: 'Bearer YOUR_TOKEN' },
24
+ }],
25
+ },
26
+ },
27
+ })
28
+ ```
29
+
30
+ ## Vendor-Specific Configuration
31
+
32
+ ### Coralogix
33
+
34
+ ```typescript
35
+ observability: {
36
+ tracing: true,
37
+ logging: {
38
+ sinks: [{
39
+ type: 'otlp',
40
+ endpoint: 'https://ingress.coralogix.com:443', // EU: eu2.coralogix.com
41
+ headers: { Authorization: 'Bearer CX_PRIVATE_KEY' },
42
+ serviceName: 'my-mcp-server',
43
+ }],
44
+ },
45
+ }
46
+ ```
47
+
48
+ For traces, configure `setupOTel()` with the same endpoint:
49
+
50
+ ```typescript
51
+ import { setupOTel } from '@frontmcp/observability';
52
+
53
+ setupOTel({
54
+ serviceName: 'my-mcp-server',
55
+ exporter: 'otlp',
56
+ endpoint: 'https://ingress.coralogix.com:443',
57
+ });
58
+ ```
59
+
60
+ ### Datadog
61
+
62
+ ```typescript
63
+ observability: {
64
+ tracing: true,
65
+ logging: {
66
+ sinks: [{
67
+ type: 'otlp',
68
+ endpoint: 'https://http-intake.logs.datadoghq.com', // EU: .datadoghq.eu
69
+ headers: { 'DD-API-KEY': 'YOUR_DATADOG_API_KEY' },
70
+ }],
71
+ },
72
+ }
73
+ ```
74
+
75
+ ### Logz.io
76
+
77
+ ```typescript
78
+ observability: {
79
+ tracing: true,
80
+ logging: {
81
+ sinks: [{
82
+ type: 'otlp',
83
+ endpoint: 'https://otlp-listener.logz.io:8071',
84
+ headers: { Authorization: 'Bearer YOUR_SHIPPING_TOKEN' },
85
+ }],
86
+ },
87
+ }
88
+ ```
89
+
90
+ ### Grafana Cloud
91
+
92
+ ```typescript
93
+ observability: {
94
+ tracing: true,
95
+ logging: {
96
+ sinks: [{
97
+ type: 'otlp',
98
+ endpoint: 'https://otlp-gateway-prod-us-east-0.grafana.net/otlp',
99
+ headers: {
100
+ Authorization: 'Basic ' + Buffer.from(`${instanceId}:${apiKey}`).toString('base64'),
101
+ },
102
+ }],
103
+ },
104
+ }
105
+ ```
106
+
107
+ ### Local Collector (Development)
108
+
109
+ ```typescript
110
+ observability: {
111
+ tracing: true,
112
+ logging: {
113
+ sinks: [{ type: 'otlp', endpoint: 'http://localhost:4318' }],
114
+ },
115
+ }
116
+ ```
117
+
118
+ ## Environment Variable Configuration
119
+
120
+ All vendors can be configured via environment variables — no code changes:
121
+
122
+ ```bash
123
+ OTEL_SERVICE_NAME=my-mcp-server
124
+ OTEL_EXPORTER_OTLP_ENDPOINT=https://ingress.coralogix.com:443
125
+ OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer CX_KEY"
126
+ ```
127
+
128
+ ## Winston / Pino (Existing Logging)
129
+
130
+ If you already have a winston or pino setup routing logs to a vendor:
131
+
132
+ ```typescript
133
+ // Use your existing logger — it already sends to your vendor
134
+ observability: {
135
+ logging: {
136
+ sinks: [{ type: 'winston', logger: existingWinstonLogger }],
137
+ },
138
+ }
139
+ ```
140
+
141
+ Structured log entries (with `trace_id`) are forwarded to your logger, which sends them to wherever it's configured.
142
+
143
+ ## OTLP Sink Options
144
+
145
+ | Option | Type | Default | Description |
146
+ | ----------------- | ------------------------ | -------------------------------------------------------- | ------------------------------------------- |
147
+ | `endpoint` | `string` | `OTEL_EXPORTER_OTLP_ENDPOINT` or `http://localhost:4318` | OTLP endpoint (path `/v1/logs` is appended) |
148
+ | `headers` | `Record<string, string>` | `{}` | Auth headers |
149
+ | `batchSize` | `number` | `100` | Max entries before auto-flush |
150
+ | `flushIntervalMs` | `number` | `5000` | Flush timer interval |
151
+ | `serviceName` | `string` | `OTEL_SERVICE_NAME` or `frontmcp-server` | Service name in resource attributes |
152
+
153
+ ## Examples
154
+
155
+ | Example | Level | Description |
156
+ | ----------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------- |
157
+ | [`coralogix-setup`](../examples/vendor-integrations/coralogix-setup.md) | Intermediate | Send both traces and structured logs to Coralogix. Logs include trace_id so Coralogix links them to traces automatically. |
158
+
159
+ > See all examples in [`examples/vendor-integrations/`](../examples/vendor-integrations/)
160
+
161
+ ## Reference
162
+
163
+ - [Observability Guide](https://docs.agentfront.dev/frontmcp/guides/observability)
164
+ - Related skills: `frontmcp-deployment`, `frontmcp-production-readiness`
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: frontmcp-production-readiness
3
+ description: 'Pre-production audit and checklist for FrontMCP servers. Use before go-live to verify security hardening, performance checks, observability, monitoring, and health checks. Triggers: production ready, security audit, performance check, production checklist, hardening, go live.'
4
+ tags: [production, security, performance, reliability, observability, audit, best-practices]
5
+ category: production
6
+ targets: [all]
7
+ bundle: [recommended, full]
8
+ priority: 10
9
+ visibility: both
10
+ license: Apache-2.0
11
+ metadata:
12
+ docs: https://docs.agentfront.dev/frontmcp/deployment/production-build
13
+ ---
14
+
15
+ # FrontMCP Production Readiness Audit
16
+
17
+ Router for production readiness checklists. Start with the common checklist (security, performance, reliability, observability), then follow the target-specific checklist for your deployment environment.
18
+
19
+ ## When to Use This Skill
20
+
21
+ ### Must Use
22
+
23
+ - Before deploying a FrontMCP server to production for the first time
24
+ - After major feature additions or architectural changes
25
+ - During security reviews or compliance audits
26
+
27
+ ### Recommended
28
+
29
+ - As part of PR reviews for infrastructure-touching changes
30
+ - Quarterly health checks on production deployments
31
+ - When switching deployment targets
32
+
33
+ ### Skip When
34
+
35
+ - Building a prototype or proof-of-concept
36
+ - Running in development/local mode only
37
+
38
+ > **Decision:** Use this skill when preparing for production. Start with `common-checklist`, then pick your deployment target.
39
+
40
+ ## Step 1: Detect Deployment Target
41
+
42
+ Check the project to determine the deployment target:
43
+
44
+ 1. Look at `package.json` scripts for `frontmcp build --target <target>`
45
+ 2. Check for target-specific files: `ci/Dockerfile` (node), `vercel.json` (vercel), `wrangler.toml` (cloudflare), `ci/template.yaml` (lambda)
46
+ 3. Check if the build target is `cli` or `browser` in the build config
47
+ 4. If unclear, ask the user which environment they're deploying to
48
+
49
+ ## Step 2: Run Common Checklist
50
+
51
+ Always start with the common checklist — it covers security, performance, reliability, and observability that apply to every target.
52
+
53
+ ## Step 3: Run Target-Specific Checklist
54
+
55
+ After the common checklist, run the checklist for your deployment target.
56
+
57
+ ## Scenario Routing Table
58
+
59
+ | Scenario | Reference | Description |
60
+ | -------------------------------------------------------- | ------------------------------------------ | --------------------------------------------------- |
61
+ | Common security, performance, reliability, observability | `references/common-checklist.md` | Applies to ALL targets — run this first |
62
+ | Health & readiness endpoints (/healthz, /readyz) | `references/health-readiness-endpoints.md` | Custom probes, Kubernetes, runtime-aware readiness |
63
+ | Standalone Node.js server with Docker | `references/production-node-server.md` | Docker, health checks, Redis, scaling, CI/CD |
64
+ | Node.js SDK / direct client (npm package) | `references/production-node-sdk.md` | create()/connect() API, disposal, npm publishing |
65
+ | Vercel serverless / edge | `references/production-vercel.md` | Vercel config, edge runtime, cold starts, Vercel KV |
66
+ | Cloudflare Workers | `references/production-cloudflare.md` | Wrangler, Workers runtime, KV, Durable Objects |
67
+ | AWS Lambda | `references/production-lambda.md` | SAM template, cold starts, DynamoDB, API Gateway |
68
+ | CLI daemon (local MCP server) | `references/production-cli-daemon.md` | Process manager, socket files, service registration |
69
+ | CLI binary (one-shot execution) | `references/production-cli-binary.md` | Fast startup, stdio transport, exit codes, npm bin |
70
+ | Browser SDK | `references/production-browser.md` | Bundle size, browser APIs, CSP, CDN distribution |
71
+
72
+ ## Quick Reference: Target Detection
73
+
74
+ | File / Signal Found | Target |
75
+ | ----------------------------------------------------- | ----------------------------------------------- |
76
+ | `ci/Dockerfile` or `ci/docker-compose.yml` | Standalone server → `production-node-server.md` |
77
+ | `serve: false` or `create()` API usage | SDK / direct client → `production-node-sdk.md` |
78
+ | `vercel.json` | Vercel → `production-vercel.md` |
79
+ | `wrangler.toml` | Cloudflare → `production-cloudflare.md` |
80
+ | `ci/template.yaml` | Lambda → `production-lambda.md` |
81
+ | `frontmcp start` / `socket` / `service install` usage | CLI daemon → `production-cli-daemon.md` |
82
+ | `build --target cli` + `bin` in package.json | CLI binary → `production-cli-binary.md` |
83
+ | `build --target browser` in scripts | Browser → `production-browser.md` |
84
+
85
+ ## Verification Checklist
86
+
87
+ After completing both common and target-specific checklists:
88
+
89
+ 1. Run `frontmcp doctor` to check project configuration
90
+ 2. Run `frontmcp test` to ensure all tests pass
91
+ 3. Run `frontmcp build` to verify production build succeeds
92
+ 4. Deploy to staging and run E2E tests against it
93
+ 5. Review logs for any warnings or errors during startup
94
+ 6. Update README for the deployment target (see `frontmcp-setup` → `references/readme-guide.md`)
95
+
96
+ ## Reference
97
+
98
+ - [Production Build](https://docs.agentfront.dev/frontmcp/deployment/production-build)
99
+ - Related skills: `frontmcp-config`, `frontmcp-deployment`, `frontmcp-testing`, `frontmcp-setup`, `frontmcp-observability`
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: caching-and-performance
3
+ reference: common-checklist
4
+ level: advanced
5
+ description: 'Shows how to configure caching with TTL, optimize responses, and manage memory with proper provider lifecycle cleanup.'
6
+ tags: [production, redis, cache, session, performance, checklist]
7
+ features:
8
+ - 'Configuring per-tool cache TTL instead of a single global value'
9
+ - 'Using Redis-backed cache for multi-instance consistency'
10
+ - 'Setting session TTL to prevent unbounded storage growth'
11
+ - 'Implementing `onDestroy()` in providers for proper connection cleanup'
12
+ - 'Using connection pool limits and timeouts to prevent resource exhaustion'
13
+ ---
14
+
15
+ # Caching and Performance Configuration
16
+
17
+ Shows how to configure caching with TTL, optimize responses, and manage memory with proper provider lifecycle cleanup.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/main.ts
23
+ import { FrontMcp } from '@frontmcp/sdk';
24
+ import { CachePlugin } from '@frontmcp/plugins';
25
+ import { MyApp } from './my.app';
26
+
27
+ @FrontMcp({
28
+ info: { name: 'perf-server', version: '1.0.0' },
29
+ apps: [MyApp],
30
+ plugins: [
31
+ new CachePlugin({
32
+ // Per-tool TTL tuning (not one-size-fits-all)
33
+ ttl: {
34
+ get_weather: 300_000, // 5 minutes — data changes slowly
35
+ list_tasks: 10_000, // 10 seconds — data changes frequently
36
+ },
37
+ defaultTtl: 60_000, // 1 minute default
38
+ }),
39
+ ],
40
+
41
+ // Redis for multi-instance cache consistency
42
+ redis: {
43
+ provider: 'redis',
44
+ host: process.env.REDIS_HOST ?? 'localhost',
45
+ port: 6379,
46
+ },
47
+
48
+ // Session TTL to prevent unbounded growth
49
+ session: {
50
+ ttl: 3600_000, // 1 hour
51
+ },
52
+ })
53
+ export default class PerfServer {}
54
+ ```
55
+
56
+ ```typescript
57
+ // src/providers/db-connection.provider.ts
58
+ import { Provider, ProviderScope } from '@frontmcp/sdk';
59
+
60
+ export const DB_POOL = Symbol('DbPool');
61
+
62
+ @Provider({ token: DB_POOL, scope: ProviderScope.GLOBAL })
63
+ export class DbConnectionProvider {
64
+ private pool!: { query: Function; end: Function };
65
+
66
+ async onInit(): Promise<void> {
67
+ // Connection pool with limits — prevents resource exhaustion
68
+ this.pool = await this.createPool({
69
+ host: process.env.DB_HOST,
70
+ max: 20, // Maximum connections
71
+ idleTimeoutMs: 30_000, // Close idle connections after 30s
72
+ connectionTimeoutMs: 5_000, // Don't hang on connection attempts
73
+ });
74
+ }
75
+
76
+ async query(sql: string, params: unknown[]): Promise<unknown> {
77
+ return this.pool.query(sql, params); // Parameterized — no SQL injection
78
+ }
79
+
80
+ async onDestroy(): Promise<void> {
81
+ // Clean up on shutdown — prevents connection leaks
82
+ await this.pool.end();
83
+ }
84
+
85
+ private async createPool(config: Record<string, unknown>): Promise<{ query: Function; end: Function }> {
86
+ // Replace with your database driver (e.g., pg, mysql2)
87
+ throw new Error('Implement with your database driver');
88
+ }
89
+ }
90
+ ```
91
+
92
+ ## What This Demonstrates
93
+
94
+ - Configuring per-tool cache TTL instead of a single global value
95
+ - Using Redis-backed cache for multi-instance consistency
96
+ - Setting session TTL to prevent unbounded storage growth
97
+ - Implementing `onDestroy()` in providers for proper connection cleanup
98
+ - Using connection pool limits and timeouts to prevent resource exhaustion
99
+
100
+ ## Related
101
+
102
+ - See `common-checklist` for the full performance and memory management checklist
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: observability-setup
3
+ reference: common-checklist
4
+ level: intermediate
5
+ description: 'Shows how to configure structured logging, error handling with MCP error codes, and monitoring integration for production.'
6
+ tags: [production, observability, checklist, setup]
7
+ features:
8
+ - 'Using `this.mark()` to annotate execution phases for tracing'
9
+ - 'Using `this.fail()` for business-logic errors without exposing internals'
10
+ - 'Setting timeouts on all external calls via `AbortSignal.timeout()`'
11
+ - 'Implementing health check providers that verify downstream dependencies'
12
+ ---
13
+
14
+ # Observability and Error Handling Setup
15
+
16
+ Shows how to configure structured logging, error handling with MCP error codes, and monitoring integration for production.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/tools/monitored-tool.tool.ts
22
+ import { Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'monitored_operation',
27
+ description: 'A tool with proper error handling and observability markers',
28
+ inputSchema: {
29
+ operationId: z.string().min(1).describe('Operation identifier'),
30
+ },
31
+ outputSchema: {
32
+ status: z.string(),
33
+ operationId: z.string(),
34
+ },
35
+ })
36
+ export class MonitoredOperationTool extends ToolContext {
37
+ async execute(input: { operationId: string }) {
38
+ // Mark execution phases for tracing and duration metrics
39
+ this.mark('validation');
40
+ // ... validate business rules ...
41
+
42
+ this.mark('processing');
43
+ const result = await this.processOperation(input.operationId);
44
+
45
+ if (!result) {
46
+ // Use this.fail() with specific errors — never expose stack traces
47
+ this.fail(new Error(`Operation not found: ${input.operationId}`));
48
+ }
49
+
50
+ // Report progress for long-running operations
51
+ await this.respondProgress(1, 1);
52
+
53
+ return { status: 'completed', operationId: input.operationId };
54
+ }
55
+
56
+ private async processOperation(id: string): Promise<boolean> {
57
+ // External call with timeout — always set timeouts for external services
58
+ const response = await this.fetch(`https://api.example.com/operations/${id}`, {
59
+ signal: AbortSignal.timeout(5000), // 5 second timeout
60
+ });
61
+ return response.ok;
62
+ }
63
+ }
64
+ ```
65
+
66
+ ```typescript
67
+ // src/providers/health-check.provider.ts
68
+ import { Provider, ProviderScope } from '@frontmcp/sdk';
69
+
70
+ export const HEALTH_CHECK = Symbol('HealthCheck');
71
+
72
+ @Provider({ token: HEALTH_CHECK, scope: ProviderScope.GLOBAL })
73
+ export class HealthCheckProvider {
74
+ async checkRedis(): Promise<boolean> {
75
+ // Verify downstream dependency is reachable
76
+ try {
77
+ // ... ping Redis ...
78
+ return true;
79
+ } catch {
80
+ return false;
81
+ }
82
+ }
83
+
84
+ async checkDatabase(): Promise<boolean> {
85
+ try {
86
+ // ... run a lightweight query ...
87
+ return true;
88
+ } catch {
89
+ return false;
90
+ }
91
+ }
92
+ }
93
+ ```
94
+
95
+ ## What This Demonstrates
96
+
97
+ - Using `this.mark()` to annotate execution phases for tracing
98
+ - Using `this.fail()` for business-logic errors without exposing internals
99
+ - Setting timeouts on all external calls via `AbortSignal.timeout()`
100
+ - Implementing health check providers that verify downstream dependencies
101
+
102
+ ## Related
103
+
104
+ - See `common-checklist` for the full observability and monitoring checklist
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: security-hardening
3
+ reference: common-checklist
4
+ level: basic
5
+ description: 'Shows how to configure authentication, CORS, input validation, and rate limiting for a production FrontMCP server.'
6
+ tags: [production, redis, session, security, throttle, checklist]
7
+ features:
8
+ - "Restricting CORS origins to known domains instead of using `'*'`"
9
+ - 'Configuring rate limiting via the `throttle` option'
10
+ - 'Using Redis for session storage in multi-instance deployments'
11
+ - 'Defining both `inputSchema` and `outputSchema` on tools to prevent data leaks'
12
+ ---
13
+
14
+ # Security Hardening Configuration
15
+
16
+ Shows how to configure authentication, CORS, input validation, and rate limiting for a production FrontMCP server.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/main.ts
22
+ import { FrontMcp } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+ import { MyApp } from './my.app';
25
+
26
+ @FrontMcp({
27
+ info: { name: 'secure-server', version: '1.0.0' },
28
+ apps: [MyApp],
29
+
30
+ // Authentication: use remote OAuth provider
31
+ auth: {
32
+ mode: 'remote',
33
+ provider: 'https://auth.example.com',
34
+ clientId: process.env.AUTH_CLIENT_ID!,
35
+ },
36
+
37
+ // CORS: restrict to known origins (never use '*' in production)
38
+ cors: {
39
+ origin: ['https://app.example.com', 'https://admin.example.com'],
40
+ credentials: true,
41
+ maxAge: 86400, // Cache preflight for 24 hours
42
+ },
43
+
44
+ // Rate limiting: prevent abuse
45
+ throttle: {
46
+ windowMs: 60_000, // 1 minute window
47
+ max: 100, // 100 requests per window per client
48
+ },
49
+
50
+ // Session storage: use Redis (not in-memory) for multi-instance
51
+ redis: {
52
+ provider: 'redis',
53
+ host: process.env.REDIS_HOST ?? 'localhost',
54
+ port: 6379,
55
+ },
56
+ })
57
+ export default class SecureServer {}
58
+ ```
59
+
60
+ ```typescript
61
+ // src/tools/safe-query.tool.ts
62
+ import { Tool, ToolContext } from '@frontmcp/sdk';
63
+ import { z } from 'zod';
64
+
65
+ @Tool({
66
+ name: 'safe_query',
67
+ description: 'Query data with validated and sanitized input',
68
+ inputSchema: {
69
+ query: z.string().min(1).max(500).describe('Search query'),
70
+ limit: z.number().int().min(1).max(100).default(10).describe('Max results'),
71
+ },
72
+ outputSchema: {
73
+ results: z.array(z.object({ id: z.string(), title: z.string() })),
74
+ total: z.number(),
75
+ },
76
+ })
77
+ export class SafeQueryTool extends ToolContext {
78
+ async execute(input: { query: string; limit: number }) {
79
+ // Zod already validated input — safe to use
80
+ // outputSchema prevents accidental data leaks
81
+ return { results: [], total: 0 };
82
+ }
83
+ }
84
+ ```
85
+
86
+ ## What This Demonstrates
87
+
88
+ - Restricting CORS origins to known domains instead of using `'*'`
89
+ - Configuring rate limiting via the `throttle` option
90
+ - Using Redis for session storage in multi-instance deployments
91
+ - Defining both `inputSchema` and `outputSchema` on tools to prevent data leaks
92
+
93
+ ## Related
94
+
95
+ - See `common-checklist` for the full security, performance, and reliability checklist
@@ -0,0 +1,81 @@
1
+ ---
2
+ name: basic-health-setup
3
+ reference: health-readiness-endpoints
4
+ level: basic
5
+ description: 'Default health endpoints with Redis session store, showing /healthz and /readyz responses.'
6
+ tags: [production, health, readiness, redis, kubernetes, docker]
7
+ features:
8
+ - 'Zero-config /healthz and /readyz endpoints enabled by default'
9
+ - 'Auto-discovered session-store probe via Redis persistence'
10
+ - 'Catalog hash for config drift detection across instances'
11
+ - 'Docker HEALTHCHECK directive using /healthz'
12
+ ---
13
+
14
+ # Basic Health Setup
15
+
16
+ Default health endpoints with Redis session store, showing /healthz and /readyz responses.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp } from '@frontmcp/sdk';
23
+ import { MyApp } from './apps/my-app';
24
+
25
+ @FrontMcp({
26
+ info: { name: 'my-server', version: '1.0.0' },
27
+ apps: [MyApp],
28
+ http: { port: 3001 },
29
+ redis: { host: 'localhost', port: 6379 },
30
+ transport: {
31
+ persistence: {}, // auto-uses global redis
32
+ },
33
+ // health endpoints are enabled by default:
34
+ // GET /healthz -> { status: 'ok', server: {...}, runtime: {...}, uptime: ... }
35
+ // GET /readyz -> { status: 'ready', catalog: {...}, probes: { 'session-store': {...} } }
36
+ // GET /health -> legacy alias for /healthz
37
+ })
38
+ export default class Server {}
39
+ ```
40
+
41
+ ```dockerfile
42
+ # ci/Dockerfile
43
+ FROM node:20-slim
44
+ WORKDIR /app
45
+ COPY dist/ ./dist/
46
+ COPY package.json ./
47
+ RUN npm ci --production
48
+ EXPOSE 3001
49
+
50
+ HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
51
+ CMD curl -f http://localhost:3001/healthz || exit 1
52
+
53
+ CMD ["node", "dist/main.js"]
54
+ ```
55
+
56
+ Test the endpoints:
57
+
58
+ ```bash
59
+ # Liveness probe
60
+ curl http://localhost:3001/healthz
61
+ # {"status":"ok","server":{"name":"my-server","version":"1.0.0"},"runtime":{"platform":"linux","runtime":"node","deployment":"standalone","env":"production"},"uptime":42.5}
62
+
63
+ # Readiness probe (includes auto-discovered session-store probe)
64
+ curl http://localhost:3001/readyz
65
+ # {"status":"ready","totalLatencyMs":15,"catalog":{"toolsHash":"a1b2c3...","toolCount":5,"resourceCount":2,"promptCount":1,"skillCount":0,"agentCount":0},"probes":{"session-store":{"status":"healthy","latencyMs":3}}}
66
+
67
+ # Legacy endpoint (alias for /healthz)
68
+ curl http://localhost:3001/health
69
+ # same as /healthz
70
+ ```
71
+
72
+ ## What This Demonstrates
73
+
74
+ - Zero-config /healthz and /readyz endpoints enabled by default
75
+ - Auto-discovered session-store probe via Redis persistence
76
+ - Catalog hash for config drift detection across instances
77
+ - Docker HEALTHCHECK directive using /healthz
78
+
79
+ ## Related
80
+
81
+ - See `health-readiness-endpoints` for custom probes and configuration options