@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.
- package/catalog/TEMPLATE.md +55 -0
- package/catalog/frontmcp-config/SKILL.md +2 -2
- package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +87 -0
- package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +63 -0
- package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +76 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +77 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +73 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +64 -0
- package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +83 -0
- package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +87 -0
- package/catalog/frontmcp-config/examples/configure-http/cors-restricted-origins.md +52 -0
- package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +72 -0
- package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +64 -0
- package/catalog/frontmcp-config/examples/configure-session/multi-server-key-prefix.md +68 -0
- package/catalog/frontmcp-config/examples/configure-session/redis-session-store.md +52 -0
- package/catalog/frontmcp-config/examples/configure-session/vercel-kv-session.md +52 -0
- package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +94 -0
- package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +92 -0
- package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +83 -0
- package/catalog/frontmcp-config/examples/configure-throttle-guard-config/full-guard-config.md +99 -0
- package/catalog/frontmcp-config/examples/configure-throttle-guard-config/minimal-guard-config.md +55 -0
- package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +74 -0
- package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +86 -0
- package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +69 -0
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +65 -0
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +69 -0
- package/catalog/frontmcp-config/references/configure-auth-modes.md +10 -0
- package/catalog/frontmcp-config/references/configure-auth.md +10 -0
- package/catalog/frontmcp-config/references/configure-elicitation.md +9 -0
- package/catalog/frontmcp-config/references/configure-http.md +10 -0
- package/catalog/frontmcp-config/references/configure-session.md +10 -0
- package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +9 -0
- package/catalog/frontmcp-config/references/configure-throttle.md +10 -0
- package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +9 -0
- package/catalog/frontmcp-config/references/configure-transport.md +10 -0
- package/catalog/frontmcp-config/references/setup-redis.md +5 -0
- package/catalog/frontmcp-config/references/setup-sqlite.md +5 -0
- package/catalog/frontmcp-deployment/SKILL.md +2 -2
- package/catalog/frontmcp-deployment/examples/build-for-browser/browser-build-with-custom-entry.md +43 -0
- package/catalog/frontmcp-deployment/examples/build-for-browser/browser-crypto-and-storage.md +85 -0
- package/catalog/frontmcp-deployment/examples/build-for-browser/react-provider-setup.md +61 -0
- package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +66 -0
- package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +76 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +78 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +85 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +104 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +82 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +97 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/cdk-deployment.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +113 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/sam-template-basic.md +100 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/docker-compose-with-redis.md +101 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/pm2-with-nginx.md +79 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/resource-limits.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/basic-multistage-dockerfile.md +63 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md +89 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-mcp-endpoint-test.md +69 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +82 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-skills-cache.md +90 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/minimal-vercel-config.md +49 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/vercel-config-with-security-headers.md +92 -0
- package/catalog/frontmcp-deployment/references/build-for-browser.md +10 -0
- package/catalog/frontmcp-deployment/references/build-for-cli.md +9 -0
- package/catalog/frontmcp-deployment/references/build-for-sdk.md +10 -0
- package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +10 -0
- package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +10 -0
- package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +9 -0
- package/catalog/frontmcp-deployment/references/deploy-to-node.md +10 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +9 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +10 -0
- package/catalog/frontmcp-development/SKILL.md +2 -2
- package/catalog/frontmcp-development/examples/create-adapter/basic-api-adapter.md +92 -0
- package/catalog/frontmcp-development/examples/create-adapter/namespaced-adapter.md +124 -0
- package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +121 -0
- package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +95 -0
- package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +111 -0
- package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +81 -0
- package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +80 -0
- package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +87 -0
- package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +117 -0
- package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +88 -0
- package/catalog/frontmcp-development/examples/create-plugin/basic-plugin-with-provider.md +69 -0
- package/catalog/frontmcp-development/examples/create-plugin/configurable-dynamic-plugin.md +178 -0
- package/catalog/frontmcp-development/examples/create-plugin/plugin-with-context-extension.md +107 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/basic-logging-plugin.md +69 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/caching-with-around.md +80 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +100 -0
- package/catalog/frontmcp-development/examples/create-prompt/basic-prompt.md +72 -0
- package/catalog/frontmcp-development/examples/create-prompt/dynamic-rag-prompt.md +92 -0
- package/catalog/frontmcp-development/examples/create-prompt/multi-turn-debug-session.md +86 -0
- package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +113 -0
- package/catalog/frontmcp-development/examples/create-provider/config-and-api-providers.md +107 -0
- package/catalog/frontmcp-development/examples/create-resource/basic-static-resource.md +72 -0
- package/catalog/frontmcp-development/examples/create-resource/binary-and-multi-content.md +111 -0
- package/catalog/frontmcp-development/examples/create-resource/parameterized-template.md +84 -0
- package/catalog/frontmcp-development/examples/create-skill/basic-inline-skill.md +96 -0
- package/catalog/frontmcp-development/examples/create-skill/directory-based-skill.md +115 -0
- package/catalog/frontmcp-development/examples/create-skill/parameterized-skill.md +96 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md +76 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +149 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md +92 -0
- package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +62 -0
- package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +84 -0
- package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +93 -0
- package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +94 -0
- package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +60 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +104 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +63 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +103 -0
- package/catalog/frontmcp-development/examples/create-workflow/basic-deploy-pipeline.md +91 -0
- package/catalog/frontmcp-development/examples/create-workflow/parallel-validation-pipeline.md +90 -0
- package/catalog/frontmcp-development/examples/create-workflow/webhook-triggered-workflow.md +136 -0
- package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +145 -0
- package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +124 -0
- package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +149 -0
- package/catalog/frontmcp-development/examples/official-adapters/authenticated-adapter-with-polling.md +84 -0
- package/catalog/frontmcp-development/examples/official-adapters/basic-openapi-adapter.md +54 -0
- package/catalog/frontmcp-development/examples/official-adapters/multi-api-hub-with-inline-spec.md +130 -0
- package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +117 -0
- package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +147 -0
- package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +104 -0
- package/catalog/frontmcp-development/references/create-adapter.md +9 -0
- package/catalog/frontmcp-development/references/create-agent-llm-config.md +9 -0
- package/catalog/frontmcp-development/references/create-agent.md +10 -0
- package/catalog/frontmcp-development/references/create-job.md +10 -0
- package/catalog/frontmcp-development/references/create-plugin-hooks.md +10 -0
- package/catalog/frontmcp-development/references/create-plugin.md +10 -0
- package/catalog/frontmcp-development/references/create-prompt.md +10 -0
- package/catalog/frontmcp-development/references/create-provider.md +9 -0
- package/catalog/frontmcp-development/references/create-resource.md +52 -15
- package/catalog/frontmcp-development/references/create-skill-with-tools.md +10 -0
- package/catalog/frontmcp-development/references/create-skill.md +10 -0
- package/catalog/frontmcp-development/references/create-tool-annotations.md +9 -0
- package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +10 -0
- package/catalog/frontmcp-development/references/create-tool.md +10 -0
- package/catalog/frontmcp-development/references/create-workflow.md +10 -0
- package/catalog/frontmcp-development/references/decorators-guide.md +10 -0
- package/catalog/frontmcp-development/references/official-adapters.md +10 -0
- package/catalog/frontmcp-development/references/official-plugins.md +10 -0
- package/catalog/frontmcp-extensibility/SKILL.md +1 -1
- package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +175 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +138 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +103 -0
- package/catalog/frontmcp-extensibility/references/vectoriadb.md +10 -0
- package/catalog/frontmcp-guides/SKILL.md +2 -2
- package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +160 -0
- package/catalog/frontmcp-guides/examples/example-knowledge-base/multi-app-composition.md +92 -0
- package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +135 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +135 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/authenticated-e2e-tests.md +148 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/redis-provider-with-di.md +129 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/server-and-app-setup.md +75 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/unit-and-e2e-tests.md +142 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +74 -0
- package/catalog/frontmcp-guides/references/example-knowledge-base.md +10 -0
- package/catalog/frontmcp-guides/references/example-task-manager.md +10 -0
- package/catalog/frontmcp-guides/references/example-weather-api.md +10 -0
- package/catalog/frontmcp-production-readiness/SKILL.md +2 -2
- package/catalog/frontmcp-production-readiness/examples/common-checklist/caching-and-performance.md +102 -0
- package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +104 -0
- package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +95 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/browser-bundle-config.md +93 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +116 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/security-and-performance.md +128 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-binary/binary-build-config.md +109 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +132 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/daemon-socket-config.md +82 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/graceful-shutdown-cleanup.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/security-and-permissions.md +119 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +124 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +103 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/wrangler-config.md +89 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +122 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/sam-template.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/scaling-and-monitoring.md +138 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/basic-sdk-lifecycle.md +85 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/multi-instance-cleanup.md +110 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/package-json-config.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/docker-multi-stage.md +103 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/graceful-shutdown.md +87 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/redis-session-scaling.md +97 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +104 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +91 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md +78 -0
- package/catalog/frontmcp-production-readiness/references/common-checklist.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-browser.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +9 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-lambda.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-node-server.md +10 -0
- package/catalog/frontmcp-production-readiness/references/production-vercel.md +10 -0
- package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/bundle-presets-scaffolding.md +61 -0
- package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/install-and-search-skills.md +83 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/local-apps-with-shared-tools.md +87 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/per-app-auth-and-isolation.md +88 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/remote-and-esm-apps.md +81 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/build-test-affected.md +77 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/multi-server-deployment.md +93 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/scaffold-and-generate.md +62 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/nx-generator-scaffolding.md +73 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/nx-workspace-with-apps.md +85 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/shared-library-usage.md +89 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/dev-workflow-commands.md +64 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +111 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +73 -0
- package/catalog/frontmcp-setup/examples/readme-guide/node-server-readme.md +89 -0
- package/catalog/frontmcp-setup/examples/readme-guide/vercel-deployment-readme.md +90 -0
- package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +99 -0
- package/catalog/frontmcp-setup/examples/setup-project/cli-scaffold-with-flags.md +77 -0
- package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +89 -0
- package/catalog/frontmcp-setup/examples/setup-redis/docker-redis-local-dev.md +88 -0
- package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +78 -0
- package/catalog/frontmcp-setup/examples/setup-redis/vercel-kv-serverless.md +78 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/basic-sqlite-setup.md +75 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/encrypted-sqlite-storage.md +55 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/unix-socket-daemon.md +70 -0
- package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +9 -0
- package/catalog/frontmcp-setup/references/multi-app-composition.md +10 -0
- package/catalog/frontmcp-setup/references/nx-workflow.md +10 -0
- package/catalog/frontmcp-setup/references/project-structure-nx.md +10 -0
- package/catalog/frontmcp-setup/references/project-structure-standalone.md +10 -0
- package/catalog/frontmcp-setup/references/readme-guide.md +9 -0
- package/catalog/frontmcp-setup/references/setup-project.md +10 -0
- package/catalog/frontmcp-setup/references/setup-redis.md +10 -0
- package/catalog/frontmcp-setup/references/setup-sqlite.md +10 -0
- package/catalog/frontmcp-testing/examples/setup-testing/fixture-based-e2e-test.md +70 -0
- package/catalog/frontmcp-testing/examples/setup-testing/jest-config-with-coverage.md +59 -0
- package/catalog/frontmcp-testing/examples/setup-testing/unit-test-tool-resource-prompt.md +115 -0
- package/catalog/frontmcp-testing/examples/test-auth/oauth-flow-test.md +78 -0
- package/catalog/frontmcp-testing/examples/test-auth/role-based-access-test.md +88 -0
- package/catalog/frontmcp-testing/examples/test-auth/token-factory-test.md +71 -0
- package/catalog/frontmcp-testing/examples/test-browser-build/browser-bundle-validation.md +58 -0
- package/catalog/frontmcp-testing/examples/test-browser-build/playwright-browser-test.md +69 -0
- package/catalog/frontmcp-testing/examples/test-cli-binary/binary-startup-test.md +77 -0
- package/catalog/frontmcp-testing/examples/test-cli-binary/js-bundle-import-test.md +56 -0
- package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +74 -0
- package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +79 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/basic-e2e-test.md +67 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/manual-client-with-transport.md +72 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/tool-call-and-error-e2e.md +73 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/basic-tool-test.md +69 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +82 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/tool-error-handling-test.md +92 -0
- package/catalog/frontmcp-testing/references/setup-testing.md +10 -0
- package/catalog/frontmcp-testing/references/test-auth.md +10 -0
- package/catalog/frontmcp-testing/references/test-browser-build.md +9 -0
- package/catalog/frontmcp-testing/references/test-cli-binary.md +9 -0
- package/catalog/frontmcp-testing/references/test-direct-client.md +9 -0
- package/catalog/frontmcp-testing/references/test-e2e-handler.md +10 -0
- package/catalog/frontmcp-testing/references/test-tool-unit.md +10 -0
- package/catalog/skills-manifest.json +2383 -67
- package/package.json +1 -1
- package/src/manifest.d.ts +23 -0
- package/src/manifest.js +3 -1
- package/src/manifest.js.map +1 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stateless-serverless-design
|
|
3
|
+
reference: production-vercel
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'Shows a fully stateless server design that works on Vercel edge runtime with no Node.js-only APIs, using `@frontmcp/utils` for cross-platform crypto.'
|
|
6
|
+
tags: [production, vercel, serverless, node, stateless, design]
|
|
7
|
+
features:
|
|
8
|
+
- 'Using `@frontmcp/utils` (`sha256Hex`, `randomUUID`) instead of `node:crypto` for edge compatibility'
|
|
9
|
+
- 'Fully stateless design with no in-memory state between invocations'
|
|
10
|
+
- 'Using `this.fetch()` instead of Node.js `http`/`https` modules'
|
|
11
|
+
- 'No file system access (serverless is ephemeral)'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Stateless Serverless Design with Edge Compatibility
|
|
15
|
+
|
|
16
|
+
Shows a fully stateless server design that works on Vercel edge runtime with no Node.js-only APIs, using `@frontmcp/utils` for cross-platform crypto.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/tools/edge-safe-tool.tool.ts
|
|
22
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
// Use @frontmcp/utils for cross-platform crypto — not node:crypto
|
|
25
|
+
import { sha256Hex, randomUUID } from '@frontmcp/utils';
|
|
26
|
+
|
|
27
|
+
@Tool({
|
|
28
|
+
name: 'process_request',
|
|
29
|
+
description: 'Process a request in an edge-safe, stateless manner',
|
|
30
|
+
inputSchema: {
|
|
31
|
+
data: z.string().min(1).describe('Request data'),
|
|
32
|
+
},
|
|
33
|
+
outputSchema: {
|
|
34
|
+
requestId: z.string(),
|
|
35
|
+
hash: z.string(),
|
|
36
|
+
processed: z.boolean(),
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
export class ProcessRequestTool extends ToolContext {
|
|
40
|
+
async execute(input: { data: string }) {
|
|
41
|
+
// Cross-platform crypto — works on edge runtime
|
|
42
|
+
const requestId = randomUUID();
|
|
43
|
+
const hash = sha256Hex(input.data);
|
|
44
|
+
|
|
45
|
+
// No file system access — serverless is ephemeral
|
|
46
|
+
// No in-memory state — each invocation is independent
|
|
47
|
+
// Use this.fetch() for external calls (not node http/https)
|
|
48
|
+
const response = await this.fetch('https://api.example.com/process', {
|
|
49
|
+
method: 'POST',
|
|
50
|
+
headers: { 'Content-Type': 'application/json' },
|
|
51
|
+
body: JSON.stringify({ requestId, hash, data: input.data }),
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const result = await response.json();
|
|
55
|
+
return { requestId, hash, processed: result.ok };
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// src/main.ts
|
|
62
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
63
|
+
import { EdgeApp } from './edge.app';
|
|
64
|
+
|
|
65
|
+
@FrontMcp({
|
|
66
|
+
info: { name: 'edge-server', version: '1.0.0' },
|
|
67
|
+
apps: [EdgeApp],
|
|
68
|
+
|
|
69
|
+
// Vercel KV for all shared state
|
|
70
|
+
redis: { provider: 'vercel-kv' },
|
|
71
|
+
|
|
72
|
+
// CORS restricted to production domain
|
|
73
|
+
cors: {
|
|
74
|
+
origin: ['https://app.example.com'],
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
// Stateless: no file system, no SQLite, no in-memory sessions
|
|
78
|
+
})
|
|
79
|
+
export default class EdgeServer {}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## What This Demonstrates
|
|
83
|
+
|
|
84
|
+
- Using `@frontmcp/utils` (`sha256Hex`, `randomUUID`) instead of `node:crypto` for edge compatibility
|
|
85
|
+
- Fully stateless design with no in-memory state between invocations
|
|
86
|
+
- Using `this.fetch()` instead of Node.js `http`/`https` modules
|
|
87
|
+
- No file system access (serverless is ephemeral)
|
|
88
|
+
|
|
89
|
+
## Related
|
|
90
|
+
|
|
91
|
+
- See `production-vercel` for the full edge runtime and scaling checklist
|
package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-edge-config
|
|
3
|
+
reference: production-vercel
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Shows how to configure a FrontMCP server for Vercel deployment with Vercel KV for session storage and correct route configuration.'
|
|
6
|
+
tags: [production, vercel-kv, vercel, session, serverless, edge]
|
|
7
|
+
features:
|
|
8
|
+
- 'Correct `vercel.json` with function routes, memory limits, and max duration'
|
|
9
|
+
- "Using Vercel KV (`provider: 'vercel-kv'`) for session storage instead of in-memory"
|
|
10
|
+
- 'Setting CORS origins dynamically using `VERCEL_URL`'
|
|
11
|
+
- 'Serverless function entry point via `createVercelHandler`'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Vercel Configuration with Edge-Compatible Storage
|
|
15
|
+
|
|
16
|
+
Shows how to configure a FrontMCP server for Vercel deployment with Vercel KV for session storage and correct route configuration.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```jsonc
|
|
21
|
+
// vercel.json
|
|
22
|
+
{
|
|
23
|
+
"version": 2,
|
|
24
|
+
"builds": [{ "src": "api/**/*.ts", "use": "@vercel/node" }],
|
|
25
|
+
"routes": [{ "src": "/mcp/(.*)", "dest": "/api/mcp" }],
|
|
26
|
+
"functions": {
|
|
27
|
+
"api/mcp.ts": {
|
|
28
|
+
"memory": 256,
|
|
29
|
+
"maxDuration": 30,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// src/main.ts
|
|
37
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
38
|
+
import { MyApp } from './my.app';
|
|
39
|
+
|
|
40
|
+
@FrontMcp({
|
|
41
|
+
info: { name: 'vercel-mcp', version: '1.0.0' },
|
|
42
|
+
apps: [MyApp],
|
|
43
|
+
|
|
44
|
+
// Vercel KV for session storage (not in-memory, not Redis directly)
|
|
45
|
+
redis: {
|
|
46
|
+
provider: 'vercel-kv', // Uses Vercel KV (Redis-compatible, managed)
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
// CORS: use VERCEL_URL or custom domain
|
|
50
|
+
cors: {
|
|
51
|
+
origin: [
|
|
52
|
+
process.env.VERCEL_URL ? `https://${process.env.VERCEL_URL}` : 'http://localhost:3000',
|
|
53
|
+
'https://app.example.com',
|
|
54
|
+
],
|
|
55
|
+
},
|
|
56
|
+
})
|
|
57
|
+
export default class VercelMcpServer {}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// api/mcp.ts — Vercel serverless function entry point
|
|
62
|
+
import Server from '../src/main';
|
|
63
|
+
|
|
64
|
+
// Export the server class directly — FrontMCP handles
|
|
65
|
+
// the Vercel serverless function lifecycle automatically.
|
|
66
|
+
export default Server;
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## What This Demonstrates
|
|
70
|
+
|
|
71
|
+
- Correct `vercel.json` with function routes, memory limits, and max duration
|
|
72
|
+
- Using Vercel KV (`provider: 'vercel-kv'`) for session storage instead of in-memory
|
|
73
|
+
- Setting CORS origins dynamically using `VERCEL_URL`
|
|
74
|
+
- Serverless function entry point via `createVercelHandler`
|
|
75
|
+
|
|
76
|
+
## Related
|
|
77
|
+
|
|
78
|
+
- See `production-vercel` for the full Vercel deployment checklist
|
|
@@ -154,3 +154,13 @@ These checks apply to ALL deployment targets. Run them first, then proceed to yo
|
|
|
154
154
|
| Synchronous file I/O | Use async operations from `@frontmcp/utils` |
|
|
155
155
|
| Hardcoded secrets | Use environment variables |
|
|
156
156
|
| Unbounded caching | Set TTL on all caches |
|
|
157
|
+
|
|
158
|
+
## Examples
|
|
159
|
+
|
|
160
|
+
| Example | Level | Description |
|
|
161
|
+
| ------------------------------------------------------------------------------------ | ------------ | -------------------------------------------------------------------------------------------------------------------------- |
|
|
162
|
+
| [`caching-and-performance`](../examples/common-checklist/caching-and-performance.md) | Advanced | Shows how to configure caching with TTL, optimize responses, and manage memory with proper provider lifecycle cleanup. |
|
|
163
|
+
| [`observability-setup`](../examples/common-checklist/observability-setup.md) | Intermediate | Shows how to configure structured logging, error handling with MCP error codes, and monitoring integration for production. |
|
|
164
|
+
| [`security-hardening`](../examples/common-checklist/security-hardening.md) | Basic | Shows how to configure authentication, CORS, input validation, and rate limiting for a production FrontMCP server. |
|
|
165
|
+
|
|
166
|
+
> See all examples in [`examples/common-checklist/`](../examples/common-checklist/)
|
|
@@ -44,3 +44,13 @@ Target-specific checklist for publishing FrontMCP as a browser-compatible SDK.
|
|
|
44
44
|
- [ ] Code splitting is used for large optional features
|
|
45
45
|
- [ ] No synchronous operations that block the main thread
|
|
46
46
|
- [ ] WebSocket/SSE connections handle reconnection gracefully
|
|
47
|
+
|
|
48
|
+
## Examples
|
|
49
|
+
|
|
50
|
+
| Example | Level | Description |
|
|
51
|
+
| ---------------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
52
|
+
| [`browser-bundle-config`](../examples/production-browser/browser-bundle-config.md) | Basic | Shows how to configure package.json for browser-compatible SDK distribution with ESM/CJS/UMD entry points, TypeScript declarations, and CDN support. |
|
|
53
|
+
| [`cross-platform-crypto`](../examples/production-browser/cross-platform-crypto.md) | Intermediate | Shows how to use `@frontmcp/utils` for cross-platform crypto operations that work in both browser and Node.js, and how to avoid Node.js-only APIs. |
|
|
54
|
+
| [`security-and-performance`](../examples/production-browser/security-and-performance.md) | Advanced | Shows how to ensure no secrets are bundled in browser code, configure CSP headers on the server, optimize bundle size, and avoid blocking the main thread. |
|
|
55
|
+
|
|
56
|
+
> See all examples in [`examples/production-browser/`](../examples/production-browser/)
|
|
@@ -60,3 +60,12 @@ Checklist for publishing FrontMCP as a one-shot CLI binary — runs a command, p
|
|
|
60
60
|
- [ ] No secrets logged to stderr
|
|
61
61
|
- [ ] No hardcoded paths (use `os.homedir()`, `os.tmpdir()`)
|
|
62
62
|
- [ ] No writes to unexpected locations
|
|
63
|
+
|
|
64
|
+
## Examples
|
|
65
|
+
|
|
66
|
+
| Example | Level | Description |
|
|
67
|
+
| ------------------------------------------------------------------------------------------------------- | ------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
68
|
+
| [`binary-build-config`](../examples/production-cli-binary/binary-build-config.md) | Basic | Shows how to configure a FrontMCP CLI binary with correct package.json `bin` field, shebang, stdio transport, and npm distribution settings. |
|
|
69
|
+
| [`stdio-transport-error-handling`](../examples/production-cli-binary/stdio-transport-error-handling.md) | Intermediate | Shows how to handle stdin/stdout transport correctly, implement proper exit codes, and handle edge cases like EOF and broken pipes. |
|
|
70
|
+
|
|
71
|
+
> See all examples in [`examples/production-cli-binary/`](../examples/production-cli-binary/)
|
|
@@ -59,3 +59,13 @@ Checklist for deploying FrontMCP as a long-running local MCP server managed by t
|
|
|
59
59
|
- [ ] No network exposure (socket-only, not TCP)
|
|
60
60
|
- [ ] Secrets stored in config file with `600` permissions
|
|
61
61
|
- [ ] Config stored in `~/.config/<app>/` or XDG directories
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
| Example | Level | Description |
|
|
66
|
+
| --------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| [`daemon-socket-config`](../examples/production-cli-daemon/daemon-socket-config.md) | Basic | Shows how to configure a FrontMCP server as a long-running local daemon with Unix socket transport, process management, and SQLite storage. |
|
|
68
|
+
| [`graceful-shutdown-cleanup`](../examples/production-cli-daemon/graceful-shutdown-cleanup.md) | Intermediate | Shows how to implement graceful shutdown for a daemon process, including completing in-flight requests, closing database connections, removing the socket file, and cleaning up the PID file. |
|
|
69
|
+
| [`security-and-permissions`](../examples/production-cli-daemon/security-and-permissions.md) | Advanced | Shows how to secure a local daemon with restrictive socket permissions, XDG-compliant config storage, and file-based secret management. |
|
|
70
|
+
|
|
71
|
+
> See all examples in [`examples/production-cli-daemon/`](../examples/production-cli-daemon/)
|
|
@@ -50,3 +50,13 @@ Target-specific checklist for deploying FrontMCP to Cloudflare Workers.
|
|
|
50
50
|
- [ ] Secrets set via `wrangler secret put`
|
|
51
51
|
- [ ] Deploy with `wrangler deploy` (not manual upload)
|
|
52
52
|
- [ ] Tail logs: `wrangler tail` for production debugging
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
| Example | Level | Description |
|
|
57
|
+
| ------------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
58
|
+
| [`durable-objects-state`](../examples/production-cloudflare/durable-objects-state.md) | Advanced | Shows how to use Cloudflare Durable Objects for stateful coordination alongside the stateless Workers runtime, with KV for cache and R2 for blob storage. |
|
|
59
|
+
| [`workers-runtime-constraints`](../examples/production-cloudflare/workers-runtime-constraints.md) | Intermediate | Shows how to write tools that are compatible with the Cloudflare Workers runtime: no Node.js APIs, no eval, only async I/O, and using Web APIs. |
|
|
60
|
+
| [`wrangler-config`](../examples/production-cloudflare/wrangler-config.md) | Basic | Shows how to configure `wrangler.toml` with correct routes, KV bindings for session storage, and secret management for a FrontMCP Cloudflare Worker. |
|
|
61
|
+
|
|
62
|
+
> See all examples in [`examples/production-cloudflare/`](../examples/production-cloudflare/)
|
|
@@ -51,3 +51,13 @@ Target-specific checklist for deploying FrontMCP to AWS Lambda.
|
|
|
51
51
|
- [ ] Staging and production stages are separate
|
|
52
52
|
- [ ] API Gateway stages are configured correctly
|
|
53
53
|
- [ ] CloudWatch alarms are set for errors and throttling
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
|
|
57
|
+
| Example | Level | Description |
|
|
58
|
+
| --------------------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
59
|
+
| [`cold-start-connection-reuse`](../examples/production-lambda/cold-start-connection-reuse.md) | Intermediate | Shows how to minimize Lambda cold starts with lazy initialization, tree-shaking, and the connection reuse pattern for external services. |
|
|
60
|
+
| [`sam-template`](../examples/production-lambda/sam-template.md) | Basic | Shows a complete SAM/CloudFormation template for deploying a FrontMCP server to AWS Lambda with API Gateway routing, DynamoDB for session storage, and proper environment configuration. |
|
|
61
|
+
| [`scaling-and-monitoring`](../examples/production-lambda/scaling-and-monitoring.md) | Advanced | Shows how to configure concurrency limits, dead letter queues, provisioned concurrency, and CloudWatch alarms for a production Lambda deployment. |
|
|
62
|
+
|
|
63
|
+
> See all examples in [`examples/production-lambda/`](../examples/production-lambda/)
|
|
@@ -64,3 +64,13 @@ const result = await client.callTool('my_tool', { input: 'value' });
|
|
|
64
64
|
await client.close();
|
|
65
65
|
await server.dispose();
|
|
66
66
|
```
|
|
67
|
+
|
|
68
|
+
## Examples
|
|
69
|
+
|
|
70
|
+
| Example | Level | Description |
|
|
71
|
+
| ------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
72
|
+
| [`basic-sdk-lifecycle`](../examples/production-node-sdk/basic-sdk-lifecycle.md) | Basic | Shows the complete lifecycle of a FrontMCP SDK package used as an embedded client: initialization, tool invocation, and proper cleanup. |
|
|
73
|
+
| [`multi-instance-cleanup`](../examples/production-node-sdk/multi-instance-cleanup.md) | Advanced | Shows how multiple SDK instances can coexist without conflicts, and how to implement proper cleanup to prevent memory leaks from event listeners, timers, and provider resources. |
|
|
74
|
+
| [`package-json-config`](../examples/production-node-sdk/package-json-config.md) | Intermediate | Shows the correct package.json configuration for publishing a FrontMCP SDK package with CJS + ESM entry points, peer dependencies, and proper file inclusions. |
|
|
75
|
+
|
|
76
|
+
> See all examples in [`examples/production-node-sdk/`](../examples/production-node-sdk/)
|
|
@@ -59,3 +59,13 @@ Target-specific checklist for deploying FrontMCP as a long-running Node.js serve
|
|
|
59
59
|
- [ ] Env vars are validated at startup (fail fast on missing config)
|
|
60
60
|
- [ ] Port binding uses `process.env.PORT`
|
|
61
61
|
- [ ] No dev dependencies installed in production image
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
| Example | Level | Description |
|
|
66
|
+
| -------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| [`docker-multi-stage`](../examples/production-node-server/docker-multi-stage.md) | Basic | Shows a production-ready Dockerfile with multi-stage build, non-root user, and container health check for a FrontMCP Node.js server. |
|
|
68
|
+
| [`graceful-shutdown`](../examples/production-node-server/graceful-shutdown.md) | Intermediate | Shows how to implement graceful shutdown with SIGTERM handling, in-flight request draining, and health check status transitions. |
|
|
69
|
+
| [`redis-session-scaling`](../examples/production-node-server/redis-session-scaling.md) | Advanced | Shows how to configure Redis-backed session storage, connection pooling, and stateless server design for horizontal scaling behind a load balancer. |
|
|
70
|
+
|
|
71
|
+
> See all examples in [`examples/production-node-server/`](../examples/production-node-server/)
|
|
@@ -50,3 +50,13 @@ Target-specific checklist for deploying FrontMCP to Vercel serverless or edge fu
|
|
|
50
50
|
- [ ] Environment variables are set in Vercel project settings
|
|
51
51
|
- [ ] Preview deployments test the full MCP flow
|
|
52
52
|
- [ ] Production deployment uses `npx vercel --prod`
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
| Example | Level | Description |
|
|
57
|
+
| --------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
58
|
+
| [`cold-start-optimization`](../examples/production-vercel/cold-start-optimization.md) | Intermediate | Shows how to minimize cold start time by lazy-loading dependencies, avoiding heavy initialization at module scope, and caching expensive operations. |
|
|
59
|
+
| [`stateless-serverless-design`](../examples/production-vercel/stateless-serverless-design.md) | Advanced | Shows a fully stateless server design that works on Vercel edge runtime with no Node.js-only APIs, using `@frontmcp/utils` for cross-platform crypto. |
|
|
60
|
+
| [`vercel-edge-config`](../examples/production-vercel/vercel-edge-config.md) | Basic | Shows how to configure a FrontMCP server for Vercel deployment with Vercel KV for session storage and correct route configuration. |
|
|
61
|
+
|
|
62
|
+
> See all examples in [`examples/production-vercel/`](../examples/production-vercel/)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bundle-presets-scaffolding
|
|
3
|
+
reference: frontmcp-skills-usage
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Use `--skills` flag during project creation to install a skill bundle preset.'
|
|
6
|
+
tags: [setup, skills, usage, bundle, presets, scaffolding]
|
|
7
|
+
features:
|
|
8
|
+
- '`--skills` flag accepts `recommended`, `minimal`, `full`, or `none` presets'
|
|
9
|
+
- 'Static installs are snapshots; re-run `install` to update to the latest catalog version'
|
|
10
|
+
- 'Hybrid approach: install core skills statically, search the rest on demand'
|
|
11
|
+
- 'Fewer static installs reduce token usage in AI agent context'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Bundle Presets During Scaffolding
|
|
15
|
+
|
|
16
|
+
Use `--skills` flag during project creation to install a skill bundle preset.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Recommended bundle (core skills for the deployment target)
|
|
22
|
+
npx frontmcp create my-app --skills recommended --yes
|
|
23
|
+
|
|
24
|
+
# Minimal bundle (just project setup + create-tool)
|
|
25
|
+
npx frontmcp create my-app --skills minimal --yes
|
|
26
|
+
|
|
27
|
+
# Full bundle (all skills)
|
|
28
|
+
npx frontmcp create my-app --skills full --yes
|
|
29
|
+
|
|
30
|
+
# No skills
|
|
31
|
+
npx frontmcp create my-app --skills none --yes
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# After scaffolding, update installed skills to the latest version
|
|
36
|
+
frontmcp skills install frontmcp-development --provider claude
|
|
37
|
+
frontmcp skills install frontmcp-config --provider claude
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# Recommended hybrid strategy:
|
|
42
|
+
# 1. Install 2-4 core skills statically for daily use
|
|
43
|
+
frontmcp skills install frontmcp-setup --provider claude
|
|
44
|
+
frontmcp skills install frontmcp-development --provider claude
|
|
45
|
+
|
|
46
|
+
# 2. Search everything else on demand (saves tokens)
|
|
47
|
+
frontmcp skills search "deploy to vercel"
|
|
48
|
+
frontmcp skills search "rate limiting"
|
|
49
|
+
frontmcp skills read frontmcp-deployment
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## What This Demonstrates
|
|
53
|
+
|
|
54
|
+
- `--skills` flag accepts `recommended`, `minimal`, `full`, or `none` presets
|
|
55
|
+
- Static installs are snapshots; re-run `install` to update to the latest catalog version
|
|
56
|
+
- Hybrid approach: install core skills statically, search the rest on demand
|
|
57
|
+
- Fewer static installs reduce token usage in AI agent context
|
|
58
|
+
|
|
59
|
+
## Related
|
|
60
|
+
|
|
61
|
+
- See `frontmcp-skills-usage` for the full skill catalog, provider directories, and CLI command reference
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: install-and-search-skills
|
|
3
|
+
reference: frontmcp-skills-usage
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Install skills statically for Claude Code and use dynamic CLI search for on-demand discovery.'
|
|
6
|
+
tags: [setup, cli, anthropic, skills, usage, install]
|
|
7
|
+
features:
|
|
8
|
+
- '`frontmcp skills list` and `search` for discovering available skills'
|
|
9
|
+
- '`frontmcp skills read` for viewing skill content and references on demand'
|
|
10
|
+
- '`frontmcp skills install --provider claude` for static installation to `.claude/skills/`'
|
|
11
|
+
- 'Installed skills are auto-loaded by Claude Code in its system prompt context'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Install and Search Skills
|
|
15
|
+
|
|
16
|
+
Install skills statically for Claude Code and use dynamic CLI search for on-demand discovery.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# List all available skills
|
|
22
|
+
frontmcp skills list
|
|
23
|
+
|
|
24
|
+
# List skills by category
|
|
25
|
+
frontmcp skills list --category development
|
|
26
|
+
frontmcp skills list --category deployment
|
|
27
|
+
frontmcp skills list --category config
|
|
28
|
+
|
|
29
|
+
# Search skills by keywords
|
|
30
|
+
frontmcp skills search "authentication oauth"
|
|
31
|
+
frontmcp skills search "deploy vercel"
|
|
32
|
+
frontmcp skills search "plugin hooks" --tag middleware --limit 5
|
|
33
|
+
|
|
34
|
+
# Read a skill's full content
|
|
35
|
+
frontmcp skills read frontmcp-development
|
|
36
|
+
|
|
37
|
+
# List references for a skill
|
|
38
|
+
frontmcp skills read frontmcp-development --refs
|
|
39
|
+
|
|
40
|
+
# Read a specific reference
|
|
41
|
+
frontmcp skills read frontmcp-development create-tool
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Install core skills for Claude Code
|
|
46
|
+
frontmcp skills install frontmcp-setup --provider claude
|
|
47
|
+
frontmcp skills install frontmcp-development --provider claude
|
|
48
|
+
frontmcp skills install frontmcp-config --provider claude
|
|
49
|
+
|
|
50
|
+
# Install for Codex
|
|
51
|
+
frontmcp skills install frontmcp-development --provider codex
|
|
52
|
+
|
|
53
|
+
# Install to a custom directory
|
|
54
|
+
frontmcp skills install frontmcp-guides --dir ./my-skills
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
After installation, the directory structure:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
my-project/
|
|
61
|
+
.claude/
|
|
62
|
+
skills/
|
|
63
|
+
frontmcp-setup/
|
|
64
|
+
SKILL.md
|
|
65
|
+
references/
|
|
66
|
+
frontmcp-development/
|
|
67
|
+
SKILL.md
|
|
68
|
+
references/
|
|
69
|
+
frontmcp-config/
|
|
70
|
+
SKILL.md
|
|
71
|
+
references/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## What This Demonstrates
|
|
75
|
+
|
|
76
|
+
- `frontmcp skills list` and `search` for discovering available skills
|
|
77
|
+
- `frontmcp skills read` for viewing skill content and references on demand
|
|
78
|
+
- `frontmcp skills install --provider claude` for static installation to `.claude/skills/`
|
|
79
|
+
- Installed skills are auto-loaded by Claude Code in its system prompt context
|
|
80
|
+
|
|
81
|
+
## Related
|
|
82
|
+
|
|
83
|
+
- See `frontmcp-skills-usage` for static vs dynamic comparison, bundle presets, and token optimization
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: local-apps-with-shared-tools
|
|
3
|
+
reference: multi-app-composition
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Compose multiple local `@App` classes into a server with shared tools available to all apps.'
|
|
6
|
+
tags: [setup, multi-app, local, multi, app, composition]
|
|
7
|
+
features:
|
|
8
|
+
- 'Multiple `@App` classes with unique `id` fields for tool namespacing (`billing:charge`, `inventory:check_stock`)'
|
|
9
|
+
- 'Server-level `tools` array for shared tools available to all apps without namespace prefix'
|
|
10
|
+
- 'Each app is self-contained with its own tools array'
|
|
11
|
+
- 'The `id` field on `@App` controls the namespace prefix for tool names'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Local Apps with Shared Tools
|
|
15
|
+
|
|
16
|
+
Compose multiple local `@App` classes into a server with shared tools available to all apps.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/apps/billing.app.ts
|
|
22
|
+
import { App } from '@frontmcp/sdk';
|
|
23
|
+
import { ChargeTool } from '../tools/charge.tool';
|
|
24
|
+
import { RefundTool } from '../tools/refund.tool';
|
|
25
|
+
|
|
26
|
+
@App({
|
|
27
|
+
id: 'billing',
|
|
28
|
+
name: 'Billing',
|
|
29
|
+
tools: [ChargeTool, RefundTool],
|
|
30
|
+
})
|
|
31
|
+
export class BillingApp {}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// src/apps/inventory.app.ts
|
|
36
|
+
import { App } from '@frontmcp/sdk';
|
|
37
|
+
import { CheckStockTool } from '../tools/check-stock.tool';
|
|
38
|
+
|
|
39
|
+
@App({
|
|
40
|
+
id: 'inventory',
|
|
41
|
+
name: 'Inventory',
|
|
42
|
+
tools: [CheckStockTool],
|
|
43
|
+
})
|
|
44
|
+
export class InventoryApp {}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
// src/tools/health-check.tool.ts
|
|
49
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
50
|
+
|
|
51
|
+
@Tool({
|
|
52
|
+
name: 'health_check',
|
|
53
|
+
description: 'Check server health',
|
|
54
|
+
})
|
|
55
|
+
export default class HealthCheckTool extends ToolContext {
|
|
56
|
+
async execute() {
|
|
57
|
+
return { content: [{ type: 'text', text: 'OK' }] };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```typescript
|
|
63
|
+
// src/main.ts
|
|
64
|
+
import 'reflect-metadata';
|
|
65
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
66
|
+
import { BillingApp } from './apps/billing.app';
|
|
67
|
+
import { InventoryApp } from './apps/inventory.app';
|
|
68
|
+
import HealthCheckTool from './tools/health-check.tool';
|
|
69
|
+
|
|
70
|
+
@FrontMcp({
|
|
71
|
+
info: { name: 'gateway', version: '1.0.0' },
|
|
72
|
+
apps: [BillingApp, InventoryApp],
|
|
73
|
+
tools: [HealthCheckTool],
|
|
74
|
+
})
|
|
75
|
+
export default class Server {}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## What This Demonstrates
|
|
79
|
+
|
|
80
|
+
- Multiple `@App` classes with unique `id` fields for tool namespacing (`billing:charge`, `inventory:check_stock`)
|
|
81
|
+
- Server-level `tools` array for shared tools available to all apps without namespace prefix
|
|
82
|
+
- Each app is self-contained with its own tools array
|
|
83
|
+
- The `id` field on `@App` controls the namespace prefix for tool names
|
|
84
|
+
|
|
85
|
+
## Related
|
|
86
|
+
|
|
87
|
+
- See `multi-app-composition` for ESM apps, remote apps, scope isolation, and per-app auth
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: per-app-auth-and-isolation
|
|
3
|
+
reference: multi-app-composition
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'Configure mixed authentication modes and scope isolation for different apps in a single server.'
|
|
6
|
+
tags: [setup, oauth, auth, multi-app, remote, multi]
|
|
7
|
+
features:
|
|
8
|
+
- 'Per-app `auth` overrides the server-level auth (public vs remote OAuth per app)'
|
|
9
|
+
- '`standalone: true` fully isolates the Admin app (not visible in parent tool listing)'
|
|
10
|
+
- "`standalone: 'includeInParent'` gives Analytics its own scope but keeps tools visible"
|
|
11
|
+
- 'Per-app `plugins` (BillingAuditPlugin) are scoped to that app only'
|
|
12
|
+
- 'Server-level `plugins` (TracingPlugin, PiiRedactionPlugin) apply to all apps'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Per-App Auth and Scope Isolation
|
|
16
|
+
|
|
17
|
+
Configure mixed authentication modes and scope isolation for different apps in a single server.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// src/main.ts
|
|
23
|
+
import 'reflect-metadata';
|
|
24
|
+
import { FrontMcp, App } from '@frontmcp/sdk';
|
|
25
|
+
|
|
26
|
+
// Public app - no auth required
|
|
27
|
+
@App({
|
|
28
|
+
name: 'Public',
|
|
29
|
+
tools: [EchoTool, HealthTool],
|
|
30
|
+
auth: { mode: 'public' },
|
|
31
|
+
})
|
|
32
|
+
class PublicApp {}
|
|
33
|
+
|
|
34
|
+
// Protected app with OAuth
|
|
35
|
+
@App({
|
|
36
|
+
id: 'billing',
|
|
37
|
+
name: 'Billing',
|
|
38
|
+
tools: [ChargeTool, RefundTool],
|
|
39
|
+
plugins: [BillingAuditPlugin],
|
|
40
|
+
auth: {
|
|
41
|
+
mode: 'remote',
|
|
42
|
+
idpProviderUrl: 'https://auth.billing.com',
|
|
43
|
+
idpExpectedAudience: 'billing-api',
|
|
44
|
+
},
|
|
45
|
+
})
|
|
46
|
+
class BillingApp {}
|
|
47
|
+
|
|
48
|
+
// Fully isolated admin app (standalone: true)
|
|
49
|
+
@App({
|
|
50
|
+
name: 'Admin',
|
|
51
|
+
tools: [ResetTool, UserManagementTool],
|
|
52
|
+
standalone: true,
|
|
53
|
+
auth: {
|
|
54
|
+
mode: 'remote',
|
|
55
|
+
idpProviderUrl: 'https://auth.admin.com',
|
|
56
|
+
},
|
|
57
|
+
})
|
|
58
|
+
class AdminApp {}
|
|
59
|
+
|
|
60
|
+
// Isolated but visible in parent (standalone: 'includeInParent')
|
|
61
|
+
@App({
|
|
62
|
+
id: 'analytics',
|
|
63
|
+
name: 'Analytics',
|
|
64
|
+
tools: [QueryTool],
|
|
65
|
+
standalone: 'includeInParent',
|
|
66
|
+
})
|
|
67
|
+
class AnalyticsApp {}
|
|
68
|
+
|
|
69
|
+
@FrontMcp({
|
|
70
|
+
info: { name: 'gateway', version: '1.0.0' },
|
|
71
|
+
apps: [PublicApp, BillingApp, AdminApp, AnalyticsApp],
|
|
72
|
+
plugins: [TracingPlugin, PiiRedactionPlugin],
|
|
73
|
+
auth: { mode: 'public' },
|
|
74
|
+
})
|
|
75
|
+
export default class Server {}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## What This Demonstrates
|
|
79
|
+
|
|
80
|
+
- Per-app `auth` overrides the server-level auth (public vs remote OAuth per app)
|
|
81
|
+
- `standalone: true` fully isolates the Admin app (not visible in parent tool listing)
|
|
82
|
+
- `standalone: 'includeInParent'` gives Analytics its own scope but keeps tools visible
|
|
83
|
+
- Per-app `plugins` (BillingAuditPlugin) are scoped to that app only
|
|
84
|
+
- Server-level `plugins` (TracingPlugin, PiiRedactionPlugin) apply to all apps
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- See `multi-app-composition` for ESM and remote app composition, namespacing, and shared tools
|