@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,111 @@
1
+ ---
2
+ name: feature-folder-organization
3
+ reference: project-structure-standalone
4
+ level: intermediate
5
+ description: 'Organize a growing standalone project into domain-specific feature folders instead of flat type-based directories.'
6
+ tags: [setup, structure, standalone, feature, folder, organization]
7
+ features:
8
+ - 'Feature folders (`src/billing/`) grouping related tools, resources, and providers by domain'
9
+ - 'Each entity still follows the `<name>.<type>.ts` naming convention inside its feature folder'
10
+ - 'One class per file across tools, resources, and providers'
11
+ - 'Feature folders scale better than flat `src/tools/` directories for larger projects'
12
+ ---
13
+
14
+ # Feature Folder Organization
15
+
16
+ Organize a growing standalone project into domain-specific feature folders instead of flat type-based directories.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/billing/create-invoice.tool.ts
22
+ import { Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'create_invoice',
27
+ description: 'Create a new invoice',
28
+ inputSchema: {
29
+ customerId: z.string(),
30
+ amount: z.number(),
31
+ currency: z.string().default('USD'),
32
+ },
33
+ })
34
+ export default class CreateInvoiceTool extends ToolContext {
35
+ async execute(input: { customerId: string; amount: number; currency: string }) {
36
+ return {
37
+ content: [{ type: 'text', text: `Invoice created for ${input.customerId}: ${input.currency} ${input.amount}` }],
38
+ };
39
+ }
40
+ }
41
+ ```
42
+
43
+ ```typescript
44
+ // src/billing/invoice.resource.ts
45
+ import { Resource, ResourceContext } from '@frontmcp/sdk';
46
+
47
+ @Resource({
48
+ uri: 'invoice://latest',
49
+ name: 'Latest Invoice',
50
+ mimeType: 'application/json',
51
+ })
52
+ export default class InvoiceResource extends ResourceContext {
53
+ async read() {
54
+ return { contents: [{ uri: 'invoice://latest', text: '{"id":"INV-001","amount":100}' }] };
55
+ }
56
+ }
57
+ ```
58
+
59
+ ```typescript
60
+ // src/billing/billing.provider.ts
61
+ import { Provider } from '@frontmcp/sdk';
62
+
63
+ @Provider({ name: 'billing-service' })
64
+ export class BillingProvider {
65
+ getBalance(customerId: string): number {
66
+ return 500;
67
+ }
68
+ }
69
+ ```
70
+
71
+ ```typescript
72
+ // src/my-app.app.ts
73
+ import { App } from '@frontmcp/sdk';
74
+ import CreateInvoiceTool from './billing/create-invoice.tool';
75
+ import InvoiceResource from './billing/invoice.resource';
76
+ import { BillingProvider } from './billing/billing.provider';
77
+
78
+ @App({
79
+ name: 'my-app',
80
+ tools: [CreateInvoiceTool],
81
+ resources: [InvoiceResource],
82
+ providers: [BillingProvider],
83
+ })
84
+ export class MyApp {}
85
+ ```
86
+
87
+ ```typescript
88
+ // src/main.ts
89
+ import 'reflect-metadata';
90
+ import { FrontMcp } from '@frontmcp/sdk';
91
+ import { MyApp } from './my-app.app';
92
+
93
+ @FrontMcp({
94
+ info: { name: 'billing-server', version: '1.0.0' },
95
+ apps: [MyApp],
96
+ })
97
+ class MyServer {}
98
+
99
+ export default MyServer;
100
+ ```
101
+
102
+ ## What This Demonstrates
103
+
104
+ - Feature folders (`src/billing/`) grouping related tools, resources, and providers by domain
105
+ - Each entity still follows the `<name>.<type>.ts` naming convention inside its feature folder
106
+ - One class per file across tools, resources, and providers
107
+ - Feature folders scale better than flat `src/tools/` directories for larger projects
108
+
109
+ ## Related
110
+
111
+ - See `project-structure-standalone` for flat layout vs feature folder comparison and naming conventions
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: minimal-standalone-layout
3
+ reference: project-structure-standalone
4
+ level: basic
5
+ description: 'Set up the canonical file structure for a standalone FrontMCP project with one app, one tool, and the required entry point.'
6
+ tags: [setup, structure, standalone, minimal, layout]
7
+ features:
8
+ - '`<name>.<type>.ts` file naming convention (`fetch-weather.tool.ts`, `my-app.app.ts`)'
9
+ - '`main.ts` with a default-exported `@FrontMcp` server class'
10
+ - 'One class per file pattern'
11
+ - '`@App` grouping tools and registered in the server `apps` array'
12
+ ---
13
+
14
+ # Minimal Standalone Project Layout
15
+
16
+ Set up the canonical file structure for a standalone FrontMCP project with one app, one tool, and the required entry point.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/tools/fetch-weather.tool.ts
22
+ import { Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'fetch_weather',
27
+ description: 'Fetch current weather for a city',
28
+ inputSchema: { city: z.string() },
29
+ })
30
+ export default class FetchWeatherTool extends ToolContext {
31
+ async execute(input: { city: string }) {
32
+ return { content: [{ type: 'text', text: `Weather in ${input.city}: 22C, sunny` }] };
33
+ }
34
+ }
35
+ ```
36
+
37
+ ```typescript
38
+ // src/my-app.app.ts
39
+ import { App } from '@frontmcp/sdk';
40
+ import FetchWeatherTool from './tools/fetch-weather.tool';
41
+
42
+ @App({
43
+ name: 'my-app',
44
+ tools: [FetchWeatherTool],
45
+ })
46
+ export class MyApp {}
47
+ ```
48
+
49
+ ```typescript
50
+ // src/main.ts
51
+ import 'reflect-metadata';
52
+ import { FrontMcp } from '@frontmcp/sdk';
53
+ import { MyApp } from './my-app.app';
54
+
55
+ @FrontMcp({
56
+ info: { name: 'my-project', version: '1.0.0' },
57
+ apps: [MyApp],
58
+ })
59
+ class MyServer {}
60
+
61
+ export default MyServer;
62
+ ```
63
+
64
+ ## What This Demonstrates
65
+
66
+ - `<name>.<type>.ts` file naming convention (`fetch-weather.tool.ts`, `my-app.app.ts`)
67
+ - `main.ts` with a default-exported `@FrontMcp` server class
68
+ - One class per file pattern
69
+ - `@App` grouping tools and registered in the server `apps` array
70
+
71
+ ## Related
72
+
73
+ - See `project-structure-standalone` for the full file layout, naming conventions, and development workflow
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: node-server-readme
3
+ reference: readme-guide
4
+ level: basic
5
+ description: 'Generate a README for a FrontMCP server deployed as a Docker/Node.js service with tools and resources.'
6
+ tags: [setup, docker, readme, node]
7
+ features:
8
+ - 'Standard README sections: Features, Quick Start, Tools table, Resources table, Environment Variables'
9
+ - 'Docker-specific deployment section with build and run commands'
10
+ - 'Development commands using `frontmcp dev`, `frontmcp test`, `frontmcp inspect`'
11
+ - 'Tool and resource tables generated from source code decorators'
12
+ ---
13
+
14
+ # Node.js Server README
15
+
16
+ Generate a README for a FrontMCP server deployed as a Docker/Node.js service with tools and resources.
17
+
18
+ ## Code
19
+
20
+ ```markdown
21
+ # My MCP Server
22
+
23
+ A FrontMCP-based MCP server providing calculator and weather tools.
24
+
25
+ ## Features
26
+
27
+ - `add` -- Add two numbers together
28
+ - `fetch_weather` -- Fetch current weather for a city
29
+ - `config://app` -- Application configuration resource
30
+
31
+ ## Quick Start
32
+
33
+ ### Docker
34
+
35
+ docker compose up
36
+
37
+ ### Manual
38
+
39
+ npm install
40
+ npm run dev
41
+
42
+ ## Tools
43
+
44
+ | Tool | Description | Input |
45
+ | --------------- | --------------------- | -------------------------- |
46
+ | `add` | Add two numbers | `{ a: number, b: number }` |
47
+ | `fetch_weather` | Fetch current weather | `{ city: string }` |
48
+
49
+ ## Resources
50
+
51
+ | URI | Description |
52
+ | -------------- | ------------------------- |
53
+ | `config://app` | Application configuration |
54
+
55
+ ## Environment Variables
56
+
57
+ | Variable | Required | Description |
58
+ | ------------ | -------- | ------------------------------- |
59
+ | `PORT` | No | HTTP port (default: 3000) |
60
+ | `REDIS_HOST` | No | Redis host (default: localhost) |
61
+ | `REDIS_PORT` | No | Redis port (default: 6379) |
62
+ | `LOG_LEVEL` | No | Log level (default: info) |
63
+
64
+ ## Development
65
+
66
+ frontmcp dev # Start dev server with hot reload
67
+ frontmcp test # Run tests
68
+ frontmcp inspect # Inspect MCP server capabilities
69
+
70
+ ## Docker Deployment
71
+
72
+ docker build -f ci/Dockerfile -t my-server:latest .
73
+ docker run -p 3000:3000 my-server:latest
74
+
75
+ ## License
76
+
77
+ MIT
78
+ ```
79
+
80
+ ## What This Demonstrates
81
+
82
+ - Standard README sections: Features, Quick Start, Tools table, Resources table, Environment Variables
83
+ - Docker-specific deployment section with build and run commands
84
+ - Development commands using `frontmcp dev`, `frontmcp test`, `frontmcp inspect`
85
+ - Tool and resource tables generated from source code decorators
86
+
87
+ ## Related
88
+
89
+ - See `readme-guide` for target-specific sections (Vercel, Lambda, Cloudflare, CLI, npm package)
@@ -0,0 +1,90 @@
1
+ ---
2
+ name: vercel-deployment-readme
3
+ reference: readme-guide
4
+ level: intermediate
5
+ description: 'Generate a README for a FrontMCP server deployed to Vercel with Vercel KV storage.'
6
+ tags: [setup, vercel-kv, vercel, readme, deployment]
7
+ features:
8
+ - 'Vercel-specific deployment instructions with `frontmcp build --target vercel` and `vercel deploy`'
9
+ - 'Vercel KV environment variables (`KV_REST_API_URL`, `KV_REST_API_TOKEN`) noted as auto-injected'
10
+ - '`vercel.json` configuration reference for route setup'
11
+ - 'Consistent README structure adapted to the Vercel deployment target'
12
+ ---
13
+
14
+ # Vercel Deployment README
15
+
16
+ Generate a README for a FrontMCP server deployed to Vercel with Vercel KV storage.
17
+
18
+ ## Code
19
+
20
+ ```markdown
21
+ # My Vercel MCP Server
22
+
23
+ A serverless FrontMCP MCP server running on Vercel with Vercel KV for session storage.
24
+
25
+ ## Features
26
+
27
+ - `lookup_user` -- Look up a user by email
28
+ - `create_ticket` -- Create a support ticket
29
+ - `tickets://open` -- List of open support tickets
30
+
31
+ ## Quick Start
32
+
33
+ ### Deploy to Vercel
34
+
35
+ npm i -g vercel
36
+ frontmcp build --target vercel
37
+ vercel deploy --prebuilt
38
+
39
+ ### Local Development
40
+
41
+ npm install
42
+ npm run dev
43
+
44
+ ## Tools
45
+
46
+ | Tool | Description | Input |
47
+ | --------------- | ----------------------- | --------------------------------- |
48
+ | `lookup_user` | Look up a user by email | `{ email: string }` |
49
+ | `create_ticket` | Create a support ticket | `{ title: string, body: string }` |
50
+
51
+ ## Resources
52
+
53
+ | URI | Description |
54
+ | ---------------- | -------------------- |
55
+ | `tickets://open` | Open support tickets |
56
+
57
+ ## Configuration
58
+
59
+ See `vercel.json` for route configuration and environment variables.
60
+
61
+ Set secrets via: `vercel env add REDIS_URL`
62
+
63
+ ## Environment Variables
64
+
65
+ | Variable | Required | Description |
66
+ | ------------------- | -------- | ---------------------------------------- |
67
+ | `KV_REST_API_URL` | Yes | Vercel KV REST API URL (auto-injected) |
68
+ | `KV_REST_API_TOKEN` | Yes | Vercel KV REST API token (auto-injected) |
69
+
70
+ ## Development
71
+
72
+ frontmcp dev # Start dev server
73
+ frontmcp build --target vercel # Build for Vercel
74
+ vercel deploy --prebuilt # Deploy to Vercel
75
+
76
+ ## License
77
+
78
+ MIT
79
+ ```
80
+
81
+ ## What This Demonstrates
82
+
83
+ - Vercel-specific deployment instructions with `frontmcp build --target vercel` and `vercel deploy`
84
+ - Vercel KV environment variables (`KV_REST_API_URL`, `KV_REST_API_TOKEN`) noted as auto-injected
85
+ - `vercel.json` configuration reference for route setup
86
+ - Consistent README structure adapted to the Vercel deployment target
87
+
88
+ ## Related
89
+
90
+ - See `readme-guide` for all deployment target README templates and update guidelines
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: basic-node-server
3
+ reference: setup-project
4
+ level: basic
5
+ description: 'Scaffold a minimal FrontMCP server with one app and one tool, running on Node.js with HTTP transport.'
6
+ tags: [setup, transport, node]
7
+ features:
8
+ - 'Minimal `@FrontMcp` server with `info` and `apps` fields'
9
+ - '`@App` decorator grouping a single tool'
10
+ - '`@Tool` decorator with Zod input/output schemas extending `ToolContext`'
11
+ - 'Required tsconfig flags: `experimentalDecorators` and `emitDecoratorMetadata`'
12
+ - '`reflect-metadata` imported as the first line of the entry point'
13
+ ---
14
+
15
+ # Basic Node.js Server Setup
16
+
17
+ Scaffold a minimal FrontMCP server with one app and one tool, running on Node.js with HTTP transport.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/tools/add.tool.ts
23
+ import { Tool, ToolContext } from '@frontmcp/sdk';
24
+ import { z } from 'zod';
25
+
26
+ @Tool({
27
+ name: 'add',
28
+ description: 'Add two numbers',
29
+ inputSchema: { a: z.number(), b: z.number() },
30
+ outputSchema: { result: z.number() },
31
+ })
32
+ export default class AddTool extends ToolContext {
33
+ async execute(input: { a: number; b: number }) {
34
+ return {
35
+ result: input.a + input.b,
36
+ };
37
+ }
38
+ }
39
+ ```
40
+
41
+ ```typescript
42
+ // src/apps/calc.app.ts
43
+ import { App } from '@frontmcp/sdk';
44
+ import AddTool from '../tools/add.tool';
45
+
46
+ @App({
47
+ name: 'Calculator',
48
+ tools: [AddTool],
49
+ })
50
+ export class CalcApp {}
51
+ ```
52
+
53
+ ```typescript
54
+ // src/main.ts
55
+ import 'reflect-metadata';
56
+ import { FrontMcp } from '@frontmcp/sdk';
57
+ import { CalcApp } from './apps/calc.app';
58
+
59
+ @FrontMcp({
60
+ info: { name: 'my-server', version: '0.1.0' },
61
+ apps: [CalcApp],
62
+ http: { port: 3000 },
63
+ })
64
+ export default class Server {}
65
+ ```
66
+
67
+ ```json
68
+ // tsconfig.json
69
+ {
70
+ "compilerOptions": {
71
+ "target": "ES2022",
72
+ "module": "commonjs",
73
+ "lib": ["ES2022"],
74
+ "outDir": "./dist",
75
+ "rootDir": "./src",
76
+ "strict": true,
77
+ "esModuleInterop": true,
78
+ "experimentalDecorators": true,
79
+ "emitDecoratorMetadata": true,
80
+ "declaration": true,
81
+ "resolveJsonModule": true,
82
+ "skipLibCheck": true
83
+ },
84
+ "include": ["src/**/*"],
85
+ "exclude": ["node_modules", "dist"]
86
+ }
87
+ ```
88
+
89
+ ## What This Demonstrates
90
+
91
+ - Minimal `@FrontMcp` server with `info` and `apps` fields
92
+ - `@App` decorator grouping a single tool
93
+ - `@Tool` decorator with Zod input/output schemas extending `ToolContext`
94
+ - Required tsconfig flags: `experimentalDecorators` and `emitDecoratorMetadata`
95
+ - `reflect-metadata` imported as the first line of the entry point
96
+
97
+ ## Related
98
+
99
+ - See `setup-project` for the full scaffolding guide with CLI flags and deployment targets
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: cli-scaffold-with-flags
3
+ reference: setup-project
4
+ level: basic
5
+ description: 'Use the `frontmcp create` CLI to scaffold a complete project non-interactively with explicit flags for deployment target, Redis, and package manager.'
6
+ tags: [setup, redis, cli, nx, scaffold, flags]
7
+ features:
8
+ - 'Non-interactive scaffolding with `--yes` to accept all defaults'
9
+ - 'Explicit `--target`, `--redis`, `--pm`, `--skills`, and `--cicd` flags'
10
+ - 'Nx monorepo scaffolding with `--nx`'
11
+ - 'Verifying the server responds to MCP `initialize` requests after startup'
12
+ ---
13
+
14
+ # CLI Scaffold with Non-Interactive Flags
15
+
16
+ Use the `frontmcp create` CLI to scaffold a complete project non-interactively with explicit flags for deployment target, Redis, and package manager.
17
+
18
+ ## Code
19
+
20
+ ```bash
21
+ # Scaffold a Node.js server with Docker Redis and yarn
22
+ npx frontmcp create my-api \
23
+ --target node \
24
+ --redis docker \
25
+ --pm yarn \
26
+ --skills recommended \
27
+ --cicd \
28
+ --yes
29
+ ```
30
+
31
+ ```bash
32
+ # Scaffold a Vercel serverless project with no Redis
33
+ npx frontmcp create my-vercel-app \
34
+ --target vercel \
35
+ --redis none \
36
+ --pm npm \
37
+ --skills minimal \
38
+ --no-cicd \
39
+ --yes
40
+ ```
41
+
42
+ ```bash
43
+ # Scaffold an Nx monorepo workspace
44
+ npx frontmcp create my-workspace \
45
+ --nx \
46
+ --target node \
47
+ --redis docker \
48
+ --pm yarn \
49
+ --yes
50
+ ```
51
+
52
+ After scaffolding, start the development server:
53
+
54
+ ```bash
55
+ cd my-api
56
+ yarn install
57
+ yarn dev
58
+ ```
59
+
60
+ Test the server with an MCP initialize request:
61
+
62
+ ```bash
63
+ curl -X POST http://localhost:3000/mcp \
64
+ -H "Content-Type: application/json" \
65
+ -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
66
+ ```
67
+
68
+ ## What This Demonstrates
69
+
70
+ - Non-interactive scaffolding with `--yes` to accept all defaults
71
+ - Explicit `--target`, `--redis`, `--pm`, `--skills`, and `--cicd` flags
72
+ - Nx monorepo scaffolding with `--nx`
73
+ - Verifying the server responds to MCP `initialize` requests after startup
74
+
75
+ ## Related
76
+
77
+ - See `setup-project` for the full list of CLI flags and manual setup instructions
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: vercel-serverless-server
3
+ reference: setup-project
4
+ level: intermediate
5
+ description: 'Configure a FrontMCP server for Vercel deployment with Vercel KV storage and modern transport protocol.'
6
+ tags: [setup, vercel-kv, redis, vercel, session, transport]
7
+ features:
8
+ - "`transport: { protocol: 'modern' }` for streamable HTTP with strict sessions on Vercel"
9
+ - "`redis: { provider: 'vercel-kv' }` for managed Redis-compatible storage without external provisioning"
10
+ - 'Building with `frontmcp build --target vercel` for serverless output'
11
+ - 'Vercel KV credentials are auto-injected via environment variables'
12
+ ---
13
+
14
+ # Vercel Serverless Deployment Setup
15
+
16
+ Configure a FrontMCP server for Vercel deployment with Vercel KV storage and modern transport protocol.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/tools/lookup-user.tool.ts
22
+ import { Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'lookup_user',
27
+ description: 'Look up a user by email',
28
+ inputSchema: { email: z.string().email() },
29
+ })
30
+ export default class LookupUserTool extends ToolContext {
31
+ async execute(input: { email: string }) {
32
+ return { content: [{ type: 'text', text: `User: ${input.email}` }] };
33
+ }
34
+ }
35
+ ```
36
+
37
+ ```typescript
38
+ // src/apps/users.app.ts
39
+ import { App } from '@frontmcp/sdk';
40
+ import LookupUserTool from '../tools/lookup-user.tool';
41
+
42
+ @App({
43
+ name: 'Users',
44
+ tools: [LookupUserTool],
45
+ })
46
+ export class UsersApp {}
47
+ ```
48
+
49
+ ```typescript
50
+ // src/main.ts
51
+ import 'reflect-metadata';
52
+ import { FrontMcp } from '@frontmcp/sdk';
53
+ import { UsersApp } from './apps/users.app';
54
+
55
+ @FrontMcp({
56
+ info: { name: 'my-vercel-server', version: '0.1.0' },
57
+ apps: [UsersApp],
58
+ transport: { protocol: 'modern' },
59
+ redis: { provider: 'vercel-kv' },
60
+ })
61
+ export default class Server {}
62
+ ```
63
+
64
+ Build and deploy:
65
+
66
+ ```bash
67
+ # Build for Vercel target
68
+ frontmcp build --target vercel
69
+
70
+ # Deploy
71
+ vercel deploy --prebuilt
72
+ ```
73
+
74
+ ```env
75
+ # .env.local (Vercel auto-injects KV_REST_API_URL and KV_REST_API_TOKEN)
76
+ # No manual Redis config needed for Vercel KV
77
+ ```
78
+
79
+ ## What This Demonstrates
80
+
81
+ - `transport: { protocol: 'modern' }` for streamable HTTP with strict sessions on Vercel
82
+ - `redis: { provider: 'vercel-kv' }` for managed Redis-compatible storage without external provisioning
83
+ - Building with `frontmcp build --target vercel` for serverless output
84
+ - Vercel KV credentials are auto-injected via environment variables
85
+
86
+ ## Related
87
+
88
+ - See `setup-project` for all deployment target configurations (Lambda, Cloudflare)
89
+ - See `setup-redis` for detailed Vercel KV setup and hybrid pub/sub configuration