@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-setup/examples/project-structure-standalone/feature-folder-organization.md
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: feature-folder-organization
|
|
3
|
+
reference: project-structure-standalone
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Organize a growing standalone project into domain-specific feature folders instead of flat type-based directories.'
|
|
6
|
+
tags: [setup, structure, standalone, feature, folder, organization]
|
|
7
|
+
features:
|
|
8
|
+
- 'Feature folders (`src/billing/`) grouping related tools, resources, and providers by domain'
|
|
9
|
+
- 'Each entity still follows the `<name>.<type>.ts` naming convention inside its feature folder'
|
|
10
|
+
- 'One class per file across tools, resources, and providers'
|
|
11
|
+
- 'Feature folders scale better than flat `src/tools/` directories for larger projects'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Feature Folder Organization
|
|
15
|
+
|
|
16
|
+
Organize a growing standalone project into domain-specific feature folders instead of flat type-based directories.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/billing/create-invoice.tool.ts
|
|
22
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
|
|
25
|
+
@Tool({
|
|
26
|
+
name: 'create_invoice',
|
|
27
|
+
description: 'Create a new invoice',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
customerId: z.string(),
|
|
30
|
+
amount: z.number(),
|
|
31
|
+
currency: z.string().default('USD'),
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
export default class CreateInvoiceTool extends ToolContext {
|
|
35
|
+
async execute(input: { customerId: string; amount: number; currency: string }) {
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: 'text', text: `Invoice created for ${input.customerId}: ${input.currency} ${input.amount}` }],
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
```typescript
|
|
44
|
+
// src/billing/invoice.resource.ts
|
|
45
|
+
import { Resource, ResourceContext } from '@frontmcp/sdk';
|
|
46
|
+
|
|
47
|
+
@Resource({
|
|
48
|
+
uri: 'invoice://latest',
|
|
49
|
+
name: 'Latest Invoice',
|
|
50
|
+
mimeType: 'application/json',
|
|
51
|
+
})
|
|
52
|
+
export default class InvoiceResource extends ResourceContext {
|
|
53
|
+
async read() {
|
|
54
|
+
return { contents: [{ uri: 'invoice://latest', text: '{"id":"INV-001","amount":100}' }] };
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// src/billing/billing.provider.ts
|
|
61
|
+
import { Provider } from '@frontmcp/sdk';
|
|
62
|
+
|
|
63
|
+
@Provider({ name: 'billing-service' })
|
|
64
|
+
export class BillingProvider {
|
|
65
|
+
getBalance(customerId: string): number {
|
|
66
|
+
return 500;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// src/my-app.app.ts
|
|
73
|
+
import { App } from '@frontmcp/sdk';
|
|
74
|
+
import CreateInvoiceTool from './billing/create-invoice.tool';
|
|
75
|
+
import InvoiceResource from './billing/invoice.resource';
|
|
76
|
+
import { BillingProvider } from './billing/billing.provider';
|
|
77
|
+
|
|
78
|
+
@App({
|
|
79
|
+
name: 'my-app',
|
|
80
|
+
tools: [CreateInvoiceTool],
|
|
81
|
+
resources: [InvoiceResource],
|
|
82
|
+
providers: [BillingProvider],
|
|
83
|
+
})
|
|
84
|
+
export class MyApp {}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
```typescript
|
|
88
|
+
// src/main.ts
|
|
89
|
+
import 'reflect-metadata';
|
|
90
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
91
|
+
import { MyApp } from './my-app.app';
|
|
92
|
+
|
|
93
|
+
@FrontMcp({
|
|
94
|
+
info: { name: 'billing-server', version: '1.0.0' },
|
|
95
|
+
apps: [MyApp],
|
|
96
|
+
})
|
|
97
|
+
class MyServer {}
|
|
98
|
+
|
|
99
|
+
export default MyServer;
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## What This Demonstrates
|
|
103
|
+
|
|
104
|
+
- Feature folders (`src/billing/`) grouping related tools, resources, and providers by domain
|
|
105
|
+
- Each entity still follows the `<name>.<type>.ts` naming convention inside its feature folder
|
|
106
|
+
- One class per file across tools, resources, and providers
|
|
107
|
+
- Feature folders scale better than flat `src/tools/` directories for larger projects
|
|
108
|
+
|
|
109
|
+
## Related
|
|
110
|
+
|
|
111
|
+
- See `project-structure-standalone` for flat layout vs feature folder comparison and naming conventions
|
package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: minimal-standalone-layout
|
|
3
|
+
reference: project-structure-standalone
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Set up the canonical file structure for a standalone FrontMCP project with one app, one tool, and the required entry point.'
|
|
6
|
+
tags: [setup, structure, standalone, minimal, layout]
|
|
7
|
+
features:
|
|
8
|
+
- '`<name>.<type>.ts` file naming convention (`fetch-weather.tool.ts`, `my-app.app.ts`)'
|
|
9
|
+
- '`main.ts` with a default-exported `@FrontMcp` server class'
|
|
10
|
+
- 'One class per file pattern'
|
|
11
|
+
- '`@App` grouping tools and registered in the server `apps` array'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Minimal Standalone Project Layout
|
|
15
|
+
|
|
16
|
+
Set up the canonical file structure for a standalone FrontMCP project with one app, one tool, and the required entry point.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/tools/fetch-weather.tool.ts
|
|
22
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
|
|
25
|
+
@Tool({
|
|
26
|
+
name: 'fetch_weather',
|
|
27
|
+
description: 'Fetch current weather for a city',
|
|
28
|
+
inputSchema: { city: z.string() },
|
|
29
|
+
})
|
|
30
|
+
export default class FetchWeatherTool extends ToolContext {
|
|
31
|
+
async execute(input: { city: string }) {
|
|
32
|
+
return { content: [{ type: 'text', text: `Weather in ${input.city}: 22C, sunny` }] };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// src/my-app.app.ts
|
|
39
|
+
import { App } from '@frontmcp/sdk';
|
|
40
|
+
import FetchWeatherTool from './tools/fetch-weather.tool';
|
|
41
|
+
|
|
42
|
+
@App({
|
|
43
|
+
name: 'my-app',
|
|
44
|
+
tools: [FetchWeatherTool],
|
|
45
|
+
})
|
|
46
|
+
export class MyApp {}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// src/main.ts
|
|
51
|
+
import 'reflect-metadata';
|
|
52
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
53
|
+
import { MyApp } from './my-app.app';
|
|
54
|
+
|
|
55
|
+
@FrontMcp({
|
|
56
|
+
info: { name: 'my-project', version: '1.0.0' },
|
|
57
|
+
apps: [MyApp],
|
|
58
|
+
})
|
|
59
|
+
class MyServer {}
|
|
60
|
+
|
|
61
|
+
export default MyServer;
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## What This Demonstrates
|
|
65
|
+
|
|
66
|
+
- `<name>.<type>.ts` file naming convention (`fetch-weather.tool.ts`, `my-app.app.ts`)
|
|
67
|
+
- `main.ts` with a default-exported `@FrontMcp` server class
|
|
68
|
+
- One class per file pattern
|
|
69
|
+
- `@App` grouping tools and registered in the server `apps` array
|
|
70
|
+
|
|
71
|
+
## Related
|
|
72
|
+
|
|
73
|
+
- See `project-structure-standalone` for the full file layout, naming conventions, and development workflow
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: node-server-readme
|
|
3
|
+
reference: readme-guide
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Generate a README for a FrontMCP server deployed as a Docker/Node.js service with tools and resources.'
|
|
6
|
+
tags: [setup, docker, readme, node]
|
|
7
|
+
features:
|
|
8
|
+
- 'Standard README sections: Features, Quick Start, Tools table, Resources table, Environment Variables'
|
|
9
|
+
- 'Docker-specific deployment section with build and run commands'
|
|
10
|
+
- 'Development commands using `frontmcp dev`, `frontmcp test`, `frontmcp inspect`'
|
|
11
|
+
- 'Tool and resource tables generated from source code decorators'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Node.js Server README
|
|
15
|
+
|
|
16
|
+
Generate a README for a FrontMCP server deployed as a Docker/Node.js service with tools and resources.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
# My MCP Server
|
|
22
|
+
|
|
23
|
+
A FrontMCP-based MCP server providing calculator and weather tools.
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- `add` -- Add two numbers together
|
|
28
|
+
- `fetch_weather` -- Fetch current weather for a city
|
|
29
|
+
- `config://app` -- Application configuration resource
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
### Docker
|
|
34
|
+
|
|
35
|
+
docker compose up
|
|
36
|
+
|
|
37
|
+
### Manual
|
|
38
|
+
|
|
39
|
+
npm install
|
|
40
|
+
npm run dev
|
|
41
|
+
|
|
42
|
+
## Tools
|
|
43
|
+
|
|
44
|
+
| Tool | Description | Input |
|
|
45
|
+
| --------------- | --------------------- | -------------------------- |
|
|
46
|
+
| `add` | Add two numbers | `{ a: number, b: number }` |
|
|
47
|
+
| `fetch_weather` | Fetch current weather | `{ city: string }` |
|
|
48
|
+
|
|
49
|
+
## Resources
|
|
50
|
+
|
|
51
|
+
| URI | Description |
|
|
52
|
+
| -------------- | ------------------------- |
|
|
53
|
+
| `config://app` | Application configuration |
|
|
54
|
+
|
|
55
|
+
## Environment Variables
|
|
56
|
+
|
|
57
|
+
| Variable | Required | Description |
|
|
58
|
+
| ------------ | -------- | ------------------------------- |
|
|
59
|
+
| `PORT` | No | HTTP port (default: 3000) |
|
|
60
|
+
| `REDIS_HOST` | No | Redis host (default: localhost) |
|
|
61
|
+
| `REDIS_PORT` | No | Redis port (default: 6379) |
|
|
62
|
+
| `LOG_LEVEL` | No | Log level (default: info) |
|
|
63
|
+
|
|
64
|
+
## Development
|
|
65
|
+
|
|
66
|
+
frontmcp dev # Start dev server with hot reload
|
|
67
|
+
frontmcp test # Run tests
|
|
68
|
+
frontmcp inspect # Inspect MCP server capabilities
|
|
69
|
+
|
|
70
|
+
## Docker Deployment
|
|
71
|
+
|
|
72
|
+
docker build -f ci/Dockerfile -t my-server:latest .
|
|
73
|
+
docker run -p 3000:3000 my-server:latest
|
|
74
|
+
|
|
75
|
+
## License
|
|
76
|
+
|
|
77
|
+
MIT
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## What This Demonstrates
|
|
81
|
+
|
|
82
|
+
- Standard README sections: Features, Quick Start, Tools table, Resources table, Environment Variables
|
|
83
|
+
- Docker-specific deployment section with build and run commands
|
|
84
|
+
- Development commands using `frontmcp dev`, `frontmcp test`, `frontmcp inspect`
|
|
85
|
+
- Tool and resource tables generated from source code decorators
|
|
86
|
+
|
|
87
|
+
## Related
|
|
88
|
+
|
|
89
|
+
- See `readme-guide` for target-specific sections (Vercel, Lambda, Cloudflare, CLI, npm package)
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-deployment-readme
|
|
3
|
+
reference: readme-guide
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Generate a README for a FrontMCP server deployed to Vercel with Vercel KV storage.'
|
|
6
|
+
tags: [setup, vercel-kv, vercel, readme, deployment]
|
|
7
|
+
features:
|
|
8
|
+
- 'Vercel-specific deployment instructions with `frontmcp build --target vercel` and `vercel deploy`'
|
|
9
|
+
- 'Vercel KV environment variables (`KV_REST_API_URL`, `KV_REST_API_TOKEN`) noted as auto-injected'
|
|
10
|
+
- '`vercel.json` configuration reference for route setup'
|
|
11
|
+
- 'Consistent README structure adapted to the Vercel deployment target'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Vercel Deployment README
|
|
15
|
+
|
|
16
|
+
Generate a README for a FrontMCP server deployed to Vercel with Vercel KV storage.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```markdown
|
|
21
|
+
# My Vercel MCP Server
|
|
22
|
+
|
|
23
|
+
A serverless FrontMCP MCP server running on Vercel with Vercel KV for session storage.
|
|
24
|
+
|
|
25
|
+
## Features
|
|
26
|
+
|
|
27
|
+
- `lookup_user` -- Look up a user by email
|
|
28
|
+
- `create_ticket` -- Create a support ticket
|
|
29
|
+
- `tickets://open` -- List of open support tickets
|
|
30
|
+
|
|
31
|
+
## Quick Start
|
|
32
|
+
|
|
33
|
+
### Deploy to Vercel
|
|
34
|
+
|
|
35
|
+
npm i -g vercel
|
|
36
|
+
frontmcp build --target vercel
|
|
37
|
+
vercel deploy --prebuilt
|
|
38
|
+
|
|
39
|
+
### Local Development
|
|
40
|
+
|
|
41
|
+
npm install
|
|
42
|
+
npm run dev
|
|
43
|
+
|
|
44
|
+
## Tools
|
|
45
|
+
|
|
46
|
+
| Tool | Description | Input |
|
|
47
|
+
| --------------- | ----------------------- | --------------------------------- |
|
|
48
|
+
| `lookup_user` | Look up a user by email | `{ email: string }` |
|
|
49
|
+
| `create_ticket` | Create a support ticket | `{ title: string, body: string }` |
|
|
50
|
+
|
|
51
|
+
## Resources
|
|
52
|
+
|
|
53
|
+
| URI | Description |
|
|
54
|
+
| ---------------- | -------------------- |
|
|
55
|
+
| `tickets://open` | Open support tickets |
|
|
56
|
+
|
|
57
|
+
## Configuration
|
|
58
|
+
|
|
59
|
+
See `vercel.json` for route configuration and environment variables.
|
|
60
|
+
|
|
61
|
+
Set secrets via: `vercel env add REDIS_URL`
|
|
62
|
+
|
|
63
|
+
## Environment Variables
|
|
64
|
+
|
|
65
|
+
| Variable | Required | Description |
|
|
66
|
+
| ------------------- | -------- | ---------------------------------------- |
|
|
67
|
+
| `KV_REST_API_URL` | Yes | Vercel KV REST API URL (auto-injected) |
|
|
68
|
+
| `KV_REST_API_TOKEN` | Yes | Vercel KV REST API token (auto-injected) |
|
|
69
|
+
|
|
70
|
+
## Development
|
|
71
|
+
|
|
72
|
+
frontmcp dev # Start dev server
|
|
73
|
+
frontmcp build --target vercel # Build for Vercel
|
|
74
|
+
vercel deploy --prebuilt # Deploy to Vercel
|
|
75
|
+
|
|
76
|
+
## License
|
|
77
|
+
|
|
78
|
+
MIT
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## What This Demonstrates
|
|
82
|
+
|
|
83
|
+
- Vercel-specific deployment instructions with `frontmcp build --target vercel` and `vercel deploy`
|
|
84
|
+
- Vercel KV environment variables (`KV_REST_API_URL`, `KV_REST_API_TOKEN`) noted as auto-injected
|
|
85
|
+
- `vercel.json` configuration reference for route setup
|
|
86
|
+
- Consistent README structure adapted to the Vercel deployment target
|
|
87
|
+
|
|
88
|
+
## Related
|
|
89
|
+
|
|
90
|
+
- See `readme-guide` for all deployment target README templates and update guidelines
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: basic-node-server
|
|
3
|
+
reference: setup-project
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Scaffold a minimal FrontMCP server with one app and one tool, running on Node.js with HTTP transport.'
|
|
6
|
+
tags: [setup, transport, node]
|
|
7
|
+
features:
|
|
8
|
+
- 'Minimal `@FrontMcp` server with `info` and `apps` fields'
|
|
9
|
+
- '`@App` decorator grouping a single tool'
|
|
10
|
+
- '`@Tool` decorator with Zod input/output schemas extending `ToolContext`'
|
|
11
|
+
- 'Required tsconfig flags: `experimentalDecorators` and `emitDecoratorMetadata`'
|
|
12
|
+
- '`reflect-metadata` imported as the first line of the entry point'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Basic Node.js Server Setup
|
|
16
|
+
|
|
17
|
+
Scaffold a minimal FrontMCP server with one app and one tool, running on Node.js with HTTP transport.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// src/tools/add.tool.ts
|
|
23
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
24
|
+
import { z } from 'zod';
|
|
25
|
+
|
|
26
|
+
@Tool({
|
|
27
|
+
name: 'add',
|
|
28
|
+
description: 'Add two numbers',
|
|
29
|
+
inputSchema: { a: z.number(), b: z.number() },
|
|
30
|
+
outputSchema: { result: z.number() },
|
|
31
|
+
})
|
|
32
|
+
export default class AddTool extends ToolContext {
|
|
33
|
+
async execute(input: { a: number; b: number }) {
|
|
34
|
+
return {
|
|
35
|
+
result: input.a + input.b,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
// src/apps/calc.app.ts
|
|
43
|
+
import { App } from '@frontmcp/sdk';
|
|
44
|
+
import AddTool from '../tools/add.tool';
|
|
45
|
+
|
|
46
|
+
@App({
|
|
47
|
+
name: 'Calculator',
|
|
48
|
+
tools: [AddTool],
|
|
49
|
+
})
|
|
50
|
+
export class CalcApp {}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// src/main.ts
|
|
55
|
+
import 'reflect-metadata';
|
|
56
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
57
|
+
import { CalcApp } from './apps/calc.app';
|
|
58
|
+
|
|
59
|
+
@FrontMcp({
|
|
60
|
+
info: { name: 'my-server', version: '0.1.0' },
|
|
61
|
+
apps: [CalcApp],
|
|
62
|
+
http: { port: 3000 },
|
|
63
|
+
})
|
|
64
|
+
export default class Server {}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
// tsconfig.json
|
|
69
|
+
{
|
|
70
|
+
"compilerOptions": {
|
|
71
|
+
"target": "ES2022",
|
|
72
|
+
"module": "commonjs",
|
|
73
|
+
"lib": ["ES2022"],
|
|
74
|
+
"outDir": "./dist",
|
|
75
|
+
"rootDir": "./src",
|
|
76
|
+
"strict": true,
|
|
77
|
+
"esModuleInterop": true,
|
|
78
|
+
"experimentalDecorators": true,
|
|
79
|
+
"emitDecoratorMetadata": true,
|
|
80
|
+
"declaration": true,
|
|
81
|
+
"resolveJsonModule": true,
|
|
82
|
+
"skipLibCheck": true
|
|
83
|
+
},
|
|
84
|
+
"include": ["src/**/*"],
|
|
85
|
+
"exclude": ["node_modules", "dist"]
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## What This Demonstrates
|
|
90
|
+
|
|
91
|
+
- Minimal `@FrontMcp` server with `info` and `apps` fields
|
|
92
|
+
- `@App` decorator grouping a single tool
|
|
93
|
+
- `@Tool` decorator with Zod input/output schemas extending `ToolContext`
|
|
94
|
+
- Required tsconfig flags: `experimentalDecorators` and `emitDecoratorMetadata`
|
|
95
|
+
- `reflect-metadata` imported as the first line of the entry point
|
|
96
|
+
|
|
97
|
+
## Related
|
|
98
|
+
|
|
99
|
+
- See `setup-project` for the full scaffolding guide with CLI flags and deployment targets
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cli-scaffold-with-flags
|
|
3
|
+
reference: setup-project
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'Use the `frontmcp create` CLI to scaffold a complete project non-interactively with explicit flags for deployment target, Redis, and package manager.'
|
|
6
|
+
tags: [setup, redis, cli, nx, scaffold, flags]
|
|
7
|
+
features:
|
|
8
|
+
- 'Non-interactive scaffolding with `--yes` to accept all defaults'
|
|
9
|
+
- 'Explicit `--target`, `--redis`, `--pm`, `--skills`, and `--cicd` flags'
|
|
10
|
+
- 'Nx monorepo scaffolding with `--nx`'
|
|
11
|
+
- 'Verifying the server responds to MCP `initialize` requests after startup'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# CLI Scaffold with Non-Interactive Flags
|
|
15
|
+
|
|
16
|
+
Use the `frontmcp create` CLI to scaffold a complete project non-interactively with explicit flags for deployment target, Redis, and package manager.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Scaffold a Node.js server with Docker Redis and yarn
|
|
22
|
+
npx frontmcp create my-api \
|
|
23
|
+
--target node \
|
|
24
|
+
--redis docker \
|
|
25
|
+
--pm yarn \
|
|
26
|
+
--skills recommended \
|
|
27
|
+
--cicd \
|
|
28
|
+
--yes
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Scaffold a Vercel serverless project with no Redis
|
|
33
|
+
npx frontmcp create my-vercel-app \
|
|
34
|
+
--target vercel \
|
|
35
|
+
--redis none \
|
|
36
|
+
--pm npm \
|
|
37
|
+
--skills minimal \
|
|
38
|
+
--no-cicd \
|
|
39
|
+
--yes
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# Scaffold an Nx monorepo workspace
|
|
44
|
+
npx frontmcp create my-workspace \
|
|
45
|
+
--nx \
|
|
46
|
+
--target node \
|
|
47
|
+
--redis docker \
|
|
48
|
+
--pm yarn \
|
|
49
|
+
--yes
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
After scaffolding, start the development server:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
cd my-api
|
|
56
|
+
yarn install
|
|
57
|
+
yarn dev
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Test the server with an MCP initialize request:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
curl -X POST http://localhost:3000/mcp \
|
|
64
|
+
-H "Content-Type: application/json" \
|
|
65
|
+
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## What This Demonstrates
|
|
69
|
+
|
|
70
|
+
- Non-interactive scaffolding with `--yes` to accept all defaults
|
|
71
|
+
- Explicit `--target`, `--redis`, `--pm`, `--skills`, and `--cicd` flags
|
|
72
|
+
- Nx monorepo scaffolding with `--nx`
|
|
73
|
+
- Verifying the server responds to MCP `initialize` requests after startup
|
|
74
|
+
|
|
75
|
+
## Related
|
|
76
|
+
|
|
77
|
+
- See `setup-project` for the full list of CLI flags and manual setup instructions
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vercel-serverless-server
|
|
3
|
+
reference: setup-project
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'Configure a FrontMCP server for Vercel deployment with Vercel KV storage and modern transport protocol.'
|
|
6
|
+
tags: [setup, vercel-kv, redis, vercel, session, transport]
|
|
7
|
+
features:
|
|
8
|
+
- "`transport: { protocol: 'modern' }` for streamable HTTP with strict sessions on Vercel"
|
|
9
|
+
- "`redis: { provider: 'vercel-kv' }` for managed Redis-compatible storage without external provisioning"
|
|
10
|
+
- 'Building with `frontmcp build --target vercel` for serverless output'
|
|
11
|
+
- 'Vercel KV credentials are auto-injected via environment variables'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Vercel Serverless Deployment Setup
|
|
15
|
+
|
|
16
|
+
Configure a FrontMCP server for Vercel deployment with Vercel KV storage and modern transport protocol.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/tools/lookup-user.tool.ts
|
|
22
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
|
|
25
|
+
@Tool({
|
|
26
|
+
name: 'lookup_user',
|
|
27
|
+
description: 'Look up a user by email',
|
|
28
|
+
inputSchema: { email: z.string().email() },
|
|
29
|
+
})
|
|
30
|
+
export default class LookupUserTool extends ToolContext {
|
|
31
|
+
async execute(input: { email: string }) {
|
|
32
|
+
return { content: [{ type: 'text', text: `User: ${input.email}` }] };
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// src/apps/users.app.ts
|
|
39
|
+
import { App } from '@frontmcp/sdk';
|
|
40
|
+
import LookupUserTool from '../tools/lookup-user.tool';
|
|
41
|
+
|
|
42
|
+
@App({
|
|
43
|
+
name: 'Users',
|
|
44
|
+
tools: [LookupUserTool],
|
|
45
|
+
})
|
|
46
|
+
export class UsersApp {}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
// src/main.ts
|
|
51
|
+
import 'reflect-metadata';
|
|
52
|
+
import { FrontMcp } from '@frontmcp/sdk';
|
|
53
|
+
import { UsersApp } from './apps/users.app';
|
|
54
|
+
|
|
55
|
+
@FrontMcp({
|
|
56
|
+
info: { name: 'my-vercel-server', version: '0.1.0' },
|
|
57
|
+
apps: [UsersApp],
|
|
58
|
+
transport: { protocol: 'modern' },
|
|
59
|
+
redis: { provider: 'vercel-kv' },
|
|
60
|
+
})
|
|
61
|
+
export default class Server {}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Build and deploy:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Build for Vercel target
|
|
68
|
+
frontmcp build --target vercel
|
|
69
|
+
|
|
70
|
+
# Deploy
|
|
71
|
+
vercel deploy --prebuilt
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
```env
|
|
75
|
+
# .env.local (Vercel auto-injects KV_REST_API_URL and KV_REST_API_TOKEN)
|
|
76
|
+
# No manual Redis config needed for Vercel KV
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## What This Demonstrates
|
|
80
|
+
|
|
81
|
+
- `transport: { protocol: 'modern' }` for streamable HTTP with strict sessions on Vercel
|
|
82
|
+
- `redis: { provider: 'vercel-kv' }` for managed Redis-compatible storage without external provisioning
|
|
83
|
+
- Building with `frontmcp build --target vercel` for serverless output
|
|
84
|
+
- Vercel KV credentials are auto-injected via environment variables
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- See `setup-project` for all deployment target configurations (Lambda, Cloudflare)
|
|
89
|
+
- See `setup-redis` for detailed Vercel KV setup and hybrid pub/sub configuration
|