@frontmcp/skills 1.0.0-beta.13 → 1.0.0-beta.14

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 (258) hide show
  1. package/catalog/TEMPLATE.md +55 -0
  2. package/catalog/frontmcp-config/SKILL.md +2 -2
  3. package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +87 -0
  4. package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +63 -0
  5. package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +76 -0
  6. package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +77 -0
  7. package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +73 -0
  8. package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +64 -0
  9. package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +83 -0
  10. package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +87 -0
  11. package/catalog/frontmcp-config/examples/configure-http/cors-restricted-origins.md +52 -0
  12. package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +72 -0
  13. package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +64 -0
  14. package/catalog/frontmcp-config/examples/configure-session/multi-server-key-prefix.md +68 -0
  15. package/catalog/frontmcp-config/examples/configure-session/redis-session-store.md +52 -0
  16. package/catalog/frontmcp-config/examples/configure-session/vercel-kv-session.md +52 -0
  17. package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +94 -0
  18. package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +92 -0
  19. package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +83 -0
  20. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/full-guard-config.md +99 -0
  21. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/minimal-guard-config.md +55 -0
  22. package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +74 -0
  23. package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +86 -0
  24. package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +69 -0
  25. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +65 -0
  26. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +69 -0
  27. package/catalog/frontmcp-config/references/configure-auth-modes.md +10 -0
  28. package/catalog/frontmcp-config/references/configure-auth.md +10 -0
  29. package/catalog/frontmcp-config/references/configure-elicitation.md +9 -0
  30. package/catalog/frontmcp-config/references/configure-http.md +10 -0
  31. package/catalog/frontmcp-config/references/configure-session.md +10 -0
  32. package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +9 -0
  33. package/catalog/frontmcp-config/references/configure-throttle.md +10 -0
  34. package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +9 -0
  35. package/catalog/frontmcp-config/references/configure-transport.md +10 -0
  36. package/catalog/frontmcp-config/references/setup-redis.md +5 -0
  37. package/catalog/frontmcp-config/references/setup-sqlite.md +5 -0
  38. package/catalog/frontmcp-deployment/SKILL.md +2 -2
  39. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-build-with-custom-entry.md +43 -0
  40. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-crypto-and-storage.md +85 -0
  41. package/catalog/frontmcp-deployment/examples/build-for-browser/react-provider-setup.md +61 -0
  42. package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +66 -0
  43. package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +76 -0
  44. package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +78 -0
  45. package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +85 -0
  46. package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +104 -0
  47. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +82 -0
  48. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +97 -0
  49. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +92 -0
  50. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/cdk-deployment.md +92 -0
  51. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +113 -0
  52. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/sam-template-basic.md +100 -0
  53. package/catalog/frontmcp-deployment/examples/deploy-to-node/docker-compose-with-redis.md +101 -0
  54. package/catalog/frontmcp-deployment/examples/deploy-to-node/pm2-with-nginx.md +79 -0
  55. package/catalog/frontmcp-deployment/examples/deploy-to-node/resource-limits.md +92 -0
  56. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/basic-multistage-dockerfile.md +63 -0
  57. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md +89 -0
  58. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-mcp-endpoint-test.md +69 -0
  59. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +82 -0
  60. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-skills-cache.md +90 -0
  61. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/minimal-vercel-config.md +49 -0
  62. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/vercel-config-with-security-headers.md +92 -0
  63. package/catalog/frontmcp-deployment/references/build-for-browser.md +10 -0
  64. package/catalog/frontmcp-deployment/references/build-for-cli.md +9 -0
  65. package/catalog/frontmcp-deployment/references/build-for-sdk.md +10 -0
  66. package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +10 -0
  67. package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +10 -0
  68. package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +9 -0
  69. package/catalog/frontmcp-deployment/references/deploy-to-node.md +10 -0
  70. package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +9 -0
  71. package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +10 -0
  72. package/catalog/frontmcp-development/SKILL.md +2 -2
  73. package/catalog/frontmcp-development/examples/create-adapter/basic-api-adapter.md +92 -0
  74. package/catalog/frontmcp-development/examples/create-adapter/namespaced-adapter.md +124 -0
  75. package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +121 -0
  76. package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +95 -0
  77. package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +111 -0
  78. package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +81 -0
  79. package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +80 -0
  80. package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +87 -0
  81. package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +117 -0
  82. package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +88 -0
  83. package/catalog/frontmcp-development/examples/create-plugin/basic-plugin-with-provider.md +69 -0
  84. package/catalog/frontmcp-development/examples/create-plugin/configurable-dynamic-plugin.md +178 -0
  85. package/catalog/frontmcp-development/examples/create-plugin/plugin-with-context-extension.md +107 -0
  86. package/catalog/frontmcp-development/examples/create-plugin-hooks/basic-logging-plugin.md +69 -0
  87. package/catalog/frontmcp-development/examples/create-plugin-hooks/caching-with-around.md +80 -0
  88. package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +100 -0
  89. package/catalog/frontmcp-development/examples/create-prompt/basic-prompt.md +72 -0
  90. package/catalog/frontmcp-development/examples/create-prompt/dynamic-rag-prompt.md +92 -0
  91. package/catalog/frontmcp-development/examples/create-prompt/multi-turn-debug-session.md +86 -0
  92. package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +113 -0
  93. package/catalog/frontmcp-development/examples/create-provider/config-and-api-providers.md +107 -0
  94. package/catalog/frontmcp-development/examples/create-resource/basic-static-resource.md +72 -0
  95. package/catalog/frontmcp-development/examples/create-resource/binary-and-multi-content.md +111 -0
  96. package/catalog/frontmcp-development/examples/create-resource/parameterized-template.md +84 -0
  97. package/catalog/frontmcp-development/examples/create-skill/basic-inline-skill.md +96 -0
  98. package/catalog/frontmcp-development/examples/create-skill/directory-based-skill.md +115 -0
  99. package/catalog/frontmcp-development/examples/create-skill/parameterized-skill.md +96 -0
  100. package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md +76 -0
  101. package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +149 -0
  102. package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md +92 -0
  103. package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +62 -0
  104. package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +84 -0
  105. package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +93 -0
  106. package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +94 -0
  107. package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +60 -0
  108. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +104 -0
  109. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +63 -0
  110. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +103 -0
  111. package/catalog/frontmcp-development/examples/create-workflow/basic-deploy-pipeline.md +91 -0
  112. package/catalog/frontmcp-development/examples/create-workflow/parallel-validation-pipeline.md +90 -0
  113. package/catalog/frontmcp-development/examples/create-workflow/webhook-triggered-workflow.md +136 -0
  114. package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +145 -0
  115. package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +124 -0
  116. package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +149 -0
  117. package/catalog/frontmcp-development/examples/official-adapters/authenticated-adapter-with-polling.md +84 -0
  118. package/catalog/frontmcp-development/examples/official-adapters/basic-openapi-adapter.md +54 -0
  119. package/catalog/frontmcp-development/examples/official-adapters/multi-api-hub-with-inline-spec.md +130 -0
  120. package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +117 -0
  121. package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +147 -0
  122. package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +104 -0
  123. package/catalog/frontmcp-development/references/create-adapter.md +9 -0
  124. package/catalog/frontmcp-development/references/create-agent-llm-config.md +9 -0
  125. package/catalog/frontmcp-development/references/create-agent.md +10 -0
  126. package/catalog/frontmcp-development/references/create-job.md +10 -0
  127. package/catalog/frontmcp-development/references/create-plugin-hooks.md +10 -0
  128. package/catalog/frontmcp-development/references/create-plugin.md +10 -0
  129. package/catalog/frontmcp-development/references/create-prompt.md +10 -0
  130. package/catalog/frontmcp-development/references/create-provider.md +9 -0
  131. package/catalog/frontmcp-development/references/create-resource.md +52 -15
  132. package/catalog/frontmcp-development/references/create-skill-with-tools.md +10 -0
  133. package/catalog/frontmcp-development/references/create-skill.md +10 -0
  134. package/catalog/frontmcp-development/references/create-tool-annotations.md +9 -0
  135. package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +10 -0
  136. package/catalog/frontmcp-development/references/create-tool.md +10 -0
  137. package/catalog/frontmcp-development/references/create-workflow.md +10 -0
  138. package/catalog/frontmcp-development/references/decorators-guide.md +10 -0
  139. package/catalog/frontmcp-development/references/official-adapters.md +10 -0
  140. package/catalog/frontmcp-development/references/official-plugins.md +10 -0
  141. package/catalog/frontmcp-extensibility/SKILL.md +1 -1
  142. package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +175 -0
  143. package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +138 -0
  144. package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +103 -0
  145. package/catalog/frontmcp-extensibility/references/vectoriadb.md +10 -0
  146. package/catalog/frontmcp-guides/SKILL.md +2 -2
  147. package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +160 -0
  148. package/catalog/frontmcp-guides/examples/example-knowledge-base/multi-app-composition.md +92 -0
  149. package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +135 -0
  150. package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +135 -0
  151. package/catalog/frontmcp-guides/examples/example-task-manager/authenticated-e2e-tests.md +148 -0
  152. package/catalog/frontmcp-guides/examples/example-task-manager/redis-provider-with-di.md +129 -0
  153. package/catalog/frontmcp-guides/examples/example-weather-api/server-and-app-setup.md +75 -0
  154. package/catalog/frontmcp-guides/examples/example-weather-api/unit-and-e2e-tests.md +142 -0
  155. package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +74 -0
  156. package/catalog/frontmcp-guides/references/example-knowledge-base.md +10 -0
  157. package/catalog/frontmcp-guides/references/example-task-manager.md +10 -0
  158. package/catalog/frontmcp-guides/references/example-weather-api.md +10 -0
  159. package/catalog/frontmcp-production-readiness/SKILL.md +2 -2
  160. package/catalog/frontmcp-production-readiness/examples/common-checklist/caching-and-performance.md +102 -0
  161. package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +104 -0
  162. package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +95 -0
  163. package/catalog/frontmcp-production-readiness/examples/production-browser/browser-bundle-config.md +93 -0
  164. package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +116 -0
  165. package/catalog/frontmcp-production-readiness/examples/production-browser/security-and-performance.md +128 -0
  166. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/binary-build-config.md +109 -0
  167. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +132 -0
  168. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/daemon-socket-config.md +82 -0
  169. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/graceful-shutdown-cleanup.md +107 -0
  170. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/security-and-permissions.md +119 -0
  171. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +124 -0
  172. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +103 -0
  173. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/wrangler-config.md +89 -0
  174. package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +122 -0
  175. package/catalog/frontmcp-production-readiness/examples/production-lambda/sam-template.md +107 -0
  176. package/catalog/frontmcp-production-readiness/examples/production-lambda/scaling-and-monitoring.md +138 -0
  177. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/basic-sdk-lifecycle.md +85 -0
  178. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/multi-instance-cleanup.md +110 -0
  179. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/package-json-config.md +107 -0
  180. package/catalog/frontmcp-production-readiness/examples/production-node-server/docker-multi-stage.md +103 -0
  181. package/catalog/frontmcp-production-readiness/examples/production-node-server/graceful-shutdown.md +87 -0
  182. package/catalog/frontmcp-production-readiness/examples/production-node-server/redis-session-scaling.md +97 -0
  183. package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +104 -0
  184. package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +91 -0
  185. package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md +78 -0
  186. package/catalog/frontmcp-production-readiness/references/common-checklist.md +10 -0
  187. package/catalog/frontmcp-production-readiness/references/production-browser.md +10 -0
  188. package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +9 -0
  189. package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +10 -0
  190. package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +10 -0
  191. package/catalog/frontmcp-production-readiness/references/production-lambda.md +10 -0
  192. package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +10 -0
  193. package/catalog/frontmcp-production-readiness/references/production-node-server.md +10 -0
  194. package/catalog/frontmcp-production-readiness/references/production-vercel.md +10 -0
  195. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/bundle-presets-scaffolding.md +61 -0
  196. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/install-and-search-skills.md +83 -0
  197. package/catalog/frontmcp-setup/examples/multi-app-composition/local-apps-with-shared-tools.md +87 -0
  198. package/catalog/frontmcp-setup/examples/multi-app-composition/per-app-auth-and-isolation.md +88 -0
  199. package/catalog/frontmcp-setup/examples/multi-app-composition/remote-and-esm-apps.md +81 -0
  200. package/catalog/frontmcp-setup/examples/nx-workflow/build-test-affected.md +77 -0
  201. package/catalog/frontmcp-setup/examples/nx-workflow/multi-server-deployment.md +93 -0
  202. package/catalog/frontmcp-setup/examples/nx-workflow/scaffold-and-generate.md +62 -0
  203. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-generator-scaffolding.md +73 -0
  204. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-workspace-with-apps.md +85 -0
  205. package/catalog/frontmcp-setup/examples/project-structure-nx/shared-library-usage.md +89 -0
  206. package/catalog/frontmcp-setup/examples/project-structure-standalone/dev-workflow-commands.md +64 -0
  207. package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +111 -0
  208. package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +73 -0
  209. package/catalog/frontmcp-setup/examples/readme-guide/node-server-readme.md +89 -0
  210. package/catalog/frontmcp-setup/examples/readme-guide/vercel-deployment-readme.md +90 -0
  211. package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +99 -0
  212. package/catalog/frontmcp-setup/examples/setup-project/cli-scaffold-with-flags.md +77 -0
  213. package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +89 -0
  214. package/catalog/frontmcp-setup/examples/setup-redis/docker-redis-local-dev.md +88 -0
  215. package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +78 -0
  216. package/catalog/frontmcp-setup/examples/setup-redis/vercel-kv-serverless.md +78 -0
  217. package/catalog/frontmcp-setup/examples/setup-sqlite/basic-sqlite-setup.md +75 -0
  218. package/catalog/frontmcp-setup/examples/setup-sqlite/encrypted-sqlite-storage.md +55 -0
  219. package/catalog/frontmcp-setup/examples/setup-sqlite/unix-socket-daemon.md +70 -0
  220. package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +9 -0
  221. package/catalog/frontmcp-setup/references/multi-app-composition.md +10 -0
  222. package/catalog/frontmcp-setup/references/nx-workflow.md +10 -0
  223. package/catalog/frontmcp-setup/references/project-structure-nx.md +10 -0
  224. package/catalog/frontmcp-setup/references/project-structure-standalone.md +10 -0
  225. package/catalog/frontmcp-setup/references/readme-guide.md +9 -0
  226. package/catalog/frontmcp-setup/references/setup-project.md +10 -0
  227. package/catalog/frontmcp-setup/references/setup-redis.md +10 -0
  228. package/catalog/frontmcp-setup/references/setup-sqlite.md +10 -0
  229. package/catalog/frontmcp-testing/examples/setup-testing/fixture-based-e2e-test.md +70 -0
  230. package/catalog/frontmcp-testing/examples/setup-testing/jest-config-with-coverage.md +59 -0
  231. package/catalog/frontmcp-testing/examples/setup-testing/unit-test-tool-resource-prompt.md +115 -0
  232. package/catalog/frontmcp-testing/examples/test-auth/oauth-flow-test.md +78 -0
  233. package/catalog/frontmcp-testing/examples/test-auth/role-based-access-test.md +88 -0
  234. package/catalog/frontmcp-testing/examples/test-auth/token-factory-test.md +71 -0
  235. package/catalog/frontmcp-testing/examples/test-browser-build/browser-bundle-validation.md +58 -0
  236. package/catalog/frontmcp-testing/examples/test-browser-build/playwright-browser-test.md +69 -0
  237. package/catalog/frontmcp-testing/examples/test-cli-binary/binary-startup-test.md +77 -0
  238. package/catalog/frontmcp-testing/examples/test-cli-binary/js-bundle-import-test.md +56 -0
  239. package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +74 -0
  240. package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +79 -0
  241. package/catalog/frontmcp-testing/examples/test-e2e-handler/basic-e2e-test.md +67 -0
  242. package/catalog/frontmcp-testing/examples/test-e2e-handler/manual-client-with-transport.md +72 -0
  243. package/catalog/frontmcp-testing/examples/test-e2e-handler/tool-call-and-error-e2e.md +73 -0
  244. package/catalog/frontmcp-testing/examples/test-tool-unit/basic-tool-test.md +69 -0
  245. package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +82 -0
  246. package/catalog/frontmcp-testing/examples/test-tool-unit/tool-error-handling-test.md +92 -0
  247. package/catalog/frontmcp-testing/references/setup-testing.md +10 -0
  248. package/catalog/frontmcp-testing/references/test-auth.md +10 -0
  249. package/catalog/frontmcp-testing/references/test-browser-build.md +9 -0
  250. package/catalog/frontmcp-testing/references/test-cli-binary.md +9 -0
  251. package/catalog/frontmcp-testing/references/test-direct-client.md +9 -0
  252. package/catalog/frontmcp-testing/references/test-e2e-handler.md +10 -0
  253. package/catalog/frontmcp-testing/references/test-tool-unit.md +10 -0
  254. package/catalog/skills-manifest.json +2383 -67
  255. package/package.json +1 -1
  256. package/src/manifest.d.ts +23 -0
  257. package/src/manifest.js +3 -1
  258. package/src/manifest.js.map +1 -1
@@ -0,0 +1,99 @@
1
+ ---
2
+ name: full-guard-config
3
+ reference: configure-throttle-guard-config
4
+ level: advanced
5
+ description: 'Complete GuardConfig using every available field for maximum protection.'
6
+ tags: [config, redis, session, throttle, guard, full]
7
+ features:
8
+ - 'Every field in the `GuardConfig` interface used together'
9
+ - 'Priority order: IP filter -> global rate limit -> global concurrency -> per-tool limits'
10
+ - 'Redis `storage` for shared counters across instances'
11
+ - '`keyPrefix` to namespace guard keys in shared Redis'
12
+ - "Mixed `partitionBy` strategies: `'ip'` for global, `'session'` for per-tool"
13
+ - '`queueTimeoutMs` to briefly queue excess requests instead of rejecting'
14
+ ---
15
+
16
+ # Full GuardConfig with All Options
17
+
18
+ Complete GuardConfig using every available field for maximum protection.
19
+
20
+ ## Code
21
+
22
+ ```typescript
23
+ // src/server.ts
24
+ import { FrontMcp, App } from '@frontmcp/sdk';
25
+
26
+ @App({ name: 'secure-app' })
27
+ class SecureApp {}
28
+
29
+ @FrontMcp({
30
+ info: { name: 'fully-guarded-server', version: '1.0.0' },
31
+ apps: [SecureApp],
32
+ throttle: {
33
+ enabled: true,
34
+
35
+ // Distributed storage for multi-instance deployments
36
+ storage: {
37
+ type: 'redis',
38
+ redis: {
39
+ config: {
40
+ host: process.env['REDIS_HOST'] ?? 'redis.internal',
41
+ port: 6379,
42
+ },
43
+ },
44
+ },
45
+ keyPrefix: 'myapp:guard:',
46
+
47
+ // Server-wide limits
48
+ global: {
49
+ maxRequests: 1000,
50
+ windowMs: 60000,
51
+ partitionBy: 'ip', // per-client IP rate limit
52
+ },
53
+ globalConcurrency: {
54
+ maxConcurrent: 50,
55
+ queueTimeoutMs: 2000,
56
+ partitionBy: 'global',
57
+ },
58
+
59
+ // Default per-tool limits
60
+ defaultRateLimit: {
61
+ maxRequests: 100,
62
+ windowMs: 60000,
63
+ partitionBy: 'session',
64
+ },
65
+ defaultConcurrency: {
66
+ maxConcurrent: 10,
67
+ queueTimeoutMs: 5000,
68
+ partitionBy: 'session',
69
+ },
70
+ defaultTimeout: {
71
+ executeMs: 30000,
72
+ },
73
+
74
+ // IP-based access control
75
+ ipFilter: {
76
+ allowList: ['10.0.0.0/8', '172.16.0.0/12'],
77
+ denyList: ['192.168.1.100'],
78
+ defaultAction: 'deny',
79
+ trustProxy: true,
80
+ trustedProxyDepth: 2,
81
+ },
82
+ },
83
+ })
84
+ class Server {}
85
+ ```
86
+
87
+ ## What This Demonstrates
88
+
89
+ - Every field in the `GuardConfig` interface used together
90
+ - Priority order: IP filter -> global rate limit -> global concurrency -> per-tool limits
91
+ - Redis `storage` for shared counters across instances
92
+ - `keyPrefix` to namespace guard keys in shared Redis
93
+ - Mixed `partitionBy` strategies: `'ip'` for global, `'session'` for per-tool
94
+ - `queueTimeoutMs` to briefly queue excess requests instead of rejecting
95
+
96
+ ## Related
97
+
98
+ - See `configure-throttle-guard-config` for the complete interface reference
99
+ - See `configure-throttle` for practical throttle configuration patterns
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: minimal-guard-config
3
+ reference: configure-throttle-guard-config
4
+ level: basic
5
+ description: 'Enable throttle with just a global rate limit and default timeout.'
6
+ tags: [config, throttle, guard, minimal]
7
+ features:
8
+ - 'The minimum fields needed to enable the guard: `enabled`, `global`, and `defaultTimeout`'
9
+ - "`partitionBy: 'global'` shares one counter across all clients"
10
+ - '`windowMs` defaults to 60000 (1 minute) if omitted'
11
+ - 'Other fields (`globalConcurrency`, `ipFilter`, `storage`) are optional'
12
+ ---
13
+
14
+ # Minimal GuardConfig
15
+
16
+ Enable throttle with just a global rate limit and default timeout.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp, App } from '@frontmcp/sdk';
23
+
24
+ @App({ name: 'my-app' })
25
+ class MyApp {}
26
+
27
+ @FrontMcp({
28
+ info: { name: 'guarded-server', version: '1.0.0' },
29
+ apps: [MyApp],
30
+ throttle: {
31
+ enabled: true,
32
+ global: {
33
+ maxRequests: 1000,
34
+ windowMs: 60000,
35
+ partitionBy: 'global',
36
+ },
37
+ defaultTimeout: {
38
+ executeMs: 30000,
39
+ },
40
+ },
41
+ })
42
+ class Server {}
43
+ ```
44
+
45
+ ## What This Demonstrates
46
+
47
+ - The minimum fields needed to enable the guard: `enabled`, `global`, and `defaultTimeout`
48
+ - `partitionBy: 'global'` shares one counter across all clients
49
+ - `windowMs` defaults to 60000 (1 minute) if omitted
50
+ - Other fields (`globalConcurrency`, `ipFilter`, `storage`) are optional
51
+
52
+ ## Related
53
+
54
+ - See `configure-throttle-guard-config` for the complete GuardConfig interface
55
+ - See `configure-throttle` for practical throttle configuration patterns
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: custom-protocol-flags
3
+ reference: configure-transport
4
+ level: advanced
5
+ description: 'Override individual protocol flags instead of using a preset for fine-grained control.'
6
+ tags: [config, redis, session, transport, custom, protocol]
7
+ features:
8
+ - 'Passing an object to `protocol` instead of a preset string for fine-grained control'
9
+ - 'Enabling SSE, streamable HTTP, and JSON-only modes simultaneously'
10
+ - 'Setting `strictSession: true` to require `mcp-session-id` header on streamable HTTP'
11
+ - "Using `distributedMode: 'auto'` to auto-detect based on whether Redis is configured"
12
+ - 'Disabling `legacy` SSE while keeping modern SSE support'
13
+ ---
14
+
15
+ # Custom Protocol Flags
16
+
17
+ Override individual protocol flags instead of using a preset for fine-grained control.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/server.ts
23
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
24
+ import { z } from 'zod';
25
+
26
+ @Tool({
27
+ name: 'stream_logs',
28
+ description: 'Stream application logs',
29
+ inputSchema: { service: z.string(), lines: z.number().optional() },
30
+ outputSchema: { logs: z.array(z.string()) },
31
+ })
32
+ class StreamLogsTool extends ToolContext {
33
+ async execute(input: { service: string; lines?: number }) {
34
+ return { logs: ['[INFO] Service started', '[INFO] Healthy'] };
35
+ }
36
+ }
37
+
38
+ @App({
39
+ name: 'devtools',
40
+ tools: [StreamLogsTool],
41
+ })
42
+ class DevtoolsApp {}
43
+
44
+ @FrontMcp({
45
+ info: { name: 'custom-protocol-server', version: '1.0.0' },
46
+ apps: [DevtoolsApp],
47
+ transport: {
48
+ sessionMode: 'stateful',
49
+ protocol: {
50
+ sse: true, // SSE endpoint enabled
51
+ streamable: true, // Streamable HTTP POST enabled
52
+ json: true, // JSON-only responses also available
53
+ stateless: false, // Sessions required
54
+ legacy: false, // No legacy SSE
55
+ strictSession: true, // Require mcp-session-id header
56
+ },
57
+ distributedMode: 'auto', // auto-detect based on Redis config
58
+ },
59
+ })
60
+ class Server {}
61
+ ```
62
+
63
+ ## What This Demonstrates
64
+
65
+ - Passing an object to `protocol` instead of a preset string for fine-grained control
66
+ - Enabling SSE, streamable HTTP, and JSON-only modes simultaneously
67
+ - Setting `strictSession: true` to require `mcp-session-id` header on streamable HTTP
68
+ - Using `distributedMode: 'auto'` to auto-detect based on whether Redis is configured
69
+ - Disabling `legacy` SSE while keeping modern SSE support
70
+
71
+ ## Related
72
+
73
+ - See `configure-transport` for the full transport configuration reference
74
+ - See `configure-transport-protocol-presets` for the built-in preset definitions
@@ -0,0 +1,86 @@
1
+ ---
2
+ name: distributed-sessions-redis
3
+ reference: configure-transport
4
+ level: intermediate
5
+ description: 'Configure transport with Redis persistence for multi-instance load-balanced deployments.'
6
+ tags: [config, redis, session, transport, distributed, sessions]
7
+ features:
8
+ - 'Using `distributedMode: true` for load-balanced multi-instance deployments'
9
+ - 'Redis `persistence` so sessions survive restarts and are shared across instances'
10
+ - 'Setting `defaultTtlMs` to prevent sessions from accumulating indefinitely'
11
+ - 'Redis-backed `eventStore` for SSE resumability across instances'
12
+ - "Using the `'modern'` preset (drops legacy SSE but keeps streamable HTTP)"
13
+ ---
14
+
15
+ # Distributed Sessions with Redis
16
+
17
+ Configure transport with Redis persistence for multi-instance load-balanced deployments.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/server.ts
23
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
24
+ import { z } from 'zod';
25
+
26
+ @Tool({
27
+ name: 'get_report',
28
+ description: 'Generate a report',
29
+ inputSchema: { reportId: z.string() },
30
+ outputSchema: { data: z.string(), generatedAt: z.string() },
31
+ })
32
+ class GetReportTool extends ToolContext {
33
+ async execute(input: { reportId: string }) {
34
+ return { data: 'report-data', generatedAt: new Date().toISOString() };
35
+ }
36
+ }
37
+
38
+ @App({
39
+ name: 'reports',
40
+ tools: [GetReportTool],
41
+ })
42
+ class ReportsApp {}
43
+
44
+ @FrontMcp({
45
+ info: { name: 'distributed-server', version: '1.0.0' },
46
+ apps: [ReportsApp],
47
+ transport: {
48
+ sessionMode: 'stateful',
49
+ protocol: 'modern',
50
+ distributedMode: true,
51
+ persistence: {
52
+ redis: {
53
+ provider: 'redis',
54
+ host: process.env['REDIS_HOST'] ?? 'redis.internal',
55
+ port: 6379,
56
+ },
57
+ defaultTtlMs: 3_600_000, // 1 hour session TTL
58
+ },
59
+ eventStore: {
60
+ enabled: true,
61
+ provider: 'redis',
62
+ maxEvents: 10000,
63
+ ttlMs: 300_000, // 5 minute event TTL
64
+ redis: {
65
+ provider: 'redis',
66
+ host: process.env['REDIS_HOST'] ?? 'redis.internal',
67
+ },
68
+ },
69
+ },
70
+ })
71
+ class Server {}
72
+ ```
73
+
74
+ ## What This Demonstrates
75
+
76
+ - Using `distributedMode: true` for load-balanced multi-instance deployments
77
+ - Redis `persistence` so sessions survive restarts and are shared across instances
78
+ - Setting `defaultTtlMs` to prevent sessions from accumulating indefinitely
79
+ - Redis-backed `eventStore` for SSE resumability across instances
80
+ - Using the `'modern'` preset (drops legacy SSE but keeps streamable HTTP)
81
+
82
+ ## Related
83
+
84
+ - See `configure-transport` for the full transport configuration reference
85
+ - See `configure-session` for session storage options
86
+ - See `setup-redis` for Redis provisioning
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: stateless-serverless
3
+ reference: configure-transport
4
+ level: basic
5
+ description: 'Configure stateless transport for Vercel, Lambda, or Cloudflare deployments.'
6
+ tags: [config, vercel, lambda, cloudflare, session, transport]
7
+ features:
8
+ - "Using `sessionMode: 'stateless'` to disable session management"
9
+ - "Using the `'stateless-api'` preset: no SSE, no streaming, pure request/response"
10
+ - 'Each request is standalone with no server-side state between invocations'
11
+ - 'Required for serverless targets (Vercel, Lambda, Cloudflare Workers)'
12
+ ---
13
+
14
+ # Stateless Transport for Serverless
15
+
16
+ Configure stateless transport for Vercel, Lambda, or Cloudflare deployments.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'convert_currency',
27
+ description: 'Convert between currencies',
28
+ inputSchema: {
29
+ amount: z.number(),
30
+ from: z.string(),
31
+ to: z.string(),
32
+ },
33
+ outputSchema: { result: z.number(), rate: z.number() },
34
+ })
35
+ class ConvertCurrencyTool extends ToolContext {
36
+ async execute(input: { amount: number; from: string; to: string }) {
37
+ const rate = 1.1;
38
+ return { result: input.amount * rate, rate };
39
+ }
40
+ }
41
+
42
+ @App({
43
+ name: 'currency-api',
44
+ tools: [ConvertCurrencyTool],
45
+ })
46
+ class CurrencyApp {}
47
+
48
+ @FrontMcp({
49
+ info: { name: 'serverless-server', version: '1.0.0' },
50
+ apps: [CurrencyApp],
51
+ transport: {
52
+ sessionMode: 'stateless',
53
+ protocol: 'stateless-api',
54
+ },
55
+ })
56
+ class Server {}
57
+ ```
58
+
59
+ ## What This Demonstrates
60
+
61
+ - Using `sessionMode: 'stateless'` to disable session management
62
+ - Using the `'stateless-api'` preset: no SSE, no streaming, pure request/response
63
+ - Each request is standalone with no server-side state between invocations
64
+ - Required for serverless targets (Vercel, Lambda, Cloudflare Workers)
65
+
66
+ ## Related
67
+
68
+ - See `configure-transport` for the full transport configuration reference
69
+ - See `configure-transport-protocol-presets` for all preset options
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: legacy-preset-nodejs
3
+ reference: configure-transport-protocol-presets
4
+ level: basic
5
+ description: 'Use the default legacy preset for maximum compatibility with all MCP clients.'
6
+ tags: [config, anthropic, session, transport, node, protocol]
7
+ features:
8
+ - "The `'legacy'` preset is the default and can be omitted"
9
+ - 'Enables SSE, Streamable HTTP, and Legacy SSE for maximum client compatibility'
10
+ - '`strictSession: true` requires `mcp-session-id` header for streamable HTTP'
11
+ - 'Best for single-instance Node.js deployments (Claude Desktop, etc.)'
12
+ ---
13
+
14
+ # Legacy Preset for Node.js
15
+
16
+ Use the default legacy preset for maximum compatibility with all MCP clients.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'hello',
27
+ description: 'Say hello',
28
+ inputSchema: { name: z.string() },
29
+ outputSchema: { greeting: z.string() },
30
+ })
31
+ class HelloTool extends ToolContext {
32
+ async execute(input: { name: string }) {
33
+ return { greeting: `Hello, ${input.name}!` };
34
+ }
35
+ }
36
+
37
+ @App({
38
+ name: 'my-app',
39
+ tools: [HelloTool],
40
+ })
41
+ class MyApp {}
42
+
43
+ @FrontMcp({
44
+ info: { name: 'legacy-server', version: '1.0.0' },
45
+ apps: [MyApp],
46
+ transport: {
47
+ protocol: 'legacy', // default -- can be omitted
48
+ },
49
+ })
50
+ class Server {}
51
+ // Enables: SSE + Streamable HTTP + Legacy SSE
52
+ // Flags: { sse: true, streamable: true, json: false, stateless: false, legacy: true, strictSession: true }
53
+ ```
54
+
55
+ ## What This Demonstrates
56
+
57
+ - The `'legacy'` preset is the default and can be omitted
58
+ - Enables SSE, Streamable HTTP, and Legacy SSE for maximum client compatibility
59
+ - `strictSession: true` requires `mcp-session-id` header for streamable HTTP
60
+ - Best for single-instance Node.js deployments (Claude Desktop, etc.)
61
+
62
+ ## Related
63
+
64
+ - See `configure-transport-protocol-presets` for all preset definitions
65
+ - See `configure-transport` for full transport configuration
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: stateless-api-serverless
3
+ reference: configure-transport-protocol-presets
4
+ level: intermediate
5
+ description: 'Use the stateless-api preset for Vercel, Lambda, or Cloudflare Workers.'
6
+ tags: [config, vercel, lambda, cloudflare, session, transport]
7
+ features:
8
+ - "The `'stateless-api'` preset disables SSE, streaming, and sessions entirely"
9
+ - 'Each request is standalone with no server-side state'
10
+ - "Pair with `sessionMode: 'stateless'` for serverless execution"
11
+ - 'Required for Vercel, Lambda, Cloudflare Workers where persistent connections are not allowed'
12
+ ---
13
+
14
+ # Stateless API Preset for Serverless
15
+
16
+ Use the stateless-api preset for Vercel, Lambda, or Cloudflare Workers.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
23
+ import { z } from 'zod';
24
+
25
+ @Tool({
26
+ name: 'translate',
27
+ description: 'Translate text between languages',
28
+ inputSchema: {
29
+ text: z.string(),
30
+ targetLang: z.string(),
31
+ },
32
+ outputSchema: { translated: z.string() },
33
+ })
34
+ class TranslateTool extends ToolContext {
35
+ async execute(input: { text: string; targetLang: string }) {
36
+ return { translated: `[${input.targetLang}] ${input.text}` };
37
+ }
38
+ }
39
+
40
+ @App({
41
+ name: 'translate-api',
42
+ tools: [TranslateTool],
43
+ })
44
+ class TranslateApp {}
45
+
46
+ @FrontMcp({
47
+ info: { name: 'serverless-translate', version: '1.0.0' },
48
+ apps: [TranslateApp],
49
+ transport: {
50
+ sessionMode: 'stateless',
51
+ protocol: 'stateless-api',
52
+ },
53
+ })
54
+ class Server {}
55
+ // Enables: Stateless HTTP only
56
+ // Flags: { sse: false, streamable: false, json: false, stateless: true, legacy: false, strictSession: false }
57
+ ```
58
+
59
+ ## What This Demonstrates
60
+
61
+ - The `'stateless-api'` preset disables SSE, streaming, and sessions entirely
62
+ - Each request is standalone with no server-side state
63
+ - Pair with `sessionMode: 'stateless'` for serverless execution
64
+ - Required for Vercel, Lambda, Cloudflare Workers where persistent connections are not allowed
65
+
66
+ ## Related
67
+
68
+ - See `configure-transport-protocol-presets` for all preset definitions
69
+ - See `configure-transport` for full transport configuration
@@ -80,3 +80,13 @@ auth: {
80
80
  | Credential vault | No | No | Yes | Yes |
81
81
  | Consent flow | No | No | Optional | Optional |
82
82
  | Federated auth | No | No | Optional | Optional |
83
+
84
+ ## Examples
85
+
86
+ | Example | Level | Description |
87
+ | ---------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- |
88
+ | [`local-self-signed-tokens`](../examples/configure-auth-modes/local-self-signed-tokens.md) | Intermediate | Configure a server that signs its own JWT tokens with consent and incremental auth enabled. |
89
+ | [`remote-enterprise-oauth`](../examples/configure-auth-modes/remote-enterprise-oauth.md) | Advanced | Delegate authentication to an external OAuth orchestrator with Redis-backed token storage. |
90
+ | [`transparent-jwt-validation`](../examples/configure-auth-modes/transparent-jwt-validation.md) | Basic | Validate externally-issued JWTs without managing token lifecycle on the server. |
91
+
92
+ > See all examples in [`examples/configure-auth-modes/`](../examples/configure-auth-modes/)
@@ -237,6 +237,16 @@ The `authProviders` accessor (from `@frontmcp/auth`) provides:
237
237
  | `VAULT_SECRET is not defined` error | The vault encryption secret environment variable is missing | Set `VAULT_SECRET` in your environment or `.env` file before starting the server |
238
238
  | OAuth redirect fails in local dev | `remote` mode requires HTTPS and reachable callback URLs | Set `NODE_ENV=development` to relax HTTPS requirements, or use a local OAuth mock server |
239
239
 
240
+ ## Examples
241
+
242
+ | Example | Level | Description |
243
+ | ---------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
244
+ | [`multi-app-auth`](../examples/configure-auth/multi-app-auth.md) | Advanced | Configure a single FrontMCP server with multiple apps, each using a different auth mode -- public for open endpoints and remote for admin endpoints. |
245
+ | [`public-mode-setup`](../examples/configure-auth/public-mode-setup.md) | Basic | Set up a FrontMCP server with public (unauthenticated) access and anonymous scopes. |
246
+ | [`remote-oauth-with-vault`](../examples/configure-auth/remote-oauth-with-vault.md) | Intermediate | Configure a FrontMCP server with remote OAuth 2.1 authentication and use the credential vault to call downstream APIs on behalf of the authenticated user. |
247
+
248
+ > See all examples in [`examples/configure-auth/`](../examples/configure-auth/)
249
+
240
250
  ## Reference
241
251
 
242
252
  - Docs: [Authentication Overview](https://docs.agentfront.dev/frontmcp/authentication/overview)
@@ -177,6 +177,15 @@ frontmcp dev
177
177
  | User sees raw JSON instead of a form | The MCP client renders the `requestedSchema` as raw data rather than a form | Use standard JSON Schema types (`boolean`, `string`, `enum`) that clients can render as UI controls |
178
178
  | Tool hangs indefinitely waiting for user response | No timeout configured and user never responds | Implement a timeout or cancellation mechanism in the tool logic to handle non-responsive users |
179
179
 
180
+ ## Examples
181
+
182
+ | Example | Level | Description |
183
+ | ----------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------- |
184
+ | [`basic-confirmation-gate`](../examples/configure-elicitation/basic-confirmation-gate.md) | Basic | Request user confirmation before executing a destructive action. |
185
+ | [`distributed-elicitation-redis`](../examples/configure-elicitation/distributed-elicitation-redis.md) | Intermediate | Configure elicitation with Redis storage for multi-instance production deployments. |
186
+
187
+ > See all examples in [`examples/configure-elicitation/`](../examples/configure-elicitation/)
188
+
180
189
  ## Reference
181
190
 
182
191
  - [Elicitation Docs](https://docs.agentfront.dev/frontmcp/servers/elicitation)
@@ -204,6 +204,16 @@ curl --unix-socket /tmp/my-mcp-server.sock http://localhost/
204
204
  | Routes return 404 after setting `entryPath` | Client is still requesting the root path without the prefix | Update client base URL to include the entry path (e.g., `http://localhost:3001/api/mcp`) |
205
205
  | Server binds but external clients cannot connect | Server bound to `localhost` or `127.0.0.1` inside a container | Set `host: '0.0.0.0'` or use Docker port mapping to expose the container port |
206
206
 
207
+ ## Examples
208
+
209
+ | Example | Level | Description |
210
+ | ------------------------------------------------------------------------------------ | ------------ | ------------------------------------------------------------------------------------ |
211
+ | [`cors-restricted-origins`](../examples/configure-http/cors-restricted-origins.md) | Basic | Configure CORS to allow only specific frontend origins with credentials. |
212
+ | [`entry-path-reverse-proxy`](../examples/configure-http/entry-path-reverse-proxy.md) | Intermediate | Mount the MCP server under a URL prefix for reverse proxy or multi-service setups. |
213
+ | [`unix-socket-local`](../examples/configure-http/unix-socket-local.md) | Intermediate | Bind the server to a unix socket instead of a TCP port for local-only communication. |
214
+
215
+ > See all examples in [`examples/configure-http/`](../examples/configure-http/)
216
+
207
217
  ## Reference
208
218
 
209
219
  - [HTTP Server Docs](https://docs.agentfront.dev/frontmcp/deployment/local-dev-server)
@@ -204,6 +204,16 @@ const pubsubStore = createPubsubStore({
204
204
  | Session key collisions between servers | Multiple servers share the same Redis instance and `keyPrefix` | Set a unique `keyPrefix` per server (e.g., `billing-mcp:session:`, `api-mcp:session:`) |
205
205
  | Pub/sub not working with Vercel KV | Vercel KV does not support pub/sub operations | Add a separate `pubsub` config pointing to a real Redis instance |
206
206
 
207
+ ## Examples
208
+
209
+ | Example | Level | Description |
210
+ | ------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------- |
211
+ | [`multi-server-key-prefix`](../examples/configure-session/multi-server-key-prefix.md) | Intermediate | Use unique key prefixes when multiple FrontMCP servers share one Redis instance. |
212
+ | [`redis-session-store`](../examples/configure-session/redis-session-store.md) | Basic | Configure Redis-backed session storage for production deployments. |
213
+ | [`vercel-kv-session`](../examples/configure-session/vercel-kv-session.md) | Intermediate | Configure Vercel KV for session storage in serverless Vercel deployments. |
214
+
215
+ > See all examples in [`examples/configure-session/`](../examples/configure-session/)
216
+
207
217
  ## Reference
208
218
 
209
219
  - [Session Storage Docs](https://docs.agentfront.dev/frontmcp/deployment/redis-setup)
@@ -71,3 +71,12 @@ interface IpFilterConfig {
71
71
  4. Per-tool rate limit — checked per tool
72
72
  5. Per-tool concurrency — checked per tool
73
73
  6. Per-tool timeout — enforced during execution
74
+
75
+ ## Examples
76
+
77
+ | Example | Level | Description |
78
+ | --------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------ |
79
+ | [`full-guard-config`](../examples/configure-throttle-guard-config/full-guard-config.md) | Advanced | Complete GuardConfig using every available field for maximum protection. |
80
+ | [`minimal-guard-config`](../examples/configure-throttle-guard-config/minimal-guard-config.md) | Basic | Enable throttle with just a global rate limit and default timeout. |
81
+
82
+ > See all examples in [`examples/configure-throttle-guard-config/`](../examples/configure-throttle-guard-config/)
@@ -228,6 +228,16 @@ done
228
228
  | `X-Forwarded-For` header ignored | `ipFilter.trustProxy` not enabled or `trustedProxyDepth` too low | Set `trustProxy: true` and adjust `trustedProxyDepth` to match your proxy chain |
229
229
  | Rate limit resets not aligned with expectations | `windowMs` misunderstood as a sliding window when it is a fixed window | The window is fixed; all counters reset at the end of each `windowMs` interval |
230
230
 
231
+ ## Examples
232
+
233
+ | Example | Level | Description |
234
+ | -------------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------- |
235
+ | [`distributed-redis-throttle`](../examples/configure-throttle/distributed-redis-throttle.md) | Advanced | Configure Redis-backed rate limiting for multi-instance deployments behind a load balancer. |
236
+ | [`per-tool-rate-limit`](../examples/configure-throttle/per-tool-rate-limit.md) | Intermediate | Override server defaults with per-tool rate limits and concurrency caps. |
237
+ | [`server-level-rate-limit`](../examples/configure-throttle/server-level-rate-limit.md) | Basic | Configure global rate limits and IP filtering at the server level. |
238
+
239
+ > See all examples in [`examples/configure-throttle/`](../examples/configure-throttle/)
240
+
231
241
  ## Reference
232
242
 
233
243
  - [Guard Configuration Docs](https://docs.agentfront.dev/frontmcp/servers/guard)
@@ -60,3 +60,12 @@ All protocols enabled. Maximum flexibility.
60
60
  | AWS Lambda | `'stateless-api'` | Stateless execution model |
61
61
  | Cloudflare Workers | `'stateless-api'` | Stateless edge runtime |
62
62
  | Development | `'full'` | Test all protocols |
63
+
64
+ ## Examples
65
+
66
+ | Example | Level | Description |
67
+ | ---------------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------- |
68
+ | [`legacy-preset-nodejs`](../examples/configure-transport-protocol-presets/legacy-preset-nodejs.md) | Basic | Use the default legacy preset for maximum compatibility with all MCP clients. |
69
+ | [`stateless-api-serverless`](../examples/configure-transport-protocol-presets/stateless-api-serverless.md) | Intermediate | Use the stateless-api preset for Vercel, Lambda, or Cloudflare Workers. |
70
+
71
+ > See all examples in [`examples/configure-transport-protocol-presets/`](../examples/configure-transport-protocol-presets/)