@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,76 @@
1
+ ---
2
+ name: unix-socket-daemon
3
+ reference: build-for-cli
4
+ level: intermediate
5
+ description: 'Run a FrontMCP server as a local daemon accessible via Unix socket for IDE extensions and local MCP clients.'
6
+ tags: [deployment, unix-socket, cli, transport, local, unix]
7
+ features:
8
+ - 'Configuring a FrontMCP server for Unix socket transport instead of TCP'
9
+ - 'Running the server as a background daemon with process management (`frontmcp start/stop/status`)'
10
+ - 'Installing the daemon as a system service for automatic startup on reboot'
11
+ ---
12
+
13
+ # Unix Socket Daemon Mode
14
+
15
+ Run a FrontMCP server as a local daemon accessible via Unix socket for IDE extensions and local MCP clients.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/main.ts
21
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
22
+ import { z } from 'zod';
23
+
24
+ @Tool({
25
+ name: 'lookup',
26
+ description: 'Look up a term in the local database',
27
+ inputSchema: { term: z.string() },
28
+ })
29
+ class LookupTool extends ToolContext<{ term: string }> {
30
+ async execute(input: { term: string }) {
31
+ return { content: [{ type: 'text' as const, text: `Result for: ${input.term}` }] };
32
+ }
33
+ }
34
+
35
+ @App({ name: 'DaemonApp', tools: [LookupTool] })
36
+ class DaemonApp {}
37
+
38
+ @FrontMcp({
39
+ info: { name: 'my-daemon', version: '1.0.0' },
40
+ apps: [DaemonApp],
41
+ http: { socketPath: '/tmp/my-tool.sock' },
42
+ sqlite: { path: '~/.my-tool/data.db' },
43
+ })
44
+ class MyDaemonServer {}
45
+ ```
46
+
47
+ ```bash
48
+ # Start daemon in foreground
49
+ frontmcp socket ./src/main.ts -s ~/.frontmcp/sockets/my-app.sock
50
+
51
+ # Start daemon in background with a local database
52
+ frontmcp socket ./src/main.ts -b --db ~/.my-tool/data.db
53
+
54
+ # Manage the daemon process
55
+ frontmcp start my-daemon -e ./src/main.ts --max-restarts 5
56
+ frontmcp status my-daemon
57
+ frontmcp logs my-daemon -F
58
+ frontmcp stop my-daemon
59
+ ```
60
+
61
+ ```bash
62
+ # Install as a system service for automatic startup
63
+ # Linux: creates a systemd unit
64
+ # macOS: creates a launchd plist
65
+ frontmcp service install my-daemon
66
+ ```
67
+
68
+ ## What This Demonstrates
69
+
70
+ - Configuring a FrontMCP server for Unix socket transport instead of TCP
71
+ - Running the server as a background daemon with process management (`frontmcp start/stop/status`)
72
+ - Installing the daemon as a system service for automatic startup on reboot
73
+
74
+ ## Related
75
+
76
+ - See `build-for-cli` for the full process management and system service reference
@@ -0,0 +1,78 @@
1
+ ---
2
+ name: connect-openai
3
+ reference: build-for-sdk
4
+ level: intermediate
5
+ description: "Use `connectOpenAI()` to get tools formatted for OpenAI's function-calling API."
6
+ tags: [deployment, sdk, openai, session, connect]
7
+ features:
8
+ - 'Setting `serve: false` to prevent the HTTP server from starting in library mode'
9
+ - 'Using `connectOpenAI()` to get tools in OpenAI function-calling format automatically'
10
+ - 'Passing session information via `ConnectOptions` for user context'
11
+ ---
12
+
13
+ # Connect to OpenAI Function Calling
14
+
15
+ Use `connectOpenAI()` to get tools formatted for OpenAI's function-calling API.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/openai-integration.ts
21
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
22
+ import { connectOpenAI } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'search_docs',
27
+ description: 'Search documentation by keyword',
28
+ inputSchema: { query: z.string(), limit: z.number().optional() },
29
+ })
30
+ class SearchDocsTool extends ToolContext<{ query: string; limit?: number }> {
31
+ async execute(input: { query: string; limit?: number }) {
32
+ return {
33
+ content: [{ type: 'text' as const, text: `Found results for: ${input.query}` }],
34
+ };
35
+ }
36
+ }
37
+
38
+ @App({ name: 'DocsApp', tools: [SearchDocsTool] })
39
+ class DocsApp {}
40
+
41
+ @FrontMcp({
42
+ info: { name: 'docs-sdk', version: '1.0.0' },
43
+ apps: [DocsApp],
44
+ serve: false, // No HTTP server - library mode only
45
+ })
46
+ class DocsSDK {}
47
+
48
+ // Connect with OpenAI-formatted tools
49
+ async function main() {
50
+ const client = await connectOpenAI(DocsSDK, {
51
+ session: { id: 'user-123', user: { sub: 'user-id' } },
52
+ });
53
+
54
+ // Tools are returned in OpenAI format:
55
+ // [{ type: 'function', function: { name, description, parameters, strict: true } }]
56
+ const tools = await client.listTools();
57
+ console.log(JSON.stringify(tools, null, 2));
58
+
59
+ // Call a tool
60
+ const result = await client.callTool('search_docs', { query: 'authentication' });
61
+ console.log(result);
62
+
63
+ // Always clean up
64
+ await client.close();
65
+ }
66
+
67
+ main();
68
+ ```
69
+
70
+ ## What This Demonstrates
71
+
72
+ - Setting `serve: false` to prevent the HTTP server from starting in library mode
73
+ - Using `connectOpenAI()` to get tools in OpenAI function-calling format automatically
74
+ - Passing session information via `ConnectOptions` for user context
75
+
76
+ ## Related
77
+
78
+ - See `build-for-sdk` for `connectClaude()`, `connectLangChain()`, and `connectVercelAI()` alternatives
@@ -0,0 +1,85 @@
1
+ ---
2
+ name: create-flat-config
3
+ reference: build-for-sdk
4
+ level: basic
5
+ description: 'Spin up an in-memory FrontMCP server from a flat config object using `create()`.'
6
+ tags: [deployment, sdk, cache, flat, config]
7
+ features:
8
+ - 'Using `create()` to spin up a server without decorators or classes'
9
+ - 'Calling tools directly via `server.callTool()` with zero network overhead'
10
+ - 'Using `cacheKey` to reuse the same server instance across multiple calls'
11
+ ---
12
+
13
+ # Programmatic Server with create()
14
+
15
+ Spin up an in-memory FrontMCP server from a flat config object using `create()`.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/embedded-server.ts
21
+ import { create, tool } from '@frontmcp/sdk';
22
+ import { z } from 'zod';
23
+
24
+ async function main() {
25
+ const server = await create({
26
+ info: { name: 'my-service', version: '1.0.0' },
27
+ tools: [
28
+ tool({
29
+ name: 'calculate',
30
+ description: 'Perform calculation',
31
+ inputSchema: {
32
+ a: z.number(),
33
+ b: z.number(),
34
+ operation: z.enum(['add', 'subtract', 'multiply', 'divide']),
35
+ },
36
+ outputSchema: { result: z.number() },
37
+ })((input) => {
38
+ switch (input.operation) {
39
+ case 'add':
40
+ return { result: input.a + input.b };
41
+ case 'subtract':
42
+ return { result: input.a - input.b };
43
+ case 'multiply':
44
+ return { result: input.a * input.b };
45
+ case 'divide':
46
+ return { result: input.a / input.b };
47
+ }
48
+ }),
49
+ ],
50
+ cacheKey: 'my-service', // Reuse same instance on repeated calls
51
+ });
52
+
53
+ // Call tools directly - no HTTP involved
54
+ const result = await server.callTool('calculate', { a: 2, b: 2, operation: 'add' });
55
+ console.log(result); // { result: 4 }
56
+
57
+ // List available tools
58
+ const { tools } = await server.listTools();
59
+ console.log(tools.map((t) => t.name)); // ['calculate']
60
+
61
+ // Clean up when done
62
+ await server.dispose();
63
+ }
64
+
65
+ main();
66
+ ```
67
+
68
+ ```bash
69
+ # Build as an SDK library
70
+ frontmcp build --target sdk
71
+
72
+ # Verify outputs
73
+ ls dist/
74
+ # my-service.cjs.js my-service.esm.mjs *.d.ts
75
+ ```
76
+
77
+ ## What This Demonstrates
78
+
79
+ - Using `create()` to spin up a server without decorators or classes
80
+ - Calling tools directly via `server.callTool()` with zero network overhead
81
+ - Using `cacheKey` to reuse the same server instance across multiple calls
82
+
83
+ ## Related
84
+
85
+ - See `build-for-sdk` for the full `CreateConfig` fields and `DirectClient` API
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: multi-platform-connect
3
+ reference: build-for-sdk
4
+ level: advanced
5
+ description: 'Connect the same FrontMCP server to multiple LLM platforms using platform-specific `connect*()` functions.'
6
+ tags: [deployment, sdk, multi, platform, connect]
7
+ features:
8
+ - 'Connecting a single FrontMCP server to four different LLM platforms with automatic schema translation'
9
+ - "Each `connect*()` function returns tools in the platform's native format"
10
+ - 'All clients share the same `DirectClient` API (`listTools`, `callTool`, `close`)'
11
+ ---
12
+
13
+ # Multi-Platform Tool Connection
14
+
15
+ Connect the same FrontMCP server to multiple LLM platforms using platform-specific `connect*()` functions.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/server.ts
21
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
22
+ import { z } from 'zod';
23
+
24
+ @Tool({
25
+ name: 'translate',
26
+ description: 'Translate text to a target language',
27
+ inputSchema: { text: z.string(), targetLang: z.string() },
28
+ })
29
+ class TranslateTool extends ToolContext<{ text: string; targetLang: string }> {
30
+ async execute(input: { text: string; targetLang: string }) {
31
+ return {
32
+ content: [{ type: 'text' as const, text: `[${input.targetLang}] ${input.text}` }],
33
+ };
34
+ }
35
+ }
36
+
37
+ @App({ name: 'TranslateApp', tools: [TranslateTool] })
38
+ class TranslateApp {}
39
+
40
+ @FrontMcp({
41
+ info: { name: 'translate-sdk', version: '1.0.0' },
42
+ apps: [TranslateApp],
43
+ serve: false,
44
+ })
45
+ class TranslateSDK {}
46
+
47
+ export default TranslateSDK;
48
+ ```
49
+
50
+ ```typescript
51
+ // src/connect-all-platforms.ts
52
+ import { connectOpenAI, connectClaude, connectLangChain, connectVercelAI } from '@frontmcp/sdk';
53
+ import TranslateSDK from './server';
54
+
55
+ async function main() {
56
+ // OpenAI format: [{ type: 'function', function: { name, description, parameters, strict: true } }]
57
+ const openaiClient = await connectOpenAI(TranslateSDK, {
58
+ clientInfo: { name: 'my-app', version: '1.0' },
59
+ session: { id: 'session-1', user: { sub: 'user-1', name: 'Alice' } },
60
+ });
61
+ const openaiTools = await openaiClient.listTools();
62
+ console.log('OpenAI tools:', openaiTools);
63
+
64
+ // Claude format: [{ name, description, input_schema }]
65
+ const claudeClient = await connectClaude(TranslateSDK);
66
+ const claudeTools = await claudeClient.listTools();
67
+ console.log('Claude tools:', claudeTools);
68
+
69
+ // LangChain tool schema format
70
+ const langchainClient = await connectLangChain(TranslateSDK);
71
+ const langchainTools = await langchainClient.listTools();
72
+ console.log('LangChain tools:', langchainTools);
73
+
74
+ // Vercel AI SDK format
75
+ const vercelClient = await connectVercelAI(TranslateSDK);
76
+ const vercelTools = await vercelClient.listTools();
77
+ console.log('Vercel AI tools:', vercelTools);
78
+
79
+ // All clients share the same DirectClient API
80
+ const result = await openaiClient.callTool('translate', {
81
+ text: 'Hello',
82
+ targetLang: 'es',
83
+ });
84
+ console.log(result);
85
+
86
+ // Clean up all clients
87
+ await openaiClient.close();
88
+ await claudeClient.close();
89
+ await langchainClient.close();
90
+ await vercelClient.close();
91
+ }
92
+
93
+ main();
94
+ ```
95
+
96
+ ## What This Demonstrates
97
+
98
+ - Connecting a single FrontMCP server to four different LLM platforms with automatic schema translation
99
+ - Each `connect*()` function returns tools in the platform's native format
100
+ - All clients share the same `DirectClient` API (`listTools`, `callTool`, `close`)
101
+
102
+ ## Related
103
+
104
+ - See `build-for-sdk` for the full `DirectClient` API reference and `ConnectOptions` details
@@ -0,0 +1,82 @@
1
+ ---
2
+ name: basic-worker-deploy
3
+ reference: deploy-to-cloudflare
4
+ level: basic
5
+ description: 'Deploy a FrontMCP server to Cloudflare Workers with a minimal configuration.'
6
+ tags: [deployment, cloudflare, transport, local, worker]
7
+ features:
8
+ - 'A minimal FrontMCP server configured for Cloudflare Workers with SSE transport'
9
+ - 'The `wrangler.toml` configuration with `main` pointing to the build output'
10
+ - 'Using `wrangler dev` for local testing before deploying with `wrangler deploy`'
11
+ ---
12
+
13
+ # Basic Cloudflare Workers Deployment
14
+
15
+ Deploy a FrontMCP server to Cloudflare Workers with a minimal configuration.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/server.ts
21
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
22
+ import { z } from 'zod';
23
+
24
+ @Tool({
25
+ name: 'echo',
26
+ description: 'Echo back the input',
27
+ inputSchema: { message: z.string() },
28
+ })
29
+ class EchoTool extends ToolContext<{ message: string }> {
30
+ async execute(input: { message: string }) {
31
+ return { content: [{ type: 'text' as const, text: input.message }] };
32
+ }
33
+ }
34
+
35
+ @App({ name: 'MyApp', tools: [EchoTool] })
36
+ class MyApp {}
37
+
38
+ @FrontMcp({
39
+ info: { name: 'my-worker', version: '1.0.0' },
40
+ apps: [MyApp],
41
+ transport: {
42
+ protocol: 'legacy',
43
+ },
44
+ })
45
+ class MyServer {}
46
+
47
+ export default MyServer;
48
+ ```
49
+
50
+ ```toml
51
+ # wrangler.toml
52
+ name = "frontmcp-worker"
53
+ main = "dist/index.js"
54
+ compatibility_date = "2024-01-01"
55
+
56
+ [vars]
57
+ NODE_ENV = "production"
58
+ ```
59
+
60
+ ```bash
61
+ # Build for Cloudflare Workers
62
+ frontmcp build --target cloudflare
63
+
64
+ # Preview locally
65
+ wrangler dev
66
+
67
+ # Deploy to production
68
+ wrangler deploy
69
+
70
+ # Verify
71
+ curl https://frontmcp-worker.your-subdomain.workers.dev/health
72
+ ```
73
+
74
+ ## What This Demonstrates
75
+
76
+ - A minimal FrontMCP server configured for Cloudflare Workers with SSE transport
77
+ - The `wrangler.toml` configuration with `main` pointing to the build output
78
+ - Using `wrangler dev` for local testing before deploying with `wrangler deploy`
79
+
80
+ ## Related
81
+
82
+ - See `deploy-to-cloudflare` for KV storage, D1, bundle size limits, and troubleshooting
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: worker-custom-domain
3
+ reference: deploy-to-cloudflare
4
+ level: advanced
5
+ description: 'Scaffold a FrontMCP project targeting Cloudflare, configure a custom domain, and verify the deployment.'
6
+ tags: [deployment, json-rpc, cloudflare, worker, custom, domain]
7
+ features:
8
+ - 'Using `frontmcp create --target cloudflare` to scaffold a project with `wrangler.toml` and deploy scripts'
9
+ - 'Adding a custom domain with `wrangler domains add` for production-ready URLs'
10
+ - 'End-to-end verification of both the health check and MCP JSON-RPC endpoint'
11
+ ---
12
+
13
+ # Cloudflare Worker with Custom Domain and Project Scaffold
14
+
15
+ Scaffold a FrontMCP project targeting Cloudflare, configure a custom domain, and verify the deployment.
16
+
17
+ ## Code
18
+
19
+ ```bash
20
+ # Scaffold a new project targeting Cloudflare
21
+ npx frontmcp create my-app --target cloudflare
22
+ cd my-app
23
+ ```
24
+
25
+ ```typescript
26
+ // src/server.ts
27
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
28
+ import { z } from 'zod';
29
+
30
+ @Tool({
31
+ name: 'translate',
32
+ description: 'Translate text',
33
+ inputSchema: { text: z.string(), lang: z.string() },
34
+ })
35
+ class TranslateTool extends ToolContext<{ text: string; lang: string }> {
36
+ async execute(input: { text: string; lang: string }) {
37
+ return {
38
+ content: [{ type: 'text' as const, text: `[${input.lang}] ${input.text}` }],
39
+ };
40
+ }
41
+ }
42
+
43
+ @App({ name: 'TranslateApp', tools: [TranslateTool] })
44
+ class TranslateApp {}
45
+
46
+ @FrontMcp({
47
+ info: { name: 'translate-worker', version: '1.0.0' },
48
+ apps: [TranslateApp],
49
+ transport: {
50
+ type: 'sse',
51
+ },
52
+ })
53
+ class TranslateServer {}
54
+
55
+ export default TranslateServer;
56
+ ```
57
+
58
+ ```toml
59
+ # wrangler.toml
60
+ name = "translate-worker"
61
+ main = "dist/index.js"
62
+ compatibility_date = "2024-01-01"
63
+
64
+ [[kv_namespaces]]
65
+ binding = "FRONTMCP_KV"
66
+ id = "your-kv-namespace-id"
67
+
68
+ [vars]
69
+ NODE_ENV = "production"
70
+ ```
71
+
72
+ ```bash
73
+ # Build and deploy
74
+ frontmcp build --target cloudflare
75
+ wrangler deploy
76
+
77
+ # Add a custom domain
78
+ wrangler domains add mcp.example.com
79
+
80
+ # Verify health endpoint
81
+ curl https://mcp.example.com/health
82
+
83
+ # Test MCP endpoint
84
+ curl -X POST https://mcp.example.com/mcp \
85
+ -H "Content-Type: application/json" \
86
+ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
87
+ ```
88
+
89
+ ## What This Demonstrates
90
+
91
+ - Using `frontmcp create --target cloudflare` to scaffold a project with `wrangler.toml` and deploy scripts
92
+ - Adding a custom domain with `wrangler domains add` for production-ready URLs
93
+ - End-to-end verification of both the health check and MCP JSON-RPC endpoint
94
+
95
+ ## Related
96
+
97
+ - See `deploy-to-cloudflare` for bundle size limits, CPU time constraints, and the full storage options table
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: worker-with-kv-storage
3
+ reference: deploy-to-cloudflare
4
+ level: intermediate
5
+ description: 'Deploy a FrontMCP server to Cloudflare Workers with KV namespace for session and state storage.'
6
+ tags: [deployment, cloudflare, cli, session, worker, kv]
7
+ features:
8
+ - 'Binding a KV namespace in `wrangler.toml` with `[[kv_namespaces]]`'
9
+ - 'Using `wrangler secret put` for sensitive values instead of `[vars]` (which are visible in plaintext)'
10
+ - 'Creating the KV namespace via CLI and copying the ID into the configuration'
11
+ ---
12
+
13
+ # Cloudflare Worker with KV Storage
14
+
15
+ Deploy a FrontMCP server to Cloudflare Workers with KV namespace for session and state storage.
16
+
17
+ ## Code
18
+
19
+ ```typescript
20
+ // src/server.ts
21
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
22
+ import { z } from 'zod';
23
+
24
+ @Tool({
25
+ name: 'store_value',
26
+ description: 'Store a value by key',
27
+ inputSchema: { key: z.string(), value: z.string() },
28
+ })
29
+ class StoreValueTool extends ToolContext<{ key: string; value: string }> {
30
+ async execute(input: { key: string; value: string }) {
31
+ return {
32
+ content: [{ type: 'text' as const, text: `Stored: ${input.key}` }],
33
+ };
34
+ }
35
+ }
36
+
37
+ @App({ name: 'StorageApp', tools: [StoreValueTool] })
38
+ class StorageApp {}
39
+
40
+ @FrontMcp({
41
+ info: { name: 'my-worker', version: '1.0.0' },
42
+ apps: [StorageApp],
43
+ transport: {
44
+ type: 'sse',
45
+ },
46
+ })
47
+ class MyServer {}
48
+
49
+ export default MyServer;
50
+ ```
51
+
52
+ ```toml
53
+ # wrangler.toml
54
+ name = "frontmcp-worker"
55
+ main = "dist/index.js"
56
+ compatibility_date = "2024-01-01"
57
+
58
+ [[kv_namespaces]]
59
+ binding = "FRONTMCP_KV"
60
+ id = "your-kv-namespace-id"
61
+
62
+ [vars]
63
+ NODE_ENV = "production"
64
+ ```
65
+
66
+ ```bash
67
+ # Create the KV namespace
68
+ wrangler kv:namespace create FRONTMCP_KV
69
+ # Copy the returned id into wrangler.toml
70
+
71
+ # Store secrets securely (not in [vars])
72
+ wrangler secret put MY_API_KEY
73
+
74
+ # Build and deploy
75
+ frontmcp build --target cloudflare
76
+ wrangler deploy
77
+
78
+ # Verify
79
+ curl -X POST https://frontmcp-worker.your-subdomain.workers.dev/mcp \
80
+ -H "Content-Type: application/json" \
81
+ -d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
82
+ ```
83
+
84
+ ## What This Demonstrates
85
+
86
+ - Binding a KV namespace in `wrangler.toml` with `[[kv_namespaces]]`
87
+ - Using `wrangler secret put` for sensitive values instead of `[vars]` (which are visible in plaintext)
88
+ - Creating the KV namespace via CLI and copying the ID into the configuration
89
+
90
+ ## Related
91
+
92
+ - See `deploy-to-cloudflare` for D1, Durable Objects, bundle size limits, and storage comparison table