@frontmcp/skills 1.0.0-beta.9 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/README.md +2 -2
  2. package/catalog/TEMPLATE.md +69 -0
  3. package/catalog/frontmcp-config/SKILL.md +38 -22
  4. package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +87 -0
  5. package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +63 -0
  6. package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +76 -0
  7. package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +77 -0
  8. package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +73 -0
  9. package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +64 -0
  10. package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +83 -0
  11. package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +87 -0
  12. package/catalog/frontmcp-config/examples/configure-http/cors-restricted-origins.md +52 -0
  13. package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +72 -0
  14. package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +64 -0
  15. package/catalog/frontmcp-config/examples/configure-session/multi-server-key-prefix.md +68 -0
  16. package/catalog/frontmcp-config/examples/configure-session/redis-session-store.md +52 -0
  17. package/catalog/frontmcp-config/examples/configure-session/vercel-kv-session.md +52 -0
  18. package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +94 -0
  19. package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +92 -0
  20. package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +83 -0
  21. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/full-guard-config.md +99 -0
  22. package/catalog/frontmcp-config/examples/configure-throttle-guard-config/minimal-guard-config.md +55 -0
  23. package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +74 -0
  24. package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +86 -0
  25. package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +69 -0
  26. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +65 -0
  27. package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +69 -0
  28. package/catalog/frontmcp-config/references/configure-auth-modes.md +15 -0
  29. package/catalog/frontmcp-config/references/configure-auth.md +15 -0
  30. package/catalog/frontmcp-config/references/configure-elicitation.md +14 -0
  31. package/catalog/frontmcp-config/references/configure-http.md +15 -0
  32. package/catalog/frontmcp-config/references/configure-session.md +15 -0
  33. package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +14 -0
  34. package/catalog/frontmcp-config/references/configure-throttle.md +15 -0
  35. package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +14 -0
  36. package/catalog/frontmcp-config/references/configure-transport.md +15 -0
  37. package/catalog/frontmcp-config/references/setup-redis.md +10 -0
  38. package/catalog/frontmcp-config/references/setup-sqlite.md +10 -0
  39. package/catalog/frontmcp-deployment/SKILL.md +40 -12
  40. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-build-with-custom-entry.md +43 -0
  41. package/catalog/frontmcp-deployment/examples/build-for-browser/browser-crypto-and-storage.md +85 -0
  42. package/catalog/frontmcp-deployment/examples/build-for-browser/react-provider-setup.md +61 -0
  43. package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +66 -0
  44. package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +76 -0
  45. package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +78 -0
  46. package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +85 -0
  47. package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +104 -0
  48. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +82 -0
  49. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +97 -0
  50. package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +92 -0
  51. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/cdk-deployment.md +92 -0
  52. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +113 -0
  53. package/catalog/frontmcp-deployment/examples/deploy-to-lambda/sam-template-basic.md +100 -0
  54. package/catalog/frontmcp-deployment/examples/deploy-to-node/docker-compose-with-redis.md +101 -0
  55. package/catalog/frontmcp-deployment/examples/deploy-to-node/pm2-with-nginx.md +79 -0
  56. package/catalog/frontmcp-deployment/examples/deploy-to-node/resource-limits.md +92 -0
  57. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/basic-multistage-dockerfile.md +63 -0
  58. package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md +89 -0
  59. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-mcp-endpoint-test.md +69 -0
  60. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +82 -0
  61. package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-skills-cache.md +90 -0
  62. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/minimal-vercel-config.md +49 -0
  63. package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/vercel-config-with-security-headers.md +92 -0
  64. package/catalog/frontmcp-deployment/references/build-for-browser.md +15 -0
  65. package/catalog/frontmcp-deployment/references/build-for-cli.md +65 -3
  66. package/catalog/frontmcp-deployment/references/build-for-sdk.md +15 -0
  67. package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +15 -0
  68. package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +18 -3
  69. package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +16 -2
  70. package/catalog/frontmcp-deployment/references/deploy-to-node.md +19 -4
  71. package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +14 -0
  72. package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +15 -0
  73. package/catalog/frontmcp-development/SKILL.md +25 -17
  74. package/catalog/frontmcp-development/examples/create-adapter/basic-api-adapter.md +92 -0
  75. package/catalog/frontmcp-development/examples/create-adapter/namespaced-adapter.md +124 -0
  76. package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +121 -0
  77. package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +95 -0
  78. package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +111 -0
  79. package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +81 -0
  80. package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +80 -0
  81. package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +87 -0
  82. package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +117 -0
  83. package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +88 -0
  84. package/catalog/frontmcp-development/examples/create-plugin/basic-plugin-with-provider.md +69 -0
  85. package/catalog/frontmcp-development/examples/create-plugin/configurable-dynamic-plugin.md +178 -0
  86. package/catalog/frontmcp-development/examples/create-plugin/plugin-with-context-extension.md +107 -0
  87. package/catalog/frontmcp-development/examples/create-plugin-hooks/basic-logging-plugin.md +69 -0
  88. package/catalog/frontmcp-development/examples/create-plugin-hooks/caching-with-around.md +80 -0
  89. package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +100 -0
  90. package/catalog/frontmcp-development/examples/create-prompt/basic-prompt.md +72 -0
  91. package/catalog/frontmcp-development/examples/create-prompt/dynamic-rag-prompt.md +92 -0
  92. package/catalog/frontmcp-development/examples/create-prompt/multi-turn-debug-session.md +86 -0
  93. package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +113 -0
  94. package/catalog/frontmcp-development/examples/create-provider/config-and-api-providers.md +107 -0
  95. package/catalog/frontmcp-development/examples/create-resource/basic-static-resource.md +72 -0
  96. package/catalog/frontmcp-development/examples/create-resource/binary-and-multi-content.md +111 -0
  97. package/catalog/frontmcp-development/examples/create-resource/parameterized-template.md +84 -0
  98. package/catalog/frontmcp-development/examples/create-skill/basic-inline-skill.md +96 -0
  99. package/catalog/frontmcp-development/examples/create-skill/directory-based-skill.md +115 -0
  100. package/catalog/frontmcp-development/examples/create-skill/parameterized-skill.md +96 -0
  101. package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md +76 -0
  102. package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +149 -0
  103. package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md +92 -0
  104. package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +62 -0
  105. package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +84 -0
  106. package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +93 -0
  107. package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +94 -0
  108. package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +60 -0
  109. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +104 -0
  110. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +63 -0
  111. package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +103 -0
  112. package/catalog/frontmcp-development/examples/create-workflow/basic-deploy-pipeline.md +91 -0
  113. package/catalog/frontmcp-development/examples/create-workflow/parallel-validation-pipeline.md +90 -0
  114. package/catalog/frontmcp-development/examples/create-workflow/webhook-triggered-workflow.md +136 -0
  115. package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +145 -0
  116. package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +124 -0
  117. package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +149 -0
  118. package/catalog/frontmcp-development/examples/official-adapters/authenticated-adapter-with-polling.md +84 -0
  119. package/catalog/frontmcp-development/examples/official-adapters/basic-openapi-adapter.md +54 -0
  120. package/catalog/frontmcp-development/examples/official-adapters/multi-api-hub-with-inline-spec.md +130 -0
  121. package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +117 -0
  122. package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +147 -0
  123. package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +104 -0
  124. package/catalog/frontmcp-development/references/create-adapter.md +14 -0
  125. package/catalog/frontmcp-development/references/create-agent-llm-config.md +14 -0
  126. package/catalog/frontmcp-development/references/create-agent.md +15 -0
  127. package/catalog/frontmcp-development/references/create-job.md +15 -0
  128. package/catalog/frontmcp-development/references/create-plugin-hooks.md +51 -0
  129. package/catalog/frontmcp-development/references/create-plugin.md +186 -11
  130. package/catalog/frontmcp-development/references/create-prompt.md +17 -0
  131. package/catalog/frontmcp-development/references/create-provider.md +14 -0
  132. package/catalog/frontmcp-development/references/create-resource.md +127 -0
  133. package/catalog/frontmcp-development/references/create-skill-with-tools.md +126 -7
  134. package/catalog/frontmcp-development/references/create-skill.md +57 -12
  135. package/catalog/frontmcp-development/references/create-tool-annotations.md +14 -0
  136. package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +15 -0
  137. package/catalog/frontmcp-development/references/create-tool.md +205 -1
  138. package/catalog/frontmcp-development/references/create-workflow.md +15 -0
  139. package/catalog/frontmcp-development/references/decorators-guide.md +155 -78
  140. package/catalog/frontmcp-development/references/official-adapters.md +31 -16
  141. package/catalog/frontmcp-development/references/official-plugins.md +62 -28
  142. package/catalog/frontmcp-extensibility/SKILL.md +103 -0
  143. package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +175 -0
  144. package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +138 -0
  145. package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +103 -0
  146. package/catalog/frontmcp-extensibility/references/vectoriadb.md +299 -0
  147. package/catalog/frontmcp-guides/SKILL.md +7 -4
  148. package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +160 -0
  149. package/catalog/frontmcp-guides/examples/example-knowledge-base/multi-app-composition.md +92 -0
  150. package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +135 -0
  151. package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +135 -0
  152. package/catalog/frontmcp-guides/examples/example-task-manager/authenticated-e2e-tests.md +148 -0
  153. package/catalog/frontmcp-guides/examples/example-task-manager/redis-provider-with-di.md +129 -0
  154. package/catalog/frontmcp-guides/examples/example-weather-api/server-and-app-setup.md +75 -0
  155. package/catalog/frontmcp-guides/examples/example-weather-api/unit-and-e2e-tests.md +142 -0
  156. package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +74 -0
  157. package/catalog/frontmcp-guides/references/example-knowledge-base.md +15 -0
  158. package/catalog/frontmcp-guides/references/example-task-manager.md +30 -21
  159. package/catalog/frontmcp-guides/references/example-weather-api.md +18 -6
  160. package/catalog/frontmcp-observability/SKILL.md +144 -0
  161. package/catalog/frontmcp-observability/examples/structured-logging/stdout-logging.md +71 -0
  162. package/catalog/frontmcp-observability/examples/structured-logging/winston-integration.md +70 -0
  163. package/catalog/frontmcp-observability/examples/telemetry-api/agent-nested-tracing.md +86 -0
  164. package/catalog/frontmcp-observability/examples/telemetry-api/plugin-telemetry.md +93 -0
  165. package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +72 -0
  166. package/catalog/frontmcp-observability/examples/testing-observability/test-custom-spans.md +90 -0
  167. package/catalog/frontmcp-observability/examples/testing-observability/test-log-correlation.md +104 -0
  168. package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +82 -0
  169. package/catalog/frontmcp-observability/examples/tracing-setup/production-tracing.md +73 -0
  170. package/catalog/frontmcp-observability/examples/vendor-integrations/coralogix-setup.md +74 -0
  171. package/catalog/frontmcp-observability/references/structured-logging.md +114 -0
  172. package/catalog/frontmcp-observability/references/telemetry-api.md +155 -0
  173. package/catalog/frontmcp-observability/references/testing-observability.md +169 -0
  174. package/catalog/frontmcp-observability/references/tracing-setup.md +146 -0
  175. package/catalog/frontmcp-observability/references/vendor-integrations.md +164 -0
  176. package/catalog/frontmcp-production-readiness/SKILL.md +99 -0
  177. package/catalog/frontmcp-production-readiness/examples/common-checklist/caching-and-performance.md +102 -0
  178. package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +104 -0
  179. package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +95 -0
  180. package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/basic-health-setup.md +81 -0
  181. package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/custom-probes.md +136 -0
  182. package/catalog/frontmcp-production-readiness/examples/production-browser/browser-bundle-config.md +93 -0
  183. package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +116 -0
  184. package/catalog/frontmcp-production-readiness/examples/production-browser/security-and-performance.md +128 -0
  185. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/binary-build-config.md +109 -0
  186. package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +132 -0
  187. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/daemon-socket-config.md +82 -0
  188. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/graceful-shutdown-cleanup.md +107 -0
  189. package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/security-and-permissions.md +119 -0
  190. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +124 -0
  191. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +103 -0
  192. package/catalog/frontmcp-production-readiness/examples/production-cloudflare/wrangler-config.md +89 -0
  193. package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +122 -0
  194. package/catalog/frontmcp-production-readiness/examples/production-lambda/sam-template.md +107 -0
  195. package/catalog/frontmcp-production-readiness/examples/production-lambda/scaling-and-monitoring.md +138 -0
  196. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/basic-sdk-lifecycle.md +85 -0
  197. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/multi-instance-cleanup.md +110 -0
  198. package/catalog/frontmcp-production-readiness/examples/production-node-sdk/package-json-config.md +107 -0
  199. package/catalog/frontmcp-production-readiness/examples/production-node-server/docker-multi-stage.md +103 -0
  200. package/catalog/frontmcp-production-readiness/examples/production-node-server/graceful-shutdown.md +87 -0
  201. package/catalog/frontmcp-production-readiness/examples/production-node-server/redis-session-scaling.md +97 -0
  202. package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +104 -0
  203. package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +91 -0
  204. package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md +78 -0
  205. package/catalog/frontmcp-production-readiness/references/common-checklist.md +175 -0
  206. package/catalog/frontmcp-production-readiness/references/health-readiness-endpoints.md +198 -0
  207. package/catalog/frontmcp-production-readiness/references/production-browser.md +56 -0
  208. package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +71 -0
  209. package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +71 -0
  210. package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +62 -0
  211. package/catalog/frontmcp-production-readiness/references/production-lambda.md +63 -0
  212. package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +76 -0
  213. package/catalog/frontmcp-production-readiness/references/production-node-server.md +71 -0
  214. package/catalog/frontmcp-production-readiness/references/production-vercel.md +62 -0
  215. package/catalog/frontmcp-setup/SKILL.md +19 -14
  216. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/bundle-presets-scaffolding.md +61 -0
  217. package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/install-and-search-skills.md +83 -0
  218. package/catalog/frontmcp-setup/examples/multi-app-composition/local-apps-with-shared-tools.md +87 -0
  219. package/catalog/frontmcp-setup/examples/multi-app-composition/per-app-auth-and-isolation.md +88 -0
  220. package/catalog/frontmcp-setup/examples/multi-app-composition/remote-and-esm-apps.md +81 -0
  221. package/catalog/frontmcp-setup/examples/nx-workflow/build-test-affected.md +77 -0
  222. package/catalog/frontmcp-setup/examples/nx-workflow/multi-server-deployment.md +93 -0
  223. package/catalog/frontmcp-setup/examples/nx-workflow/scaffold-and-generate.md +62 -0
  224. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-generator-scaffolding.md +73 -0
  225. package/catalog/frontmcp-setup/examples/project-structure-nx/nx-workspace-with-apps.md +85 -0
  226. package/catalog/frontmcp-setup/examples/project-structure-nx/shared-library-usage.md +89 -0
  227. package/catalog/frontmcp-setup/examples/project-structure-standalone/dev-workflow-commands.md +64 -0
  228. package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +111 -0
  229. package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +73 -0
  230. package/catalog/frontmcp-setup/examples/readme-guide/node-server-readme.md +89 -0
  231. package/catalog/frontmcp-setup/examples/readme-guide/vercel-deployment-readme.md +90 -0
  232. package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +99 -0
  233. package/catalog/frontmcp-setup/examples/setup-project/cli-scaffold-with-flags.md +77 -0
  234. package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +89 -0
  235. package/catalog/frontmcp-setup/examples/setup-redis/docker-redis-local-dev.md +88 -0
  236. package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +78 -0
  237. package/catalog/frontmcp-setup/examples/setup-redis/vercel-kv-serverless.md +78 -0
  238. package/catalog/frontmcp-setup/examples/setup-sqlite/basic-sqlite-setup.md +75 -0
  239. package/catalog/frontmcp-setup/examples/setup-sqlite/encrypted-sqlite-storage.md +55 -0
  240. package/catalog/frontmcp-setup/examples/setup-sqlite/unix-socket-daemon.md +70 -0
  241. package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +33 -9
  242. package/catalog/frontmcp-setup/references/multi-app-composition.md +15 -0
  243. package/catalog/frontmcp-setup/references/nx-workflow.md +15 -0
  244. package/catalog/frontmcp-setup/references/project-structure-nx.md +15 -0
  245. package/catalog/frontmcp-setup/references/project-structure-standalone.md +15 -0
  246. package/catalog/frontmcp-setup/references/readme-guide.md +235 -0
  247. package/catalog/frontmcp-setup/references/setup-project.md +16 -1
  248. package/catalog/frontmcp-setup/references/setup-redis.md +15 -0
  249. package/catalog/frontmcp-setup/references/setup-sqlite.md +15 -0
  250. package/catalog/frontmcp-testing/SKILL.md +41 -27
  251. package/catalog/frontmcp-testing/examples/setup-testing/fixture-based-e2e-test.md +70 -0
  252. package/catalog/frontmcp-testing/examples/setup-testing/jest-config-with-coverage.md +59 -0
  253. package/catalog/frontmcp-testing/examples/setup-testing/unit-test-tool-resource-prompt.md +115 -0
  254. package/catalog/frontmcp-testing/examples/test-auth/oauth-flow-test.md +78 -0
  255. package/catalog/frontmcp-testing/examples/test-auth/role-based-access-test.md +88 -0
  256. package/catalog/frontmcp-testing/examples/test-auth/token-factory-test.md +71 -0
  257. package/catalog/frontmcp-testing/examples/test-browser-build/browser-bundle-validation.md +58 -0
  258. package/catalog/frontmcp-testing/examples/test-browser-build/playwright-browser-test.md +69 -0
  259. package/catalog/frontmcp-testing/examples/test-cli-binary/binary-startup-test.md +77 -0
  260. package/catalog/frontmcp-testing/examples/test-cli-binary/js-bundle-import-test.md +56 -0
  261. package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +74 -0
  262. package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +79 -0
  263. package/catalog/frontmcp-testing/examples/test-e2e-handler/basic-e2e-test.md +67 -0
  264. package/catalog/frontmcp-testing/examples/test-e2e-handler/manual-client-with-transport.md +72 -0
  265. package/catalog/frontmcp-testing/examples/test-e2e-handler/tool-call-and-error-e2e.md +73 -0
  266. package/catalog/frontmcp-testing/examples/test-tool-unit/basic-tool-test.md +69 -0
  267. package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +82 -0
  268. package/catalog/frontmcp-testing/examples/test-tool-unit/tool-error-handling-test.md +92 -0
  269. package/catalog/frontmcp-testing/references/setup-testing.md +17 -0
  270. package/catalog/frontmcp-testing/references/test-auth.md +15 -0
  271. package/catalog/frontmcp-testing/references/test-browser-build.md +14 -0
  272. package/catalog/frontmcp-testing/references/test-cli-binary.md +14 -0
  273. package/catalog/frontmcp-testing/references/test-direct-client.md +14 -0
  274. package/catalog/frontmcp-testing/references/test-e2e-handler.md +15 -0
  275. package/catalog/frontmcp-testing/references/test-tool-unit.md +15 -0
  276. package/catalog/skills-manifest.json +2849 -32
  277. package/package.json +2 -2
  278. package/src/index.d.ts +1 -1
  279. package/src/index.js.map +1 -1
  280. package/src/loader.js +0 -1
  281. package/src/loader.js.map +1 -1
  282. package/src/manifest.d.ts +36 -1
  283. package/src/manifest.js +6 -1
  284. package/src/manifest.js.map +1 -1
@@ -0,0 +1,84 @@
1
+ ---
2
+ name: authenticated-adapter-with-polling
3
+ reference: official-adapters
4
+ level: intermediate
5
+ description: 'Demonstrates configuring authentication (API key and bearer token) and automatic spec polling for OpenAPI adapters.'
6
+ tags: [development, auth, openapi, security, adapters, authenticated]
7
+ features:
8
+ - 'Three authentication methods: `staticAuth.apiKey`, `staticAuth.jwt`, and dynamic `securityResolver`'
9
+ - 'Using `securityResolver` for per-request dynamic authentication based on the calling context'
10
+ - 'Enabling `polling` to automatically refresh tool definitions when the upstream spec changes'
11
+ - 'Loading secrets from environment variables instead of hardcoding them'
12
+ - 'Each adapter has a unique `name` to avoid tool naming collisions'
13
+ ---
14
+
15
+ # Authenticated Adapter with Spec Polling
16
+
17
+ Demonstrates configuring authentication (API key and bearer token) and automatic spec polling for OpenAPI adapters.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/server.ts
23
+ import { FrontMcp, App } from '@frontmcp/sdk';
24
+ import { OpenapiAdapter } from '@frontmcp/adapters';
25
+
26
+ @App({
27
+ name: 'integrations',
28
+ adapters: [
29
+ // API key authentication via staticAuth
30
+ OpenapiAdapter.init({
31
+ name: 'analytics-api',
32
+ url: 'https://api.analytics.example.com/openapi.json',
33
+ baseUrl: 'https://api.analytics.example.com',
34
+ staticAuth: {
35
+ apiKey: process.env.ANALYTICS_API_KEY!,
36
+ },
37
+ }),
38
+
39
+ // Bearer token authentication via staticAuth
40
+ OpenapiAdapter.init({
41
+ name: 'crm-api',
42
+ url: 'https://crm.example.com/openapi.json',
43
+ baseUrl: 'https://crm.example.com',
44
+ staticAuth: {
45
+ jwt: process.env.CRM_API_TOKEN!,
46
+ },
47
+ }),
48
+
49
+ // Dynamic auth with spec polling
50
+ OpenapiAdapter.init({
51
+ name: 'evolving-api',
52
+ url: 'https://api.example.com/openapi.json',
53
+ baseUrl: 'https://api.example.com',
54
+ securityResolver: (tool, ctx) => {
55
+ return { jwt: ctx.authInfo?.token };
56
+ },
57
+ polling: {
58
+ intervalMs: 300000, // Re-fetch spec every 5 minutes
59
+ },
60
+ }),
61
+ ],
62
+ })
63
+ class IntegrationsApp {}
64
+
65
+ @FrontMcp({
66
+ info: { name: 'integration-hub', version: '1.0.0' },
67
+ apps: [IntegrationsApp],
68
+ http: { port: 3000 },
69
+ })
70
+ class MyServer {}
71
+ ```
72
+
73
+ ## What This Demonstrates
74
+
75
+ - Three authentication methods: `staticAuth.apiKey`, `staticAuth.jwt`, and dynamic `securityResolver`
76
+ - Using `securityResolver` for per-request dynamic authentication based on the calling context
77
+ - Enabling `polling` to automatically refresh tool definitions when the upstream spec changes
78
+ - Loading secrets from environment variables instead of hardcoding them
79
+ - Each adapter has a unique `name` to avoid tool naming collisions
80
+
81
+ ## Related
82
+
83
+ - See `official-adapters` for inline specs, multiple adapter registration, and troubleshooting
84
+ - See `decorators-guide` for the full `@App` and `@FrontMcp` field reference
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: basic-openapi-adapter
3
+ reference: official-adapters
4
+ level: basic
5
+ description: 'Demonstrates converting an OpenAPI specification into MCP tools automatically using `OpenapiAdapter` with minimal configuration.'
6
+ tags: [development, openapi, adapters, adapter]
7
+ features:
8
+ - 'Using `OpenapiAdapter.init()` with just `name` and `url` to auto-generate MCP tools'
9
+ - 'Each OpenAPI operation becomes a tool named `<adapter-name>:<operationId>`'
10
+ - 'The adapter is registered in the `adapters` array of `@App`, not in `plugins`'
11
+ - 'The `name` field serves as the namespace prefix to prevent tool name collisions'
12
+ ---
13
+
14
+ # Basic OpenAPI Adapter
15
+
16
+ Demonstrates converting an OpenAPI specification into MCP tools automatically using `OpenapiAdapter` with minimal configuration.
17
+
18
+ ## Code
19
+
20
+ ```typescript
21
+ // src/server.ts
22
+ import { FrontMcp, App } from '@frontmcp/sdk';
23
+ import { OpenapiAdapter } from '@frontmcp/adapters';
24
+
25
+ @App({
26
+ name: 'petstore',
27
+ adapters: [
28
+ OpenapiAdapter.init({
29
+ name: 'petstore',
30
+ url: 'https://petstore3.swagger.io/api/v3/openapi.json',
31
+ }),
32
+ ],
33
+ })
34
+ class PetstoreApp {}
35
+
36
+ @FrontMcp({
37
+ info: { name: 'petstore-server', version: '1.0.0' },
38
+ apps: [PetstoreApp],
39
+ http: { port: 3000 },
40
+ })
41
+ class MyServer {}
42
+ // Generated tools: petstore:addPet, petstore:getPetById, petstore:deletePet, etc.
43
+ ```
44
+
45
+ ## What This Demonstrates
46
+
47
+ - Using `OpenapiAdapter.init()` with just `name` and `url` to auto-generate MCP tools
48
+ - Each OpenAPI operation becomes a tool named `<adapter-name>:<operationId>`
49
+ - The adapter is registered in the `adapters` array of `@App`, not in `plugins`
50
+ - The `name` field serves as the namespace prefix to prevent tool name collisions
51
+
52
+ ## Related
53
+
54
+ - See `official-adapters` for authentication options, spec polling, and inline specs
@@ -0,0 +1,130 @@
1
+ ---
2
+ name: multi-api-hub-with-inline-spec
3
+ reference: official-adapters
4
+ level: advanced
5
+ description: 'Demonstrates registering multiple OpenAPI adapters from different APIs in a single app, including one with an inline spec definition instead of a remote URL.'
6
+ tags: [development, openapi, remote, adapters, multi, api]
7
+ features:
8
+ - 'Registering multiple adapters in a single `@App` with unique names for tool namespacing'
9
+ - 'Using `additionalHeaders` for header-based authentication (GitHub token)'
10
+ - 'Providing an inline `spec` object instead of a remote `url` for APIs without hosted specs'
11
+ - "Each adapter's tools are namespaced: `github:*`, `jira:*`, `internal:*`"
12
+ - 'Only one of `url` or `spec` should be provided per adapter; `spec` takes precedence'
13
+ ---
14
+
15
+ # Multi-API Hub with Inline Spec
16
+
17
+ Demonstrates registering multiple OpenAPI adapters from different APIs in a single app, including one with an inline spec definition instead of a remote URL.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/server.ts
23
+ import { FrontMcp, App } from '@frontmcp/sdk';
24
+ import { OpenapiAdapter } from '@frontmcp/adapters';
25
+
26
+ @App({
27
+ name: 'integration-hub',
28
+ adapters: [
29
+ // Remote specs from public APIs
30
+ OpenapiAdapter.init({
31
+ name: 'github',
32
+ url: 'https://api.github.com/openapi.json',
33
+ additionalHeaders: {
34
+ Authorization: `token ${process.env.GITHUB_TOKEN!}`,
35
+ },
36
+ }),
37
+
38
+ OpenapiAdapter.init({
39
+ name: 'jira',
40
+ url: 'https://jira.example.com/openapi.json',
41
+ staticAuth: {
42
+ apiKey: process.env.JIRA_API_KEY!,
43
+ },
44
+ }),
45
+
46
+ // Inline spec for an internal API without a hosted spec URL
47
+ OpenapiAdapter.init({
48
+ name: 'internal',
49
+ spec: {
50
+ openapi: '3.0.0',
51
+ info: { title: 'Internal API', version: '1.0.0' },
52
+ paths: {
53
+ '/health': {
54
+ get: {
55
+ operationId: 'getHealth',
56
+ summary: 'Health check endpoint',
57
+ responses: {
58
+ '200': {
59
+ description: 'Service is healthy',
60
+ content: {
61
+ 'application/json': {
62
+ schema: {
63
+ type: 'object',
64
+ properties: {
65
+ status: { type: 'string' },
66
+ uptime: { type: 'number' },
67
+ },
68
+ },
69
+ },
70
+ },
71
+ },
72
+ },
73
+ },
74
+ },
75
+ '/users/{id}': {
76
+ get: {
77
+ operationId: 'getUserById',
78
+ summary: 'Get user by ID',
79
+ parameters: [{ name: 'id', in: 'path', required: true, schema: { type: 'string' } }],
80
+ responses: {
81
+ '200': {
82
+ description: 'User found',
83
+ content: {
84
+ 'application/json': {
85
+ schema: {
86
+ type: 'object',
87
+ properties: {
88
+ id: { type: 'string' },
89
+ name: { type: 'string' },
90
+ email: { type: 'string' },
91
+ },
92
+ },
93
+ },
94
+ },
95
+ },
96
+ },
97
+ },
98
+ },
99
+ },
100
+ },
101
+ baseUrl: 'https://internal.example.com',
102
+ staticAuth: {
103
+ jwt: process.env.INTERNAL_API_TOKEN!,
104
+ },
105
+ }),
106
+ ],
107
+ })
108
+ class IntegrationHub {}
109
+ // Tools: github:createIssue, jira:createTicket, internal:getHealth, internal:getUserById
110
+
111
+ @FrontMcp({
112
+ info: { name: 'multi-api-server', version: '1.0.0' },
113
+ apps: [IntegrationHub],
114
+ http: { port: 3000 },
115
+ })
116
+ class MyServer {}
117
+ ```
118
+
119
+ ## What This Demonstrates
120
+
121
+ - Registering multiple adapters in a single `@App` with unique names for tool namespacing
122
+ - Using `additionalHeaders` for header-based authentication (GitHub token)
123
+ - Providing an inline `spec` object instead of a remote `url` for APIs without hosted specs
124
+ - Each adapter's tools are namespaced: `github:*`, `jira:*`, `internal:*`
125
+ - Only one of `url` or `spec` should be provided per adapter; `spec` takes precedence
126
+
127
+ ## Related
128
+
129
+ - See `official-adapters` for spec polling, `securityResolver`, and the adapter vs plugin comparison
130
+ - See `decorators-guide` for the `@Adapter` decorator and how adapters fit in the hierarchy
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: cache-and-feature-flags
3
+ reference: official-plugins
4
+ level: intermediate
5
+ description: 'Demonstrates combining the Cache plugin for tool result caching with the Feature Flags plugin for gating tools behind flags.'
6
+ tags: [development, feature-flags, cache, plugins, feature, flags]
7
+ features:
8
+ - 'Combining `CachePlugin` and `FeatureFlagPlugin` in the same server'
9
+ - 'Using `toolPatterns` glob patterns to cache groups of tools without per-tool configuration'
10
+ - 'Per-tool `cache` metadata with custom `ttl` (seconds) and `slideWindow` for TTL refresh on hits'
11
+ - 'Using `cache: true` for simple default-TTL caching'
12
+ - "Gating a tool with `featureFlag: 'beta-search'` -- the tool is hidden from `list_tools` when the flag is off"
13
+ - 'Accessing `this.featureFlags.isEnabled()` inside a tool for runtime flag checks'
14
+ ---
15
+
16
+ # Cache Plugin and Feature Flags Plugin
17
+
18
+ Demonstrates combining the Cache plugin for tool result caching with the Feature Flags plugin for gating tools behind flags.
19
+
20
+ ## Code
21
+
22
+ ```typescript
23
+ // src/server.ts
24
+ import { FrontMcp, App } from '@frontmcp/sdk';
25
+ import CachePlugin from '@frontmcp/plugin-cache';
26
+ import FeatureFlagPlugin from '@frontmcp/plugin-feature-flags';
27
+
28
+ @App({
29
+ name: 'api',
30
+ tools: [GetWeatherTool, GetUserProfileTool, BetaSearchTool],
31
+ })
32
+ class ApiApp {}
33
+
34
+ @FrontMcp({
35
+ info: { name: 'cached-flagged-server', version: '1.0.0' },
36
+ apps: [ApiApp],
37
+ plugins: [
38
+ CachePlugin.init({
39
+ type: 'memory',
40
+ defaultTTL: 3600,
41
+ toolPatterns: ['api:get-*', 'search:*'],
42
+ bypassHeader: 'x-frontmcp-disable-cache',
43
+ }),
44
+ FeatureFlagPlugin.init({
45
+ adapter: 'static',
46
+ flags: {
47
+ 'beta-search': true,
48
+ 'experimental-agent': false,
49
+ },
50
+ }),
51
+ ],
52
+ })
53
+ class MyServer {}
54
+ ```
55
+
56
+ ```typescript
57
+ // src/tools/get-weather.tool.ts
58
+ import { Tool, ToolContext } from '@frontmcp/sdk';
59
+ import { z } from 'zod';
60
+
61
+ // Per-tool cache metadata with custom TTL and sliding window
62
+ @Tool({
63
+ name: 'get_weather',
64
+ description: 'Get current weather for a city',
65
+ inputSchema: {
66
+ city: z.string().describe('City name'),
67
+ },
68
+ cache: {
69
+ ttl: 1800,
70
+ slideWindow: true,
71
+ },
72
+ })
73
+ class GetWeatherTool extends ToolContext {
74
+ async execute(input: { city: string }) {
75
+ const weather = await this.get(WeatherService).getCurrent(input.city);
76
+ return { city: input.city, temperature: weather.temp, condition: weather.condition };
77
+ }
78
+ }
79
+ ```
80
+
81
+ ```typescript
82
+ // src/tools/beta-search.tool.ts
83
+ import { Tool, ToolContext } from '@frontmcp/sdk';
84
+ import { z } from 'zod';
85
+
86
+ // Tool gated behind a feature flag -- hidden from list_tools when flag is off
87
+ @Tool({
88
+ name: 'beta_search',
89
+ description: 'New search algorithm (beta)',
90
+ inputSchema: {
91
+ query: z.string(),
92
+ },
93
+ featureFlag: 'beta-search',
94
+ cache: true,
95
+ })
96
+ class BetaSearchTool extends ToolContext {
97
+ async execute(input: { query: string }) {
98
+ const enabled = await this.featureFlags.isEnabled('beta-search');
99
+ const results = await this.get(SearchService).search(input.query);
100
+ return { results, algorithm: 'v2-beta' };
101
+ }
102
+ }
103
+ ```
104
+
105
+ ## What This Demonstrates
106
+
107
+ - Combining `CachePlugin` and `FeatureFlagPlugin` in the same server
108
+ - Using `toolPatterns` glob patterns to cache groups of tools without per-tool configuration
109
+ - Per-tool `cache` metadata with custom `ttl` (seconds) and `slideWindow` for TTL refresh on hits
110
+ - Using `cache: true` for simple default-TTL caching
111
+ - Gating a tool with `featureFlag: 'beta-search'` -- the tool is hidden from `list_tools` when the flag is off
112
+ - Accessing `this.featureFlags.isEnabled()` inside a tool for runtime flag checks
113
+
114
+ ## Related
115
+
116
+ - See `official-plugins` for all plugin configuration options, Redis cache, and external flag adapters
117
+ - See `create-tool-annotations` for additional tool metadata like `readOnlyHint` and `destructiveHint`
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: production-multi-plugin-setup
3
+ reference: official-plugins
4
+ level: advanced
5
+ description: 'Demonstrates a production-ready server configuration combining CodeCall, Remember, Approval, Cache, and Feature Flags plugins with Redis storage and external flag services.'
6
+ tags: [development, feature-flags, redis, keyword-search, cache, approval]
7
+ features:
8
+ - 'Configuring all 5 stable official plugins together in a production server'
9
+ - 'CodeCall in `codecall_only` mode with TF-IDF search and synonym expansion for semantic tool discovery'
10
+ - 'Remember plugin with Redis storage, encryption enabled, and LLM-accessible memory tools'
11
+ - 'Approval plugin in `webhook` mode with external PKCE-secured approval flow and audit logging'
12
+ - 'Cache plugin with Redis storage and 24-hour default TTL'
13
+ - 'Feature Flags with LaunchDarkly integration for external flag management'
14
+ - 'Per-tool `approval` metadata with risk level and scope configuration'
15
+ - 'Per-tool `featureFlag` with a `defaultValue` fallback if flag evaluation fails'
16
+ - 'Using `this.approval.isApproved()` and `this.remember.set()` together in a single tool'
17
+ ---
18
+
19
+ # Production Multi-Plugin Setup
20
+
21
+ Demonstrates a production-ready server configuration combining CodeCall, Remember, Approval, Cache, and Feature Flags plugins with Redis storage and external flag services.
22
+
23
+ ## Code
24
+
25
+ ```typescript
26
+ // src/server.ts
27
+ import { FrontMcp, App } from '@frontmcp/sdk';
28
+ import CodeCallPlugin from '@frontmcp/plugin-codecall';
29
+ import RememberPlugin from '@frontmcp/plugin-remember';
30
+ import { ApprovalPlugin } from '@frontmcp/plugin-approval';
31
+ import CachePlugin from '@frontmcp/plugin-cache';
32
+ import FeatureFlagPlugin from '@frontmcp/plugin-feature-flags';
33
+
34
+ @App({ name: 'core', tools: [ReadDataTool, WriteDataTool, DeleteDataTool] })
35
+ class CoreApp {}
36
+
37
+ @FrontMcp({
38
+ info: { name: 'production-server', version: '1.0.0' },
39
+ apps: [CoreApp],
40
+ plugins: [
41
+ CodeCallPlugin.init({
42
+ mode: 'codecall_only',
43
+ topK: 8,
44
+ maxDefinitions: 8,
45
+ vm: {
46
+ preset: 'secure',
47
+ timeoutMs: 5000,
48
+ allowLoops: false,
49
+ },
50
+ embedding: {
51
+ strategy: 'tfidf',
52
+ synonymExpansion: { enabled: true },
53
+ },
54
+ }),
55
+
56
+ RememberPlugin.init({
57
+ type: 'redis',
58
+ config: { host: process.env.REDIS_HOST!, port: 6379 },
59
+ keyPrefix: 'remember:',
60
+ encryption: { enabled: true },
61
+ tools: { enabled: true },
62
+ }),
63
+
64
+ ApprovalPlugin.init({
65
+ mode: 'webhook',
66
+ webhook: {
67
+ url: 'https://approval.example.com/webhook',
68
+ challengeTtl: 300,
69
+ callbackPath: '/approval/callback',
70
+ },
71
+ enableAudit: true,
72
+ maxDelegationDepth: 3,
73
+ }),
74
+
75
+ CachePlugin.init({
76
+ type: 'redis',
77
+ config: { host: process.env.REDIS_HOST!, port: 6379 },
78
+ defaultTTL: 86400,
79
+ }),
80
+
81
+ FeatureFlagPlugin.init({
82
+ adapter: 'launchdarkly',
83
+ config: { sdkKey: process.env.LD_SDK_KEY! },
84
+ }),
85
+ ],
86
+ })
87
+ class ProductionServer {}
88
+ ```
89
+
90
+ ```typescript
91
+ // src/tools/delete-data.tool.ts
92
+ import { Tool, ToolContext } from '@frontmcp/sdk';
93
+ import { z } from 'zod';
94
+
95
+ @Tool({
96
+ name: 'delete_data',
97
+ description: 'Permanently delete a data record',
98
+ inputSchema: {
99
+ recordId: z.string(),
100
+ confirm: z.boolean(),
101
+ },
102
+ approval: {
103
+ required: true,
104
+ defaultScope: 'session',
105
+ category: 'write',
106
+ riskLevel: 'high',
107
+ approvalMessage: 'Allow data deletion for this session?',
108
+ },
109
+ featureFlag: { key: 'enable-delete', defaultValue: false },
110
+ })
111
+ class DeleteDataTool extends ToolContext {
112
+ async execute(input: { recordId: string; confirm: boolean }) {
113
+ if (!input.confirm) {
114
+ return { deleted: false, reason: 'Confirmation required' };
115
+ }
116
+
117
+ const isApproved = await this.approval.isApproved('delete_data');
118
+ if (!isApproved) {
119
+ return { deleted: false, reason: 'Awaiting approval' };
120
+ }
121
+
122
+ const db = this.get(DatabaseToken);
123
+ await db.deleteRecord(input.recordId);
124
+
125
+ await this.remember.set(`deleted:${input.recordId}`, new Date().toISOString());
126
+
127
+ return { deleted: true, recordId: input.recordId };
128
+ }
129
+ }
130
+ ```
131
+
132
+ ## What This Demonstrates
133
+
134
+ - Configuring all 5 stable official plugins together in a production server
135
+ - CodeCall in `codecall_only` mode with TF-IDF search and synonym expansion for semantic tool discovery
136
+ - Remember plugin with Redis storage, encryption enabled, and LLM-accessible memory tools
137
+ - Approval plugin in `webhook` mode with external PKCE-secured approval flow and audit logging
138
+ - Cache plugin with Redis storage and 24-hour default TTL
139
+ - Feature Flags with LaunchDarkly integration for external flag management
140
+ - Per-tool `approval` metadata with risk level and scope configuration
141
+ - Per-tool `featureFlag` with a `defaultValue` fallback if flag evaluation fails
142
+ - Using `this.approval.isApproved()` and `this.remember.set()` together in a single tool
143
+
144
+ ## Related
145
+
146
+ - See `official-plugins` for all plugin options, storage types, and troubleshooting
147
+ - See `create-plugin-hooks` for adding custom lifecycle hooks alongside official plugins
@@ -0,0 +1,104 @@
1
+ ---
2
+ name: remember-plugin-session-memory
3
+ reference: official-plugins
4
+ level: basic
5
+ description: 'Demonstrates installing the Remember plugin and using `this.remember` in tools to store and retrieve session memory.'
6
+ tags: [development, session, plugins, remember, plugin, memory]
7
+ features:
8
+ - "Installing `RememberPlugin` with `type: 'memory'` for development"
9
+ - 'Enabling `tools: { enabled: true }` to expose LLM-callable memory tools (`remember_this`, `recall`, etc.)'
10
+ - 'Using `this.remember.set()` with default `session` scope and explicit `user` scope'
11
+ - 'Using `this.remember.get()` with a `defaultValue` fallback'
12
+ - 'Using `this.remember.knows()` to check key existence without retrieving the value'
13
+ ---
14
+
15
+ # Remember Plugin for Session Memory
16
+
17
+ Demonstrates installing the Remember plugin and using `this.remember` in tools to store and retrieve session memory.
18
+
19
+ ## Code
20
+
21
+ ```typescript
22
+ // src/server.ts
23
+ import { FrontMcp, App } from '@frontmcp/sdk';
24
+ import RememberPlugin from '@frontmcp/plugin-remember';
25
+
26
+ @App({ name: 'my-app', tools: [PreferencesTool, GreetingTool] })
27
+ class MyApp {}
28
+
29
+ @FrontMcp({
30
+ info: { name: 'memory-server', version: '1.0.0' },
31
+ apps: [MyApp],
32
+ plugins: [
33
+ RememberPlugin.init({
34
+ type: 'memory',
35
+ tools: { enabled: true },
36
+ }),
37
+ ],
38
+ })
39
+ class MyServer {}
40
+ ```
41
+
42
+ ```typescript
43
+ // src/tools/preferences.tool.ts
44
+ import { Tool, ToolContext } from '@frontmcp/sdk';
45
+ import { z } from 'zod';
46
+
47
+ @Tool({
48
+ name: 'set_preferences',
49
+ description: 'Save user preferences for the session',
50
+ inputSchema: {
51
+ theme: z.enum(['light', 'dark']).describe('UI theme preference'),
52
+ language: z.string().describe('Preferred language code'),
53
+ },
54
+ })
55
+ class PreferencesTool extends ToolContext {
56
+ async execute(input: { theme: string; language: string }) {
57
+ await this.remember.set('theme', input.theme);
58
+ await this.remember.set('language', input.language, { scope: 'user' });
59
+
60
+ return { saved: true, theme: input.theme, language: input.language };
61
+ }
62
+ }
63
+ ```
64
+
65
+ ```typescript
66
+ // src/tools/greeting.tool.ts
67
+ import { Tool, ToolContext } from '@frontmcp/sdk';
68
+ import { z } from 'zod';
69
+
70
+ @Tool({
71
+ name: 'get_greeting',
72
+ description: 'Get a personalized greeting using remembered preferences',
73
+ inputSchema: {
74
+ name: z.string().describe('User name'),
75
+ },
76
+ })
77
+ class GreetingTool extends ToolContext {
78
+ async execute(input: { name: string }) {
79
+ const theme = await this.remember.get('theme', { defaultValue: 'light' });
80
+ const language = await this.remember.get('language', { defaultValue: 'en' });
81
+ const hasOnboarded = await this.remember.knows('onboarding_complete');
82
+
83
+ return {
84
+ greeting: `Hello ${input.name}!`,
85
+ theme,
86
+ language,
87
+ showOnboarding: !hasOnboarded,
88
+ };
89
+ }
90
+ }
91
+ ```
92
+
93
+ ## What This Demonstrates
94
+
95
+ - Installing `RememberPlugin` with `type: 'memory'` for development
96
+ - Enabling `tools: { enabled: true }` to expose LLM-callable memory tools (`remember_this`, `recall`, etc.)
97
+ - Using `this.remember.set()` with default `session` scope and explicit `user` scope
98
+ - Using `this.remember.get()` with a `defaultValue` fallback
99
+ - Using `this.remember.knows()` to check key existence without retrieving the value
100
+
101
+ ## Related
102
+
103
+ - See `official-plugins` for Redis storage, Vercel KV, memory scopes, and all Remember API methods
104
+ - See `create-plugin-hooks` for building custom plugins with lifecycle hooks
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-adapter
3
+ description: Build adapters that generate MCP tools and resources from external sources automatically
4
+ ---
5
+
1
6
  # Creating Custom Adapters
2
7
 
3
8
  Build adapters that automatically generate MCP tools, resources, and prompts from external sources — databases, GraphQL schemas, proprietary APIs, or any definition format.
@@ -159,6 +164,15 @@ Creates a `DynamicAdapter` subclass in `src/adapters/my-adapter.adapter.ts`.
159
164
  | Duplicate tool name error | Multiple adapters produce tools with the same name | Use unique `name` parameter in `init()` to namespace tools |
160
165
  | Adapter not found at runtime | Registered in wrong `@App` or not in `adapters` array | Ensure `.init()` result is in the `adapters` array of the correct `@App` |
161
166
 
167
+ ## Examples
168
+
169
+ | Example | Level | Description |
170
+ | ------------------------------------------------------------------------ | ------------ | ----------------------------------------------------------------------------------------------------------------------- |
171
+ | [`basic-api-adapter`](../examples/create-adapter/basic-api-adapter.md) | Basic | A minimal adapter that fetches operation definitions from an external API and generates MCP tools. |
172
+ | [`namespaced-adapter`](../examples/create-adapter/namespaced-adapter.md) | Intermediate | An adapter that namespaces generated tools to avoid collisions and includes proper error handling for startup failures. |
173
+
174
+ > See all examples in [`examples/create-adapter/`](../examples/create-adapter/)
175
+
162
176
  ## Reference
163
177
 
164
178
  - [Adapter Documentation](https://docs.agentfront.dev/frontmcp/adapters/overview)
@@ -1,3 +1,8 @@
1
+ ---
2
+ name: create-agent-llm-config
3
+ description: Reference for supported LLM provider configurations including Anthropic and OpenAI
4
+ ---
5
+
1
6
  # Agent LLM Configuration Reference
2
7
 
3
8
  ## Supported Providers
@@ -44,3 +49,12 @@ apiKey: 'sk-...';
44
49
  | Anthropic | `claude-opus-4-20250514` | Most capable |
45
50
  | OpenAI | `gpt-4o` | General purpose |
46
51
  | OpenAI | `gpt-4o-mini` | Fast, cost-effective |
52
+
53
+ ## Examples
54
+
55
+ | Example | Level | Description |
56
+ | ----------------------------------------------------------------------------- | ----- | -------------------------------------------------------------------------- |
57
+ | [`anthropic-config`](../examples/create-agent-llm-config/anthropic-config.md) | Basic | Configuring an agent with the Anthropic provider and common model options. |
58
+ | [`openai-config`](../examples/create-agent-llm-config/openai-config.md) | Basic | Configuring an agent with the OpenAI provider and different model options. |
59
+
60
+ > See all examples in [`examples/create-agent-llm-config/`](../examples/create-agent-llm-config/)