@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
package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: secure-nonroot-dockerfile
|
|
3
|
+
reference: deploy-to-node-dockerfile
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'A production Dockerfile with a non-root user, proper ownership, and security hardening.'
|
|
6
|
+
tags: [deployment, dockerfile, docker, security, node, secure]
|
|
7
|
+
features:
|
|
8
|
+
- 'Creating a dedicated non-root user (`frontmcp`) and switching to it with `USER`'
|
|
9
|
+
- 'Setting file ownership before switching users so the process can read its own files'
|
|
10
|
+
- 'Combining the Dockerfile with runtime resource limits (`--memory`, `--cpus`)'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Secure Non-Root Dockerfile
|
|
14
|
+
|
|
15
|
+
A production Dockerfile with a non-root user, proper ownership, and security hardening.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```dockerfile
|
|
20
|
+
# Dockerfile
|
|
21
|
+
|
|
22
|
+
# ---- Build Stage ----
|
|
23
|
+
FROM node:24-alpine AS builder
|
|
24
|
+
WORKDIR /app
|
|
25
|
+
COPY package.json yarn.lock ./
|
|
26
|
+
RUN yarn install --frozen-lockfile
|
|
27
|
+
COPY . .
|
|
28
|
+
RUN yarn frontmcp build --target node
|
|
29
|
+
|
|
30
|
+
# ---- Production Stage ----
|
|
31
|
+
FROM node:24-alpine AS production
|
|
32
|
+
WORKDIR /app
|
|
33
|
+
|
|
34
|
+
# Create non-root user for security
|
|
35
|
+
RUN addgroup -S frontmcp && adduser -S frontmcp -G frontmcp
|
|
36
|
+
|
|
37
|
+
# Copy only production artifacts
|
|
38
|
+
COPY --from=builder /app/dist ./dist
|
|
39
|
+
COPY --from=builder /app/package.json ./
|
|
40
|
+
COPY --from=builder /app/yarn.lock ./
|
|
41
|
+
|
|
42
|
+
# Install production dependencies only
|
|
43
|
+
RUN yarn install --frozen-lockfile --production && \
|
|
44
|
+
yarn cache clean
|
|
45
|
+
|
|
46
|
+
# Set ownership to non-root user
|
|
47
|
+
RUN chown -R frontmcp:frontmcp /app
|
|
48
|
+
|
|
49
|
+
USER frontmcp
|
|
50
|
+
|
|
51
|
+
# Environment defaults
|
|
52
|
+
ENV NODE_ENV=production
|
|
53
|
+
ENV PORT=3000
|
|
54
|
+
|
|
55
|
+
EXPOSE 3000
|
|
56
|
+
|
|
57
|
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
|
|
58
|
+
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
|
|
59
|
+
|
|
60
|
+
CMD ["node", "dist/main.js"]
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Build
|
|
65
|
+
docker build -t my-frontmcp-server:secure .
|
|
66
|
+
|
|
67
|
+
# Run with resource limits
|
|
68
|
+
docker run -p 3000:3000 \
|
|
69
|
+
--memory=512m \
|
|
70
|
+
--cpus=1.0 \
|
|
71
|
+
-e NODE_ENV=production \
|
|
72
|
+
-e REDIS_URL=redis://redis:6379 \
|
|
73
|
+
my-frontmcp-server:secure
|
|
74
|
+
|
|
75
|
+
# Verify the process runs as non-root
|
|
76
|
+
docker exec $(docker ps -q -f ancestor=my-frontmcp-server:secure) whoami
|
|
77
|
+
# frontmcp
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## What This Demonstrates
|
|
81
|
+
|
|
82
|
+
- Creating a dedicated non-root user (`frontmcp`) and switching to it with `USER`
|
|
83
|
+
- Setting file ownership before switching users so the process can read its own files
|
|
84
|
+
- Combining the Dockerfile with runtime resource limits (`--memory`, `--cpus`)
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- See `deploy-to-node-dockerfile` for the complete reference Dockerfile
|
|
89
|
+
- See `deploy-to-node` for Docker Compose, PM2, and NGINX deployment patterns
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-mcp-endpoint-test
|
|
3
|
+
reference: deploy-to-vercel
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'Verify a Vercel-deployed FrontMCP server by testing health, tool listing, and tool invocation.'
|
|
6
|
+
tags: [deployment, json-rpc, vercel, mcp, endpoint]
|
|
7
|
+
features:
|
|
8
|
+
- 'Testing the health endpoint and MCP JSON-RPC API of a deployed Vercel function'
|
|
9
|
+
- 'Using preview deployments to validate changes before promoting to production'
|
|
10
|
+
- 'Setting `maxDuration` according to your Vercel plan (Hobby: 10s, Pro: 60s, Enterprise: 900s)'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Testing a Vercel MCP Endpoint
|
|
14
|
+
|
|
15
|
+
Verify a Vercel-deployed FrontMCP server by testing health, tool listing, and tool invocation.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# Health check
|
|
21
|
+
curl https://your-project.vercel.app/health
|
|
22
|
+
# {"status":"ok"}
|
|
23
|
+
|
|
24
|
+
# List tools via JSON-RPC
|
|
25
|
+
curl -X POST https://your-project.vercel.app/mcp \
|
|
26
|
+
-H "Content-Type: application/json" \
|
|
27
|
+
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'
|
|
28
|
+
|
|
29
|
+
# Call a tool via JSON-RPC
|
|
30
|
+
curl -X POST https://your-project.vercel.app/mcp \
|
|
31
|
+
-H "Content-Type: application/json" \
|
|
32
|
+
-d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"greet","arguments":{"name":"World"}},"id":2}'
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Preview deployment for PR testing
|
|
37
|
+
vercel
|
|
38
|
+
# Creates a unique preview URL: https://my-project-abc123.vercel.app
|
|
39
|
+
|
|
40
|
+
# Test the preview before promoting to production
|
|
41
|
+
curl https://my-project-abc123.vercel.app/health
|
|
42
|
+
|
|
43
|
+
# Promote to production
|
|
44
|
+
vercel --prod
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
// vercel.json - with maxDuration matching your plan
|
|
49
|
+
{
|
|
50
|
+
"rewrites": [{ "source": "/(.*)", "destination": "/api/frontmcp" }],
|
|
51
|
+
"functions": {
|
|
52
|
+
"api/frontmcp.ts": {
|
|
53
|
+
"memory": 1024,
|
|
54
|
+
"maxDuration": 10
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"regions": ["iad1"]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## What This Demonstrates
|
|
62
|
+
|
|
63
|
+
- Testing the health endpoint and MCP JSON-RPC API of a deployed Vercel function
|
|
64
|
+
- Using preview deployments to validate changes before promoting to production
|
|
65
|
+
- Setting `maxDuration` according to your Vercel plan (Hobby: 10s, Pro: 60s, Enterprise: 900s)
|
|
66
|
+
|
|
67
|
+
## Related
|
|
68
|
+
|
|
69
|
+
- See `deploy-to-vercel` for the full deployment, KV storage, and cold start optimization guide
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-with-kv
|
|
3
|
+
reference: deploy-to-vercel
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Deploy a FrontMCP server to Vercel serverless functions with Vercel KV for session persistence.'
|
|
6
|
+
tags: [deployment, vercel-kv, vercel, session, performance, serverless]
|
|
7
|
+
features:
|
|
8
|
+
- "Configuring `{ provider: 'vercel-kv' }` for automatic Vercel KV session storage"
|
|
9
|
+
- 'The `vercel.json` catch-all rewrite that routes all requests to the single FrontMCP handler'
|
|
10
|
+
- 'Setting function memory to 1024 MB for faster cold starts'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Deploy to Vercel with KV Storage
|
|
14
|
+
|
|
15
|
+
Deploy a FrontMCP server to Vercel serverless functions with Vercel KV for session persistence.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
// src/server.ts
|
|
21
|
+
import { FrontMcp, App, Tool, ToolContext } from '@frontmcp/sdk';
|
|
22
|
+
import { z } from 'zod';
|
|
23
|
+
|
|
24
|
+
@Tool({
|
|
25
|
+
name: 'greet',
|
|
26
|
+
description: 'Greet a user',
|
|
27
|
+
inputSchema: { name: z.string() },
|
|
28
|
+
})
|
|
29
|
+
class GreetTool extends ToolContext<{ name: string }> {
|
|
30
|
+
async execute(input: { name: string }) {
|
|
31
|
+
return { content: [{ type: 'text' as const, text: `Hello, ${input.name}!` }] };
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@App({ name: 'MyApp', tools: [GreetTool] })
|
|
36
|
+
class MyApp {}
|
|
37
|
+
|
|
38
|
+
@FrontMcp({
|
|
39
|
+
info: { name: 'my-server', version: '1.0.0' },
|
|
40
|
+
apps: [MyApp],
|
|
41
|
+
redis: { provider: 'vercel-kv' },
|
|
42
|
+
})
|
|
43
|
+
class MyServer {}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
// vercel.json
|
|
48
|
+
{
|
|
49
|
+
"rewrites": [{ "source": "/(.*)", "destination": "/api/frontmcp" }],
|
|
50
|
+
"functions": {
|
|
51
|
+
"api/frontmcp.ts": {
|
|
52
|
+
"memory": 1024,
|
|
53
|
+
"maxDuration": 60
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"regions": ["iad1"]
|
|
57
|
+
}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
# Build for Vercel
|
|
62
|
+
frontmcp build --target vercel
|
|
63
|
+
|
|
64
|
+
# Preview deployment
|
|
65
|
+
vercel
|
|
66
|
+
|
|
67
|
+
# Production deployment
|
|
68
|
+
vercel --prod
|
|
69
|
+
|
|
70
|
+
# Verify
|
|
71
|
+
curl https://your-project.vercel.app/health
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## What This Demonstrates
|
|
75
|
+
|
|
76
|
+
- Configuring `{ provider: 'vercel-kv' }` for automatic Vercel KV session storage
|
|
77
|
+
- The `vercel.json` catch-all rewrite that routes all requests to the single FrontMCP handler
|
|
78
|
+
- Setting function memory to 1024 MB for faster cold starts
|
|
79
|
+
|
|
80
|
+
## Related
|
|
81
|
+
|
|
82
|
+
- See `deploy-to-vercel` for KV provisioning, environment variables, and cold start optimization
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-with-skills-cache
|
|
3
|
+
reference: deploy-to-vercel
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Deploy a FrontMCP server to Vercel with skills enabled and KV-backed skill caching.'
|
|
6
|
+
tags: [deployment, vercel-kv, vercel, cache, security, skills]
|
|
7
|
+
features:
|
|
8
|
+
- 'Enabling skills cache backed by Vercel KV with a 60-second TTL'
|
|
9
|
+
- 'Setting environment variables via `vercel env add` instead of hardcoding in source'
|
|
10
|
+
- 'Adding security headers (`X-Content-Type-Options`, `X-Frame-Options`) in `vercel.json`'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Vercel Deployment with Skills Cache
|
|
14
|
+
|
|
15
|
+
Deploy a FrontMCP server to Vercel with skills enabled and KV-backed skill caching.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```typescript
|
|
20
|
+
// src/server.ts
|
|
21
|
+
import { FrontMcp, App } from '@frontmcp/sdk';
|
|
22
|
+
|
|
23
|
+
@App({ name: 'MyApp' })
|
|
24
|
+
class MyApp {}
|
|
25
|
+
|
|
26
|
+
@FrontMcp({
|
|
27
|
+
info: { name: 'my-server', version: '1.0.0' },
|
|
28
|
+
apps: [MyApp],
|
|
29
|
+
redis: { provider: 'vercel-kv' },
|
|
30
|
+
skillsConfig: {
|
|
31
|
+
enabled: true,
|
|
32
|
+
cache: {
|
|
33
|
+
enabled: true,
|
|
34
|
+
redis: { provider: 'vercel-kv' },
|
|
35
|
+
ttlMs: 60000,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
class MyServer {}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Set environment variables via Vercel CLI
|
|
44
|
+
vercel env add KV_REST_API_URL "https://your-kv-store.kv.vercel-storage.com"
|
|
45
|
+
vercel env add KV_REST_API_TOKEN "your-token"
|
|
46
|
+
vercel env add NODE_ENV production
|
|
47
|
+
vercel env add LOG_LEVEL info
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```json
|
|
51
|
+
// vercel.json
|
|
52
|
+
{
|
|
53
|
+
"rewrites": [{ "source": "/(.*)", "destination": "/api/frontmcp" }],
|
|
54
|
+
"functions": {
|
|
55
|
+
"api/frontmcp.ts": {
|
|
56
|
+
"memory": 1024,
|
|
57
|
+
"maxDuration": 60
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"regions": ["iad1"],
|
|
61
|
+
"headers": [
|
|
62
|
+
{
|
|
63
|
+
"source": "/(.*)",
|
|
64
|
+
"headers": [
|
|
65
|
+
{ "key": "X-Content-Type-Options", "value": "nosniff" },
|
|
66
|
+
{ "key": "X-Frame-Options", "value": "DENY" }
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Deploy to production
|
|
75
|
+
frontmcp build --target vercel
|
|
76
|
+
vercel --prod
|
|
77
|
+
|
|
78
|
+
# Add a custom domain
|
|
79
|
+
vercel domains add mcp.example.com
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## What This Demonstrates
|
|
83
|
+
|
|
84
|
+
- Enabling skills cache backed by Vercel KV with a 60-second TTL
|
|
85
|
+
- Setting environment variables via `vercel env add` instead of hardcoding in source
|
|
86
|
+
- Adding security headers (`X-Content-Type-Options`, `X-Frame-Options`) in `vercel.json`
|
|
87
|
+
|
|
88
|
+
## Related
|
|
89
|
+
|
|
90
|
+
- See `deploy-to-vercel` for the full deployment guide including cold start notes and execution limits
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: minimal-vercel-config
|
|
3
|
+
reference: deploy-to-vercel-config
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'The minimum `vercel.json` needed to deploy a FrontMCP server to Vercel.'
|
|
6
|
+
tags: [deployment, vercel, serverless, config, minimal]
|
|
7
|
+
features:
|
|
8
|
+
- 'The catch-all rewrite (`/(.*) -> /api/frontmcp`) routes all requests to the single FrontMCP handler'
|
|
9
|
+
- 'Setting `buildCommand` and `outputDirectory` so Vercel uses the FrontMCP build pipeline'
|
|
10
|
+
- 'Configuring function memory (512 MB) and max duration (30s) for the serverless function'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Minimal vercel.json Configuration
|
|
14
|
+
|
|
15
|
+
The minimum `vercel.json` needed to deploy a FrontMCP server to Vercel.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
// vercel.json
|
|
21
|
+
{
|
|
22
|
+
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
23
|
+
"buildCommand": "frontmcp build --target vercel",
|
|
24
|
+
"outputDirectory": "dist",
|
|
25
|
+
"rewrites": [
|
|
26
|
+
{
|
|
27
|
+
"source": "/(.*)",
|
|
28
|
+
"destination": "/api/frontmcp"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"functions": {
|
|
32
|
+
"api/frontmcp.js": {
|
|
33
|
+
"memory": 512,
|
|
34
|
+
"maxDuration": 30
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
"regions": ["iad1"]
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## What This Demonstrates
|
|
42
|
+
|
|
43
|
+
- The catch-all rewrite (`/(.*) -> /api/frontmcp`) routes all requests to the single FrontMCP handler
|
|
44
|
+
- Setting `buildCommand` and `outputDirectory` so Vercel uses the FrontMCP build pipeline
|
|
45
|
+
- Configuring function memory (512 MB) and max duration (30s) for the serverless function
|
|
46
|
+
|
|
47
|
+
## Related
|
|
48
|
+
|
|
49
|
+
- See `deploy-to-vercel-config` for the full reference configuration with security headers
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-config-with-security-headers
|
|
3
|
+
reference: deploy-to-vercel-config
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'A complete `vercel.json` with per-route security headers for health, MCP, and all other endpoints.'
|
|
6
|
+
tags: [deployment, vercel, cache, security, config, headers]
|
|
7
|
+
features:
|
|
8
|
+
- 'Per-route header configuration: `/health` and `/mcp` get `Cache-Control: no-store` to prevent caching'
|
|
9
|
+
- 'Global security headers (`X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`) applied to all routes'
|
|
10
|
+
- 'Setting `framework: null` to tell Vercel this is not a framework project'
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# vercel.json with Security Headers
|
|
14
|
+
|
|
15
|
+
A complete `vercel.json` with per-route security headers for health, MCP, and all other endpoints.
|
|
16
|
+
|
|
17
|
+
## Code
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
// vercel.json
|
|
21
|
+
{
|
|
22
|
+
"$schema": "https://openapi.vercel.sh/vercel.json",
|
|
23
|
+
"framework": null,
|
|
24
|
+
"buildCommand": "frontmcp build --target vercel",
|
|
25
|
+
"outputDirectory": "dist",
|
|
26
|
+
"rewrites": [
|
|
27
|
+
{
|
|
28
|
+
"source": "/(.*)",
|
|
29
|
+
"destination": "/api/frontmcp"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"functions": {
|
|
33
|
+
"api/frontmcp.js": {
|
|
34
|
+
"memory": 512,
|
|
35
|
+
"maxDuration": 30
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"regions": ["iad1"],
|
|
39
|
+
"headers": [
|
|
40
|
+
{
|
|
41
|
+
"source": "/health",
|
|
42
|
+
"headers": [
|
|
43
|
+
{
|
|
44
|
+
"key": "Cache-Control",
|
|
45
|
+
"value": "no-store"
|
|
46
|
+
}
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"source": "/mcp",
|
|
51
|
+
"headers": [
|
|
52
|
+
{
|
|
53
|
+
"key": "Cache-Control",
|
|
54
|
+
"value": "no-store"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"key": "X-Content-Type-Options",
|
|
58
|
+
"value": "nosniff"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"source": "/(.*)",
|
|
64
|
+
"headers": [
|
|
65
|
+
{
|
|
66
|
+
"key": "X-Frame-Options",
|
|
67
|
+
"value": "DENY"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"key": "X-Content-Type-Options",
|
|
71
|
+
"value": "nosniff"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"key": "Referrer-Policy",
|
|
75
|
+
"value": "strict-origin-when-cross-origin"
|
|
76
|
+
}
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
]
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## What This Demonstrates
|
|
84
|
+
|
|
85
|
+
- Per-route header configuration: `/health` and `/mcp` get `Cache-Control: no-store` to prevent caching
|
|
86
|
+
- Global security headers (`X-Frame-Options`, `X-Content-Type-Options`, `Referrer-Policy`) applied to all routes
|
|
87
|
+
- Setting `framework: null` to tell Vercel this is not a framework project
|
|
88
|
+
|
|
89
|
+
## Related
|
|
90
|
+
|
|
91
|
+
- See `deploy-to-vercel-config` for the full reference configuration
|
|
92
|
+
- See `deploy-to-vercel` for the complete deployment guide
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-for-browser
|
|
3
|
+
description: Build a FrontMCP server or client for browser environments and frontend frameworks
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Building for Browser
|
|
2
7
|
|
|
3
8
|
Build your FrontMCP server or client for browser environments.
|
|
@@ -132,6 +137,16 @@ ls dist/browser/
|
|
|
132
137
|
| Bundle too large | All server-side code included | Use `--target browser` and a dedicated client entry file |
|
|
133
138
|
| `@frontmcp/utils` fs throws | File system ops called in browser | Remove fs calls; use API endpoints or in-memory alternatives |
|
|
134
139
|
|
|
140
|
+
## Examples
|
|
141
|
+
|
|
142
|
+
| Example | Level | Description |
|
|
143
|
+
| ----------------------------------------------------------------------------------------------------- | ------------ | ----------------------------------------------------------------------------------------------------- |
|
|
144
|
+
| [`browser-build-with-custom-entry`](../examples/build-for-browser/browser-build-with-custom-entry.md) | Intermediate | Build a browser bundle using a dedicated client entry file that avoids Node.js-only imports. |
|
|
145
|
+
| [`browser-crypto-and-storage`](../examples/build-for-browser/browser-crypto-and-storage.md) | Advanced | Use `@frontmcp/utils` crypto functions (WebCrypto API) and in-memory storage in browser environments. |
|
|
146
|
+
| [`react-provider-setup`](../examples/build-for-browser/react-provider-setup.md) | Basic | Connect a React application to a remote FrontMCP server using `@frontmcp/react`. |
|
|
147
|
+
|
|
148
|
+
> See all examples in [`examples/build-for-browser/`](../examples/build-for-browser/)
|
|
149
|
+
|
|
135
150
|
## Reference
|
|
136
151
|
|
|
137
152
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/deployment/browser-compatibility>
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-for-cli
|
|
3
|
+
description: Build a FrontMCP server as a standalone CLI binary using Node.js SEA or bundled JS
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Building a CLI Binary
|
|
2
7
|
|
|
3
8
|
Build your FrontMCP server as a distributable CLI binary using Node.js Single Executable Applications (SEA) or as a bundled JS file.
|
|
@@ -52,7 +57,7 @@ frontmcp build --target cli --js # JS bundle only (no SEA)
|
|
|
52
57
|
|
|
53
58
|
## Requirements
|
|
54
59
|
|
|
55
|
-
- **Node.js
|
|
60
|
+
- **Node.js 24+** required for SEA support
|
|
56
61
|
- The entry file must export or instantiate a `@FrontMcp` decorated class
|
|
57
62
|
- SEA binaries are platform-specific (build on macOS for macOS, Linux for Linux)
|
|
58
63
|
|
|
@@ -92,11 +97,59 @@ frontmcp build --target cli
|
|
|
92
97
|
node dist/my-server.cjs.js
|
|
93
98
|
```
|
|
94
99
|
|
|
100
|
+
## Unix Socket Daemon Mode
|
|
101
|
+
|
|
102
|
+
Run your MCP server as a local daemon accessible via Unix socket:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Start daemon in foreground
|
|
106
|
+
frontmcp socket ./src/main.ts -s ~/.frontmcp/sockets/my-app.sock
|
|
107
|
+
|
|
108
|
+
# Start daemon in background
|
|
109
|
+
frontmcp socket ./src/main.ts -b --db ~/.my-tool/data.db
|
|
110
|
+
|
|
111
|
+
# Default socket path: ~/.frontmcp/sockets/{app-name}.sock
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The daemon accepts JSON-RPC requests over HTTP via the Unix socket, making it ideal for local MCP clients (Claude Code, IDE extensions) that need persistent tool access without a TCP port.
|
|
115
|
+
|
|
116
|
+
## Process Management
|
|
117
|
+
|
|
118
|
+
Manage long-running MCP server processes with built-in supervisor commands:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# Start a named server (auto-restarts on crash)
|
|
122
|
+
frontmcp start my-server -e ./src/main.ts --max-restarts 5
|
|
123
|
+
|
|
124
|
+
# Monitor
|
|
125
|
+
frontmcp status my-server # Detailed status for one server
|
|
126
|
+
frontmcp status # Table of all managed servers
|
|
127
|
+
frontmcp list # List all managed processes
|
|
128
|
+
frontmcp logs my-server -F # Tail logs (follow mode)
|
|
129
|
+
|
|
130
|
+
# Control
|
|
131
|
+
frontmcp restart my-server
|
|
132
|
+
frontmcp stop my-server # Graceful shutdown (SIGTERM)
|
|
133
|
+
frontmcp stop my-server -f # Force kill (SIGKILL)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## System Service Installation
|
|
137
|
+
|
|
138
|
+
Install your MCP server as a system service for automatic startup:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
# Install as systemd service (Linux) or launchd service (macOS)
|
|
142
|
+
frontmcp service install my-server
|
|
143
|
+
|
|
144
|
+
# Uninstall service
|
|
145
|
+
frontmcp service uninstall my-server
|
|
146
|
+
```
|
|
147
|
+
|
|
95
148
|
## Common Patterns
|
|
96
149
|
|
|
97
150
|
| Pattern | Correct | Incorrect | Why |
|
|
98
151
|
| --------------------- | --------------------------------------------------- | -------------------------------- | ----------------------------------------------------------- |
|
|
99
|
-
| Node.js version | Node.js
|
|
152
|
+
| Node.js version | Node.js 24+ for SEA builds | Node.js 18 or 20 | SEA support requires Node.js 24+ |
|
|
100
153
|
| Entry file | Export or instantiate a `@FrontMcp` decorated class | Export a plain function | The build expects a FrontMcp entry point |
|
|
101
154
|
| Transport for CLI | `socketPath` or stdin/stdout | TCP port binding | CLI tools run locally; ports may conflict |
|
|
102
155
|
| Cross-platform binary | Build on each target OS separately | Build on macOS and ship to Linux | SEA binaries are platform-specific |
|
|
@@ -126,12 +179,21 @@ node dist/my-server.cjs.js
|
|
|
126
179
|
|
|
127
180
|
| Problem | Cause | Solution |
|
|
128
181
|
| ---------------------------- | ------------------------------------------- | ----------------------------------------------------------- |
|
|
129
|
-
| SEA build fails | Node.js version below
|
|
182
|
+
| SEA build fails | Node.js version below 24 | Upgrade to Node.js 24+ |
|
|
130
183
|
| Binary crashes on startup | Missing `@FrontMcp` decorated entry | Ensure entry file exports or instantiates a decorated class |
|
|
131
184
|
| Binary too large | All dependencies bundled including dev deps | Review dependencies and remove unused packages from bundle |
|
|
132
185
|
| Permission denied on binary | Missing execute permission | Run `chmod +x dist/my-server` |
|
|
133
186
|
| Binary fails on different OS | SEA binaries are platform-specific | Build on the target OS or use CI matrix builds |
|
|
134
187
|
|
|
188
|
+
## Examples
|
|
189
|
+
|
|
190
|
+
| Example | Level | Description |
|
|
191
|
+
| ----------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------ |
|
|
192
|
+
| [`cli-binary-build`](../examples/build-for-cli/cli-binary-build.md) | Basic | Build a FrontMCP server as a standalone binary using Node.js Single Executable Applications (SEA). |
|
|
193
|
+
| [`unix-socket-daemon`](../examples/build-for-cli/unix-socket-daemon.md) | Intermediate | Run a FrontMCP server as a local daemon accessible via Unix socket for IDE extensions and local MCP clients. |
|
|
194
|
+
|
|
195
|
+
> See all examples in [`examples/build-for-cli/`](../examples/build-for-cli/)
|
|
196
|
+
|
|
135
197
|
## Reference
|
|
136
198
|
|
|
137
199
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/deployment/production-build>
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: build-for-sdk
|
|
3
|
+
description: Build a FrontMCP server as an embeddable library with create() and connect() APIs
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Building as an SDK Library
|
|
2
7
|
|
|
3
8
|
Build your FrontMCP server as an embeddable library that runs without an HTTP server. Use `create()` for flat-config setup or `connect()` for platform-specific tool formatting (OpenAI, Claude, LangChain, Vercel AI).
|
|
@@ -253,6 +258,16 @@ node -e "const { create } = require('./dist/my-sdk.cjs.js'); ..."
|
|
|
253
258
|
| `connectOpenAI()` format wrong | Using raw `listTools()` instead of platform client | Use `connectOpenAI()` which formats tools for OpenAI automatically |
|
|
254
259
|
| Bundle includes `@frontmcp/*` | Build config missing externals | Verify `--target sdk` is set; it marks `@frontmcp/*` as external |
|
|
255
260
|
|
|
261
|
+
## Examples
|
|
262
|
+
|
|
263
|
+
| Example | Level | Description |
|
|
264
|
+
| ------------------------------------------------------------------------------- | ------------ | ---------------------------------------------------------------------------------------------------------- |
|
|
265
|
+
| [`connect-openai`](../examples/build-for-sdk/connect-openai.md) | Intermediate | Use `connectOpenAI()` to get tools formatted for OpenAI's function-calling API. |
|
|
266
|
+
| [`create-flat-config`](../examples/build-for-sdk/create-flat-config.md) | Basic | Spin up an in-memory FrontMCP server from a flat config object using `create()`. |
|
|
267
|
+
| [`multi-platform-connect`](../examples/build-for-sdk/multi-platform-connect.md) | Advanced | Connect the same FrontMCP server to multiple LLM platforms using platform-specific `connect*()` functions. |
|
|
268
|
+
|
|
269
|
+
> See all examples in [`examples/build-for-sdk/`](../examples/build-for-sdk/)
|
|
270
|
+
|
|
256
271
|
## Reference
|
|
257
272
|
|
|
258
273
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/deployment/direct-client>
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy-to-cloudflare
|
|
3
|
+
description: Deploy a FrontMCP server to Cloudflare Workers with KV, D1, and Durable Objects
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Deploy a FrontMCP Server to Cloudflare Workers
|
|
2
7
|
|
|
3
8
|
This skill guides you through deploying a FrontMCP server to Cloudflare Workers.
|
|
@@ -207,6 +212,16 @@ curl -X POST https://frontmcp-worker.your-subdomain.workers.dev/mcp \
|
|
|
207
212
|
- [ ] SSE streaming works end-to-end (if using SSE transport)
|
|
208
213
|
- [ ] Custom domain resolves correctly (if configured)
|
|
209
214
|
|
|
215
|
+
## Examples
|
|
216
|
+
|
|
217
|
+
| Example | Level | Description |
|
|
218
|
+
| -------------------------------------------------------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------- |
|
|
219
|
+
| [`basic-worker-deploy`](../examples/deploy-to-cloudflare/basic-worker-deploy.md) | Basic | Deploy a FrontMCP server to Cloudflare Workers with a minimal configuration. |
|
|
220
|
+
| [`worker-custom-domain`](../examples/deploy-to-cloudflare/worker-custom-domain.md) | Advanced | Scaffold a FrontMCP project targeting Cloudflare, configure a custom domain, and verify the deployment. |
|
|
221
|
+
| [`worker-with-kv-storage`](../examples/deploy-to-cloudflare/worker-with-kv-storage.md) | Intermediate | Deploy a FrontMCP server to Cloudflare Workers with KV namespace for session and state storage. |
|
|
222
|
+
|
|
223
|
+
> See all examples in [`examples/deploy-to-cloudflare/`](../examples/deploy-to-cloudflare/)
|
|
224
|
+
|
|
210
225
|
## Reference
|
|
211
226
|
|
|
212
227
|
- **Docs:** <https://docs.agentfront.dev/frontmcp/deployment/serverless>
|