@frontmcp/skills 1.0.0-beta.9 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/catalog/TEMPLATE.md +69 -0
- package/catalog/frontmcp-config/SKILL.md +38 -22
- package/catalog/frontmcp-config/examples/configure-auth/multi-app-auth.md +87 -0
- package/catalog/frontmcp-config/examples/configure-auth/public-mode-setup.md +63 -0
- package/catalog/frontmcp-config/examples/configure-auth/remote-oauth-with-vault.md +76 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/local-self-signed-tokens.md +77 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/remote-enterprise-oauth.md +73 -0
- package/catalog/frontmcp-config/examples/configure-auth-modes/transparent-jwt-validation.md +64 -0
- package/catalog/frontmcp-config/examples/configure-elicitation/basic-confirmation-gate.md +83 -0
- package/catalog/frontmcp-config/examples/configure-elicitation/distributed-elicitation-redis.md +87 -0
- package/catalog/frontmcp-config/examples/configure-http/cors-restricted-origins.md +52 -0
- package/catalog/frontmcp-config/examples/configure-http/entry-path-reverse-proxy.md +72 -0
- package/catalog/frontmcp-config/examples/configure-http/unix-socket-local.md +64 -0
- package/catalog/frontmcp-config/examples/configure-session/multi-server-key-prefix.md +68 -0
- package/catalog/frontmcp-config/examples/configure-session/redis-session-store.md +52 -0
- package/catalog/frontmcp-config/examples/configure-session/vercel-kv-session.md +52 -0
- package/catalog/frontmcp-config/examples/configure-throttle/distributed-redis-throttle.md +94 -0
- package/catalog/frontmcp-config/examples/configure-throttle/per-tool-rate-limit.md +92 -0
- package/catalog/frontmcp-config/examples/configure-throttle/server-level-rate-limit.md +83 -0
- package/catalog/frontmcp-config/examples/configure-throttle-guard-config/full-guard-config.md +99 -0
- package/catalog/frontmcp-config/examples/configure-throttle-guard-config/minimal-guard-config.md +55 -0
- package/catalog/frontmcp-config/examples/configure-transport/custom-protocol-flags.md +74 -0
- package/catalog/frontmcp-config/examples/configure-transport/distributed-sessions-redis.md +86 -0
- package/catalog/frontmcp-config/examples/configure-transport/stateless-serverless.md +69 -0
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/legacy-preset-nodejs.md +65 -0
- package/catalog/frontmcp-config/examples/configure-transport-protocol-presets/stateless-api-serverless.md +69 -0
- package/catalog/frontmcp-config/references/configure-auth-modes.md +15 -0
- package/catalog/frontmcp-config/references/configure-auth.md +15 -0
- package/catalog/frontmcp-config/references/configure-elicitation.md +14 -0
- package/catalog/frontmcp-config/references/configure-http.md +15 -0
- package/catalog/frontmcp-config/references/configure-session.md +15 -0
- package/catalog/frontmcp-config/references/configure-throttle-guard-config.md +14 -0
- package/catalog/frontmcp-config/references/configure-throttle.md +15 -0
- package/catalog/frontmcp-config/references/configure-transport-protocol-presets.md +14 -0
- package/catalog/frontmcp-config/references/configure-transport.md +15 -0
- package/catalog/frontmcp-config/references/setup-redis.md +10 -0
- package/catalog/frontmcp-config/references/setup-sqlite.md +10 -0
- package/catalog/frontmcp-deployment/SKILL.md +40 -12
- package/catalog/frontmcp-deployment/examples/build-for-browser/browser-build-with-custom-entry.md +43 -0
- package/catalog/frontmcp-deployment/examples/build-for-browser/browser-crypto-and-storage.md +85 -0
- package/catalog/frontmcp-deployment/examples/build-for-browser/react-provider-setup.md +61 -0
- package/catalog/frontmcp-deployment/examples/build-for-cli/cli-binary-build.md +66 -0
- package/catalog/frontmcp-deployment/examples/build-for-cli/unix-socket-daemon.md +76 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/connect-openai.md +78 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/create-flat-config.md +85 -0
- package/catalog/frontmcp-deployment/examples/build-for-sdk/multi-platform-connect.md +104 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/basic-worker-deploy.md +82 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-custom-domain.md +97 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-cloudflare/worker-with-kv-storage.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/cdk-deployment.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/lambda-handler-with-cors.md +113 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-lambda/sam-template-basic.md +100 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/docker-compose-with-redis.md +101 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/pm2-with-nginx.md +79 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node/resource-limits.md +92 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/basic-multistage-dockerfile.md +63 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-node-dockerfile/secure-nonroot-dockerfile.md +89 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-mcp-endpoint-test.md +69 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-kv.md +82 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel/vercel-with-skills-cache.md +90 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/minimal-vercel-config.md +49 -0
- package/catalog/frontmcp-deployment/examples/deploy-to-vercel-config/vercel-config-with-security-headers.md +92 -0
- package/catalog/frontmcp-deployment/references/build-for-browser.md +15 -0
- package/catalog/frontmcp-deployment/references/build-for-cli.md +65 -3
- package/catalog/frontmcp-deployment/references/build-for-sdk.md +15 -0
- package/catalog/frontmcp-deployment/references/deploy-to-cloudflare.md +15 -0
- package/catalog/frontmcp-deployment/references/deploy-to-lambda.md +18 -3
- package/catalog/frontmcp-deployment/references/deploy-to-node-dockerfile.md +16 -2
- package/catalog/frontmcp-deployment/references/deploy-to-node.md +19 -4
- package/catalog/frontmcp-deployment/references/deploy-to-vercel-config.md +14 -0
- package/catalog/frontmcp-deployment/references/deploy-to-vercel.md +15 -0
- package/catalog/frontmcp-development/SKILL.md +25 -17
- package/catalog/frontmcp-development/examples/create-adapter/basic-api-adapter.md +92 -0
- package/catalog/frontmcp-development/examples/create-adapter/namespaced-adapter.md +124 -0
- package/catalog/frontmcp-development/examples/create-agent/basic-agent-with-tools.md +121 -0
- package/catalog/frontmcp-development/examples/create-agent/custom-multi-pass-agent.md +95 -0
- package/catalog/frontmcp-development/examples/create-agent/nested-agents-with-swarm.md +111 -0
- package/catalog/frontmcp-development/examples/create-agent-llm-config/anthropic-config.md +81 -0
- package/catalog/frontmcp-development/examples/create-agent-llm-config/openai-config.md +80 -0
- package/catalog/frontmcp-development/examples/create-job/basic-report-job.md +87 -0
- package/catalog/frontmcp-development/examples/create-job/job-with-permissions.md +117 -0
- package/catalog/frontmcp-development/examples/create-job/job-with-retry.md +88 -0
- package/catalog/frontmcp-development/examples/create-plugin/basic-plugin-with-provider.md +69 -0
- package/catalog/frontmcp-development/examples/create-plugin/configurable-dynamic-plugin.md +178 -0
- package/catalog/frontmcp-development/examples/create-plugin/plugin-with-context-extension.md +107 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/basic-logging-plugin.md +69 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/caching-with-around.md +80 -0
- package/catalog/frontmcp-development/examples/create-plugin-hooks/tool-level-hooks-and-stage-replacement.md +100 -0
- package/catalog/frontmcp-development/examples/create-prompt/basic-prompt.md +72 -0
- package/catalog/frontmcp-development/examples/create-prompt/dynamic-rag-prompt.md +92 -0
- package/catalog/frontmcp-development/examples/create-prompt/multi-turn-debug-session.md +86 -0
- package/catalog/frontmcp-development/examples/create-provider/basic-database-provider.md +113 -0
- package/catalog/frontmcp-development/examples/create-provider/config-and-api-providers.md +107 -0
- package/catalog/frontmcp-development/examples/create-resource/basic-static-resource.md +72 -0
- package/catalog/frontmcp-development/examples/create-resource/binary-and-multi-content.md +111 -0
- package/catalog/frontmcp-development/examples/create-resource/parameterized-template.md +84 -0
- package/catalog/frontmcp-development/examples/create-skill/basic-inline-skill.md +96 -0
- package/catalog/frontmcp-development/examples/create-skill/directory-based-skill.md +115 -0
- package/catalog/frontmcp-development/examples/create-skill/parameterized-skill.md +96 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md +76 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md +149 -0
- package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md +92 -0
- package/catalog/frontmcp-development/examples/create-tool/basic-class-tool.md +62 -0
- package/catalog/frontmcp-development/examples/create-tool/tool-with-di-and-errors.md +84 -0
- package/catalog/frontmcp-development/examples/create-tool/tool-with-rate-limiting-and-progress.md +93 -0
- package/catalog/frontmcp-development/examples/create-tool-annotations/destructive-delete-tool.md +94 -0
- package/catalog/frontmcp-development/examples/create-tool-annotations/readonly-query-tool.md +60 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/primitive-and-media-outputs.md +104 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-raw-shape-output.md +63 -0
- package/catalog/frontmcp-development/examples/create-tool-output-schema-types/zod-schema-advanced-output.md +103 -0
- package/catalog/frontmcp-development/examples/create-workflow/basic-deploy-pipeline.md +91 -0
- package/catalog/frontmcp-development/examples/create-workflow/parallel-validation-pipeline.md +90 -0
- package/catalog/frontmcp-development/examples/create-workflow/webhook-triggered-workflow.md +136 -0
- package/catalog/frontmcp-development/examples/decorators-guide/agent-skill-job-workflow.md +145 -0
- package/catalog/frontmcp-development/examples/decorators-guide/basic-server-with-app-and-tools.md +124 -0
- package/catalog/frontmcp-development/examples/decorators-guide/multi-app-with-plugins-and-providers.md +149 -0
- package/catalog/frontmcp-development/examples/official-adapters/authenticated-adapter-with-polling.md +84 -0
- package/catalog/frontmcp-development/examples/official-adapters/basic-openapi-adapter.md +54 -0
- package/catalog/frontmcp-development/examples/official-adapters/multi-api-hub-with-inline-spec.md +130 -0
- package/catalog/frontmcp-development/examples/official-plugins/cache-and-feature-flags.md +117 -0
- package/catalog/frontmcp-development/examples/official-plugins/production-multi-plugin-setup.md +147 -0
- package/catalog/frontmcp-development/examples/official-plugins/remember-plugin-session-memory.md +104 -0
- package/catalog/frontmcp-development/references/create-adapter.md +14 -0
- package/catalog/frontmcp-development/references/create-agent-llm-config.md +14 -0
- package/catalog/frontmcp-development/references/create-agent.md +15 -0
- package/catalog/frontmcp-development/references/create-job.md +15 -0
- package/catalog/frontmcp-development/references/create-plugin-hooks.md +51 -0
- package/catalog/frontmcp-development/references/create-plugin.md +186 -11
- package/catalog/frontmcp-development/references/create-prompt.md +17 -0
- package/catalog/frontmcp-development/references/create-provider.md +14 -0
- package/catalog/frontmcp-development/references/create-resource.md +127 -0
- package/catalog/frontmcp-development/references/create-skill-with-tools.md +126 -7
- package/catalog/frontmcp-development/references/create-skill.md +57 -12
- package/catalog/frontmcp-development/references/create-tool-annotations.md +14 -0
- package/catalog/frontmcp-development/references/create-tool-output-schema-types.md +15 -0
- package/catalog/frontmcp-development/references/create-tool.md +205 -1
- package/catalog/frontmcp-development/references/create-workflow.md +15 -0
- package/catalog/frontmcp-development/references/decorators-guide.md +155 -78
- package/catalog/frontmcp-development/references/official-adapters.md +31 -16
- package/catalog/frontmcp-development/references/official-plugins.md +62 -28
- package/catalog/frontmcp-extensibility/SKILL.md +103 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/product-catalog-search.md +175 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/semantic-search-with-persistence.md +138 -0
- package/catalog/frontmcp-extensibility/examples/vectoriadb/tfidf-keyword-search.md +103 -0
- package/catalog/frontmcp-extensibility/references/vectoriadb.md +299 -0
- package/catalog/frontmcp-guides/SKILL.md +7 -4
- package/catalog/frontmcp-guides/examples/example-knowledge-base/agent-and-plugin.md +160 -0
- package/catalog/frontmcp-guides/examples/example-knowledge-base/multi-app-composition.md +92 -0
- package/catalog/frontmcp-guides/examples/example-knowledge-base/vector-search-and-resources.md +135 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/auth-and-crud-tools.md +135 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/authenticated-e2e-tests.md +148 -0
- package/catalog/frontmcp-guides/examples/example-task-manager/redis-provider-with-di.md +129 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/server-and-app-setup.md +75 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/unit-and-e2e-tests.md +142 -0
- package/catalog/frontmcp-guides/examples/example-weather-api/weather-tool-with-schemas.md +74 -0
- package/catalog/frontmcp-guides/references/example-knowledge-base.md +15 -0
- package/catalog/frontmcp-guides/references/example-task-manager.md +30 -21
- package/catalog/frontmcp-guides/references/example-weather-api.md +18 -6
- package/catalog/frontmcp-observability/SKILL.md +144 -0
- package/catalog/frontmcp-observability/examples/structured-logging/stdout-logging.md +71 -0
- package/catalog/frontmcp-observability/examples/structured-logging/winston-integration.md +70 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/agent-nested-tracing.md +86 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/plugin-telemetry.md +93 -0
- package/catalog/frontmcp-observability/examples/telemetry-api/tool-custom-spans.md +72 -0
- package/catalog/frontmcp-observability/examples/testing-observability/test-custom-spans.md +90 -0
- package/catalog/frontmcp-observability/examples/testing-observability/test-log-correlation.md +104 -0
- package/catalog/frontmcp-observability/examples/tracing-setup/basic-tracing.md +82 -0
- package/catalog/frontmcp-observability/examples/tracing-setup/production-tracing.md +73 -0
- package/catalog/frontmcp-observability/examples/vendor-integrations/coralogix-setup.md +74 -0
- package/catalog/frontmcp-observability/references/structured-logging.md +114 -0
- package/catalog/frontmcp-observability/references/telemetry-api.md +155 -0
- package/catalog/frontmcp-observability/references/testing-observability.md +169 -0
- package/catalog/frontmcp-observability/references/tracing-setup.md +146 -0
- package/catalog/frontmcp-observability/references/vendor-integrations.md +164 -0
- package/catalog/frontmcp-production-readiness/SKILL.md +99 -0
- package/catalog/frontmcp-production-readiness/examples/common-checklist/caching-and-performance.md +102 -0
- package/catalog/frontmcp-production-readiness/examples/common-checklist/observability-setup.md +104 -0
- package/catalog/frontmcp-production-readiness/examples/common-checklist/security-hardening.md +95 -0
- package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/basic-health-setup.md +81 -0
- package/catalog/frontmcp-production-readiness/examples/health-readiness-endpoints/custom-probes.md +136 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/browser-bundle-config.md +93 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/cross-platform-crypto.md +116 -0
- package/catalog/frontmcp-production-readiness/examples/production-browser/security-and-performance.md +128 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-binary/binary-build-config.md +109 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-binary/stdio-transport-error-handling.md +132 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/daemon-socket-config.md +82 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/graceful-shutdown-cleanup.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-cli-daemon/security-and-permissions.md +119 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/durable-objects-state.md +124 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/workers-runtime-constraints.md +103 -0
- package/catalog/frontmcp-production-readiness/examples/production-cloudflare/wrangler-config.md +89 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/cold-start-connection-reuse.md +122 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/sam-template.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-lambda/scaling-and-monitoring.md +138 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/basic-sdk-lifecycle.md +85 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/multi-instance-cleanup.md +110 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-sdk/package-json-config.md +107 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/docker-multi-stage.md +103 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/graceful-shutdown.md +87 -0
- package/catalog/frontmcp-production-readiness/examples/production-node-server/redis-session-scaling.md +97 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/cold-start-optimization.md +104 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/stateless-serverless-design.md +91 -0
- package/catalog/frontmcp-production-readiness/examples/production-vercel/vercel-edge-config.md +78 -0
- package/catalog/frontmcp-production-readiness/references/common-checklist.md +175 -0
- package/catalog/frontmcp-production-readiness/references/health-readiness-endpoints.md +198 -0
- package/catalog/frontmcp-production-readiness/references/production-browser.md +56 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-binary.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-cli-daemon.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-cloudflare.md +62 -0
- package/catalog/frontmcp-production-readiness/references/production-lambda.md +63 -0
- package/catalog/frontmcp-production-readiness/references/production-node-sdk.md +76 -0
- package/catalog/frontmcp-production-readiness/references/production-node-server.md +71 -0
- package/catalog/frontmcp-production-readiness/references/production-vercel.md +62 -0
- package/catalog/frontmcp-setup/SKILL.md +19 -14
- package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/bundle-presets-scaffolding.md +61 -0
- package/catalog/frontmcp-setup/examples/frontmcp-skills-usage/install-and-search-skills.md +83 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/local-apps-with-shared-tools.md +87 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/per-app-auth-and-isolation.md +88 -0
- package/catalog/frontmcp-setup/examples/multi-app-composition/remote-and-esm-apps.md +81 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/build-test-affected.md +77 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/multi-server-deployment.md +93 -0
- package/catalog/frontmcp-setup/examples/nx-workflow/scaffold-and-generate.md +62 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/nx-generator-scaffolding.md +73 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/nx-workspace-with-apps.md +85 -0
- package/catalog/frontmcp-setup/examples/project-structure-nx/shared-library-usage.md +89 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/dev-workflow-commands.md +64 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/feature-folder-organization.md +111 -0
- package/catalog/frontmcp-setup/examples/project-structure-standalone/minimal-standalone-layout.md +73 -0
- package/catalog/frontmcp-setup/examples/readme-guide/node-server-readme.md +89 -0
- package/catalog/frontmcp-setup/examples/readme-guide/vercel-deployment-readme.md +90 -0
- package/catalog/frontmcp-setup/examples/setup-project/basic-node-server.md +99 -0
- package/catalog/frontmcp-setup/examples/setup-project/cli-scaffold-with-flags.md +77 -0
- package/catalog/frontmcp-setup/examples/setup-project/vercel-serverless-server.md +89 -0
- package/catalog/frontmcp-setup/examples/setup-redis/docker-redis-local-dev.md +88 -0
- package/catalog/frontmcp-setup/examples/setup-redis/hybrid-vercel-kv-with-pubsub.md +78 -0
- package/catalog/frontmcp-setup/examples/setup-redis/vercel-kv-serverless.md +78 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/basic-sqlite-setup.md +75 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/encrypted-sqlite-storage.md +55 -0
- package/catalog/frontmcp-setup/examples/setup-sqlite/unix-socket-daemon.md +70 -0
- package/catalog/frontmcp-setup/references/frontmcp-skills-usage.md +33 -9
- package/catalog/frontmcp-setup/references/multi-app-composition.md +15 -0
- package/catalog/frontmcp-setup/references/nx-workflow.md +15 -0
- package/catalog/frontmcp-setup/references/project-structure-nx.md +15 -0
- package/catalog/frontmcp-setup/references/project-structure-standalone.md +15 -0
- package/catalog/frontmcp-setup/references/readme-guide.md +235 -0
- package/catalog/frontmcp-setup/references/setup-project.md +16 -1
- package/catalog/frontmcp-setup/references/setup-redis.md +15 -0
- package/catalog/frontmcp-setup/references/setup-sqlite.md +15 -0
- package/catalog/frontmcp-testing/SKILL.md +41 -27
- package/catalog/frontmcp-testing/examples/setup-testing/fixture-based-e2e-test.md +70 -0
- package/catalog/frontmcp-testing/examples/setup-testing/jest-config-with-coverage.md +59 -0
- package/catalog/frontmcp-testing/examples/setup-testing/unit-test-tool-resource-prompt.md +115 -0
- package/catalog/frontmcp-testing/examples/test-auth/oauth-flow-test.md +78 -0
- package/catalog/frontmcp-testing/examples/test-auth/role-based-access-test.md +88 -0
- package/catalog/frontmcp-testing/examples/test-auth/token-factory-test.md +71 -0
- package/catalog/frontmcp-testing/examples/test-browser-build/browser-bundle-validation.md +58 -0
- package/catalog/frontmcp-testing/examples/test-browser-build/playwright-browser-test.md +69 -0
- package/catalog/frontmcp-testing/examples/test-cli-binary/binary-startup-test.md +77 -0
- package/catalog/frontmcp-testing/examples/test-cli-binary/js-bundle-import-test.md +56 -0
- package/catalog/frontmcp-testing/examples/test-direct-client/basic-create-test.md +74 -0
- package/catalog/frontmcp-testing/examples/test-direct-client/openai-claude-format-test.md +79 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/basic-e2e-test.md +67 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/manual-client-with-transport.md +72 -0
- package/catalog/frontmcp-testing/examples/test-e2e-handler/tool-call-and-error-e2e.md +73 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/basic-tool-test.md +69 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/schema-validation-test.md +82 -0
- package/catalog/frontmcp-testing/examples/test-tool-unit/tool-error-handling-test.md +92 -0
- package/catalog/frontmcp-testing/references/setup-testing.md +17 -0
- package/catalog/frontmcp-testing/references/test-auth.md +15 -0
- package/catalog/frontmcp-testing/references/test-browser-build.md +14 -0
- package/catalog/frontmcp-testing/references/test-cli-binary.md +14 -0
- package/catalog/frontmcp-testing/references/test-direct-client.md +14 -0
- package/catalog/frontmcp-testing/references/test-e2e-handler.md +15 -0
- package/catalog/frontmcp-testing/references/test-tool-unit.md +15 -0
- package/catalog/skills-manifest.json +2849 -32
- package/package.json +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js.map +1 -1
- package/src/loader.js +0 -1
- package/src/loader.js.map +1 -1
- package/src/manifest.d.ts +36 -1
- package/src/manifest.js +6 -1
- package/src/manifest.js.map +1 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: basic-inline-skill
|
|
3
|
+
reference: create-skill
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'A minimal instruction-only skill with inline content and the function builder alternative.'
|
|
6
|
+
tags: [development, skill, inline]
|
|
7
|
+
features:
|
|
8
|
+
- 'Creating a class-based instruction-only skill with `@Skill` and `SkillContext`'
|
|
9
|
+
- 'Using inline string instructions for short, self-contained guides'
|
|
10
|
+
- 'The `skill()` function builder as a lighter alternative when no `build()` override is needed'
|
|
11
|
+
- 'Setting `visibility` to control where the skill is discoverable'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Basic Inline Instruction Skill
|
|
15
|
+
|
|
16
|
+
A minimal instruction-only skill with inline content and the function builder alternative.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/skills/typescript-conventions.skill.ts
|
|
22
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
23
|
+
|
|
24
|
+
@Skill({
|
|
25
|
+
name: 'typescript-conventions',
|
|
26
|
+
description: 'TypeScript coding conventions and patterns for the project',
|
|
27
|
+
instructions: `# TypeScript Conventions
|
|
28
|
+
|
|
29
|
+
## Naming
|
|
30
|
+
- Use PascalCase for classes and interfaces
|
|
31
|
+
- Use camelCase for variables, functions, and methods
|
|
32
|
+
- Use UPPER_SNAKE_CASE for constants
|
|
33
|
+
- Use kebab-case for file names
|
|
34
|
+
|
|
35
|
+
## Types
|
|
36
|
+
- Always use explicit return types on public methods
|
|
37
|
+
- Prefer \`unknown\` over \`any\` for generic defaults
|
|
38
|
+
- Use strict mode (\`strict: true\` in tsconfig)
|
|
39
|
+
- Define shared types in a common directory
|
|
40
|
+
|
|
41
|
+
## Error Handling
|
|
42
|
+
- Use specific error classes, not raw Error
|
|
43
|
+
- Never use non-null assertions (\`!\`) -- throw proper errors
|
|
44
|
+
- Use \`this.fail(err)\` in execution contexts
|
|
45
|
+
|
|
46
|
+
## Imports
|
|
47
|
+
- Use barrel exports (index.ts) for public APIs
|
|
48
|
+
- No circular dependencies
|
|
49
|
+
- Group imports: external, internal, relative`,
|
|
50
|
+
})
|
|
51
|
+
class TypeScriptConventionsSkill extends SkillContext {}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
// src/skills/code-review-checklist.skill.ts
|
|
56
|
+
import { skill } from '@frontmcp/sdk';
|
|
57
|
+
|
|
58
|
+
// Function-style skill -- no class needed for simple instruction-only skills
|
|
59
|
+
const CodeReviewChecklist = skill({
|
|
60
|
+
name: 'code-review-checklist',
|
|
61
|
+
description: 'Checklist for reviewing pull requests',
|
|
62
|
+
instructions: `# Code Review Checklist
|
|
63
|
+
|
|
64
|
+
## Correctness
|
|
65
|
+
- Does the code do what it claims?
|
|
66
|
+
- Are edge cases handled?
|
|
67
|
+
- Are error paths covered?
|
|
68
|
+
|
|
69
|
+
## Style
|
|
70
|
+
- Does it follow project conventions?
|
|
71
|
+
- Are names descriptive and consistent?
|
|
72
|
+
- Is the code self-documenting?
|
|
73
|
+
|
|
74
|
+
## Testing
|
|
75
|
+
- Are there tests for new functionality?
|
|
76
|
+
- Do tests cover edge cases?
|
|
77
|
+
- Is coverage above 95%?
|
|
78
|
+
|
|
79
|
+
## Security
|
|
80
|
+
- No secrets in code or config?
|
|
81
|
+
- Input validation present?
|
|
82
|
+
- Proper error handling without leaking internals?`,
|
|
83
|
+
visibility: 'both',
|
|
84
|
+
});
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## What This Demonstrates
|
|
88
|
+
|
|
89
|
+
- Creating a class-based instruction-only skill with `@Skill` and `SkillContext`
|
|
90
|
+
- Using inline string instructions for short, self-contained guides
|
|
91
|
+
- The `skill()` function builder as a lighter alternative when no `build()` override is needed
|
|
92
|
+
- Setting `visibility` to control where the skill is discoverable
|
|
93
|
+
|
|
94
|
+
## Related
|
|
95
|
+
|
|
96
|
+
- See `create-skill` for file-based instructions, parameters, and directory-based skills
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: directory-based-skill
|
|
3
|
+
reference: create-skill
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'A skill loaded from a directory structure with SKILL.md frontmatter, plus file-based and URL-based instruction sources.'
|
|
6
|
+
tags: [development, remote, skill, directory, based]
|
|
7
|
+
features:
|
|
8
|
+
- 'Loading a skill from a directory with `skillDir()` including SKILL.md frontmatter and bundled resources'
|
|
9
|
+
- 'The SKILL.md YAML frontmatter format for metadata (name, description, tags, parameters, examples)'
|
|
10
|
+
- "File-based instructions with `{ file: './path.md' }` resolved relative to the skill file"
|
|
11
|
+
- "URL-based instructions with `{ url: '...' }` fetched at build time"
|
|
12
|
+
- 'ESM loading with `Skill.esm()` and remote loading with `Skill.remote()`'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Directory-Based Skill with File References and Registration
|
|
16
|
+
|
|
17
|
+
A skill loaded from a directory structure with SKILL.md frontmatter, plus file-based and URL-based instruction sources.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
skills/
|
|
23
|
+
coding-standards/
|
|
24
|
+
SKILL.md # Instructions with YAML frontmatter
|
|
25
|
+
scripts/
|
|
26
|
+
lint-check.sh # Helper scripts referenced in instructions
|
|
27
|
+
references/
|
|
28
|
+
patterns.md # Reference documentation appended to context
|
|
29
|
+
assets/
|
|
30
|
+
diagram.png # Visual assets
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
## <!-- skills/coding-standards/SKILL.md -->
|
|
35
|
+
|
|
36
|
+
name: coding-standards
|
|
37
|
+
description: Project coding standards and patterns
|
|
38
|
+
tags: [standards, conventions, quality]
|
|
39
|
+
parameters:
|
|
40
|
+
|
|
41
|
+
- name: language
|
|
42
|
+
description: Target programming language
|
|
43
|
+
type: string
|
|
44
|
+
default: typescript
|
|
45
|
+
examples:
|
|
46
|
+
- scenario: Apply coding standards to a new module
|
|
47
|
+
expected-outcome: Code follows all project conventions
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
# Coding Standards
|
|
52
|
+
|
|
53
|
+
Follow these standards when writing code for this project...
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
// src/skills/load-skills.ts
|
|
58
|
+
import { skillDir, skill } from '@frontmcp/sdk';
|
|
59
|
+
|
|
60
|
+
// Load a directory-based skill with bundled scripts, references, and assets
|
|
61
|
+
const CodingStandards = await skillDir('./skills/coding-standards');
|
|
62
|
+
|
|
63
|
+
// File-based instructions -- path resolves relative to this file's directory
|
|
64
|
+
const DeployGuide = skill({
|
|
65
|
+
name: 'deploy-guide',
|
|
66
|
+
description: 'Step-by-step deployment checklist',
|
|
67
|
+
instructions: { file: './docs/deploy-guide.md' }, // resolves to src/skills/docs/deploy-guide.md
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// src/server.ts
|
|
73
|
+
import { FrontMcp, App, Skill, SkillContext } from '@frontmcp/sdk';
|
|
74
|
+
|
|
75
|
+
// URL-based instructions fetched at build time
|
|
76
|
+
@Skill({
|
|
77
|
+
name: 'api-standards',
|
|
78
|
+
description: 'REST API design standards',
|
|
79
|
+
instructions: { url: 'https://docs.example.com/standards/api-design.md' },
|
|
80
|
+
})
|
|
81
|
+
class ApiStandardsSkill extends SkillContext {}
|
|
82
|
+
|
|
83
|
+
// ESM and remote loading
|
|
84
|
+
const ExternalGuide = Skill.esm('@my-org/skills@^1.0.0', 'ExternalGuide', {
|
|
85
|
+
description: 'A skill loaded from an ES module',
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const CloudGuide = Skill.remote('https://example.com/skills/style-guide', 'CloudGuide', {
|
|
89
|
+
description: 'A skill loaded from a remote server',
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
@App({
|
|
93
|
+
name: 'standards-app',
|
|
94
|
+
skills: [CodingStandards, DeployGuide, ApiStandardsSkill, ExternalGuide, CloudGuide],
|
|
95
|
+
})
|
|
96
|
+
class StandardsApp {}
|
|
97
|
+
|
|
98
|
+
@FrontMcp({
|
|
99
|
+
info: { name: 'dev-server', version: '1.0.0' },
|
|
100
|
+
apps: [StandardsApp],
|
|
101
|
+
})
|
|
102
|
+
class DevServer {}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## What This Demonstrates
|
|
106
|
+
|
|
107
|
+
- Loading a skill from a directory with `skillDir()` including SKILL.md frontmatter and bundled resources
|
|
108
|
+
- The SKILL.md YAML frontmatter format for metadata (name, description, tags, parameters, examples)
|
|
109
|
+
- File-based instructions with `{ file: './path.md' }` resolved relative to the skill file
|
|
110
|
+
- URL-based instructions with `{ url: '...' }` fetched at build time
|
|
111
|
+
- ESM loading with `Skill.esm()` and remote loading with `Skill.remote()`
|
|
112
|
+
|
|
113
|
+
## Related
|
|
114
|
+
|
|
115
|
+
- See `create-skill` for the complete `skillDir()` reference, instruction resolution, and HTTP discovery
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: parameterized-skill
|
|
3
|
+
reference: create-skill
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'A skill with customizable parameters, usage examples for AI guidance, and controlled visibility.'
|
|
6
|
+
tags: [development, skill, parameterized]
|
|
7
|
+
features:
|
|
8
|
+
- 'Defining `parameters` to let callers customize skill behavior at invocation time'
|
|
9
|
+
- 'Providing `examples` with `scenario` and `expectedOutcome` to guide AI application'
|
|
10
|
+
- 'Using `tags` for skill categorization and filtering'
|
|
11
|
+
- "Controlling discovery with `visibility: 'mcp'` (MCP-only) vs `visibility: 'both'` (default)"
|
|
12
|
+
- 'Using `hideFromDiscovery: true` to register a skill that is invocable by name but not listed'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Parameterized Skill with Examples and Visibility
|
|
16
|
+
|
|
17
|
+
A skill with customizable parameters, usage examples for AI guidance, and controlled visibility.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// src/skills/api-design-guide.skill.ts
|
|
23
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@Skill({
|
|
26
|
+
name: 'api-design-guide',
|
|
27
|
+
description: 'REST API design guidelines',
|
|
28
|
+
instructions: `# API Design Guide
|
|
29
|
+
|
|
30
|
+
Design APIs following these conventions.
|
|
31
|
+
Adapt the versioning strategy based on the api-style parameter.
|
|
32
|
+
Use the auth-required parameter to determine if authentication sections apply.`,
|
|
33
|
+
parameters: [
|
|
34
|
+
{ name: 'api-style', description: 'API style to follow', type: 'string', default: 'rest' },
|
|
35
|
+
{ name: 'auth-required', description: 'Whether to include auth guidelines', type: 'boolean', default: true },
|
|
36
|
+
{ name: 'version-strategy', description: 'API versioning approach', type: 'string', default: 'url-path' },
|
|
37
|
+
],
|
|
38
|
+
examples: [
|
|
39
|
+
{
|
|
40
|
+
scenario: 'Adding error handling to a new API endpoint',
|
|
41
|
+
expectedOutcome:
|
|
42
|
+
'Endpoint uses specific error classes with MCP error codes, validates input, and returns structured error responses',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
scenario: 'Refactoring try-catch blocks in existing code',
|
|
46
|
+
expectedOutcome: 'Generic catches replaced with specific error types, proper error propagation chain established',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
tags: ['api', 'design', 'standards'],
|
|
50
|
+
visibility: 'both',
|
|
51
|
+
})
|
|
52
|
+
class ApiDesignGuideSkill extends SkillContext {}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
// src/skills/internal-runbook.skill.ts
|
|
57
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
58
|
+
|
|
59
|
+
@Skill({
|
|
60
|
+
name: 'internal-runbook',
|
|
61
|
+
description: 'Internal operations runbook',
|
|
62
|
+
instructions: `# Operations Runbook
|
|
63
|
+
|
|
64
|
+
## Incident Response
|
|
65
|
+
1. Check monitoring dashboards
|
|
66
|
+
2. Identify affected services
|
|
67
|
+
3. Escalate if severity is P0 or P1`,
|
|
68
|
+
visibility: 'mcp', // Only visible to MCP clients, not HTTP discovery
|
|
69
|
+
})
|
|
70
|
+
class InternalRunbookSkill extends SkillContext {}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```typescript
|
|
74
|
+
// src/skills/admin-procedures.skill.ts
|
|
75
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
76
|
+
|
|
77
|
+
@Skill({
|
|
78
|
+
name: 'admin-procedures',
|
|
79
|
+
description: 'Administrative procedures for internal use',
|
|
80
|
+
instructions: '...',
|
|
81
|
+
hideFromDiscovery: true, // Registered but hidden from listing endpoints
|
|
82
|
+
})
|
|
83
|
+
class AdminProceduresSkill extends SkillContext {}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
## What This Demonstrates
|
|
87
|
+
|
|
88
|
+
- Defining `parameters` to let callers customize skill behavior at invocation time
|
|
89
|
+
- Providing `examples` with `scenario` and `expectedOutcome` to guide AI application
|
|
90
|
+
- Using `tags` for skill categorization and filtering
|
|
91
|
+
- Controlling discovery with `visibility: 'mcp'` (MCP-only) vs `visibility: 'both'` (default)
|
|
92
|
+
- Using `hideFromDiscovery: true` to register a skill that is invocable by name but not listed
|
|
93
|
+
|
|
94
|
+
## Related
|
|
95
|
+
|
|
96
|
+
- See `create-skill` for the full parameters, examples, and visibility reference
|
package/catalog/frontmcp-development/examples/create-skill-with-tools/basic-tool-orchestration.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: basic-tool-orchestration
|
|
3
|
+
reference: create-skill-with-tools
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'A skill that guides an AI client through a deploy workflow using referenced MCP tools.'
|
|
6
|
+
tags: [development, skill, tools, tool, orchestration]
|
|
7
|
+
features:
|
|
8
|
+
- "Referencing tools by class (`BuildProjectTool`) and by string name (`'health_check'`)"
|
|
9
|
+
- 'Mixing class references and string names in a single `tools` array'
|
|
10
|
+
- 'Writing step-by-step instructions that guide the AI to use specific tools'
|
|
11
|
+
- 'The `skill()` function builder for tool-referencing skills that need no class'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Basic Skill with Tool References
|
|
15
|
+
|
|
16
|
+
A skill that guides an AI client through a deploy workflow using referenced MCP tools.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/skills/deploy-service.skill.ts
|
|
22
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
23
|
+
import { BuildProjectTool } from '../tools/build-project.tool';
|
|
24
|
+
import { RunTestsTool } from '../tools/run-tests.tool';
|
|
25
|
+
import { DeployToEnvTool } from '../tools/deploy-to-env.tool';
|
|
26
|
+
|
|
27
|
+
@Skill({
|
|
28
|
+
name: 'deploy-service',
|
|
29
|
+
description: 'Deploy a service through the build, test, and release pipeline',
|
|
30
|
+
instructions: `# Deploy Service Workflow
|
|
31
|
+
|
|
32
|
+
## Step 1: Build
|
|
33
|
+
Use the \`build_project\` tool to compile the service.
|
|
34
|
+
Pass the service name and target environment.
|
|
35
|
+
|
|
36
|
+
## Step 2: Run Tests
|
|
37
|
+
Use the \`run_tests\` tool to execute the test suite.
|
|
38
|
+
If tests fail, stop and report the failures.
|
|
39
|
+
|
|
40
|
+
## Step 3: Deploy
|
|
41
|
+
Use the \`deploy_to_env\` tool to push the build to the target environment.
|
|
42
|
+
Verify the deployment using \`health_check\` tool.
|
|
43
|
+
|
|
44
|
+
## Step 4: Notify
|
|
45
|
+
Use the \`send_notification\` tool to notify the team of the deployment status.`,
|
|
46
|
+
tools: [BuildProjectTool, RunTestsTool, DeployToEnvTool, 'health_check', 'send_notification'],
|
|
47
|
+
})
|
|
48
|
+
class DeployServiceSkill extends SkillContext {}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
// src/skills/quick-deploy.skill.ts
|
|
53
|
+
import { skill } from '@frontmcp/sdk';
|
|
54
|
+
|
|
55
|
+
// Function-style skill with tool references
|
|
56
|
+
const QuickDeploySkill = skill({
|
|
57
|
+
name: 'quick-deploy',
|
|
58
|
+
description: 'Quick deployment to staging',
|
|
59
|
+
instructions: `# Quick Deploy
|
|
60
|
+
1. Use build_project to compile.
|
|
61
|
+
2. Use deploy_to_env with environment=staging.
|
|
62
|
+
3. Use health_check to verify.`,
|
|
63
|
+
tools: ['build_project', 'deploy_to_env', 'health_check'],
|
|
64
|
+
});
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## What This Demonstrates
|
|
68
|
+
|
|
69
|
+
- Referencing tools by class (`BuildProjectTool`) and by string name (`'health_check'`)
|
|
70
|
+
- Mixing class references and string names in a single `tools` array
|
|
71
|
+
- Writing step-by-step instructions that guide the AI to use specific tools
|
|
72
|
+
- The `skill()` function builder for tool-referencing skills that need no class
|
|
73
|
+
|
|
74
|
+
## Related
|
|
75
|
+
|
|
76
|
+
- See `create-skill-with-tools` for all three tool reference styles and validation modes
|
package/catalog/frontmcp-development/examples/create-skill-with-tools/directory-skill-with-tools.md
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: directory-skill-with-tools
|
|
3
|
+
reference: create-skill-with-tools
|
|
4
|
+
level: advanced
|
|
5
|
+
description: 'A directory-based skill loaded with `skillDir()`, plus a class-based skill using Agent Skills spec metadata fields.'
|
|
6
|
+
tags: [development, skill, tools, directory]
|
|
7
|
+
features:
|
|
8
|
+
- 'Loading a directory-based skill with `skillDir()` including SKILL.md frontmatter with tool entries'
|
|
9
|
+
- 'Mixing all three tool reference styles in one `tools` array: class, string, and object'
|
|
10
|
+
- 'Agent Skills spec fields: `priority`, `license`, `compatibility`, `allowedTools`, `specMetadata`'
|
|
11
|
+
- 'Bundled resource directories: `scripts`, `references`, `assets`'
|
|
12
|
+
- "File-based instructions with `{ file: './docs/codebase-audit.md' }`"
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Directory-Based Skill with Tools, Agent Skills Spec Fields, and Registration
|
|
16
|
+
|
|
17
|
+
A directory-based skill loaded with `skillDir()`, plus a class-based skill using Agent Skills spec metadata fields.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
skills/
|
|
23
|
+
deploy-service/
|
|
24
|
+
SKILL.md # Instructions with YAML frontmatter
|
|
25
|
+
scripts/
|
|
26
|
+
validate.sh # Helper scripts
|
|
27
|
+
smoke-test.sh
|
|
28
|
+
references/
|
|
29
|
+
architecture.md # Reference documentation
|
|
30
|
+
runbook.md
|
|
31
|
+
assets/
|
|
32
|
+
topology.png # Visual assets
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```markdown
|
|
36
|
+
## <!-- skills/deploy-service/SKILL.md -->
|
|
37
|
+
|
|
38
|
+
name: deploy-service
|
|
39
|
+
description: Deploy a service through the full pipeline
|
|
40
|
+
tags: [deploy, ci-cd, production]
|
|
41
|
+
tools:
|
|
42
|
+
|
|
43
|
+
- name: build_project
|
|
44
|
+
purpose: Compile the service
|
|
45
|
+
required: true
|
|
46
|
+
- name: run_tests
|
|
47
|
+
purpose: Execute test suite
|
|
48
|
+
required: true
|
|
49
|
+
- name: deploy_to_env
|
|
50
|
+
purpose: Push build to target environment
|
|
51
|
+
required: true
|
|
52
|
+
parameters:
|
|
53
|
+
- name: environment
|
|
54
|
+
description: Target deployment environment
|
|
55
|
+
type: string
|
|
56
|
+
required: true
|
|
57
|
+
examples:
|
|
58
|
+
- scenario: Deploy to staging
|
|
59
|
+
expected-outcome: Service deployed and health check passes
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
# Deploy Service
|
|
64
|
+
|
|
65
|
+
Follow these steps to deploy the service...
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
```typescript
|
|
69
|
+
// src/skills/load-skills.ts
|
|
70
|
+
import { skillDir } from '@frontmcp/sdk';
|
|
71
|
+
|
|
72
|
+
const DeployServiceSkill = await skillDir('./skills/deploy-service');
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// src/skills/audit.skill.ts
|
|
77
|
+
import { Skill, SkillContext, Tool, ToolContext } from '@frontmcp/sdk';
|
|
78
|
+
import { z } from 'zod';
|
|
79
|
+
|
|
80
|
+
@Tool({
|
|
81
|
+
name: 'analyze_codebase',
|
|
82
|
+
description: 'Analyze a codebase for patterns and issues',
|
|
83
|
+
inputSchema: {
|
|
84
|
+
path: z.string().describe('Path to the codebase'),
|
|
85
|
+
checks: z.array(z.string()).describe('Checks to run'),
|
|
86
|
+
},
|
|
87
|
+
})
|
|
88
|
+
class AnalyzeCodebaseTool extends ToolContext {
|
|
89
|
+
async execute(input: { path: string; checks: string[] }) {
|
|
90
|
+
return { issues: [], score: 95 };
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
@Skill({
|
|
95
|
+
name: 'codebase-audit',
|
|
96
|
+
description: 'Perform a comprehensive codebase audit with reporting and issue creation',
|
|
97
|
+
instructions: { file: './docs/codebase-audit.md' },
|
|
98
|
+
tools: [
|
|
99
|
+
AnalyzeCodebaseTool,
|
|
100
|
+
'generate_report',
|
|
101
|
+
{ name: 'create_issue', purpose: 'File GitHub issues for critical findings', required: false },
|
|
102
|
+
],
|
|
103
|
+
toolValidation: 'strict',
|
|
104
|
+
priority: 10,
|
|
105
|
+
license: 'MIT',
|
|
106
|
+
compatibility: 'Node.js 24+',
|
|
107
|
+
allowedTools: 'Read Edit Bash(git status)',
|
|
108
|
+
specMetadata: {
|
|
109
|
+
author: 'platform-team',
|
|
110
|
+
version: '2.0.0',
|
|
111
|
+
},
|
|
112
|
+
resources: {
|
|
113
|
+
scripts: './scripts',
|
|
114
|
+
references: './references',
|
|
115
|
+
assets: './assets',
|
|
116
|
+
},
|
|
117
|
+
})
|
|
118
|
+
class CodebaseAuditSkill extends SkillContext {}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
// src/server.ts
|
|
123
|
+
import { FrontMcp, App } from '@frontmcp/sdk';
|
|
124
|
+
|
|
125
|
+
@App({
|
|
126
|
+
name: 'audit-app',
|
|
127
|
+
skills: [DeployServiceSkill, CodebaseAuditSkill],
|
|
128
|
+
tools: [AnalyzeCodebaseTool, GenerateReportTool, CreateIssueTool],
|
|
129
|
+
})
|
|
130
|
+
class AuditApp {}
|
|
131
|
+
|
|
132
|
+
@FrontMcp({
|
|
133
|
+
info: { name: 'audit-server', version: '1.0.0' },
|
|
134
|
+
apps: [AuditApp],
|
|
135
|
+
})
|
|
136
|
+
class AuditServer {}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## What This Demonstrates
|
|
140
|
+
|
|
141
|
+
- Loading a directory-based skill with `skillDir()` including SKILL.md frontmatter with tool entries
|
|
142
|
+
- Mixing all three tool reference styles in one `tools` array: class, string, and object
|
|
143
|
+
- Agent Skills spec fields: `priority`, `license`, `compatibility`, `allowedTools`, `specMetadata`
|
|
144
|
+
- Bundled resource directories: `scripts`, `references`, `assets`
|
|
145
|
+
- File-based instructions with `{ file: './docs/codebase-audit.md' }`
|
|
146
|
+
|
|
147
|
+
## Related
|
|
148
|
+
|
|
149
|
+
- See `create-skill-with-tools` for the full Agent Skills spec fields reference and CodeCall compatibility
|
package/catalog/frontmcp-development/examples/create-skill-with-tools/incident-response-skill.md
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: incident-response-skill
|
|
3
|
+
reference: create-skill-with-tools
|
|
4
|
+
level: intermediate
|
|
5
|
+
description: 'A skill that uses object-style tool references with purpose descriptions and required flags, plus strict validation.'
|
|
6
|
+
tags: [development, skill, tools, incident, response]
|
|
7
|
+
features:
|
|
8
|
+
- 'Object-style tool references with `name`, `purpose`, and `required` fields'
|
|
9
|
+
- "Using `toolValidation: 'strict'` to fail at startup if any referenced tool is missing"
|
|
10
|
+
- 'Combining tool references with `parameters` and `examples` for full skill metadata'
|
|
11
|
+
- "Setting `visibility: 'mcp'` to restrict discovery to MCP protocol only"
|
|
12
|
+
- 'Registering both skills and their referenced tools in the same `@App`'
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Incident Response Skill with Detailed Tool Metadata
|
|
16
|
+
|
|
17
|
+
A skill that uses object-style tool references with purpose descriptions and required flags, plus strict validation.
|
|
18
|
+
|
|
19
|
+
## Code
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// src/skills/incident-response.skill.ts
|
|
23
|
+
import { Skill, SkillContext } from '@frontmcp/sdk';
|
|
24
|
+
|
|
25
|
+
@Skill({
|
|
26
|
+
name: 'incident-response',
|
|
27
|
+
description: 'Respond to production incidents',
|
|
28
|
+
instructions: `# Incident Response
|
|
29
|
+
|
|
30
|
+
## Step 1: Gather Information
|
|
31
|
+
Use check_service_health to determine which services are affected.
|
|
32
|
+
Use query_logs to find error patterns.
|
|
33
|
+
|
|
34
|
+
## Step 2: Mitigate
|
|
35
|
+
Use rollback_deployment if a recent deploy caused the issue.
|
|
36
|
+
Use scale_service if the issue is load-related.
|
|
37
|
+
|
|
38
|
+
## Step 3: Communicate
|
|
39
|
+
Use send_notification to update the incident channel.`,
|
|
40
|
+
tools: [
|
|
41
|
+
{ name: 'check_service_health', purpose: 'Check health status of services', required: true },
|
|
42
|
+
{ name: 'query_logs', purpose: 'Search application logs for errors', required: true },
|
|
43
|
+
{ name: 'rollback_deployment', purpose: 'Rollback to previous deployment', required: false },
|
|
44
|
+
{ name: 'scale_service', purpose: 'Scale service replicas up or down', required: false },
|
|
45
|
+
{ name: 'send_notification', purpose: 'Send notification to Slack channel', required: true },
|
|
46
|
+
],
|
|
47
|
+
toolValidation: 'strict', // Fail at startup if any required tool is missing
|
|
48
|
+
parameters: [
|
|
49
|
+
{ name: 'severity', description: 'Incident severity level', type: 'string', required: true },
|
|
50
|
+
{ name: 'auto-rollback', description: 'Whether to auto-rollback on detection', type: 'boolean', default: false },
|
|
51
|
+
],
|
|
52
|
+
examples: [
|
|
53
|
+
{
|
|
54
|
+
scenario: 'API latency spike after a deployment',
|
|
55
|
+
expectedOutcome: 'Health checked, logs queried, deployment rolled back, team notified',
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
tags: ['incident', 'ops', 'on-call'],
|
|
59
|
+
visibility: 'mcp',
|
|
60
|
+
})
|
|
61
|
+
class IncidentResponseSkill extends SkillContext {}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// src/server.ts
|
|
66
|
+
import { FrontMcp, App } from '@frontmcp/sdk';
|
|
67
|
+
|
|
68
|
+
@App({
|
|
69
|
+
name: 'ops-app',
|
|
70
|
+
skills: [IncidentResponseSkill],
|
|
71
|
+
tools: [CheckServiceHealthTool, QueryLogsTool, RollbackDeploymentTool, ScaleServiceTool, SendNotificationTool],
|
|
72
|
+
})
|
|
73
|
+
class OpsApp {}
|
|
74
|
+
|
|
75
|
+
@FrontMcp({
|
|
76
|
+
info: { name: 'ops-server', version: '1.0.0' },
|
|
77
|
+
apps: [OpsApp],
|
|
78
|
+
})
|
|
79
|
+
class OpsServer {}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## What This Demonstrates
|
|
83
|
+
|
|
84
|
+
- Object-style tool references with `name`, `purpose`, and `required` fields
|
|
85
|
+
- Using `toolValidation: 'strict'` to fail at startup if any referenced tool is missing
|
|
86
|
+
- Combining tool references with `parameters` and `examples` for full skill metadata
|
|
87
|
+
- Setting `visibility: 'mcp'` to restrict discovery to MCP protocol only
|
|
88
|
+
- Registering both skills and their referenced tools in the same `@App`
|
|
89
|
+
|
|
90
|
+
## Related
|
|
91
|
+
|
|
92
|
+
- See `create-skill-with-tools` for all tool validation modes and the CodeCall compatibility section
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: basic-class-tool
|
|
3
|
+
reference: create-tool
|
|
4
|
+
level: basic
|
|
5
|
+
description: 'A minimal tool using the class-based pattern with Zod input validation and output schema.'
|
|
6
|
+
tags: [development, tool, class]
|
|
7
|
+
features:
|
|
8
|
+
- 'Extending `ToolContext` and implementing the `execute()` method'
|
|
9
|
+
- 'Using a Zod raw shape for `inputSchema` (not wrapped in `z.object()`)'
|
|
10
|
+
- 'Defining `outputSchema` to validate and restrict output fields'
|
|
11
|
+
- 'Registering the tool in an `@App` via the `tools` array'
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Basic Class-Based Tool
|
|
15
|
+
|
|
16
|
+
A minimal tool using the class-based pattern with Zod input validation and output schema.
|
|
17
|
+
|
|
18
|
+
## Code
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
// src/apps/main/tools/greet-user.tool.ts
|
|
22
|
+
import { Tool, ToolContext } from '@frontmcp/sdk';
|
|
23
|
+
import { z } from 'zod';
|
|
24
|
+
|
|
25
|
+
@Tool({
|
|
26
|
+
name: 'greet_user',
|
|
27
|
+
description: 'Greet a user by name',
|
|
28
|
+
inputSchema: {
|
|
29
|
+
name: z.string().describe('The name of the user to greet'),
|
|
30
|
+
},
|
|
31
|
+
outputSchema: {
|
|
32
|
+
greeting: z.string(),
|
|
33
|
+
},
|
|
34
|
+
})
|
|
35
|
+
class GreetUserTool extends ToolContext {
|
|
36
|
+
async execute(input: { name: string }): Promise<{ greeting: string }> {
|
|
37
|
+
return { greeting: `Hello, ${input.name}!` };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// src/apps/main/index.ts
|
|
44
|
+
import { App } from '@frontmcp/sdk';
|
|
45
|
+
|
|
46
|
+
@App({
|
|
47
|
+
name: 'main',
|
|
48
|
+
tools: [GreetUserTool],
|
|
49
|
+
})
|
|
50
|
+
class MainApp {}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## What This Demonstrates
|
|
54
|
+
|
|
55
|
+
- Extending `ToolContext` and implementing the `execute()` method
|
|
56
|
+
- Using a Zod raw shape for `inputSchema` (not wrapped in `z.object()`)
|
|
57
|
+
- Defining `outputSchema` to validate and restrict output fields
|
|
58
|
+
- Registering the tool in an `@App` via the `tools` array
|
|
59
|
+
|
|
60
|
+
## Related
|
|
61
|
+
|
|
62
|
+
- See `create-tool` for the full API reference including annotations, rate limiting, and elicitation
|