zuplo 6.67.32 → 6.68.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 +9 -0
- package/docs/_index.md +44 -0
- package/docs/ai-gateway/apps.mdx +28 -0
- package/docs/ai-gateway/custom-providers.mdx +54 -0
- package/docs/ai-gateway/getting-started.mdx +224 -0
- package/docs/ai-gateway/guardrails.mdx +65 -0
- package/docs/ai-gateway/integrations/ai-sdk.mdx +109 -0
- package/docs/ai-gateway/integrations/claude-code.mdx +49 -0
- package/docs/ai-gateway/integrations/codex.mdx +78 -0
- package/docs/ai-gateway/integrations/goose.mdx +104 -0
- package/docs/ai-gateway/integrations/langchain.mdx +66 -0
- package/docs/ai-gateway/integrations/openai.mdx +99 -0
- package/docs/ai-gateway/introduction.mdx +85 -0
- package/docs/ai-gateway/managing-apps.mdx +46 -0
- package/docs/ai-gateway/managing-providers.mdx +66 -0
- package/docs/ai-gateway/managing-teams.mdx +63 -0
- package/docs/ai-gateway/policies/akamai-ai-firewall.mdx +125 -0
- package/docs/ai-gateway/policies/comet-opik-tracing.mdx +139 -0
- package/docs/ai-gateway/policies/galileo-tracing.mdx +147 -0
- package/docs/ai-gateway/providers.mdx +32 -0
- package/docs/ai-gateway/teams.mdx +38 -0
- package/docs/ai-gateway/universal-api.mdx +43 -0
- package/docs/ai-gateway/usage-limits.mdx +89 -0
- package/docs/api-management/introduction.md +127 -0
- package/docs/articles/accounts/audit-logs.mdx +227 -0
- package/docs/articles/accounts/billing.mdx +25 -0
- package/docs/articles/accounts/default-api-key.mdx +30 -0
- package/docs/articles/accounts/delete-account.mdx +36 -0
- package/docs/articles/accounts/enterprise-sso.mdx +116 -0
- package/docs/articles/accounts/managing-account-members.mdx +45 -0
- package/docs/articles/accounts/managing-project-members.mdx +37 -0
- package/docs/articles/accounts/members-and-roles.mdx +21 -0
- package/docs/articles/accounts/roles-and-permissions.mdx +115 -0
- package/docs/articles/accounts/zuplo-api-keys.mdx +94 -0
- package/docs/articles/add-api-to-backstage.mdx +216 -0
- package/docs/articles/advanced-path-matching.mdx +139 -0
- package/docs/articles/api-key-administration.mdx +47 -0
- package/docs/articles/api-key-api.mdx +220 -0
- package/docs/articles/api-key-authentication.mdx +195 -0
- package/docs/articles/api-key-buckets.mdx +61 -0
- package/docs/articles/api-key-end-users.mdx +52 -0
- package/docs/articles/api-key-leak-detection.mdx +75 -0
- package/docs/articles/api-key-management.mdx +100 -0
- package/docs/articles/api-key-react-component.mdx +90 -0
- package/docs/articles/api-key-service-limits.mdx +14 -0
- package/docs/articles/archiving-requests-to-storage.mdx +119 -0
- package/docs/articles/branch-based-deployments.mdx +184 -0
- package/docs/articles/bypass-policy-for-testing.mdx +117 -0
- package/docs/articles/check-ip-address.mdx +17 -0
- package/docs/articles/ci-cd-azure/basic-deployment.mdx +49 -0
- package/docs/articles/ci-cd-azure/deploy-and-test.mdx +47 -0
- package/docs/articles/ci-cd-azure/local-testing.mdx +59 -0
- package/docs/articles/ci-cd-azure/multi-stage-deployment.mdx +88 -0
- package/docs/articles/ci-cd-azure/pr-preview-environments.mdx +50 -0
- package/docs/articles/ci-cd-azure/tag-based-releases.mdx +37 -0
- package/docs/articles/ci-cd-bitbucket/basic-deployment.mdx +27 -0
- package/docs/articles/ci-cd-bitbucket/deploy-and-test.mdx +41 -0
- package/docs/articles/ci-cd-bitbucket/local-testing.mdx +34 -0
- package/docs/articles/ci-cd-bitbucket/multi-stage-deployment.mdx +52 -0
- package/docs/articles/ci-cd-bitbucket/pr-preview-environments.mdx +46 -0
- package/docs/articles/ci-cd-bitbucket/tag-based-releases.mdx +27 -0
- package/docs/articles/ci-cd-circleci/basic-deployment.mdx +34 -0
- package/docs/articles/ci-cd-circleci/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-circleci/local-testing.mdx +50 -0
- package/docs/articles/ci-cd-circleci/multi-stage-deployment.mdx +82 -0
- package/docs/articles/ci-cd-circleci/pr-preview-environments.mdx +47 -0
- package/docs/articles/ci-cd-circleci/tag-based-releases.mdx +38 -0
- package/docs/articles/ci-cd-github/basic-deployment.mdx +48 -0
- package/docs/articles/ci-cd-github/cleanup-on-branch-delete.mdx +123 -0
- package/docs/articles/ci-cd-github/deploy-and-test.mdx +82 -0
- package/docs/articles/ci-cd-github/local-testing.mdx +102 -0
- package/docs/articles/ci-cd-github/multi-stage-deployment.mdx +136 -0
- package/docs/articles/ci-cd-github/pr-preview-environments.mdx +106 -0
- package/docs/articles/ci-cd-github/tag-based-releases.mdx +99 -0
- package/docs/articles/ci-cd-gitlab/basic-deployment.mdx +28 -0
- package/docs/articles/ci-cd-gitlab/deploy-and-test.mdx +44 -0
- package/docs/articles/ci-cd-gitlab/local-testing.mdx +39 -0
- package/docs/articles/ci-cd-gitlab/mr-preview-environments.mdx +52 -0
- package/docs/articles/ci-cd-gitlab/multi-stage-deployment.mdx +64 -0
- package/docs/articles/ci-cd-gitlab/tag-based-releases.mdx +28 -0
- package/docs/articles/composite-policy-reference.mdx +284 -0
- package/docs/articles/configuring-auth0-for-mcp-auth.mdx +186 -0
- package/docs/articles/configuring-okta-for-mcp-auth.mdx +208 -0
- package/docs/articles/convert-urls-to-openapi.mdx +62 -0
- package/docs/articles/cors.mdx +447 -0
- package/docs/articles/custom-audit-log-policy.mdx +95 -0
- package/docs/articles/custom-ci-cd-azure.mdx +81 -0
- package/docs/articles/custom-ci-cd-bitbucket.mdx +80 -0
- package/docs/articles/custom-ci-cd-circleci.mdx +78 -0
- package/docs/articles/custom-ci-cd-github.mdx +99 -0
- package/docs/articles/custom-ci-cd-gitlab.mdx +79 -0
- package/docs/articles/custom-ci-cd.mdx +82 -0
- package/docs/articles/custom-code-patterns.md +418 -0
- package/docs/articles/custom-domains.mdx +258 -0
- package/docs/articles/custom-logging-example.mdx +139 -0
- package/docs/articles/ddos-protection.mdx +138 -0
- package/docs/articles/development-options.mdx +49 -0
- package/docs/articles/environment-variables.mdx +134 -0
- package/docs/articles/environments.mdx +143 -0
- package/docs/articles/fastly-zuplo-host-setup.mdx +41 -0
- package/docs/articles/github-deployment-testing.mdx +101 -0
- package/docs/articles/gke-with-upstream-auth-policy.mdx +192 -0
- package/docs/articles/graphql-security.mdx +180 -0
- package/docs/articles/handling-form-data.mdx +61 -0
- package/docs/articles/health-checks.mdx +109 -0
- package/docs/articles/hosting-options.mdx +70 -0
- package/docs/articles/lazy-load-configuration-into-cache.mdx +92 -0
- package/docs/articles/limits.mdx +98 -0
- package/docs/articles/local-development-debugging.mdx +44 -0
- package/docs/articles/local-development-env-variables.mdx +23 -0
- package/docs/articles/local-development-installing-packages.mdx +23 -0
- package/docs/articles/local-development-routes-designer.mdx +27 -0
- package/docs/articles/local-development-services.mdx +40 -0
- package/docs/articles/local-development-troubleshooting.mdx +56 -0
- package/docs/articles/local-development.mdx +81 -0
- package/docs/articles/log-plugin-aws-cloudwatch.mdx +83 -0
- package/docs/articles/log-plugin-datadog.mdx +84 -0
- package/docs/articles/log-plugin-dynatrace.mdx +75 -0
- package/docs/articles/log-plugin-gcp.mdx +75 -0
- package/docs/articles/log-plugin-loki.mdx +136 -0
- package/docs/articles/log-plugin-new-relic.mdx +84 -0
- package/docs/articles/log-plugin-splunk.mdx +104 -0
- package/docs/articles/log-plugin-sumo.mdx +73 -0
- package/docs/articles/log-plugin-vmware-log-insight.mdx +154 -0
- package/docs/articles/log-request-response-data.mdx +398 -0
- package/docs/articles/logging.mdx +115 -0
- package/docs/articles/manual-mcp-oauth-testing.mdx +193 -0
- package/docs/articles/mcp-quickstart.mdx +135 -0
- package/docs/articles/metrics-plugins.mdx +371 -0
- package/docs/articles/migrate-from-apigee.md +408 -0
- package/docs/articles/migrate-from-aws-api-gateway.md +248 -0
- package/docs/articles/migrate-from-azure-apim.md +292 -0
- package/docs/articles/migrate-from-kong.md +300 -0
- package/docs/articles/migration-overview.md +81 -0
- package/docs/articles/monetization/api-access.mdx +69 -0
- package/docs/articles/monetization/billing-models.md +520 -0
- package/docs/articles/monetization/developer-portal.md +167 -0
- package/docs/articles/monetization/features.mdx +98 -0
- package/docs/articles/monetization/index.mdx +113 -0
- package/docs/articles/monetization/meters.mdx +135 -0
- package/docs/articles/monetization/monetization-policy.md +314 -0
- package/docs/articles/monetization/plan-examples.mdx +366 -0
- package/docs/articles/monetization/plans.mdx +266 -0
- package/docs/articles/monetization/pricing-models.mdx +225 -0
- package/docs/articles/monetization/private-plans.md +154 -0
- package/docs/articles/monetization/quickstart.md +355 -0
- package/docs/articles/monetization/rate-cards.mdx +171 -0
- package/docs/articles/monetization/stripe-integration.md +195 -0
- package/docs/articles/monetization/subscription-lifecycle.md +298 -0
- package/docs/articles/monetization/tax-collection.md +166 -0
- package/docs/articles/monetization/troubleshooting.md +272 -0
- package/docs/articles/monetization-custom.mdx +71 -0
- package/docs/articles/monetization-integrations.mdx +104 -0
- package/docs/articles/monitoring-your-gateway.mdx +53 -0
- package/docs/articles/monorepo-deployment.mdx +350 -0
- package/docs/articles/multiple-auth-policies.mdx +81 -0
- package/docs/articles/non-standard-ports.mdx +30 -0
- package/docs/articles/oauth-authentication.mdx +54 -0
- package/docs/articles/openapi-server-urls.mdx +60 -0
- package/docs/articles/openapi.mdx +130 -0
- package/docs/articles/opentelemetry.mdx +250 -0
- package/docs/articles/per-user-rate-limits-using-db.mdx +112 -0
- package/docs/articles/performance-testing.mdx +304 -0
- package/docs/articles/plugin-akamai-api-security.mdx +76 -0
- package/docs/articles/plugin-azure-blob.mdx +73 -0
- package/docs/articles/plugin-azure-event-hubs.mdx +64 -0
- package/docs/articles/plugin-hydrolix-traffic-peak.mdx +147 -0
- package/docs/articles/policies.mdx +33 -0
- package/docs/articles/rename-or-move-project.mdx +39 -0
- package/docs/articles/rick-and-morty-api-developer-portal-example.mdx +23 -0
- package/docs/articles/routing.mdx +193 -0
- package/docs/articles/s3-signed-url-uploads.mdx +521 -0
- package/docs/articles/secure-tunnel.mdx +84 -0
- package/docs/articles/securing-backend-mtls.mdx +268 -0
- package/docs/articles/securing-your-backend.mdx +148 -0
- package/docs/articles/security.mdx +105 -0
- package/docs/articles/sharing-code-across-projects.mdx +412 -0
- package/docs/articles/source-control-setup-azure.mdx +13 -0
- package/docs/articles/source-control-setup-bitbucket.mdx +43 -0
- package/docs/articles/source-control-setup-github.mdx +172 -0
- package/docs/articles/source-control-setup-gitlab.mdx +12 -0
- package/docs/articles/source-control.mdx +80 -0
- package/docs/articles/step-1-setup-basic-gateway-local.mdx +136 -0
- package/docs/articles/step-1-setup-basic-gateway.mdx +118 -0
- package/docs/articles/step-2-add-rate-limiting-local.mdx +126 -0
- package/docs/articles/step-2-add-rate-limiting.mdx +82 -0
- package/docs/articles/step-3-add-api-key-auth-local.mdx +199 -0
- package/docs/articles/step-3-add-api-key-auth.mdx +166 -0
- package/docs/articles/step-4-deploying-to-the-edge.mdx +220 -0
- package/docs/articles/step-5-dynamic-rate-limiting.mdx +167 -0
- package/docs/articles/support.mdx +144 -0
- package/docs/articles/terraform.mdx +114 -0
- package/docs/articles/testing-graphql.mdx +34 -0
- package/docs/articles/testing.mdx +522 -0
- package/docs/articles/troubleshooting-slow-responses.mdx +301 -0
- package/docs/articles/troubleshooting.md +302 -0
- package/docs/articles/tsconfig.mdx +105 -0
- package/docs/articles/tunnel-setup.mdx +195 -0
- package/docs/articles/tunnel-troubleshooting.mdx +50 -0
- package/docs/articles/update-zup-in-github-action.mdx +110 -0
- package/docs/articles/use-openapi-extension-data.mdx +79 -0
- package/docs/articles/users/multifactor-authentication.mdx +64 -0
- package/docs/articles/users/profile.mdx +13 -0
- package/docs/articles/versioning-on-zuplo.mdx +89 -0
- package/docs/articles/waf-ddos-akamai.md +133 -0
- package/docs/articles/waf-ddos-aws-waf-shield.mdx +85 -0
- package/docs/articles/waf-ddos-fastly.mdx +251 -0
- package/docs/articles/waf-ddos.mdx +140 -0
- package/docs/articles/zuplo-waf.mdx +156 -0
- package/docs/ask.mdx +3 -0
- package/docs/cli/authentication.mdx +56 -0
- package/docs/cli/connectivity.mdx +38 -0
- package/docs/cli/create-zuplo-api.mdx +80 -0
- package/docs/cli/delete.mdx +79 -0
- package/docs/cli/deploy.mdx +156 -0
- package/docs/cli/deploy.partial.mdx +46 -0
- package/docs/cli/dev.mdx +115 -0
- package/docs/cli/docs.mdx +66 -0
- package/docs/cli/editor.mdx +50 -0
- package/docs/cli/global-options.mdx +19 -0
- package/docs/cli/init.mdx +74 -0
- package/docs/cli/link.mdx +74 -0
- package/docs/cli/list.mdx +55 -0
- package/docs/cli/mtls-certificate-create.mdx +94 -0
- package/docs/cli/mtls-certificate-delete.mdx +55 -0
- package/docs/cli/mtls-certificate-describe.mdx +55 -0
- package/docs/cli/mtls-certificate-disable.mdx +55 -0
- package/docs/cli/mtls-certificate-list.mdx +47 -0
- package/docs/cli/mtls-certificate-update.mdx +72 -0
- package/docs/cli/openapi-convert.mdx +111 -0
- package/docs/cli/openapi-merge.mdx +138 -0
- package/docs/cli/openapi-merge.partial.mdx +29 -0
- package/docs/cli/openapi-overlay.mdx +123 -0
- package/docs/cli/overview.mdx +78 -0
- package/docs/cli/project-create.mdx +43 -0
- package/docs/cli/source-migrate.mdx +18 -0
- package/docs/cli/source-upgrade.mdx +41 -0
- package/docs/cli/test.mdx +70 -0
- package/docs/cli/test.partial.mdx +7 -0
- package/docs/cli/tunnel-create.mdx +53 -0
- package/docs/cli/tunnel-create.partial.mdx +9 -0
- package/docs/cli/tunnel-delete.mdx +35 -0
- package/docs/cli/tunnel-delete.partial.mdx +9 -0
- package/docs/cli/tunnel-describe.mdx +45 -0
- package/docs/cli/tunnel-describe.partial.mdx +5 -0
- package/docs/cli/tunnel-list.mdx +35 -0
- package/docs/cli/tunnel-list.partial.mdx +9 -0
- package/docs/cli/tunnel-rate-token.partial.mdx +9 -0
- package/docs/cli/tunnel-rotate-token.mdx +39 -0
- package/docs/cli/tunnel-services-describe.mdx +45 -0
- package/docs/cli/tunnel-services-describe.partial.mdx +9 -0
- package/docs/cli/tunnel-services-update.mdx +48 -0
- package/docs/cli/variable-create.mdx +91 -0
- package/docs/cli/variable-create.partial.mdx +5 -0
- package/docs/cli/variable-update.mdx +75 -0
- package/docs/cli/variable-update.partial.mdx +5 -0
- package/docs/concepts/api-keys.md +146 -0
- package/docs/concepts/authentication.mdx +109 -0
- package/docs/concepts/how-zuplo-works.mdx +120 -0
- package/docs/concepts/project-structure.mdx +174 -0
- package/docs/concepts/rate-limiting.md +246 -0
- package/docs/concepts/request-lifecycle.mdx +56 -0
- package/docs/concepts/source-control-and-deployment.mdx +229 -0
- package/docs/conferences/conference-prize-terms.mdx +80 -0
- package/docs/dedicated/akamai/ai-powered-applications.mdx +223 -0
- package/docs/dedicated/akamai/architecture.mdx +280 -0
- package/docs/dedicated/akamai/caching.mdx +212 -0
- package/docs/dedicated/akamai/cdn.mdx +156 -0
- package/docs/dedicated/architecture.mdx +208 -0
- package/docs/dedicated/custom-domains.mdx +31 -0
- package/docs/dedicated/federated-gateways.mdx +80 -0
- package/docs/dedicated/networking.mdx +69 -0
- package/docs/dedicated/overview.mdx +80 -0
- package/docs/dedicated/source-control.mdx +63 -0
- package/docs/dev-portal/dev-portal-create-consumer-on-auth.mdx +134 -0
- package/docs/dev-portal/introduction.mdx +65 -0
- package/docs/dev-portal/local-development.mdx +72 -0
- package/docs/dev-portal/migration.mdx +526 -0
- package/docs/dev-portal/node-modules.mdx +45 -0
- package/docs/dev-portal/updating.mdx +28 -0
- package/docs/dev-portal/zudoku/components/alert.mdx +130 -0
- package/docs/dev-portal/zudoku/components/badge.mdx +70 -0
- package/docs/dev-portal/zudoku/components/button.mdx +132 -0
- package/docs/dev-portal/zudoku/components/callout.mdx +112 -0
- package/docs/dev-portal/zudoku/components/card.mdx +104 -0
- package/docs/dev-portal/zudoku/components/checkbox.mdx +72 -0
- package/docs/dev-portal/zudoku/components/client-only.mdx +79 -0
- package/docs/dev-portal/zudoku/components/code-tabs.mdx +179 -0
- package/docs/dev-portal/zudoku/components/dialog.mdx +167 -0
- package/docs/dev-portal/zudoku/components/head.mdx +199 -0
- package/docs/dev-portal/zudoku/components/icons.mdx +27 -0
- package/docs/dev-portal/zudoku/components/input.mdx +96 -0
- package/docs/dev-portal/zudoku/components/label.mdx +86 -0
- package/docs/dev-portal/zudoku/components/link.mdx +242 -0
- package/docs/dev-portal/zudoku/components/markdown.mdx +151 -0
- package/docs/dev-portal/zudoku/components/mermaid.mdx +81 -0
- package/docs/dev-portal/zudoku/components/playground.mdx +87 -0
- package/docs/dev-portal/zudoku/components/secret.mdx +78 -0
- package/docs/dev-portal/zudoku/components/select.mdx +176 -0
- package/docs/dev-portal/zudoku/components/shadcn.mdx +73 -0
- package/docs/dev-portal/zudoku/components/slider.mdx +108 -0
- package/docs/dev-portal/zudoku/components/slot.mdx +119 -0
- package/docs/dev-portal/zudoku/components/stepper.mdx +138 -0
- package/docs/dev-portal/zudoku/components/switch.mdx +96 -0
- package/docs/dev-portal/zudoku/components/syntax-highlight.mdx +602 -0
- package/docs/dev-portal/zudoku/components/textarea.mdx +78 -0
- package/docs/dev-portal/zudoku/components/tooltip.mdx +195 -0
- package/docs/dev-portal/zudoku/components/typography.mdx +61 -0
- package/docs/dev-portal/zudoku/configuration/ai-assistants.md +64 -0
- package/docs/dev-portal/zudoku/configuration/api-catalog.md +108 -0
- package/docs/dev-portal/zudoku/configuration/api-reference.md +397 -0
- package/docs/dev-portal/zudoku/configuration/authentication-auth0.md +173 -0
- package/docs/dev-portal/zudoku/configuration/authentication-azure-ad.md +238 -0
- package/docs/dev-portal/zudoku/configuration/authentication-clerk.md +110 -0
- package/docs/dev-portal/zudoku/configuration/authentication-firebase.md +61 -0
- package/docs/dev-portal/zudoku/configuration/authentication-pingfederate.md +136 -0
- package/docs/dev-portal/zudoku/configuration/authentication-supabase.md +225 -0
- package/docs/dev-portal/zudoku/configuration/authentication.md +199 -0
- package/docs/dev-portal/zudoku/configuration/build-configuration.mdx +147 -0
- package/docs/dev-portal/zudoku/configuration/docs.md +282 -0
- package/docs/dev-portal/zudoku/configuration/footer.mdx +214 -0
- package/docs/dev-portal/zudoku/configuration/llms.md +89 -0
- package/docs/dev-portal/zudoku/configuration/navigation.mdx +408 -0
- package/docs/dev-portal/zudoku/configuration/overview.md +380 -0
- package/docs/dev-portal/zudoku/configuration/protected-routes.md +149 -0
- package/docs/dev-portal/zudoku/configuration/search.md +169 -0
- package/docs/dev-portal/zudoku/configuration/sentry.mdx +44 -0
- package/docs/dev-portal/zudoku/configuration/site.md +124 -0
- package/docs/dev-portal/zudoku/configuration/slots.mdx +124 -0
- package/docs/dev-portal/zudoku/configuration/vite-config.md +18 -0
- package/docs/dev-portal/zudoku/custom-plugins.md +287 -0
- package/docs/dev-portal/zudoku/customization/colors-theme.mdx +275 -0
- package/docs/dev-portal/zudoku/customization/fonts.md +110 -0
- package/docs/dev-portal/zudoku/extending/events.md +124 -0
- package/docs/dev-portal/zudoku/guides/custom-pages.md +106 -0
- package/docs/dev-portal/zudoku/guides/environment-variables.md +99 -0
- package/docs/dev-portal/zudoku/guides/mermaid.mdx +70 -0
- package/docs/dev-portal/zudoku/guides/navigation-migration.md +87 -0
- package/docs/dev-portal/zudoku/guides/navigation-rules.mdx +197 -0
- package/docs/dev-portal/zudoku/guides/processors.mdx +234 -0
- package/docs/dev-portal/zudoku/guides/static-files.md +55 -0
- package/docs/dev-portal/zudoku/guides/transforming-examples.md +156 -0
- package/docs/dev-portal/zudoku/guides/using-multiple-apis.md +87 -0
- package/docs/dev-portal/zudoku/markdown/admonitions.md +128 -0
- package/docs/dev-portal/zudoku/markdown/code-blocks.md +196 -0
- package/docs/dev-portal/zudoku/markdown/frontmatter.md +172 -0
- package/docs/dev-portal/zudoku/markdown/mdx.md +68 -0
- package/docs/dev-portal/zudoku/markdown/overview.md +275 -0
- package/docs/dev-portal/zudoku/plugins.md +5 -0
- package/docs/dev-portal/zudoku/writing.mdx +72 -0
- package/docs/errors/bad-request.mdx +39 -0
- package/docs/errors/build-error.mdx +45 -0
- package/docs/errors/fatal-project-error.mdx +39 -0
- package/docs/errors/gateway-timeout.mdx +33 -0
- package/docs/errors/get-head-body-error.mdx +41 -0
- package/docs/errors/main-mod-error.mdx +40 -0
- package/docs/errors/no-project-set.mdx +41 -0
- package/docs/errors/not-found.mdx +43 -0
- package/docs/errors/rate-limit-exceeded.mdx +31 -0
- package/docs/errors/schema-validation-failed.mdx +51 -0
- package/docs/errors/system-configuration-error.mdx +44 -0
- package/docs/errors/unauthorized.mdx +50 -0
- package/docs/errors/unknown-error.mdx +42 -0
- package/docs/errors.mdx +14 -0
- package/docs/guides/canary-routing-for-employees.mdx +385 -0
- package/docs/guides/geolocation-backend-routing.mdx +404 -0
- package/docs/guides/modify-openapi-paths.mdx +371 -0
- package/docs/guides/openapi-overlays.mdx +492 -0
- package/docs/guides/overview.mdx +12 -0
- package/docs/guides/user-based-backend-routing.mdx +437 -0
- package/docs/handlers/aws-lambda.mdx +201 -0
- package/docs/handlers/custom-handler.mdx +112 -0
- package/docs/handlers/legacy-dev-portal-handler.mdx +135 -0
- package/docs/handlers/mcp-server.mdx +730 -0
- package/docs/handlers/openapi.mdx +78 -0
- package/docs/handlers/redirect.mdx +115 -0
- package/docs/handlers/system-handlers.mdx +41 -0
- package/docs/handlers/url-forward.mdx +204 -0
- package/docs/handlers/url-rewrite.mdx +224 -0
- package/docs/handlers/websocket-handler.mdx +154 -0
- package/docs/home.mdx +6 -0
- package/docs/managed-edge/overview.md +78 -0
- package/docs/mcp-server/configuration-migration-guide.mdx +344 -0
- package/docs/mcp-server/custom-tools.mdx +487 -0
- package/docs/mcp-server/graphql.mdx +241 -0
- package/docs/mcp-server/introduction.mdx +122 -0
- package/docs/mcp-server/openai-apps-sdk.mdx +160 -0
- package/docs/mcp-server/prompts.mdx +283 -0
- package/docs/mcp-server/resources.mdx +288 -0
- package/docs/mcp-server/testing.mdx +53 -0
- package/docs/mcp-server/tools.mdx +306 -0
- package/docs/policies/_index.md +92 -0
- package/docs/policies/ab-test-inbound/intro.md +8 -0
- package/docs/policies/ab-test-inbound/policy.ts +14 -0
- package/docs/policies/ab-test-inbound/schema.json +27 -0
- package/docs/policies/ab-test-outbound/intro.md +8 -0
- package/docs/policies/ab-test-outbound/policy.ts +26 -0
- package/docs/policies/ab-test-outbound/schema.json +27 -0
- package/docs/policies/acl-policy-inbound/intro.md +5 -0
- package/docs/policies/acl-policy-inbound/policy.ts +32 -0
- package/docs/policies/acl-policy-inbound/schema.json +52 -0
- package/docs/policies/akamai-ai-firewall/schema.json +98 -0
- package/docs/policies/amberflo-metering-inbound/doc.md +183 -0
- package/docs/policies/amberflo-metering-inbound/intro.md +20 -0
- package/docs/policies/amberflo-metering-inbound/schema.json +108 -0
- package/docs/policies/api-key-inbound/doc.md +77 -0
- package/docs/policies/api-key-inbound/intro.md +30 -0
- package/docs/policies/api-key-inbound/schema.json +84 -0
- package/docs/policies/archive-request-aws-s3-inbound/intro.md +4 -0
- package/docs/policies/archive-request-aws-s3-inbound/policy.ts +58 -0
- package/docs/policies/archive-request-aws-s3-inbound/schema.json +68 -0
- package/docs/policies/archive-request-azure-storage-inbound/doc.md +31 -0
- package/docs/policies/archive-request-azure-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-azure-storage-inbound/policy.ts +54 -0
- package/docs/policies/archive-request-azure-storage-inbound/schema.json +53 -0
- package/docs/policies/archive-request-gcp-storage-inbound/doc.md +63 -0
- package/docs/policies/archive-request-gcp-storage-inbound/intro.md +4 -0
- package/docs/policies/archive-request-gcp-storage-inbound/policy.ts +68 -0
- package/docs/policies/archive-request-gcp-storage-inbound/schema.json +47 -0
- package/docs/policies/archive-response-aws-s3-outbound/intro.md +2 -0
- package/docs/policies/archive-response-aws-s3-outbound/policy.ts +59 -0
- package/docs/policies/archive-response-aws-s3-outbound/schema.json +68 -0
- package/docs/policies/archive-response-azure-storage-outbound/doc.md +31 -0
- package/docs/policies/archive-response-azure-storage-outbound/intro.md +3 -0
- package/docs/policies/archive-response-azure-storage-outbound/policy.ts +54 -0
- package/docs/policies/archive-response-azure-storage-outbound/schema.json +53 -0
- package/docs/policies/audit-log-inbound/doc.md +78 -0
- package/docs/policies/audit-log-inbound/intro.md +10 -0
- package/docs/policies/audit-log-inbound/schema.json +81 -0
- package/docs/policies/auth0-jwt-auth-inbound/doc.md +125 -0
- package/docs/policies/auth0-jwt-auth-inbound/intro.md +17 -0
- package/docs/policies/auth0-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/authzen-inbound/doc.md +24 -0
- package/docs/policies/authzen-inbound/intro.md +31 -0
- package/docs/policies/authzen-inbound/schema.json +126 -0
- package/docs/policies/axiomatics-authz-inbound/doc.md +144 -0
- package/docs/policies/axiomatics-authz-inbound/intro.md +11 -0
- package/docs/policies/axiomatics-authz-inbound/schema.json +161 -0
- package/docs/policies/basic-auth-inbound/intro.md +9 -0
- package/docs/policies/basic-auth-inbound/schema.json +99 -0
- package/docs/policies/bot-detection-inbound/intro.md +4 -0
- package/docs/policies/bot-detection-inbound/schema.json +56 -0
- package/docs/policies/brownout-inbound/doc.md +55 -0
- package/docs/policies/brownout-inbound/intro.md +12 -0
- package/docs/policies/brownout-inbound/schema.json +115 -0
- package/docs/policies/caching-inbound/doc.md +209 -0
- package/docs/policies/caching-inbound/intro.md +23 -0
- package/docs/policies/caching-inbound/schema.json +98 -0
- package/docs/policies/change-method-inbound/schema.json +56 -0
- package/docs/policies/clear-headers-inbound/schema.json +59 -0
- package/docs/policies/clear-headers-outbound/schema.json +59 -0
- package/docs/policies/clerk-jwt-auth-inbound/doc.md +85 -0
- package/docs/policies/clerk-jwt-auth-inbound/intro.md +4 -0
- package/docs/policies/clerk-jwt-auth-inbound/schema.json +68 -0
- package/docs/policies/cognito-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/cognito-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/comet-opik-tracing-inbound/schema.json +65 -0
- package/docs/policies/complex-rate-limit-inbound/doc.md +20 -0
- package/docs/policies/complex-rate-limit-inbound/intro.md +23 -0
- package/docs/policies/complex-rate-limit-inbound/schema.json +142 -0
- package/docs/policies/composite-inbound/doc.md +69 -0
- package/docs/policies/composite-inbound/intro.md +15 -0
- package/docs/policies/composite-inbound/schema.json +59 -0
- package/docs/policies/composite-outbound/intro.md +6 -0
- package/docs/policies/composite-outbound/schema.json +59 -0
- package/docs/policies/curity-phantom-token-inbound/doc.md +109 -0
- package/docs/policies/curity-phantom-token-inbound/intro.md +3 -0
- package/docs/policies/curity-phantom-token-inbound/schema.json +68 -0
- package/docs/policies/custom-code-inbound/doc.md +267 -0
- package/docs/policies/custom-code-inbound/intro.md +2 -0
- package/docs/policies/custom-code-inbound/schema.json +48 -0
- package/docs/policies/custom-code-outbound/doc.md +235 -0
- package/docs/policies/custom-code-outbound/intro.md +2 -0
- package/docs/policies/custom-code-outbound/schema.json +43 -0
- package/docs/policies/firebase-jwt-inbound/intro.md +6 -0
- package/docs/policies/firebase-jwt-inbound/schema.json +68 -0
- package/docs/policies/formdata-to-json-inbound/schema.json +60 -0
- package/docs/policies/galileo-tracing-inbound/schema.json +65 -0
- package/docs/policies/geo-filter-inbound/doc.md +33 -0
- package/docs/policies/geo-filter-inbound/schema.json +108 -0
- package/docs/policies/graphql-complexity-limit-inbound/doc.md +48 -0
- package/docs/policies/graphql-complexity-limit-inbound/intro.md +2 -0
- package/docs/policies/graphql-complexity-limit-inbound/schema.json +90 -0
- package/docs/policies/graphql-disable-introspection-inbound/doc.md +66 -0
- package/docs/policies/graphql-disable-introspection-inbound/intro.md +15 -0
- package/docs/policies/graphql-disable-introspection-inbound/schema.json +48 -0
- package/docs/policies/graphql-introspection-filter-outbound/doc.md +148 -0
- package/docs/policies/graphql-introspection-filter-outbound/schema.json +79 -0
- package/docs/policies/hmac-auth-inbound/doc.md +30 -0
- package/docs/policies/hmac-auth-inbound/intro.md +10 -0
- package/docs/policies/hmac-auth-inbound/policy.ts +70 -0
- package/docs/policies/hmac-auth-inbound/schema.json +53 -0
- package/docs/policies/http-deprecation-outbound/doc.md +73 -0
- package/docs/policies/http-deprecation-outbound/schema.json +83 -0
- package/docs/policies/ip-restriction-inbound/intro.md +8 -0
- package/docs/policies/ip-restriction-inbound/policy.ts +40 -0
- package/docs/policies/ip-restriction-inbound/schema.json +58 -0
- package/docs/policies/jwt-scopes-inbound/schema.json +59 -0
- package/docs/policies/ldap-auth-inbound/schema.json +56 -0
- package/docs/policies/mock-api-inbound/schema.json +72 -0
- package/docs/policies/moesif-inbound/doc.md +44 -0
- package/docs/policies/moesif-inbound/intro.md +6 -0
- package/docs/policies/moesif-inbound/schema.json +68 -0
- package/docs/policies/monetization-inbound/doc.md +87 -0
- package/docs/policies/monetization-inbound/intro.md +6 -0
- package/docs/policies/monetization-inbound/schema.json +102 -0
- package/docs/policies/mtls-auth-inbound/intro.md +6 -0
- package/docs/policies/mtls-auth-inbound/schema.json +68 -0
- package/docs/policies/okta-fga-authz-inbound/doc.md +181 -0
- package/docs/policies/okta-fga-authz-inbound/intro.md +20 -0
- package/docs/policies/okta-fga-authz-inbound/schema.json +104 -0
- package/docs/policies/okta-jwt-auth-inbound/intro.md +7 -0
- package/docs/policies/okta-jwt-auth-inbound/schema.json +74 -0
- package/docs/policies/open-id-jwt-auth-inbound/doc.md +58 -0
- package/docs/policies/open-id-jwt-auth-inbound/intro.md +30 -0
- package/docs/policies/open-id-jwt-auth-inbound/schema.json +128 -0
- package/docs/policies/openfga-authz-inbound/doc.md +207 -0
- package/docs/policies/openfga-authz-inbound/intro.md +17 -0
- package/docs/policies/openfga-authz-inbound/schema.json +191 -0
- package/docs/policies/openmeter-inbound/doc.md +163 -0
- package/docs/policies/openmeter-inbound/intro.md +18 -0
- package/docs/policies/openmeter-inbound/schema.json +183 -0
- package/docs/policies/prompt-injection-outbound/doc.md +106 -0
- package/docs/policies/prompt-injection-outbound/intro.md +4 -0
- package/docs/policies/prompt-injection-outbound/schema.json +74 -0
- package/docs/policies/propel-auth-jwt-inbound/doc.md +88 -0
- package/docs/policies/propel-auth-jwt-inbound/intro.md +4 -0
- package/docs/policies/propel-auth-jwt-inbound/schema.json +74 -0
- package/docs/policies/query-param-to-header-inbound/doc.md +70 -0
- package/docs/policies/query-param-to-header-inbound/intro.md +5 -0
- package/docs/policies/query-param-to-header-inbound/schema.json +74 -0
- package/docs/policies/quota-inbound/doc.md +235 -0
- package/docs/policies/quota-inbound/intro.md +7 -0
- package/docs/policies/quota-inbound/schema.json +133 -0
- package/docs/policies/rate-limit-inbound/doc.md +78 -0
- package/docs/policies/rate-limit-inbound/intro.md +30 -0
- package/docs/policies/rate-limit-inbound/schema.json +134 -0
- package/docs/policies/rbac-policy-inbound/intro.md +3 -0
- package/docs/policies/rbac-policy-inbound/policy.ts +42 -0
- package/docs/policies/rbac-policy-inbound/schema.json +52 -0
- package/docs/policies/readme-metrics-inbound/doc.md +1 -0
- package/docs/policies/readme-metrics-inbound/intro.md +3 -0
- package/docs/policies/readme-metrics-inbound/schema.json +84 -0
- package/docs/policies/remove-headers-inbound/schema.json +59 -0
- package/docs/policies/remove-headers-outbound/schema.json +59 -0
- package/docs/policies/remove-query-params-inbound/schema.json +59 -0
- package/docs/policies/replace-string-outbound/schema.json +69 -0
- package/docs/policies/request-size-limit-inbound/schema.json +60 -0
- package/docs/policies/request-validation-inbound/doc.md +72 -0
- package/docs/policies/request-validation-inbound/intro.md +24 -0
- package/docs/policies/request-validation-inbound/schema.json +98 -0
- package/docs/policies/require-origin-inbound/intro.md +12 -0
- package/docs/policies/require-origin-inbound/schema.json +65 -0
- package/docs/policies/secret-masking-outbound/doc.md +41 -0
- package/docs/policies/secret-masking-outbound/intro.md +13 -0
- package/docs/policies/secret-masking-outbound/schema.json +65 -0
- package/docs/policies/semantic-cache-inbound/doc.md +63 -0
- package/docs/policies/semantic-cache-inbound/intro.md +4 -0
- package/docs/policies/semantic-cache-inbound/schema.json +179 -0
- package/docs/policies/set-body-inbound/intro.md +7 -0
- package/docs/policies/set-body-inbound/schema.json +56 -0
- package/docs/policies/set-headers-inbound/doc.md +41 -0
- package/docs/policies/set-headers-inbound/intro.md +2 -0
- package/docs/policies/set-headers-inbound/schema.json +83 -0
- package/docs/policies/set-headers-outbound/schema.json +83 -0
- package/docs/policies/set-query-params-inbound/schema.json +83 -0
- package/docs/policies/set-status-outbound/schema.json +62 -0
- package/docs/policies/sleep-inbound/schema.json +56 -0
- package/docs/policies/stripe-webhook-verification-inbound/intro.md +2 -0
- package/docs/policies/stripe-webhook-verification-inbound/schema.json +60 -0
- package/docs/policies/supabase-jwt-auth-inbound/doc.md +29 -0
- package/docs/policies/supabase-jwt-auth-inbound/intro.md +12 -0
- package/docs/policies/supabase-jwt-auth-inbound/schema.json +86 -0
- package/docs/policies/transform-body-inbound/intro.md +8 -0
- package/docs/policies/transform-body-inbound/policy.ts +16 -0
- package/docs/policies/transform-body-inbound/schema.json +27 -0
- package/docs/policies/transform-body-outbound/intro.md +8 -0
- package/docs/policies/transform-body-outbound/policy.ts +19 -0
- package/docs/policies/transform-body-outbound/schema.json +27 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/doc.md +82 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/intro.md +20 -0
- package/docs/policies/upstream-azure-ad-service-auth-inbound/schema.json +84 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/intro.md +10 -0
- package/docs/policies/upstream-firebase-admin-auth-inbound/schema.json +68 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/intro.md +2 -0
- package/docs/policies/upstream-firebase-user-auth-inbound/schema.json +113 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/doc.md +139 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/intro.md +21 -0
- package/docs/policies/upstream-gcp-federated-auth-inbound/schema.json +96 -0
- package/docs/policies/upstream-gcp-jwt-inbound/intro.md +10 -0
- package/docs/policies/upstream-gcp-jwt-inbound/schema.json +62 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/doc.md +132 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/intro.md +25 -0
- package/docs/policies/upstream-gcp-service-auth-inbound/schema.json +95 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/doc.md +213 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/intro.md +16 -0
- package/docs/policies/upstream-zuplo-jwt-auth-inbound/schema.json +101 -0
- package/docs/policies/validate-json-schema-inbound/doc.md +129 -0
- package/docs/policies/validate-json-schema-inbound/intro.md +7 -0
- package/docs/policies/validate-json-schema-inbound/schema.json +56 -0
- package/docs/policies/web-bot-auth-inbound/doc.md +104 -0
- package/docs/policies/web-bot-auth-inbound/intro.md +16 -0
- package/docs/policies/web-bot-auth-inbound/schema.json +76 -0
- package/docs/policies/xml-to-json-outbound/doc.md +71 -0
- package/docs/policies/xml-to-json-outbound/intro.md +4 -0
- package/docs/policies/xml-to-json-outbound/schema.json +117 -0
- package/docs/programmable-api/audit-log.mdx +74 -0
- package/docs/programmable-api/background-dispatcher.mdx +124 -0
- package/docs/programmable-api/background-loader.mdx +104 -0
- package/docs/programmable-api/cache.mdx +186 -0
- package/docs/programmable-api/compatibility-dates.mdx +201 -0
- package/docs/programmable-api/console-logging.mdx +48 -0
- package/docs/programmable-api/context-data.mdx +127 -0
- package/docs/programmable-api/custom-cors-policy.mdx +64 -0
- package/docs/programmable-api/environment.mdx +328 -0
- package/docs/programmable-api/hooks.mdx +569 -0
- package/docs/programmable-api/http-problems.mdx +385 -0
- package/docs/programmable-api/jwt-service-plugin.mdx +420 -0
- package/docs/programmable-api/logger.mdx +223 -0
- package/docs/programmable-api/memory-zone-read-through-cache.mdx +96 -0
- package/docs/programmable-api/node-modules.mdx +67 -0
- package/docs/programmable-api/not-found-handler.mdx +47 -0
- package/docs/programmable-api/oauth-protected-resource-plugin.mdx +46 -0
- package/docs/programmable-api/overview.mdx +213 -0
- package/docs/programmable-api/problem-response-formatter.mdx +183 -0
- package/docs/programmable-api/request-user.mdx +289 -0
- package/docs/programmable-api/reusing-code.mdx +26 -0
- package/docs/programmable-api/route-raw.mdx +55 -0
- package/docs/programmable-api/runtime-behaviors.mdx +25 -0
- package/docs/programmable-api/runtime-errors.mdx +246 -0
- package/docs/programmable-api/runtime-extensions.mdx +340 -0
- package/docs/programmable-api/safely-clone-a-request-or-response.mdx +57 -0
- package/docs/programmable-api/streaming-zone-cache.mdx +155 -0
- package/docs/programmable-api/web-crypto-apis.mdx +219 -0
- package/docs/programmable-api/web-standard-apis.mdx +109 -0
- package/docs/programmable-api/zone-cache.mdx +131 -0
- package/docs/programmable-api/zp-body-removed.mdx +32 -0
- package/docs/programmable-api/zuplo-context.mdx +414 -0
- package/docs/programmable-api/zuplo-id-token.mdx +90 -0
- package/docs/programmable-api/zuplo-json.mdx +91 -0
- package/docs/programmable-api/zuplo-request.mdx +200 -0
- package/docs/sample-apis.mdx +78 -0
- package/docs/self-hosted/overview.md +60 -0
- package/package.json +6 -5
|
@@ -0,0 +1,283 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP Server Prompts
|
|
3
|
+
sidebar_label: Prompts
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The MCP (Model Context Protocol) Server handler supports prompts in addition to
|
|
7
|
+
tools, enabling you to provide reusable, parameterized prompt templates through
|
|
8
|
+
the MCP protocol.
|
|
9
|
+
|
|
10
|
+
MCP prompts allow AI clients to request and execute structured prompt templates
|
|
11
|
+
with dynamic parameters, making it easy to standardize and share prompt patterns
|
|
12
|
+
and context across different AI workflows.
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Much like tools, Zuplo's MCP prompts work by utilizing structured API routes as
|
|
17
|
+
prompt generators that return formatted messages for AI consumption. When an MCP
|
|
18
|
+
client calls a prompt, your route handler returns a structured message array
|
|
19
|
+
that the AI can use directly.
|
|
20
|
+
|
|
21
|
+
But unlike MCP tools that perform actions and return data, MCP prompts return
|
|
22
|
+
formatted instructions or context that guide AI reasoning and responses.
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
### Route Configuration
|
|
27
|
+
|
|
28
|
+
Configure a route in your OpenAPI doc utilizing the `x-zuplo-route.mcp.type`
|
|
29
|
+
property:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"/greeting": {
|
|
34
|
+
"post": {
|
|
35
|
+
"operationId": "greeting",
|
|
36
|
+
"summary": "Generate a personalized greeting",
|
|
37
|
+
"description": "Creates a customized greeting for a given person",
|
|
38
|
+
"requestBody": {
|
|
39
|
+
"required": true,
|
|
40
|
+
"content": {
|
|
41
|
+
"application/json": {
|
|
42
|
+
"schema": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"properties": {
|
|
45
|
+
"name": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"description": "The name of the person to greet"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"required": ["name"]
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"x-zuplo-route": {
|
|
56
|
+
"corsPolicy": "none",
|
|
57
|
+
"handler": {
|
|
58
|
+
"export": "default",
|
|
59
|
+
"module": "$import(./modules/greeting)"
|
|
60
|
+
},
|
|
61
|
+
"mcp": {
|
|
62
|
+
"type": "prompt",
|
|
63
|
+
"name": "greeting_generator",
|
|
64
|
+
"description": "Utilize this prompt to generate a personalized greeting message"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The `x-zuplo-route.mcp` configuration for prompts supports:
|
|
73
|
+
|
|
74
|
+
- `type`: Must be set to `"prompt"` otherwise this will be registered as a tool.
|
|
75
|
+
- `name` - (optional) The identifier for the MCP prompt. If not provided, falls
|
|
76
|
+
back to the `operationId` of the route. If no `operationId` is set, falls back
|
|
77
|
+
to an auto-generated name.
|
|
78
|
+
- `description` - (optional) Description of what the prompt generates. If not
|
|
79
|
+
provided, falls back to the operation's `description` or `summary` fields. If
|
|
80
|
+
those are not set, uses an auto-generated description.
|
|
81
|
+
|
|
82
|
+
### MCP Server Handler Configuration
|
|
83
|
+
|
|
84
|
+
Add prompt configuration to your MCP Server handler options using the
|
|
85
|
+
`operations` array:
|
|
86
|
+
|
|
87
|
+
```json
|
|
88
|
+
{
|
|
89
|
+
"paths": {
|
|
90
|
+
"/mcp": {
|
|
91
|
+
"post": {
|
|
92
|
+
"x-zuplo-route": {
|
|
93
|
+
"handler": {
|
|
94
|
+
"export": "mcpServerHandler",
|
|
95
|
+
"module": "$import(@zuplo/runtime)",
|
|
96
|
+
"options": {
|
|
97
|
+
"name": "example-mcp-server",
|
|
98
|
+
"version": "1.0.0",
|
|
99
|
+
"operations": [
|
|
100
|
+
{
|
|
101
|
+
"file": "./config/routes.oas.json",
|
|
102
|
+
"id": "greeting"
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
See further details in the
|
|
115
|
+
[MCP Server Handler documentation](../handlers/mcp-server.mdx).
|
|
116
|
+
|
|
117
|
+
## Route Handler Implementation
|
|
118
|
+
|
|
119
|
+
Your route handler must return a structured response with a `messages` array
|
|
120
|
+
containing properly formatted message objects: these are the message objects
|
|
121
|
+
that will populate the LLM's context and guide it, based on the templatized user
|
|
122
|
+
input, towards the desired result:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
export default async function (request: ZuploRequest, context: ZuploContext) {
|
|
126
|
+
const { name } = await request.json();
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
messages: [
|
|
130
|
+
{
|
|
131
|
+
role: "assistant",
|
|
132
|
+
content: {
|
|
133
|
+
type: "text",
|
|
134
|
+
text: `Create a personalized greeting for ${name}. Make it friendly and welcoming!`,
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
For more information on the format of messages to return to the LLM,
|
|
143
|
+
|
|
144
|
+
- `role`: Either “user” or “assistant” to indicate the speaker in the message
|
|
145
|
+
flow.
|
|
146
|
+
- `content`: One of the following content
|
|
147
|
+
[types defined by the MCP specification](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts#promptmessage).
|
|
148
|
+
|
|
149
|
+
For more information, review
|
|
150
|
+
[the `PromptMessage` type and "Data Types" described in the MCP specification](https://modelcontextprotocol.io/specification/2025-06-18/server/prompts#promptmessage).
|
|
151
|
+
|
|
152
|
+
### Multiple Messages
|
|
153
|
+
|
|
154
|
+
You can return multiple messages to create complex and dynamic templates:
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
return {
|
|
158
|
+
messages: [
|
|
159
|
+
{
|
|
160
|
+
role: "assistant",
|
|
161
|
+
content: {
|
|
162
|
+
type: "text",
|
|
163
|
+
text: "You are a helpful assistant that generates personalized greetings.",
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
role: "assistant",
|
|
168
|
+
content: {
|
|
169
|
+
type: "text",
|
|
170
|
+
text: `Create a warm greeting for ${name} in ${location}. Consider local customs and time of day.`,
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
],
|
|
174
|
+
};
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Testing MCP Prompts
|
|
178
|
+
|
|
179
|
+
### List Available Prompts
|
|
180
|
+
|
|
181
|
+
Use the MCP `prompts/list` method to see available prompts:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
curl localhost:9000/mcp \
|
|
185
|
+
-X POST \
|
|
186
|
+
-H 'accept: application/json, text/event-stream' \
|
|
187
|
+
-d '{
|
|
188
|
+
"jsonrpc": "2.0",
|
|
189
|
+
"id": "1",
|
|
190
|
+
"method": "prompts/list"
|
|
191
|
+
}'
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Response:
|
|
195
|
+
|
|
196
|
+
```json
|
|
197
|
+
{
|
|
198
|
+
"jsonrpc": "2.0",
|
|
199
|
+
"id": "1",
|
|
200
|
+
"result": {
|
|
201
|
+
"prompts": [
|
|
202
|
+
{
|
|
203
|
+
"name": "greeting_generator",
|
|
204
|
+
"description": "Generate a personalized greeting message for someone in a specific location",
|
|
205
|
+
"arguments": [
|
|
206
|
+
{
|
|
207
|
+
"name": "name",
|
|
208
|
+
"description": "The name of the person to greet",
|
|
209
|
+
"required": true
|
|
210
|
+
}
|
|
211
|
+
]
|
|
212
|
+
}
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Execute a Prompt
|
|
219
|
+
|
|
220
|
+
Use the MCP `prompts/get` method to execute a prompt with parameters:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
curl localhost:9000/mcp \
|
|
224
|
+
-X POST \
|
|
225
|
+
-H 'accept: application/json, text/event-stream' \
|
|
226
|
+
-d '{
|
|
227
|
+
"jsonrpc": "2.0",
|
|
228
|
+
"id": "1",
|
|
229
|
+
"method": "prompts/get",
|
|
230
|
+
"params": {
|
|
231
|
+
"name": "greeting_generator",
|
|
232
|
+
"arguments": {
|
|
233
|
+
"name": "john"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}'
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Response:
|
|
240
|
+
|
|
241
|
+
```json
|
|
242
|
+
{
|
|
243
|
+
"jsonrpc": "2.0",
|
|
244
|
+
"id": "1",
|
|
245
|
+
"result": {
|
|
246
|
+
"description": "Generate a personalized greeting message for someone in a specific location",
|
|
247
|
+
"messages": [
|
|
248
|
+
{
|
|
249
|
+
"role": "assistant",
|
|
250
|
+
"content": {
|
|
251
|
+
"type": "text",
|
|
252
|
+
"text": "Create a personalized greeting for john. Make it friendly and welcoming!"
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Best Practices
|
|
261
|
+
|
|
262
|
+
### Prompt Design
|
|
263
|
+
|
|
264
|
+
- Write clear, specific prompt instructions that guide AI behavior
|
|
265
|
+
- Use parameter interpolation to create dynamic, contextual prompts
|
|
266
|
+
- Include relevant context and constraints in your prompt text
|
|
267
|
+
- Consider the target AI model's strengths and prompt formatting preferences
|
|
268
|
+
|
|
269
|
+
### Parameter Schema
|
|
270
|
+
|
|
271
|
+
- Define comprehensive JSON schemas for prompt parameters - this _must_ appear
|
|
272
|
+
as a `application/json` request body in a `POST` to your route. Typically,
|
|
273
|
+
this will point to a module that programmatically can craft the prompt.
|
|
274
|
+
- Include helpful descriptions for each parameter
|
|
275
|
+
- Mark required parameters appropriately
|
|
276
|
+
- Use validation to ensure parameter quality
|
|
277
|
+
|
|
278
|
+
### Message Organization
|
|
279
|
+
|
|
280
|
+
- Use `system` messages for general behavior instructions
|
|
281
|
+
- Use `assistant` messages for specific task guidance
|
|
282
|
+
- Structure complex prompts as multiple focused messages
|
|
283
|
+
- Keep individual messages concise and purposeful
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP Server Resources
|
|
3
|
+
sidebar_label: Resources
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The MCP (Model Context Protocol) Server handler supports resources in addition
|
|
7
|
+
to tools and prompts, enabling you to provide read-only access to data or
|
|
8
|
+
documents through the MCP protocol.
|
|
9
|
+
|
|
10
|
+
MCP resources allow AI clients to request and read static structured data or
|
|
11
|
+
content, making it easy to expose documentation, configuration files, or any
|
|
12
|
+
other read-only information that AI systems can consume.
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Zuplo's MCP resources work by utilizing API routes as resource endpoints that
|
|
17
|
+
return content when requested by an MCP client. Resources are read-only and must
|
|
18
|
+
use the GET HTTP method.
|
|
19
|
+
|
|
20
|
+
Unlike MCP tools that perform actions or MCP prompts that generate instructions,
|
|
21
|
+
MCP resources provide direct access to content like HTML documents, CSS files,
|
|
22
|
+
JSON data, or any other text-based content.
|
|
23
|
+
|
|
24
|
+
## Configuration
|
|
25
|
+
|
|
26
|
+
### Route Configuration
|
|
27
|
+
|
|
28
|
+
Configure a route in your OpenAPI doc. Resources **_must_** use the `GET`
|
|
29
|
+
method:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"/html": {
|
|
34
|
+
"get": {
|
|
35
|
+
"operationId": "html",
|
|
36
|
+
"description": "Returns the AI applet's HTML",
|
|
37
|
+
"x-zuplo-route": {
|
|
38
|
+
"corsPolicy": "none",
|
|
39
|
+
"handler": {
|
|
40
|
+
"export": "default",
|
|
41
|
+
"module": "$import(./modules/html)"
|
|
42
|
+
},
|
|
43
|
+
"mcp": {
|
|
44
|
+
"type": "resource",
|
|
45
|
+
"name": "html_doc",
|
|
46
|
+
"description": "The HTML document for the AI applet",
|
|
47
|
+
"uri": "ui://html",
|
|
48
|
+
"mimeType": "text/html"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
To provide MCP specific metadata for the resource, use the `mcp` property within
|
|
57
|
+
`x-zuplo-route`:
|
|
58
|
+
|
|
59
|
+
- `type`: Must be set to `"resource"` otherwise the MCP server handler will
|
|
60
|
+
default to "tool".
|
|
61
|
+
- `name` (optional) - The identifier for the MCP resource. Defaults to the
|
|
62
|
+
operation's `operationId`. If no `operationId` is provided, falls back to an
|
|
63
|
+
auto-generated name.
|
|
64
|
+
- `description` (optional) - Description of what the resource provides. Falls
|
|
65
|
+
back to the operation's `description` or `summary`. If those fields are not
|
|
66
|
+
provided, falls back to an auto-generated description.
|
|
67
|
+
- `uri` (optional) - The URI identifier for the resource (for example,
|
|
68
|
+
`"file:///example.txt"`, `"ui://html"`). Defaults to
|
|
69
|
+
`"mcp://resources/{name}"`.
|
|
70
|
+
- `mimeType` (optional) - The MIME type of the resource content (for example,
|
|
71
|
+
`"text/html"`, `"text/css"`, `"application/json"`). Falls back to the
|
|
72
|
+
response's Content-Type header or `"text/plain"`.
|
|
73
|
+
- `enabled` (optional) - Whether this resource is enabled. Defaults to `true`.
|
|
74
|
+
- `_meta` (`object`: optional) - An object containing any arbitrary metadata.
|
|
75
|
+
|
|
76
|
+
Without the `mcp` configuration, the MCP server will attempt to register it as a
|
|
77
|
+
tool, or if configured as a resource via legacy methods, use the defaults
|
|
78
|
+
described above.
|
|
79
|
+
|
|
80
|
+
### MCP Server Handler Configuration
|
|
81
|
+
|
|
82
|
+
Add resource configuration to your MCP Server handler options using the
|
|
83
|
+
`operations` array:
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"paths": {
|
|
88
|
+
"/mcp": {
|
|
89
|
+
"post": {
|
|
90
|
+
"x-zuplo-route": {
|
|
91
|
+
"handler": {
|
|
92
|
+
"export": "mcpServerHandler",
|
|
93
|
+
"module": "$import(@zuplo/runtime)",
|
|
94
|
+
"options": {
|
|
95
|
+
"name": "example-mcp-server",
|
|
96
|
+
"version": "1.0.0",
|
|
97
|
+
"operations": [
|
|
98
|
+
{
|
|
99
|
+
"file": "./config/routes.oas.json",
|
|
100
|
+
"id": "html"
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"file": "./config/routes.oas.json",
|
|
104
|
+
"id": "css"
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
See further details in the
|
|
117
|
+
[MCP Server Handler documentation](../handlers/mcp-server.mdx).
|
|
118
|
+
|
|
119
|
+
## Route Handler Implementation
|
|
120
|
+
|
|
121
|
+
Your route handler should return the content to be exposed as a resource. The
|
|
122
|
+
handler can return various types of content:
|
|
123
|
+
|
|
124
|
+
### Text Content
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
export default async function (request: ZuploRequest, context: ZuploContext) {
|
|
128
|
+
return `<div id="my-ai-applet"></div>`;
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### CSS Content
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
export default async function (request: ZuploRequest, context: ZuploContext) {
|
|
136
|
+
return `div { color: blue; }`;
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### JSON Data
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
export default async function (request: ZuploRequest, context: ZuploContext) {
|
|
144
|
+
return {
|
|
145
|
+
version: "1.0.0",
|
|
146
|
+
features: ["feature1", "feature2"],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The content returned by your handler will be automatically converted to text and
|
|
152
|
+
exposed through the MCP resource protocol.
|
|
153
|
+
|
|
154
|
+
## Resource Requirements
|
|
155
|
+
|
|
156
|
+
:::warning
|
|
157
|
+
|
|
158
|
+
Resources must meet the following requirements:
|
|
159
|
+
|
|
160
|
+
- **HTTP Method**: Resources must use the GET method only. Resources are
|
|
161
|
+
read-only by design.
|
|
162
|
+
- **Single Method**: Each resource route must define exactly one HTTP method.
|
|
163
|
+
- **Unique Names**: Resource names must be unique across all configured
|
|
164
|
+
resources in the MCP server.
|
|
165
|
+
|
|
166
|
+
:::
|
|
167
|
+
|
|
168
|
+
## Testing MCP Resources
|
|
169
|
+
|
|
170
|
+
### List Available Resources
|
|
171
|
+
|
|
172
|
+
Use the MCP `resources/list` method to see available resources:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
curl https://my-gateway.zuplo.dev/mcp \
|
|
176
|
+
-X POST \
|
|
177
|
+
-H 'accept: application/json, text/event-stream' \
|
|
178
|
+
-d '{
|
|
179
|
+
"jsonrpc": "2.0",
|
|
180
|
+
"id": "0",
|
|
181
|
+
"method": "resources/list"
|
|
182
|
+
}'
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
Response:
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"jsonrpc": "2.0",
|
|
190
|
+
"id": "0",
|
|
191
|
+
"result": {
|
|
192
|
+
"resources": [
|
|
193
|
+
{
|
|
194
|
+
"name": "html",
|
|
195
|
+
"uri": "mcp://resources/html",
|
|
196
|
+
"title": "html",
|
|
197
|
+
"description": "Returns the AI applet's HTML",
|
|
198
|
+
"mimeType": "text/plain"
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "css_doc",
|
|
202
|
+
"uri": "ui://css",
|
|
203
|
+
"title": "css_doc",
|
|
204
|
+
"description": "The CSS resource",
|
|
205
|
+
"mimeType": "text/css"
|
|
206
|
+
}
|
|
207
|
+
]
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Read a Resource
|
|
213
|
+
|
|
214
|
+
Use the MCP `resources/read` method to read a resource by its URI:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
curl https://my-gateway.zuplo.dev/mcp \
|
|
218
|
+
-X POST \
|
|
219
|
+
-H 'accept: application/json, text/event-stream' \
|
|
220
|
+
-d '{
|
|
221
|
+
"jsonrpc": "2.0",
|
|
222
|
+
"id": "0",
|
|
223
|
+
"method": "resources/read",
|
|
224
|
+
"params": {
|
|
225
|
+
"uri": "mcp://resources/html"
|
|
226
|
+
}
|
|
227
|
+
}'
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Response:
|
|
231
|
+
|
|
232
|
+
```json
|
|
233
|
+
{
|
|
234
|
+
"jsonrpc": "2.0",
|
|
235
|
+
"id": "0",
|
|
236
|
+
"result": {
|
|
237
|
+
"contents": [
|
|
238
|
+
{
|
|
239
|
+
"uri": "mcp://resources/html",
|
|
240
|
+
"mimeType": "text/plain",
|
|
241
|
+
"text": "<div id=\"my-ai-applet\"></div>"
|
|
242
|
+
}
|
|
243
|
+
]
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Read a Resource with Custom URI
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
curl https://my-gateway.zuplo.dev/mcp \
|
|
252
|
+
-X POST \
|
|
253
|
+
-H 'accept: application/json, text/event-stream' \
|
|
254
|
+
-d '{
|
|
255
|
+
"jsonrpc": "2.0",
|
|
256
|
+
"id": "0",
|
|
257
|
+
"method": "resources/read",
|
|
258
|
+
"params": {
|
|
259
|
+
"uri": "ui://css"
|
|
260
|
+
}
|
|
261
|
+
}'
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Best Practices
|
|
265
|
+
|
|
266
|
+
### Resource Design
|
|
267
|
+
|
|
268
|
+
- Expose read-only content that provides useful context to AI systems
|
|
269
|
+
- Use descriptive resource names that clearly indicate what content is available
|
|
270
|
+
- Include meaningful descriptions to help AI systems understand when to use each
|
|
271
|
+
resource
|
|
272
|
+
- Choose appropriate MIME types that accurately represent your content
|
|
273
|
+
|
|
274
|
+
### URI Naming
|
|
275
|
+
|
|
276
|
+
- Use meaningful URI schemes that indicate the type of resource (for example,
|
|
277
|
+
`ui://` for UI components, `config://` for configuration)
|
|
278
|
+
- Keep URIs consistent and predictable across related resources
|
|
279
|
+
- Consider using the default `mcp://resources/{name}` format for simple
|
|
280
|
+
resources
|
|
281
|
+
|
|
282
|
+
### Content Organization
|
|
283
|
+
|
|
284
|
+
- Keep resource content focused and purposeful
|
|
285
|
+
- Update resource content dynamically based on current state when appropriate
|
|
286
|
+
- Consider resource size - extremely large resources may impact performance
|
|
287
|
+
- Use appropriate MIME types to help clients understand how to process the
|
|
288
|
+
content
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: MCP Server Testing
|
|
3
|
+
sidebar_label: Testing
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Testing Tools
|
|
7
|
+
|
|
8
|
+
## Using MCP Inspector
|
|
9
|
+
|
|
10
|
+
The [MCP Inspector](https://github.com/modelcontextprotocol/inspector) is ideal
|
|
11
|
+
for testing tools:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx @modelcontextprotocol/inspector
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
1. Set **Transport Type** to "Streamable HTTP"
|
|
18
|
+
2. Set **URL** to your MCP endpoint (for example,
|
|
19
|
+
`https://your-gateway.zuplo.dev/mcp`)
|
|
20
|
+
3. Connect and test your tools interactively
|
|
21
|
+
|
|
22
|
+
## Using cURL
|
|
23
|
+
|
|
24
|
+
Test individual tools directly:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# List available tools
|
|
28
|
+
curl https://your-gateway.zuplo.dev/mcp \
|
|
29
|
+
-X POST \
|
|
30
|
+
-H 'Content-Type: application/json' \
|
|
31
|
+
-d '{
|
|
32
|
+
"jsonrpc": "2.0",
|
|
33
|
+
"id": "0",
|
|
34
|
+
"method": "tools/list"
|
|
35
|
+
}'
|
|
36
|
+
|
|
37
|
+
# Call a specific tool
|
|
38
|
+
curl https://your-gateway.zuplo.dev/mcp \
|
|
39
|
+
-X POST \
|
|
40
|
+
-H 'Content-Type: application/json' \
|
|
41
|
+
-d '{
|
|
42
|
+
"jsonrpc": "2.0",
|
|
43
|
+
"id": "1",
|
|
44
|
+
"method": "tools/call",
|
|
45
|
+
"params": {
|
|
46
|
+
"name": "addNumbers",
|
|
47
|
+
"arguments": {
|
|
48
|
+
"a": 5,
|
|
49
|
+
"b": 3
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}'
|
|
53
|
+
```
|