@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,52 @@
1
+ ---
2
+ name: cors-restricted-origins
3
+ reference: configure-http
4
+ level: basic
5
+ description: 'Configure CORS to allow only specific frontend origins with credentials.'
6
+ tags: [config, browser, http, cors, restricted, origins]
7
+ features:
8
+ - 'Restricting CORS to explicit origins instead of the permissive default'
9
+ - 'Enabling `credentials: true` with specific origins (required -- browsers reject `*` with credentials)'
10
+ - 'Setting `maxAge` to reduce preflight request overhead'
11
+ - 'Reading port from an environment variable with a fallback'
12
+ ---
13
+
14
+ # CORS with Restricted Origins
15
+
16
+ Configure CORS to allow only specific frontend origins with credentials.
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: 'cors-server', version: '1.0.0' },
29
+ apps: [MyApp],
30
+ http: {
31
+ port: Number(process.env['PORT']) || 3001,
32
+ cors: {
33
+ origin: ['https://myapp.com', 'https://staging.myapp.com'],
34
+ credentials: true,
35
+ maxAge: 86400, // cache preflight for 24 hours
36
+ },
37
+ },
38
+ })
39
+ class Server {}
40
+ ```
41
+
42
+ ## What This Demonstrates
43
+
44
+ - Restricting CORS to explicit origins instead of the permissive default
45
+ - Enabling `credentials: true` with specific origins (required -- browsers reject `*` with credentials)
46
+ - Setting `maxAge` to reduce preflight request overhead
47
+ - Reading port from an environment variable with a fallback
48
+
49
+ ## Related
50
+
51
+ - See `configure-http` for the full HTTP configuration reference
52
+ - See `configure-throttle` for rate limiting and IP filtering
@@ -0,0 +1,72 @@
1
+ ---
2
+ name: entry-path-reverse-proxy
3
+ reference: configure-http
4
+ level: intermediate
5
+ description: 'Mount the MCP server under a URL prefix for reverse proxy or multi-service setups.'
6
+ tags: [config, nx, http, entry, path, reverse]
7
+ features:
8
+ - 'Using `entryPath` to mount the server under a URL prefix (no trailing slash)'
9
+ - 'All MCP endpoints are prefixed: `/api/mcp/sse`, `/api/mcp/`, etc.'
10
+ - 'Using a dynamic CORS origin function to allow wildcard subdomains'
11
+ - 'Suitable for running behind nginx, Caddy, or other reverse proxies'
12
+ ---
13
+
14
+ # Entry Path Prefix Behind a Reverse Proxy
15
+
16
+ Mount the MCP server under a URL prefix for reverse proxy or multi-service setups.
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: 'health_check',
27
+ description: 'Check service health',
28
+ inputSchema: {},
29
+ outputSchema: { status: z.string() },
30
+ })
31
+ class HealthCheckTool extends ToolContext {
32
+ async execute() {
33
+ return { status: 'ok' };
34
+ }
35
+ }
36
+
37
+ @App({
38
+ name: 'api',
39
+ tools: [HealthCheckTool],
40
+ })
41
+ class ApiApp {}
42
+
43
+ @FrontMcp({
44
+ info: { name: 'proxy-server', version: '1.0.0' },
45
+ apps: [ApiApp],
46
+ http: {
47
+ port: 3001,
48
+ entryPath: '/api/mcp', // no trailing slash
49
+ cors: {
50
+ origin: (origin: string) => {
51
+ // allow any *.myapp.com subdomain
52
+ return origin.endsWith('.myapp.com');
53
+ },
54
+ credentials: true,
55
+ },
56
+ },
57
+ })
58
+ class Server {}
59
+ // Endpoints become: /api/mcp/sse, /api/mcp/, etc.
60
+ ```
61
+
62
+ ## What This Demonstrates
63
+
64
+ - Using `entryPath` to mount the server under a URL prefix (no trailing slash)
65
+ - All MCP endpoints are prefixed: `/api/mcp/sse`, `/api/mcp/`, etc.
66
+ - Using a dynamic CORS origin function to allow wildcard subdomains
67
+ - Suitable for running behind nginx, Caddy, or other reverse proxies
68
+
69
+ ## Related
70
+
71
+ - See `configure-http` for the full HTTP configuration reference
72
+ - See `configure-transport` for protocol options behind a proxy
@@ -0,0 +1,64 @@
1
+ ---
2
+ name: unix-socket-local
3
+ reference: configure-http
4
+ level: intermediate
5
+ description: 'Bind the server to a unix socket instead of a TCP port for local-only communication.'
6
+ tags: [config, unix-socket, cli, local, http, unix]
7
+ features:
8
+ - 'Using `socketPath` to bind to a unix socket instead of a TCP port'
9
+ - 'When `socketPath` is set, the `port` field is ignored'
10
+ - 'Disabling CORS with `cors: false` since unix sockets are local-only'
11
+ - 'Suitable for CLI tools, daemons, and process manager integrations'
12
+ ---
13
+
14
+ # Unix Socket for Local Access
15
+
16
+ Bind the server to a unix socket instead of a TCP port for local-only communication.
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: 'system_status',
27
+ description: 'Get system status',
28
+ inputSchema: {},
29
+ outputSchema: { uptime: z.number(), healthy: z.boolean() },
30
+ })
31
+ class SystemStatusTool extends ToolContext {
32
+ async execute() {
33
+ return { uptime: process.uptime(), healthy: true };
34
+ }
35
+ }
36
+
37
+ @App({
38
+ name: 'daemon',
39
+ tools: [SystemStatusTool],
40
+ })
41
+ class DaemonApp {}
42
+
43
+ @FrontMcp({
44
+ info: { name: 'daemon-server', version: '1.0.0' },
45
+ apps: [DaemonApp],
46
+ http: {
47
+ socketPath: '/tmp/my-mcp-server.sock',
48
+ cors: false, // no CORS needed for local socket
49
+ },
50
+ })
51
+ class Server {}
52
+ ```
53
+
54
+ ## What This Demonstrates
55
+
56
+ - Using `socketPath` to bind to a unix socket instead of a TCP port
57
+ - When `socketPath` is set, the `port` field is ignored
58
+ - Disabling CORS with `cors: false` since unix sockets are local-only
59
+ - Suitable for CLI tools, daemons, and process manager integrations
60
+
61
+ ## Related
62
+
63
+ - See `configure-http` for the full HTTP configuration reference
64
+ - See `configure-transport` for transport protocol options
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: multi-server-key-prefix
3
+ reference: configure-session
4
+ level: intermediate
5
+ description: 'Use unique key prefixes when multiple FrontMCP servers share one Redis instance.'
6
+ tags: [config, redis, session, multi, key, prefix]
7
+ features:
8
+ - 'Using unique `keyPrefix` values per server to avoid session key collisions'
9
+ - 'Both servers share the same Redis instance but have isolated session namespaces'
10
+ - 'Tuning `defaultTtlMs` per server based on workload pattern'
11
+ - '`billing-mcp:session:` vs `analytics-mcp:session:` prevents cross-contamination'
12
+ ---
13
+
14
+ # Multi-Server Key Prefix Isolation
15
+
16
+ Use unique key prefixes when multiple FrontMCP servers share one Redis instance.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/billing-server.ts
22
+ import { FrontMcp, App } from '@frontmcp/sdk';
23
+
24
+ @App({ name: 'billing-app' })
25
+ class BillingApp {}
26
+
27
+ @FrontMcp({
28
+ info: { name: 'billing-server', version: '1.0.0' },
29
+ apps: [BillingApp],
30
+ redis: {
31
+ provider: 'redis',
32
+ host: 'shared-redis.internal',
33
+ port: 6379,
34
+ keyPrefix: 'billing-mcp:session:',
35
+ defaultTtlMs: 86_400_000, // 24 hours for long-running agent workflows
36
+ },
37
+ })
38
+ class BillingServer {}
39
+
40
+ // src/analytics-server.ts
41
+ @App({ name: 'analytics-app' })
42
+ class AnalyticsApp {}
43
+
44
+ @FrontMcp({
45
+ info: { name: 'analytics-server', version: '1.0.0' },
46
+ apps: [AnalyticsApp],
47
+ redis: {
48
+ provider: 'redis',
49
+ host: 'shared-redis.internal',
50
+ port: 6379,
51
+ keyPrefix: 'analytics-mcp:session:',
52
+ defaultTtlMs: 600_000, // 10 minutes for short CI/CD operations
53
+ },
54
+ })
55
+ class AnalyticsServer {}
56
+ ```
57
+
58
+ ## What This Demonstrates
59
+
60
+ - Using unique `keyPrefix` values per server to avoid session key collisions
61
+ - Both servers share the same Redis instance but have isolated session namespaces
62
+ - Tuning `defaultTtlMs` per server based on workload pattern
63
+ - `billing-mcp:session:` vs `analytics-mcp:session:` prevents cross-contamination
64
+
65
+ ## Related
66
+
67
+ - See `configure-session` for the full session configuration reference
68
+ - See `setup-redis` for Redis provisioning details
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: redis-session-store
3
+ reference: configure-session
4
+ level: basic
5
+ description: 'Configure Redis-backed session storage for production deployments.'
6
+ tags: [config, redis, session, store]
7
+ features:
8
+ - 'Configuring Redis as the session storage provider for production persistence'
9
+ - 'Using `keyPrefix` to namespace session keys and prevent collisions with other servers'
10
+ - 'Setting `defaultTtlMs` to control session lifetime (1 hour for interactive use)'
11
+ - 'Loading Redis connection details from environment variables'
12
+ ---
13
+
14
+ # Redis Session Store
15
+
16
+ Configure Redis-backed session storage for production deployments.
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: 'prod-server', version: '1.0.0' },
29
+ apps: [MyApp],
30
+ redis: {
31
+ provider: 'redis',
32
+ host: process.env['REDIS_HOST'] ?? 'localhost',
33
+ port: Number(process.env['REDIS_PORT'] ?? 6379),
34
+ password: process.env['REDIS_PASSWORD'],
35
+ keyPrefix: 'myapp-mcp:session:',
36
+ defaultTtlMs: 3_600_000, // 1 hour for interactive sessions
37
+ },
38
+ })
39
+ class Server {}
40
+ ```
41
+
42
+ ## What This Demonstrates
43
+
44
+ - Configuring Redis as the session storage provider for production persistence
45
+ - Using `keyPrefix` to namespace session keys and prevent collisions with other servers
46
+ - Setting `defaultTtlMs` to control session lifetime (1 hour for interactive use)
47
+ - Loading Redis connection details from environment variables
48
+
49
+ ## Related
50
+
51
+ - See `configure-session` for all session storage options
52
+ - See `setup-redis` for Redis provisioning details
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: vercel-kv-session
3
+ reference: configure-session
4
+ level: intermediate
5
+ description: 'Configure Vercel KV for session storage in serverless Vercel deployments.'
6
+ tags: [config, vercel-kv, vercel, session, transport, serverless]
7
+ features:
8
+ - "Using `provider: 'vercel-kv'` for Vercel platform deployments"
9
+ - 'Vercel automatically injects `KV_REST_API_URL` and `KV_REST_API_TOKEN` environment variables'
10
+ - 'Combining with `stateless-api` transport preset for serverless execution'
11
+ - 'No explicit host/port needed -- Vercel KV uses REST API under the hood'
12
+ ---
13
+
14
+ # Vercel KV Session Store
15
+
16
+ Configure Vercel KV for session storage in serverless Vercel deployments.
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: 'vercel-server', version: '1.0.0' },
29
+ apps: [MyApp],
30
+ redis: {
31
+ provider: 'vercel-kv',
32
+ // KV_REST_API_URL and KV_REST_API_TOKEN are auto-injected by Vercel
33
+ },
34
+ transport: {
35
+ protocol: 'stateless-api',
36
+ sessionMode: 'stateless',
37
+ },
38
+ })
39
+ class Server {}
40
+ ```
41
+
42
+ ## What This Demonstrates
43
+
44
+ - Using `provider: 'vercel-kv'` for Vercel platform deployments
45
+ - Vercel automatically injects `KV_REST_API_URL` and `KV_REST_API_TOKEN` environment variables
46
+ - Combining with `stateless-api` transport preset for serverless execution
47
+ - No explicit host/port needed -- Vercel KV uses REST API under the hood
48
+
49
+ ## Related
50
+
51
+ - See `configure-session` for all session storage options
52
+ - See `configure-transport` for transport protocol configuration
@@ -0,0 +1,94 @@
1
+ ---
2
+ name: distributed-redis-throttle
3
+ reference: configure-throttle
4
+ level: advanced
5
+ description: 'Configure Redis-backed rate limiting for multi-instance deployments behind a load balancer.'
6
+ tags: [config, redis, session, throttle, distributed]
7
+ features:
8
+ - "Configuring `storage: { type: 'redis' }` so rate limit counters are shared across instances"
9
+ - 'Using `keyPrefix` to namespace guard keys in a shared Redis instance'
10
+ - "Combining `partitionBy: 'ip'` for global limits with `partitionBy: 'session'` per tool"
11
+ - 'In-memory counters are per-process and would allow N times the intended rate with N instances'
12
+ ---
13
+
14
+ # Distributed Rate Limiting with Redis
15
+
16
+ Configure Redis-backed rate limiting for multi-instance deployments behind a load balancer.
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: 'process_payment',
27
+ description: 'Process a payment transaction',
28
+ inputSchema: {
29
+ amount: z.number(),
30
+ currency: z.string(),
31
+ },
32
+ outputSchema: { transactionId: z.string(), status: z.string() },
33
+ rateLimit: {
34
+ maxRequests: 5,
35
+ windowMs: 60000,
36
+ partitionBy: 'session',
37
+ },
38
+ concurrency: {
39
+ maxConcurrent: 1,
40
+ partitionBy: 'session',
41
+ },
42
+ })
43
+ class ProcessPaymentTool extends ToolContext {
44
+ async execute(input: { amount: number; currency: string }) {
45
+ return { transactionId: 'txn-abc123', status: 'completed' };
46
+ }
47
+ }
48
+
49
+ @App({
50
+ name: 'payments',
51
+ tools: [ProcessPaymentTool],
52
+ })
53
+ class PaymentsApp {}
54
+
55
+ @FrontMcp({
56
+ info: { name: 'payment-server', version: '1.0.0' },
57
+ apps: [PaymentsApp],
58
+ throttle: {
59
+ enabled: true,
60
+ storage: {
61
+ type: 'redis',
62
+ redis: {
63
+ config: {
64
+ host: process.env['REDIS_HOST'] ?? 'redis.internal',
65
+ port: Number(process.env['REDIS_PORT'] ?? 6379),
66
+ },
67
+ },
68
+ },
69
+ keyPrefix: 'payments:guard:',
70
+ global: {
71
+ maxRequests: 500,
72
+ windowMs: 60000,
73
+ partitionBy: 'ip',
74
+ },
75
+ globalConcurrency: {
76
+ maxConcurrent: 20,
77
+ partitionBy: 'global',
78
+ },
79
+ },
80
+ })
81
+ class Server {}
82
+ ```
83
+
84
+ ## What This Demonstrates
85
+
86
+ - Configuring `storage: { type: 'redis' }` so rate limit counters are shared across instances
87
+ - Using `keyPrefix` to namespace guard keys in a shared Redis instance
88
+ - Combining `partitionBy: 'ip'` for global limits with `partitionBy: 'session'` per tool
89
+ - In-memory counters are per-process and would allow N times the intended rate with N instances
90
+
91
+ ## Related
92
+
93
+ - See `configure-throttle` for the full throttle configuration reference
94
+ - See `setup-redis` for Redis provisioning details
@@ -0,0 +1,92 @@
1
+ ---
2
+ name: per-tool-rate-limit
3
+ reference: configure-throttle
4
+ level: intermediate
5
+ description: 'Override server defaults with per-tool rate limits and concurrency caps.'
6
+ tags: [config, session, throttle, per, tool, rate]
7
+ features:
8
+ - 'Setting per-tool `rateLimit`, `concurrency`, and `timeout` on the `@Tool` decorator'
9
+ - "Using `partitionBy: 'session'` for per-user fairness on expensive tools"
10
+ - 'Setting `queueTimeoutMs` to briefly queue excess requests instead of rejecting immediately'
11
+ - 'Tools without overrides (`QuickLookupTool`) inherit server defaults'
12
+ ---
13
+
14
+ # Per-Tool Rate Limiting
15
+
16
+ Override server defaults with per-tool rate limits and concurrency caps.
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: 'expensive_query',
27
+ description: 'Run an expensive database query',
28
+ inputSchema: { query: z.string() },
29
+ outputSchema: { rows: z.array(z.record(z.unknown())), rowCount: z.number() },
30
+ rateLimit: {
31
+ maxRequests: 10,
32
+ windowMs: 60000,
33
+ partitionBy: 'session', // per-session rate limit
34
+ },
35
+ concurrency: {
36
+ maxConcurrent: 3,
37
+ queueTimeoutMs: 5000, // wait up to 5s for a slot
38
+ partitionBy: 'session',
39
+ },
40
+ timeout: {
41
+ executeMs: 60000, // 60 second timeout for this tool
42
+ },
43
+ })
44
+ class ExpensiveQueryTool extends ToolContext {
45
+ async execute(input: { query: string }) {
46
+ return { rows: [{ id: 1 }], rowCount: 1 };
47
+ }
48
+ }
49
+
50
+ @Tool({
51
+ name: 'quick_lookup',
52
+ description: 'Fast key-value lookup',
53
+ inputSchema: { key: z.string() },
54
+ outputSchema: { value: z.string().nullable() },
55
+ // No overrides -- uses server defaults
56
+ })
57
+ class QuickLookupTool extends ToolContext {
58
+ async execute(input: { key: string }) {
59
+ return { value: 'cached-value' };
60
+ }
61
+ }
62
+
63
+ @App({
64
+ name: 'data-api',
65
+ tools: [ExpensiveQueryTool, QuickLookupTool],
66
+ })
67
+ class DataApp {}
68
+
69
+ @FrontMcp({
70
+ info: { name: 'data-server', version: '1.0.0' },
71
+ apps: [DataApp],
72
+ throttle: {
73
+ enabled: true,
74
+ defaultRateLimit: { maxRequests: 100, windowMs: 60000 },
75
+ defaultConcurrency: { maxConcurrent: 10 },
76
+ defaultTimeout: { executeMs: 30000 },
77
+ },
78
+ })
79
+ class Server {}
80
+ ```
81
+
82
+ ## What This Demonstrates
83
+
84
+ - Setting per-tool `rateLimit`, `concurrency`, and `timeout` on the `@Tool` decorator
85
+ - Using `partitionBy: 'session'` for per-user fairness on expensive tools
86
+ - Setting `queueTimeoutMs` to briefly queue excess requests instead of rejecting immediately
87
+ - Tools without overrides (`QuickLookupTool`) inherit server defaults
88
+
89
+ ## Related
90
+
91
+ - See `configure-throttle` for the full throttle configuration reference
92
+ - See `configure-throttle-guard-config` for the complete GuardConfig interface
@@ -0,0 +1,83 @@
1
+ ---
2
+ name: server-level-rate-limit
3
+ reference: configure-throttle
4
+ level: basic
5
+ description: 'Configure global rate limits and IP filtering at the server level.'
6
+ tags: [config, throttle, level, rate, limit]
7
+ features:
8
+ - 'Enabling throttle with `throttle: { enabled: true }`'
9
+ - 'Setting `global` rate limit shared across all clients'
10
+ - 'Configuring `globalConcurrency` to cap simultaneous executions'
11
+ - 'Setting `defaultTimeout` to prevent runaway tool executions'
12
+ - 'Using `ipFilter` with deny-by-default posture and an explicit allow list'
13
+ ---
14
+
15
+ # Server-Level Rate Limiting
16
+
17
+ Configure global rate limits and IP filtering at the server level.
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: 'search',
28
+ description: 'Search records',
29
+ inputSchema: { query: z.string() },
30
+ outputSchema: { results: z.array(z.string()) },
31
+ })
32
+ class SearchTool extends ToolContext {
33
+ async execute(input: { query: string }) {
34
+ return { results: [`Result for: ${input.query}`] };
35
+ }
36
+ }
37
+
38
+ @App({
39
+ name: 'api',
40
+ tools: [SearchTool],
41
+ })
42
+ class ApiApp {}
43
+
44
+ @FrontMcp({
45
+ info: { name: 'throttled-server', version: '1.0.0' },
46
+ apps: [ApiApp],
47
+ throttle: {
48
+ enabled: true,
49
+ global: {
50
+ maxRequests: 1000,
51
+ windowMs: 60000, // 1 minute window
52
+ partitionBy: 'global',
53
+ },
54
+ globalConcurrency: {
55
+ maxConcurrent: 50,
56
+ partitionBy: 'global',
57
+ },
58
+ defaultTimeout: {
59
+ executeMs: 30000, // 30 second timeout
60
+ },
61
+ ipFilter: {
62
+ allowList: ['10.0.0.0/8'],
63
+ defaultAction: 'deny',
64
+ trustProxy: true,
65
+ trustedProxyDepth: 1,
66
+ },
67
+ },
68
+ })
69
+ class Server {}
70
+ ```
71
+
72
+ ## What This Demonstrates
73
+
74
+ - Enabling throttle with `throttle: { enabled: true }`
75
+ - Setting `global` rate limit shared across all clients
76
+ - Configuring `globalConcurrency` to cap simultaneous executions
77
+ - Setting `defaultTimeout` to prevent runaway tool executions
78
+ - Using `ipFilter` with deny-by-default posture and an explicit allow list
79
+
80
+ ## Related
81
+
82
+ - See `configure-throttle` for the full throttle configuration reference
83
+ - See `configure-throttle-guard-config` for the complete GuardConfig interface