@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,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
|
|
@@ -274,6 +274,15 @@ frontmcp skills list --category guides # End-to-end examples and best prac
|
|
|
274
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 |
|
|
275
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 |
|
|
276
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
|
+
|
|
277
286
|
## Reference
|
|
278
287
|
|
|
279
288
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/servers/skills>
|
|
@@ -399,6 +399,16 @@ export default class Server {}
|
|
|
399
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 |
|
|
400
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 |
|
|
401
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
|
+
|
|
402
412
|
## Reference
|
|
403
413
|
|
|
404
414
|
- [Multi-App Composition Documentation](https://docs.agentfront.dev/frontmcp/features/multi-app-composition)
|
|
@@ -413,6 +413,16 @@ Complete list of all `@frontmcp/nx` generators from `generators.json`:
|
|
|
413
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 |
|
|
414
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` |
|
|
415
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
|
+
|
|
416
426
|
## Reference
|
|
417
427
|
|
|
418
428
|
- **Docs:** [Nx Plugin Overview](https://docs.agentfront.dev/frontmcp/nx-plugin/overview)
|
|
@@ -245,6 +245,16 @@ Use `nx graph` to visualize the dependency graph and ensure no circular imports
|
|
|
245
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 |
|
|
246
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` |
|
|
247
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
|
+
|
|
248
258
|
## Reference
|
|
249
259
|
|
|
250
260
|
- [Nx Plugin Documentation](https://docs.agentfront.dev/frontmcp/nx-plugin/overview)
|
|
@@ -211,6 +211,16 @@ Skills inside `src/skills/` are `@Skill` classes that are part of your applicati
|
|
|
211
211
|
| Build target error | Invalid `--target` flag value | Use `node`, `vercel`, `lambda`, or `cloudflare` as the target value |
|
|
212
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 |
|
|
213
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
|
+
|
|
214
224
|
## Reference
|
|
215
225
|
|
|
216
226
|
- [Quickstart Documentation](https://docs.agentfront.dev/frontmcp/getting-started/quickstart)
|
|
@@ -220,6 +220,15 @@ Only update:
|
|
|
220
220
|
- [ ] Development section includes `frontmcp dev`, `frontmcp test`, `frontmcp inspect`
|
|
221
221
|
- [ ] License matches `package.json`
|
|
222
222
|
|
|
223
|
+
## Examples
|
|
224
|
+
|
|
225
|
+
| Example | Level | Description |
|
|
226
|
+
| ---------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------ |
|
|
227
|
+
| [`node-server-readme`](../examples/readme-guide/node-server-readme.md) | Basic | Generate a README for a FrontMCP server deployed as a Docker/Node.js service with tools and resources. |
|
|
228
|
+
| [`vercel-deployment-readme`](../examples/readme-guide/vercel-deployment-readme.md) | Intermediate | Generate a README for a FrontMCP server deployed to Vercel with Vercel KV storage. |
|
|
229
|
+
|
|
230
|
+
> See all examples in [`examples/readme-guide/`](../examples/readme-guide/)
|
|
231
|
+
|
|
223
232
|
## Reference
|
|
224
233
|
|
|
225
234
|
- Related skills: `frontmcp-deployment` (for target-specific deployment details)
|
|
@@ -492,6 +492,16 @@ Run with: `nx serve <projectName>`.
|
|
|
492
492
|
| Build fails with "Cannot find module '@frontmcp/sdk'" | Dependencies were not installed after scaffolding | Run `yarn install` (or `npm install` / `pnpm install`) in the project root |
|
|
493
493
|
| Vercel deploy returns 500 on `/mcp` endpoint | Transport not set to `modern` or storage not configured for Vercel KV | Set `transport: { protocol: 'modern' }` and `redis: { provider: 'vercel-kv' }` in `@FrontMcp` metadata |
|
|
494
494
|
|
|
495
|
+
## Examples
|
|
496
|
+
|
|
497
|
+
| Example | Level | Description |
|
|
498
|
+
| ----------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
499
|
+
| [`basic-node-server`](../examples/setup-project/basic-node-server.md) | Basic | Scaffold a minimal FrontMCP server with one app and one tool, running on Node.js with HTTP transport. |
|
|
500
|
+
| [`cli-scaffold-with-flags`](../examples/setup-project/cli-scaffold-with-flags.md) | Basic | Use the `frontmcp create` CLI to scaffold a complete project non-interactively with explicit flags for deployment target, Redis, and package manager. |
|
|
501
|
+
| [`vercel-serverless-server`](../examples/setup-project/vercel-serverless-server.md) | Intermediate | Configure a FrontMCP server for Vercel deployment with Vercel KV storage and modern transport protocol. |
|
|
502
|
+
|
|
503
|
+
> See all examples in [`examples/setup-project/`](../examples/setup-project/)
|
|
504
|
+
|
|
495
505
|
## Reference
|
|
496
506
|
|
|
497
507
|
- [Getting Started Quickstart](https://docs.agentfront.dev/frontmcp/getting-started/quickstart)
|
|
@@ -357,6 +357,16 @@ You should see session keys like `mcp:session:<session-id>`.
|
|
|
357
357
|
| Vercel KV `401 Unauthorized` | Missing or invalid KV tokens in the environment | Verify `KV_REST_API_URL` and `KV_REST_API_TOKEN` in the Vercel dashboard and redeploy |
|
|
358
358
|
| Sessions lost after container restart | Redis running without append-only persistence | Add `--appendonly yes` to the Redis command in docker-compose or use a managed Redis with persistence enabled |
|
|
359
359
|
|
|
360
|
+
## Examples
|
|
361
|
+
|
|
362
|
+
| Example | Level | Description |
|
|
363
|
+
| ----------------------------------------------------------------------------------------- | ------------ | --------------------------------------------------------------------------------------------------- |
|
|
364
|
+
| [`docker-redis-local-dev`](../examples/setup-redis/docker-redis-local-dev.md) | Basic | Provision Redis with Docker Compose and connect a FrontMCP server for local session storage. |
|
|
365
|
+
| [`hybrid-vercel-kv-with-pubsub`](../examples/setup-redis/hybrid-vercel-kv-with-pubsub.md) | Advanced | Use Vercel KV for session storage and a separate Redis instance for pub/sub resource subscriptions. |
|
|
366
|
+
| [`vercel-kv-serverless`](../examples/setup-redis/vercel-kv-serverless.md) | Intermediate | Configure a FrontMCP server with Vercel KV as the session store for serverless deployment. |
|
|
367
|
+
|
|
368
|
+
> See all examples in [`examples/setup-redis/`](../examples/setup-redis/)
|
|
369
|
+
|
|
360
370
|
## Reference
|
|
361
371
|
|
|
362
372
|
- [Redis Setup Docs](https://docs.agentfront.dev/frontmcp/deployment/redis-setup)
|
|
@@ -346,6 +346,16 @@ The change in `src/main.ts`:
|
|
|
346
346
|
| WAL errors on network mount | WAL mode requires a local filesystem with shared-memory support | Move the database to a local disk or set `walMode: false` |
|
|
347
347
|
| Encrypted data unreadable after restart | Encryption secret changed or missing | The secret must be identical across restarts; if the original secret is lost, delete the database and let it be recreated |
|
|
348
348
|
|
|
349
|
+
## Examples
|
|
350
|
+
|
|
351
|
+
| Example | Level | Description |
|
|
352
|
+
| ---------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------- |
|
|
353
|
+
| [`basic-sqlite-setup`](../examples/setup-sqlite/basic-sqlite-setup.md) | Basic | Configure a FrontMCP server with SQLite for local session storage with WAL mode enabled. |
|
|
354
|
+
| [`encrypted-sqlite-storage`](../examples/setup-sqlite/encrypted-sqlite-storage.md) | Intermediate | Enable AES-256-GCM at-rest encryption for sensitive session data stored in SQLite. |
|
|
355
|
+
| [`unix-socket-daemon`](../examples/setup-sqlite/unix-socket-daemon.md) | Advanced | Configure a FrontMCP daemon that listens on a unix socket and uses SQLite for persistent storage. |
|
|
356
|
+
|
|
357
|
+
> See all examples in [`examples/setup-sqlite/`](../examples/setup-sqlite/)
|
|
358
|
+
|
|
349
359
|
## Reference
|
|
350
360
|
|
|
351
361
|
- **Docs:** [SQLite Setup Guide](https://docs.agentfront.dev/frontmcp/deployment/sqlite-setup)
|