@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.
- package/README.md +2 -2
- package/catalog/TEMPLATE.md +69 -0
- package/catalog/frontmcp-config/SKILL.md +38 -22
- 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 +15 -0
- package/catalog/frontmcp-config/references/configure-auth.md +15 -0
- package/catalog/frontmcp-config/references/configure-elicitation.md +14 -0
- package/catalog/frontmcp-config/references/configure-http.md +15 -0
- package/catalog/frontmcp-config/references/configure-session.md +15 -0
- package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +14 -0
- package/catalog/frontmcp-config/references/configure-throttle.md +15 -0
- package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +14 -0
- package/catalog/frontmcp-config/references/configure-transport.md +15 -0
- package/catalog/frontmcp-config/references/setup-redis.md +10 -0
- package/catalog/frontmcp-config/references/setup-sqlite.md +10 -0
- package/catalog/frontmcp-deployment/SKILL.md +40 -12
- 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 +15 -0
- package/catalog/frontmcp-deployment/references/build-for-cli.md +65 -3
- package/catalog/frontmcp-deployment/references/build-for-sdk.md +15 -0
- package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +15 -0
- package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +18 -3
- package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +16 -2
- package/catalog/frontmcp-deployment/references/deploy-to-node.md +19 -4
- package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +14 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +15 -0
- package/catalog/frontmcp-development/SKILL.md +25 -17
- 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 +14 -0
- package/catalog/frontmcp-development/references/create-agent-llm-config.md +14 -0
- package/catalog/frontmcp-development/references/create-agent.md +15 -0
- package/catalog/frontmcp-development/references/create-job.md +15 -0
- package/catalog/frontmcp-development/references/create-plugin-hooks.md +51 -0
- package/catalog/frontmcp-development/references/create-plugin.md +186 -11
- package/catalog/frontmcp-development/references/create-prompt.md +17 -0
- package/catalog/frontmcp-development/references/create-provider.md +14 -0
- package/catalog/frontmcp-development/references/create-resource.md +127 -0
- package/catalog/frontmcp-development/references/create-skill-with-tools.md +126 -7
- package/catalog/frontmcp-development/references/create-skill.md +57 -12
- package/catalog/frontmcp-development/references/create-tool-annotations.md +14 -0
- package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +15 -0
- package/catalog/frontmcp-development/references/create-tool.md +205 -1
- package/catalog/frontmcp-development/references/create-workflow.md +15 -0
- package/catalog/frontmcp-development/references/decorators-guide.md +155 -78
- package/catalog/frontmcp-development/references/official-adapters.md +31 -16
- package/catalog/frontmcp-development/references/official-plugins.md +62 -28
- package/catalog/frontmcp-extensibility/SKILL.md +103 -0
- 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 +299 -0
- package/catalog/frontmcp-guides/SKILL.md +7 -4
- 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 +15 -0
- package/catalog/frontmcp-guides/references/example-task-manager.md +30 -21
- package/catalog/frontmcp-guides/references/example-weather-api.md +18 -6
- package/catalog/frontmcp-observability/SKILL.md +144 -0
- package/catalog/frontmcp-observability/examples/structured-logging/stdout-logging.md +71 -0
- package/catalog/frontmcp-observability/examples/structured-logging/winston-integration.md +70 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/agent-nested-tracing.md +86 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/plugin-telemetry.md +93 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +72 -0
- package/catalog/frontmcp-observability/examples/testing-observability/test-custom-spans.md +90 -0
- package/catalog/frontmcp-observability/examples/testing-observability/test-log-correlation.md +104 -0
- package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +82 -0
- package/catalog/frontmcp-observability/examples/tracing-setup/production-tracing.md +73 -0
- package/catalog/frontmcp-observability/examples/vendor-integrations/coralogix-setup.md +74 -0
- package/catalog/frontmcp-observability/references/structured-logging.md +114 -0
- package/catalog/frontmcp-observability/references/telemetry-api.md +155 -0
- package/catalog/frontmcp-observability/references/testing-observability.md +169 -0
- package/catalog/frontmcp-observability/references/tracing-setup.md +146 -0
- package/catalog/frontmcp-observability/references/vendor-integrations.md +164 -0
- package/catalog/frontmcp-production-readiness/SKILL.md +99 -0
- 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/health-readiness-endpoints/basic-health-setup.md +81 -0
- package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/custom-probes.md +136 -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 +175 -0
- package/catalog/frontmcp-production-readiness/references/health-readiness-endpoints.md +198 -0
- package/catalog/frontmcp-production-readiness/references/production-browser.md +56 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +62 -0
- package/catalog/frontmcp-production-readiness/references/production-lambda.md +63 -0
- package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +76 -0
- package/catalog/frontmcp-production-readiness/references/production-node-server.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-vercel.md +62 -0
- package/catalog/frontmcp-setup/SKILL.md +19 -14
- 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 +33 -9
- package/catalog/frontmcp-setup/references/multi-app-composition.md +15 -0
- package/catalog/frontmcp-setup/references/nx-workflow.md +15 -0
- package/catalog/frontmcp-setup/references/project-structure-nx.md +15 -0
- package/catalog/frontmcp-setup/references/project-structure-standalone.md +15 -0
- package/catalog/frontmcp-setup/references/readme-guide.md +235 -0
- package/catalog/frontmcp-setup/references/setup-project.md +16 -1
- package/catalog/frontmcp-setup/references/setup-redis.md +15 -0
- package/catalog/frontmcp-setup/references/setup-sqlite.md +15 -0
- package/catalog/frontmcp-testing/SKILL.md +41 -27
- 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 +17 -0
- package/catalog/frontmcp-testing/references/test-auth.md +15 -0
- package/catalog/frontmcp-testing/references/test-browser-build.md +14 -0
- package/catalog/frontmcp-testing/references/test-cli-binary.md +14 -0
- package/catalog/frontmcp-testing/references/test-direct-client.md +14 -0
- package/catalog/frontmcp-testing/references/test-e2e-handler.md +15 -0
- package/catalog/frontmcp-testing/references/test-tool-unit.md +15 -0
- package/catalog/skills-manifest.json +2849 -32
- package/package.json +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js.map +1 -1
- package/src/loader.js +0 -1
- package/src/loader.js.map +1 -1
- package/src/manifest.d.ts +36 -1
- package/src/manifest.js +6 -1
- package/src/manifest.js.map +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: docker-redis-local-dev
|
|
3
|
+
reference: setup-redis
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Provision Redis with Docker Compose and connect a FrontMCP server for local session storage.'
|
|
6
|
+
tags: [setup, docker-compose, redis, docker, session, local]
|
|
7
|
+
features:
|
|
8
|
+
- 'Docker Compose with Redis 7 Alpine, AOF persistence, and health checks'
|
|
9
|
+
- "`redis` config in `@FrontMcp` with `provider: 'redis'` and environment variable fallbacks"
|
|
10
|
+
- '`--appendonly yes` preserves data across container restarts'
|
|
11
|
+
- "`keyPrefix: 'mcp:'` namespaces all session keys"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Docker Redis for Local Development
|
|
15
|
+
|
|
16
|
+
Provision Redis with Docker Compose and connect a FrontMCP server for local session storage.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```yaml
|
|
21
|
+
# docker-compose.yml
|
|
22
|
+
services:
|
|
23
|
+
redis:
|
|
24
|
+
image: redis:7-alpine
|
|
25
|
+
ports:
|
|
26
|
+
- '6379:6379'
|
|
27
|
+
volumes:
|
|
28
|
+
- redis_data:/data
|
|
29
|
+
command: redis-server --appendonly yes --maxmemory 256mb --maxmemory-policy allkeys-lru
|
|
30
|
+
healthcheck:
|
|
31
|
+
test: ['CMD', 'redis-cli', 'ping']
|
|
32
|
+
interval: 10s
|
|
33
|
+
timeout: 3s
|
|
34
|
+
retries: 3
|
|
35
|
+
|
|
36
|
+
volumes:
|
|
37
|
+
redis_data:
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```typescript
|
|
41
|
+
// src/main.ts
|
|
42
|
+
import 'reflect-metadata';
|
|
43
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
44
|
+
|
|
45
|
+
@FrontMcp({
|
|
46
|
+
info: { name: 'my-server', version: '0.1.0' },
|
|
47
|
+
apps: [
|
|
48
|
+
/* ... */
|
|
49
|
+
],
|
|
50
|
+
redis: {
|
|
51
|
+
provider: 'redis',
|
|
52
|
+
host: process.env['REDIS_HOST'] ?? 'localhost',
|
|
53
|
+
port: parseInt(process.env['REDIS_PORT'] ?? '6379', 10),
|
|
54
|
+
keyPrefix: 'mcp:',
|
|
55
|
+
},
|
|
56
|
+
})
|
|
57
|
+
export default class Server {}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```env
|
|
61
|
+
# .env
|
|
62
|
+
REDIS_HOST=localhost
|
|
63
|
+
REDIS_PORT=6379
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Start Redis and verify
|
|
68
|
+
docker compose up -d redis
|
|
69
|
+
docker compose exec redis redis-cli ping
|
|
70
|
+
# Expected: PONG
|
|
71
|
+
|
|
72
|
+
# Start the FrontMCP server
|
|
73
|
+
frontmcp dev
|
|
74
|
+
|
|
75
|
+
# Verify session keys after an MCP request
|
|
76
|
+
redis-cli -h localhost -p 6379 keys "mcp:*"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## What This Demonstrates
|
|
80
|
+
|
|
81
|
+
- Docker Compose with Redis 7 Alpine, AOF persistence, and health checks
|
|
82
|
+
- `redis` config in `@FrontMcp` with `provider: 'redis'` and environment variable fallbacks
|
|
83
|
+
- `--appendonly yes` preserves data across container restarts
|
|
84
|
+
- `keyPrefix: 'mcp:'` namespaces all session keys
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- See `setup-redis` for Vercel KV, TLS connections, and pub/sub configuration
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: hybrid-vercel-kv-with-pubsub
|
|
3
|
+
reference: setup-redis
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'Use Vercel KV for session storage and a separate Redis instance for pub/sub resource subscriptions.'
|
|
6
|
+
tags: [setup, vercel-kv, redis, vercel, session, hybrid]
|
|
7
|
+
features:
|
|
8
|
+
- 'Vercel KV handles sessions (`redis` config) while a real Redis handles pub/sub (`pubsub` config)'
|
|
9
|
+
- 'Vercel KV does not support pub/sub operations, so a separate Redis instance is required'
|
|
10
|
+
- 'Resources with `subscribe: true` rely on the `pubsub` config for real-time notifications'
|
|
11
|
+
- "The `pubsub` field accepts `provider: 'redis'` only (no Vercel KV support)"
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Hybrid Vercel KV with Redis Pub/Sub
|
|
15
|
+
|
|
16
|
+
Use Vercel KV for session storage and a separate Redis instance for pub/sub resource subscriptions.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/main.ts
|
|
22
|
+
import 'reflect-metadata';
|
|
23
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@FrontMcp({
|
|
26
|
+
info: { name: 'my-hybrid-server', version: '0.1.0' },
|
|
27
|
+
apps: [
|
|
28
|
+
/* ... */
|
|
29
|
+
],
|
|
30
|
+
transport: { protocol: 'modern' },
|
|
31
|
+
redis: {
|
|
32
|
+
provider: 'vercel-kv',
|
|
33
|
+
keyPrefix: 'mcp:',
|
|
34
|
+
},
|
|
35
|
+
pubsub: {
|
|
36
|
+
provider: 'redis',
|
|
37
|
+
host: process.env['REDIS_PUBSUB_HOST'] ?? 'localhost',
|
|
38
|
+
port: parseInt(process.env['REDIS_PUBSUB_PORT'] ?? '6379', 10),
|
|
39
|
+
password: process.env['REDIS_PUBSUB_PASSWORD'],
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
export default class Server {}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
// src/resources/live-metrics.resource.ts
|
|
47
|
+
import { Resource, ResourceContext } from '@frontmcp/sdk';
|
|
48
|
+
|
|
49
|
+
@Resource({
|
|
50
|
+
uri: 'metrics://live',
|
|
51
|
+
name: 'Live Metrics',
|
|
52
|
+
mimeType: 'application/json',
|
|
53
|
+
subscribe: true,
|
|
54
|
+
})
|
|
55
|
+
export default class LiveMetricsResource extends ResourceContext {
|
|
56
|
+
async read() {
|
|
57
|
+
return { contents: [{ uri: 'metrics://live', text: '{"cpu":45,"memory":72}' }] };
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
```env
|
|
63
|
+
# .env
|
|
64
|
+
REDIS_PUBSUB_HOST=redis.internal
|
|
65
|
+
REDIS_PUBSUB_PORT=6379
|
|
66
|
+
REDIS_PUBSUB_PASSWORD=secret
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## What This Demonstrates
|
|
70
|
+
|
|
71
|
+
- Vercel KV handles sessions (`redis` config) while a real Redis handles pub/sub (`pubsub` config)
|
|
72
|
+
- Vercel KV does not support pub/sub operations, so a separate Redis instance is required
|
|
73
|
+
- Resources with `subscribe: true` rely on the `pubsub` config for real-time notifications
|
|
74
|
+
- The `pubsub` field accepts `provider: 'redis'` only (no Vercel KV support)
|
|
75
|
+
|
|
76
|
+
## Related
|
|
77
|
+
|
|
78
|
+
- See `setup-redis` for single-provider Redis setups and session store factory usage
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-kv-serverless
|
|
3
|
+
reference: setup-redis
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Configure a FrontMCP server with Vercel KV as the session store for serverless deployment.'
|
|
6
|
+
tags: [setup, vercel-kv, redis, vercel, session, transport]
|
|
7
|
+
features:
|
|
8
|
+
- "`provider: 'vercel-kv'` for managed Redis-compatible storage on Vercel"
|
|
9
|
+
- "`transport: { protocol: 'modern' }` required for Streamable HTTP on serverless"
|
|
10
|
+
- 'Vercel auto-injects `KV_REST_API_URL` and `KV_REST_API_TOKEN` in production'
|
|
11
|
+
- 'Explicit `url` and `token` fields for local testing outside Vercel'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Vercel KV for Serverless Deployment
|
|
15
|
+
|
|
16
|
+
Configure a FrontMCP server with Vercel KV as the session store for serverless deployment.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/main.ts
|
|
22
|
+
import 'reflect-metadata';
|
|
23
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@FrontMcp({
|
|
26
|
+
info: { name: 'my-vercel-server', version: '0.1.0' },
|
|
27
|
+
apps: [
|
|
28
|
+
/* ... */
|
|
29
|
+
],
|
|
30
|
+
transport: { protocol: 'modern' },
|
|
31
|
+
redis: {
|
|
32
|
+
provider: 'vercel-kv',
|
|
33
|
+
keyPrefix: 'mcp:',
|
|
34
|
+
defaultTtlMs: 3600000,
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
export default class Server {}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
For testing Vercel KV locally with explicit credentials:
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// src/main.ts (local testing variant)
|
|
44
|
+
import 'reflect-metadata';
|
|
45
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
46
|
+
|
|
47
|
+
@FrontMcp({
|
|
48
|
+
info: { name: 'my-vercel-server', version: '0.1.0' },
|
|
49
|
+
apps: [
|
|
50
|
+
/* ... */
|
|
51
|
+
],
|
|
52
|
+
transport: { protocol: 'modern' },
|
|
53
|
+
redis: {
|
|
54
|
+
provider: 'vercel-kv',
|
|
55
|
+
url: process.env['KV_REST_API_URL'],
|
|
56
|
+
token: process.env['KV_REST_API_TOKEN'],
|
|
57
|
+
keyPrefix: 'mcp:',
|
|
58
|
+
},
|
|
59
|
+
})
|
|
60
|
+
export default class Server {}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```env
|
|
64
|
+
# .env.local (for local testing; Vercel auto-injects these in production)
|
|
65
|
+
KV_REST_API_URL=https://your-kv.kv.vercel-storage.com
|
|
66
|
+
KV_REST_API_TOKEN=your-token
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## What This Demonstrates
|
|
70
|
+
|
|
71
|
+
- `provider: 'vercel-kv'` for managed Redis-compatible storage on Vercel
|
|
72
|
+
- `transport: { protocol: 'modern' }` required for Streamable HTTP on serverless
|
|
73
|
+
- Vercel auto-injects `KV_REST_API_URL` and `KV_REST_API_TOKEN` in production
|
|
74
|
+
- Explicit `url` and `token` fields for local testing outside Vercel
|
|
75
|
+
|
|
76
|
+
## Related
|
|
77
|
+
|
|
78
|
+
- See `setup-redis` for Docker provisioning and hybrid pub/sub with Vercel KV
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: basic-sqlite-setup
|
|
3
|
+
reference: setup-sqlite
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Configure a FrontMCP server with SQLite for local session storage with WAL mode enabled.'
|
|
6
|
+
tags: [setup, sqlite, session, database, local]
|
|
7
|
+
features:
|
|
8
|
+
- '`@frontmcp/storage-sqlite` and `better-sqlite3` as required dependencies'
|
|
9
|
+
- '`sqlite` config in `@FrontMcp` with `path` and `walMode`'
|
|
10
|
+
- 'WAL mode creates three files (`.sqlite`, `.sqlite-wal`, `.sqlite-shm`)'
|
|
11
|
+
- 'Tilde-prefixed paths for stable storage across working directories'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Basic SQLite Setup
|
|
15
|
+
|
|
16
|
+
Configure a FrontMCP server with SQLite for local session storage with WAL mode enabled.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Install the native dependency
|
|
22
|
+
yarn add @frontmcp/storage-sqlite better-sqlite3
|
|
23
|
+
yarn add -D @types/better-sqlite3
|
|
24
|
+
|
|
25
|
+
# Verify the native module loads
|
|
26
|
+
node -e "require('better-sqlite3')"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
// src/main.ts
|
|
31
|
+
import 'reflect-metadata';
|
|
32
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
33
|
+
|
|
34
|
+
@FrontMcp({
|
|
35
|
+
info: { name: 'my-cli-server', version: '0.1.0' },
|
|
36
|
+
apps: [
|
|
37
|
+
/* ... */
|
|
38
|
+
],
|
|
39
|
+
sqlite: {
|
|
40
|
+
path: '~/.frontmcp/data/sessions.sqlite',
|
|
41
|
+
walMode: true,
|
|
42
|
+
},
|
|
43
|
+
})
|
|
44
|
+
export default class Server {}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```env
|
|
48
|
+
# .env
|
|
49
|
+
SQLITE_DB_PATH=~/.frontmcp/data/sessions.sqlite
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Start the server
|
|
54
|
+
frontmcp dev
|
|
55
|
+
|
|
56
|
+
# Verify the database file was created
|
|
57
|
+
ls -la ~/.frontmcp/data/sessions.sqlite
|
|
58
|
+
ls -la ~/.frontmcp/data/sessions.sqlite-wal
|
|
59
|
+
ls -la ~/.frontmcp/data/sessions.sqlite-shm
|
|
60
|
+
|
|
61
|
+
# Inspect the database after at least one session
|
|
62
|
+
sqlite3 ~/.frontmcp/data/sessions.sqlite ".tables"
|
|
63
|
+
sqlite3 ~/.frontmcp/data/sessions.sqlite "SELECT key FROM kv_store LIMIT 5;"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## What This Demonstrates
|
|
67
|
+
|
|
68
|
+
- `@frontmcp/storage-sqlite` and `better-sqlite3` as required dependencies
|
|
69
|
+
- `sqlite` config in `@FrontMcp` with `path` and `walMode`
|
|
70
|
+
- WAL mode creates three files (`.sqlite`, `.sqlite-wal`, `.sqlite-shm`)
|
|
71
|
+
- Tilde-prefixed paths for stable storage across working directories
|
|
72
|
+
|
|
73
|
+
## Related
|
|
74
|
+
|
|
75
|
+
- See `setup-sqlite` for encryption, custom TTL cleanup, and migration to Redis
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: encrypted-sqlite-storage
|
|
3
|
+
reference: setup-sqlite
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Enable AES-256-GCM at-rest encryption for sensitive session data stored in SQLite.'
|
|
6
|
+
tags: [setup, sqlite, session, database, encrypted, storage]
|
|
7
|
+
features:
|
|
8
|
+
- '`encryption.secret` enables AES-256-GCM encryption with HKDF-SHA256 key derivation'
|
|
9
|
+
- 'The secret must be at least 32 characters and sourced from environment variables'
|
|
10
|
+
- 'The same secret must be used across server restarts to decrypt existing data'
|
|
11
|
+
- 'Never hardcode the encryption secret in source code'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Encrypted SQLite Storage
|
|
15
|
+
|
|
16
|
+
Enable AES-256-GCM at-rest encryption for sensitive session data stored in SQLite.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/main.ts
|
|
22
|
+
import 'reflect-metadata';
|
|
23
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@FrontMcp({
|
|
26
|
+
info: { name: 'secure-server', version: '0.1.0' },
|
|
27
|
+
apps: [
|
|
28
|
+
/* ... */
|
|
29
|
+
],
|
|
30
|
+
sqlite: {
|
|
31
|
+
path: '~/.frontmcp/data/sessions.sqlite',
|
|
32
|
+
walMode: true,
|
|
33
|
+
encryption: {
|
|
34
|
+
secret: process.env['SQLITE_ENCRYPTION_SECRET']!,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
})
|
|
38
|
+
export default class Server {}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```env
|
|
42
|
+
# .env (secret must be at least 32 characters)
|
|
43
|
+
SQLITE_ENCRYPTION_SECRET=my-super-secret-key-at-least-32-characters-long
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## What This Demonstrates
|
|
47
|
+
|
|
48
|
+
- `encryption.secret` enables AES-256-GCM encryption with HKDF-SHA256 key derivation
|
|
49
|
+
- The secret must be at least 32 characters and sourced from environment variables
|
|
50
|
+
- The same secret must be used across server restarts to decrypt existing data
|
|
51
|
+
- Never hardcode the encryption secret in source code
|
|
52
|
+
|
|
53
|
+
## Related
|
|
54
|
+
|
|
55
|
+
- See `setup-sqlite` for WAL mode details, TTL cleanup, and migration to Redis
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: unix-socket-daemon
|
|
3
|
+
reference: setup-sqlite
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'Configure a FrontMCP daemon that listens on a unix socket and uses SQLite for persistent storage.'
|
|
6
|
+
tags: [setup, unix-socket, sqlite, session, transport, database]
|
|
7
|
+
features:
|
|
8
|
+
- '`http.unixSocket` for unix socket transport instead of TCP port'
|
|
9
|
+
- "`transport: { protocol: 'modern' }` for Streamable HTTP with strict sessions"
|
|
10
|
+
- '`ttlCleanupIntervalMs: 15000` for more aggressive cleanup on high-throughput daemons'
|
|
11
|
+
- 'Absolute path for the database file in system-level storage (`/var/lib/`)'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Unix Socket Daemon with SQLite
|
|
15
|
+
|
|
16
|
+
Configure a FrontMCP daemon that listens on a unix socket and uses SQLite for persistent storage.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/main.ts
|
|
22
|
+
import 'reflect-metadata';
|
|
23
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@FrontMcp({
|
|
26
|
+
info: { name: 'frontmcp-daemon', version: '0.1.0' },
|
|
27
|
+
apps: [
|
|
28
|
+
/* ... */
|
|
29
|
+
],
|
|
30
|
+
sqlite: {
|
|
31
|
+
path: '/var/lib/frontmcp/daemon.sqlite',
|
|
32
|
+
walMode: true,
|
|
33
|
+
ttlCleanupIntervalMs: 15000,
|
|
34
|
+
},
|
|
35
|
+
transport: {
|
|
36
|
+
protocol: 'modern',
|
|
37
|
+
},
|
|
38
|
+
http: {
|
|
39
|
+
unixSocket: '/tmp/frontmcp.sock',
|
|
40
|
+
},
|
|
41
|
+
})
|
|
42
|
+
export default class Server {}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```env
|
|
46
|
+
# .env
|
|
47
|
+
SQLITE_DB_PATH=/var/lib/frontmcp/daemon.sqlite
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Start the daemon
|
|
52
|
+
frontmcp dev
|
|
53
|
+
|
|
54
|
+
# Test via unix socket
|
|
55
|
+
curl --unix-socket /tmp/frontmcp.sock \
|
|
56
|
+
-X POST http://localhost/mcp \
|
|
57
|
+
-H "Content-Type: application/json" \
|
|
58
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## What This Demonstrates
|
|
62
|
+
|
|
63
|
+
- `http.unixSocket` for unix socket transport instead of TCP port
|
|
64
|
+
- `transport: { protocol: 'modern' }` for Streamable HTTP with strict sessions
|
|
65
|
+
- `ttlCleanupIntervalMs: 15000` for more aggressive cleanup on high-throughput daemons
|
|
66
|
+
- Absolute path for the database file in system-level storage (`/var/lib/`)
|
|
67
|
+
|
|
68
|
+
## Related
|
|
69
|
+
|
|
70
|
+
- See `setup-sqlite` for basic setup, encryption, and WAL mode configuration
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontmcp-skills-usage
|
|
3
|
+
description: Search, install, and manage FrontMCP skill catalog for AI agents (Claude Code, Codex)
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# FrontMCP Skills — Search, Install, and Usage
|
|
2
7
|
|
|
3
8
|
FrontMCP ships with a catalog of development skills that teach AI agents (Claude Code, Codex) how to build FrontMCP servers. You can deliver these skills **statically** (copy to disk) or **dynamically** (search on demand via CLI).
|
|
@@ -49,7 +54,7 @@ frontmcp skills list
|
|
|
49
54
|
frontmcp skills list --category development
|
|
50
55
|
|
|
51
56
|
# Show full skill content
|
|
52
|
-
frontmcp skills
|
|
57
|
+
frontmcp skills read frontmcp-development
|
|
53
58
|
|
|
54
59
|
# Install a skill for Claude Code
|
|
55
60
|
frontmcp skills install frontmcp-development --provider claude
|
|
@@ -81,13 +86,23 @@ frontmcp skills list --tag redis # Skills tagged with redis
|
|
|
81
86
|
frontmcp skills list --bundle recommended # Recommended bundle
|
|
82
87
|
```
|
|
83
88
|
|
|
84
|
-
### `frontmcp skills
|
|
89
|
+
### `frontmcp skills read <name> [reference]`
|
|
85
90
|
|
|
86
|
-
|
|
91
|
+
Read a skill's main SKILL.md, a specific reference, or list available references:
|
|
87
92
|
|
|
88
93
|
```bash
|
|
89
|
-
|
|
90
|
-
frontmcp skills
|
|
94
|
+
# Read main skill content
|
|
95
|
+
frontmcp skills read frontmcp-development
|
|
96
|
+
|
|
97
|
+
# List all references for a skill
|
|
98
|
+
frontmcp skills read frontmcp-development --refs
|
|
99
|
+
|
|
100
|
+
# Read a specific reference by name
|
|
101
|
+
frontmcp skills read frontmcp-development create-tool
|
|
102
|
+
|
|
103
|
+
# Read any file using colon syntax (works with non-.md files too)
|
|
104
|
+
frontmcp skills read frontmcp-development:references/create-tool.md
|
|
105
|
+
frontmcp skills read frontmcp-development:scripts/setup.sh
|
|
91
106
|
```
|
|
92
107
|
|
|
93
108
|
### `frontmcp skills install <name>`
|
|
@@ -154,10 +169,10 @@ Use the CLI to search and show skills on demand — no installation needed:
|
|
|
154
169
|
frontmcp skills search "how to create a tool with zod"
|
|
155
170
|
|
|
156
171
|
# Pipe skill content directly into context
|
|
157
|
-
frontmcp skills
|
|
172
|
+
frontmcp skills read frontmcp-development
|
|
158
173
|
```
|
|
159
174
|
|
|
160
|
-
This works because `frontmcp skills
|
|
175
|
+
This works because `frontmcp skills read` outputs the full SKILL.md content to stdout.
|
|
161
176
|
|
|
162
177
|
## Comparison: Static vs Dynamic
|
|
163
178
|
|
|
@@ -184,7 +199,7 @@ frontmcp skills install frontmcp-config --provider claude
|
|
|
184
199
|
# Everything else — search on demand
|
|
185
200
|
frontmcp skills search "deploy to vercel"
|
|
186
201
|
frontmcp skills search "rate limiting"
|
|
187
|
-
frontmcp skills
|
|
202
|
+
frontmcp skills read frontmcp-deployment
|
|
188
203
|
```
|
|
189
204
|
|
|
190
205
|
## Provider Directories
|
|
@@ -245,7 +260,7 @@ frontmcp skills list --category guides # End-to-end examples and best prac
|
|
|
245
260
|
### Runtime
|
|
246
261
|
|
|
247
262
|
- [ ] Installed skills appear in the correct provider directory after `frontmcp skills install`
|
|
248
|
-
- [ ] `frontmcp skills
|
|
263
|
+
- [ ] `frontmcp skills read <name>` outputs the full SKILL.md content to stdout
|
|
249
264
|
- [ ] `frontmcp skills search <query>` returns relevant results ranked by relevance
|
|
250
265
|
- [ ] AI agent (Claude Code or Codex) loads installed skills in its system prompt context
|
|
251
266
|
|
|
@@ -259,6 +274,15 @@ frontmcp skills list --category guides # End-to-end examples and best prac
|
|
|
259
274
|
| Skill content is outdated after a CLI upgrade | Static installs are point-in-time snapshots of the catalog | Re-run `frontmcp skills install <name> --provider claude` to fetch the latest version |
|
|
260
275
|
| Too many tokens consumed by agent context | All skills installed statically, inflating the system prompt | Uninstall rarely-used skills and switch to dynamic search (`frontmcp skills search`) for occasional needs |
|
|
261
276
|
|
|
277
|
+
## Examples
|
|
278
|
+
|
|
279
|
+
| Example | Level | Description |
|
|
280
|
+
| ----------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------- |
|
|
281
|
+
| [`bundle-presets-scaffolding`](../examples/frontmcp-skills-usage/bundle-presets-scaffolding.md) | Intermediate | Use `--skills` flag during project creation to install a skill bundle preset. |
|
|
282
|
+
| [`install-and-search-skills`](../examples/frontmcp-skills-usage/install-and-search-skills.md) | Basic | Install skills statically for Claude Code and use dynamic CLI search for on-demand discovery. |
|
|
283
|
+
|
|
284
|
+
> See all examples in [`examples/frontmcp-skills-usage/`](../examples/frontmcp-skills-usage/)
|
|
285
|
+
|
|
262
286
|
## Reference
|
|
263
287
|
|
|
264
288
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/servers/skills>
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: multi-app-composition
|
|
3
|
+
description: Compose multiple @App classes, ESM packages, and remote MCP servers into a single FrontMCP gateway
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Multi-App Composition
|
|
2
7
|
|
|
3
8
|
Compose multiple `@App` classes into a single `@FrontMcp` server. Each app contributes its own tools, resources, prompts, skills, and plugins. Apps can be local classes, npm packages loaded at runtime, or remote MCP servers proxied through your gateway.
|
|
@@ -394,6 +399,16 @@ export default class Server {}
|
|
|
394
399
|
| `standalone: true` app tools not visible | Standalone apps are fully isolated by design | Use `standalone: 'includeInParent'` to expose tools in the parent server while keeping scope isolation |
|
|
395
400
|
| Per-app auth not working | App does not declare its own `auth` field | Add `auth` configuration directly on the `@App` decorator; omitted `auth` inherits server-level defaults |
|
|
396
401
|
|
|
402
|
+
## Examples
|
|
403
|
+
|
|
404
|
+
| Example | Level | Description |
|
|
405
|
+
| --------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------- |
|
|
406
|
+
| [`local-apps-with-shared-tools`](../examples/multi-app-composition/local-apps-with-shared-tools.md) | Basic | Compose multiple local `@App` classes into a server with shared tools available to all apps. |
|
|
407
|
+
| [`per-app-auth-and-isolation`](../examples/multi-app-composition/per-app-auth-and-isolation.md) | Advanced | Configure mixed authentication modes and scope isolation for different apps in a single server. |
|
|
408
|
+
| [`remote-and-esm-apps`](../examples/multi-app-composition/remote-and-esm-apps.md) | Intermediate | Compose local, ESM (npm package), and remote (external MCP server) apps into a single gateway. |
|
|
409
|
+
|
|
410
|
+
> See all examples in [`examples/multi-app-composition/`](../examples/multi-app-composition/)
|
|
411
|
+
|
|
397
412
|
## Reference
|
|
398
413
|
|
|
399
414
|
- [Multi-App Composition Documentation](https://docs.agentfront.dev/frontmcp/features/multi-app-composition)
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: nx-workflow
|
|
3
|
+
description: Scaffold, build, test, and deploy FrontMCP projects using the @frontmcp/nx plugin in a monorepo
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Nx Monorepo Workflow for FrontMCP
|
|
2
7
|
|
|
3
8
|
Use the `@frontmcp/nx` plugin to scaffold, build, test, and deploy FrontMCP projects in an Nx monorepo. The plugin provides generators for every FrontMCP primitive (tools, resources, prompts, skills, agents, plugins, adapters, providers, flows, jobs, workflows) and deployment shells for multiple targets.
|
|
@@ -408,6 +413,16 @@ Complete list of all `@frontmcp/nx` generators from `generators.json`:
|
|
|
408
413
|
| Build fails with circular dependency error | Library A imports from Library B and vice versa | Use `nx graph` to visualize the cycle; extract shared code into a new library |
|
|
409
414
|
| Cache not working (full rebuild every time) | Missing or misconfigured `cacheableOperations` in `nx.json` | Ensure `build`, `test`, and `lint` are listed in `targetDefaults` with `cache: true` |
|
|
410
415
|
|
|
416
|
+
## Examples
|
|
417
|
+
|
|
418
|
+
| Example | Level | Description |
|
|
419
|
+
| ------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------- |
|
|
420
|
+
| [`build-test-affected`](../examples/nx-workflow/build-test-affected.md) | Intermediate | Use Nx commands for efficient building, testing, and CI with affected-only execution. |
|
|
421
|
+
| [`multi-server-deployment`](../examples/nx-workflow/multi-server-deployment.md) | Advanced | Generate multiple servers in an Nx workspace, each composing different apps for different deployment targets. |
|
|
422
|
+
| [`scaffold-and-generate`](../examples/nx-workflow/scaffold-and-generate.md) | Basic | Initialize an Nx workspace and use generators to scaffold an app with tools, resources, and a server. |
|
|
423
|
+
|
|
424
|
+
> See all examples in [`examples/nx-workflow/`](../examples/nx-workflow/)
|
|
425
|
+
|
|
411
426
|
## Reference
|
|
412
427
|
|
|
413
428
|
- **Docs:** [Nx Plugin Overview](https://docs.agentfront.dev/frontmcp/nx-plugin/overview)
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-structure-nx
|
|
3
|
+
description: Canonical directory layout, generators, and dependency rules for FrontMCP Nx monorepos
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Nx Monorepo Project Structure
|
|
2
7
|
|
|
3
8
|
## When to Use This Skill
|
|
@@ -240,6 +245,16 @@ Use `nx graph` to visualize the dependency graph and ensure no circular imports
|
|
|
240
245
|
| Nx cache returns stale results | Source files changed but Nx hash did not detect it | Run `nx reset` to clear the cache, then rebuild |
|
|
241
246
|
| Server cannot find app export | App barrel `index.ts` does not export the `@App` class | Add the app class to the barrel export in `apps/<name>/src/index.ts` |
|
|
242
247
|
|
|
248
|
+
## Examples
|
|
249
|
+
|
|
250
|
+
| Example | Level | Description |
|
|
251
|
+
| ------------------------------------------------------------------------------------------ | ------------ | ------------------------------------------------------------------------------------------------------------------------------ |
|
|
252
|
+
| [`nx-generator-scaffolding`](../examples/project-structure-nx/nx-generator-scaffolding.md) | Basic | Use `@frontmcp/nx` generators to scaffold tools, resources, and providers within an app, with automatic barrel export updates. |
|
|
253
|
+
| [`nx-workspace-with-apps`](../examples/project-structure-nx/nx-workspace-with-apps.md) | Basic | Scaffold an Nx monorepo with two apps and a server that composes them into a single gateway. |
|
|
254
|
+
| [`shared-library-usage`](../examples/project-structure-nx/shared-library-usage.md) | Intermediate | Create a shared library in an Nx monorepo and use it from multiple apps to avoid cross-app imports. |
|
|
255
|
+
|
|
256
|
+
> See all examples in [`examples/project-structure-nx/`](../examples/project-structure-nx/)
|
|
257
|
+
|
|
243
258
|
## Reference
|
|
244
259
|
|
|
245
260
|
- [Nx Plugin Documentation](https://docs.agentfront.dev/frontmcp/nx-plugin/overview)
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-structure-standalone
|
|
3
|
+
description: File layout, naming conventions, and dev workflow for standalone FrontMCP projects
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Standalone Project Structure
|
|
2
7
|
|
|
3
8
|
## When to Use This Skill
|
|
@@ -206,6 +211,16 @@ Skills inside `src/skills/` are `@Skill` classes that are part of your applicati
|
|
|
206
211
|
| Build target error | Invalid `--target` flag value | Use `node`, `vercel`, `lambda`, or `cloudflare` as the target value |
|
|
207
212
|
| Catalog skills not loaded | Skills placed in `src/skills/` instead of top-level `skills/` | Move catalog `SKILL.md` directories to the top-level `skills/` directory |
|
|
208
213
|
|
|
214
|
+
## Examples
|
|
215
|
+
|
|
216
|
+
| Example | Level | Description |
|
|
217
|
+
| -------------------------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------- |
|
|
218
|
+
| [`dev-workflow-commands`](../examples/project-structure-standalone/dev-workflow-commands.md) | Basic | Run the standard development workflow for a standalone FrontMCP project: dev server, build, and tests. |
|
|
219
|
+
| [`feature-folder-organization`](../examples/project-structure-standalone/feature-folder-organization.md) | Intermediate | Organize a growing standalone project into domain-specific feature folders instead of flat type-based directories. |
|
|
220
|
+
| [`minimal-standalone-layout`](../examples/project-structure-standalone/minimal-standalone-layout.md) | Basic | Set up the canonical file structure for a standalone FrontMCP project with one app, one tool, and the required entry point. |
|
|
221
|
+
|
|
222
|
+
> See all examples in [`examples/project-structure-standalone/`](../examples/project-structure-standalone/)
|
|
223
|
+
|
|
209
224
|
## Reference
|
|
210
225
|
|
|
211
226
|
- [Quickstart Documentation](https://docs.agentfront.dev/frontmcp/getting-started/quickstart)
|