@mastra/mcp-docs-server 1.1.5 → 1.1.6-alpha.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/.docs/docs/agents/adding-voice.md +349 -0
- package/.docs/docs/agents/agent-approval.md +558 -0
- package/.docs/docs/agents/agent-memory.md +209 -0
- package/.docs/docs/agents/guardrails.md +374 -0
- package/.docs/docs/agents/network-approval.md +275 -0
- package/.docs/docs/agents/networks.md +299 -0
- package/.docs/docs/agents/overview.md +304 -0
- package/.docs/docs/agents/processors.md +622 -0
- package/.docs/docs/agents/structured-output.md +273 -0
- package/.docs/docs/agents/supervisor-agents.md +304 -0
- package/.docs/docs/agents/using-tools.md +214 -0
- package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
- package/.docs/docs/build-with-ai/skills.md +35 -0
- package/.docs/docs/community/contributing-templates.md +3 -0
- package/.docs/docs/community/discord.md +9 -0
- package/.docs/docs/community/licensing.md +66 -0
- package/.docs/docs/deployment/cloud-providers.md +15 -0
- package/.docs/docs/deployment/mastra-server.md +122 -0
- package/.docs/docs/deployment/monorepo.md +142 -0
- package/.docs/docs/deployment/overview.md +62 -0
- package/.docs/docs/deployment/studio.md +239 -0
- package/.docs/docs/deployment/web-framework.md +52 -0
- package/.docs/docs/deployment/workflow-runners.md +9 -0
- package/.docs/docs/evals/built-in-scorers.md +47 -0
- package/.docs/docs/evals/custom-scorers.md +519 -0
- package/.docs/docs/evals/overview.md +141 -0
- package/.docs/docs/evals/running-in-ci.md +124 -0
- package/.docs/docs/getting-started/build-with-ai.md +68 -0
- package/.docs/docs/getting-started/manual-install.md +226 -0
- package/.docs/docs/getting-started/project-structure.md +60 -0
- package/.docs/docs/getting-started/start.md +28 -0
- package/.docs/docs/getting-started/studio.md +101 -0
- package/.docs/docs/index.md +43 -0
- package/.docs/docs/mastra-cloud/deployment.md +77 -0
- package/.docs/docs/mastra-cloud/observability.md +38 -0
- package/.docs/docs/mastra-cloud/overview.md +23 -0
- package/.docs/docs/mastra-cloud/setup.md +42 -0
- package/.docs/docs/mastra-cloud/studio.md +24 -0
- package/.docs/docs/mastra-code/configuration.md +299 -0
- package/.docs/docs/mastra-code/customization.md +228 -0
- package/.docs/docs/mastra-code/modes.md +104 -0
- package/.docs/docs/mastra-code/overview.md +135 -0
- package/.docs/docs/mastra-code/tools.md +229 -0
- package/.docs/docs/mcp/overview.md +373 -0
- package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
- package/.docs/docs/memory/memory-processors.md +314 -0
- package/.docs/docs/memory/message-history.md +260 -0
- package/.docs/docs/memory/observational-memory.md +248 -0
- package/.docs/docs/memory/overview.md +45 -0
- package/.docs/docs/memory/semantic-recall.md +272 -0
- package/.docs/docs/memory/storage.md +261 -0
- package/.docs/docs/memory/working-memory.md +400 -0
- package/.docs/docs/observability/datasets/overview.md +198 -0
- package/.docs/docs/observability/datasets/running-experiments.md +274 -0
- package/.docs/docs/observability/logging.md +99 -0
- package/.docs/docs/observability/overview.md +70 -0
- package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
- package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
- package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
- package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
- package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
- package/.docs/docs/observability/tracing/exporters/default.md +209 -0
- package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
- package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
- package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
- package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
- package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
- package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
- package/.docs/docs/observability/tracing/overview.md +1112 -0
- package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
- package/.docs/docs/rag/chunking-and-embedding.md +183 -0
- package/.docs/docs/rag/graph-rag.md +215 -0
- package/.docs/docs/rag/overview.md +72 -0
- package/.docs/docs/rag/retrieval.md +515 -0
- package/.docs/docs/rag/vector-databases.md +645 -0
- package/.docs/docs/server/auth/auth0.md +220 -0
- package/.docs/docs/server/auth/better-auth.md +203 -0
- package/.docs/docs/server/auth/clerk.md +132 -0
- package/.docs/docs/server/auth/composite-auth.md +234 -0
- package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
- package/.docs/docs/server/auth/firebase.md +272 -0
- package/.docs/docs/server/auth/jwt.md +110 -0
- package/.docs/docs/server/auth/simple-auth.md +180 -0
- package/.docs/docs/server/auth/supabase.md +117 -0
- package/.docs/docs/server/auth/workos.md +186 -0
- package/.docs/docs/server/auth.md +38 -0
- package/.docs/docs/server/custom-adapters.md +378 -0
- package/.docs/docs/server/custom-api-routes.md +267 -0
- package/.docs/docs/server/mastra-client.md +243 -0
- package/.docs/docs/server/mastra-server.md +71 -0
- package/.docs/docs/server/middleware.md +225 -0
- package/.docs/docs/server/request-context.md +471 -0
- package/.docs/docs/server/server-adapters.md +547 -0
- package/.docs/docs/streaming/events.md +237 -0
- package/.docs/docs/streaming/overview.md +175 -0
- package/.docs/docs/streaming/tool-streaming.md +175 -0
- package/.docs/docs/streaming/workflow-streaming.md +109 -0
- package/.docs/docs/voice/overview.md +959 -0
- package/.docs/docs/voice/speech-to-speech.md +102 -0
- package/.docs/docs/voice/speech-to-text.md +79 -0
- package/.docs/docs/voice/text-to-speech.md +83 -0
- package/.docs/docs/workflows/agents-and-tools.md +166 -0
- package/.docs/docs/workflows/control-flow.md +822 -0
- package/.docs/docs/workflows/error-handling.md +360 -0
- package/.docs/docs/workflows/human-in-the-loop.md +215 -0
- package/.docs/docs/workflows/overview.md +370 -0
- package/.docs/docs/workflows/snapshots.md +238 -0
- package/.docs/docs/workflows/suspend-and-resume.md +205 -0
- package/.docs/docs/workflows/time-travel.md +309 -0
- package/.docs/docs/workflows/workflow-state.md +181 -0
- package/.docs/docs/workspace/filesystem.md +164 -0
- package/.docs/docs/workspace/overview.md +239 -0
- package/.docs/docs/workspace/sandbox.md +63 -0
- package/.docs/docs/workspace/search.md +243 -0
- package/.docs/docs/workspace/skills.md +169 -0
- package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
- package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
- package/.docs/guides/build-your-ui/copilotkit.md +289 -0
- package/.docs/guides/deployment/amazon-ec2.md +130 -0
- package/.docs/guides/deployment/aws-lambda.md +248 -0
- package/.docs/guides/deployment/azure-app-services.md +114 -0
- package/.docs/guides/deployment/cloudflare.md +99 -0
- package/.docs/guides/deployment/digital-ocean.md +168 -0
- package/.docs/guides/deployment/inngest.md +682 -0
- package/.docs/guides/deployment/netlify.md +77 -0
- package/.docs/guides/deployment/vercel.md +101 -0
- package/.docs/guides/getting-started/astro.md +398 -0
- package/.docs/guides/getting-started/electron.md +504 -0
- package/.docs/guides/getting-started/express.md +251 -0
- package/.docs/guides/getting-started/hono.md +190 -0
- package/.docs/guides/getting-started/next-js.md +347 -0
- package/.docs/guides/getting-started/nuxt.md +497 -0
- package/.docs/guides/getting-started/quickstart.md +67 -0
- package/.docs/guides/getting-started/sveltekit.md +296 -0
- package/.docs/guides/getting-started/vite-react.md +425 -0
- package/.docs/guides/guide/ai-recruiter.md +226 -0
- package/.docs/guides/guide/chef-michel.md +211 -0
- package/.docs/guides/guide/code-review-bot.md +226 -0
- package/.docs/guides/guide/dev-assistant.md +307 -0
- package/.docs/guides/guide/docs-manager.md +238 -0
- package/.docs/guides/guide/github-actions-pr-description.md +236 -0
- package/.docs/guides/guide/notes-mcp-server.md +416 -0
- package/.docs/guides/guide/research-assistant.md +348 -0
- package/.docs/guides/guide/research-coordinator.md +416 -0
- package/.docs/guides/guide/stock-agent.md +132 -0
- package/.docs/guides/guide/web-search.md +320 -0
- package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
- package/.docs/guides/index.md +3 -0
- package/.docs/guides/migrations/agentnetwork.md +97 -0
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
- package/.docs/guides/migrations/network-to-supervisor.md +261 -0
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
- package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
- package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
- package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
- package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
- package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
- package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
- package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
- package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
- package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
- package/.docs/models/embeddings.md +161 -0
- package/.docs/models/gateways/azure-openai.md +128 -0
- package/.docs/models/gateways/custom-gateways.md +545 -0
- package/.docs/models/gateways/netlify.md +88 -0
- package/.docs/models/gateways/openrouter.md +219 -0
- package/.docs/models/gateways/vercel.md +225 -0
- package/.docs/models/gateways.md +14 -0
- package/.docs/models/index.md +286 -0
- package/.docs/models/providers/302ai.md +134 -0
- package/.docs/models/providers/abacus.md +125 -0
- package/.docs/models/providers/agentrouter.md +90 -0
- package/.docs/models/providers/aihubmix.md +107 -0
- package/.docs/models/providers/alibaba-cn.md +135 -0
- package/.docs/models/providers/alibaba.md +111 -0
- package/.docs/models/providers/amazon-bedrock.md +33 -0
- package/.docs/models/providers/anthropic.md +153 -0
- package/.docs/models/providers/azure.md +33 -0
- package/.docs/models/providers/bailing.md +72 -0
- package/.docs/models/providers/baseten.md +77 -0
- package/.docs/models/providers/berget.md +78 -0
- package/.docs/models/providers/cerebras.md +101 -0
- package/.docs/models/providers/chutes.md +136 -0
- package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
- package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
- package/.docs/models/providers/cohere.md +33 -0
- package/.docs/models/providers/cortecs.md +91 -0
- package/.docs/models/providers/deepinfra.md +112 -0
- package/.docs/models/providers/deepseek.md +88 -0
- package/.docs/models/providers/fastrouter.md +84 -0
- package/.docs/models/providers/fireworks-ai.md +89 -0
- package/.docs/models/providers/firmware.md +85 -0
- package/.docs/models/providers/friendli.md +78 -0
- package/.docs/models/providers/github-models.md +125 -0
- package/.docs/models/providers/google-vertex.md +33 -0
- package/.docs/models/providers/google.md +159 -0
- package/.docs/models/providers/groq.md +107 -0
- package/.docs/models/providers/helicone.md +161 -0
- package/.docs/models/providers/huggingface.md +90 -0
- package/.docs/models/providers/iflowcn.md +84 -0
- package/.docs/models/providers/inception.md +72 -0
- package/.docs/models/providers/inference.md +79 -0
- package/.docs/models/providers/io-intelligence.md +87 -0
- package/.docs/models/providers/io-net.md +87 -0
- package/.docs/models/providers/jiekou.md +131 -0
- package/.docs/models/providers/kilo.md +333 -0
- package/.docs/models/providers/kimi-for-coding.md +100 -0
- package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
- package/.docs/models/providers/llama.md +77 -0
- package/.docs/models/providers/lmstudio.md +73 -0
- package/.docs/models/providers/lucidquery.md +72 -0
- package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
- package/.docs/models/providers/minimax-cn.md +102 -0
- package/.docs/models/providers/minimax-coding-plan.md +102 -0
- package/.docs/models/providers/minimax.md +104 -0
- package/.docs/models/providers/mistral.md +124 -0
- package/.docs/models/providers/moark.md +72 -0
- package/.docs/models/providers/modelscope.md +77 -0
- package/.docs/models/providers/moonshotai-cn.md +76 -0
- package/.docs/models/providers/moonshotai.md +76 -0
- package/.docs/models/providers/morph.md +73 -0
- package/.docs/models/providers/nano-gpt.md +103 -0
- package/.docs/models/providers/nebius.md +116 -0
- package/.docs/models/providers/nova.md +72 -0
- package/.docs/models/providers/novita-ai.md +154 -0
- package/.docs/models/providers/nvidia.md +141 -0
- package/.docs/models/providers/ollama-cloud.md +103 -0
- package/.docs/models/providers/ollama.md +33 -0
- package/.docs/models/providers/openai.md +193 -0
- package/.docs/models/providers/opencode.md +100 -0
- package/.docs/models/providers/ovhcloud.md +83 -0
- package/.docs/models/providers/perplexity.md +100 -0
- package/.docs/models/providers/poe.md +183 -0
- package/.docs/models/providers/privatemode-ai.md +75 -0
- package/.docs/models/providers/requesty.md +90 -0
- package/.docs/models/providers/scaleway.md +84 -0
- package/.docs/models/providers/siliconflow-cn.md +138 -0
- package/.docs/models/providers/siliconflow.md +140 -0
- package/.docs/models/providers/stackit.md +78 -0
- package/.docs/models/providers/stepfun.md +73 -0
- package/.docs/models/providers/submodel.md +79 -0
- package/.docs/models/providers/synthetic.md +96 -0
- package/.docs/models/providers/togetherai.md +115 -0
- package/.docs/models/providers/upstage.md +73 -0
- package/.docs/models/providers/venice.md +95 -0
- package/.docs/models/providers/vivgrid.md +106 -0
- package/.docs/models/providers/vultr.md +75 -0
- package/.docs/models/providers/wandb.md +80 -0
- package/.docs/models/providers/xai.md +141 -0
- package/.docs/models/providers/xiaomi.md +71 -0
- package/.docs/models/providers/zai-coding-plan.md +80 -0
- package/.docs/models/providers/zai.md +79 -0
- package/.docs/models/providers/zenmux.md +161 -0
- package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
- package/.docs/models/providers/zhipuai.md +79 -0
- package/.docs/models/providers.md +81 -0
- package/.docs/reference/agents/agent.md +141 -0
- package/.docs/reference/agents/generate.md +186 -0
- package/.docs/reference/agents/generateLegacy.md +173 -0
- package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
- package/.docs/reference/agents/getDefaultOptions.md +34 -0
- package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
- package/.docs/reference/agents/getDescription.md +21 -0
- package/.docs/reference/agents/getInstructions.md +34 -0
- package/.docs/reference/agents/getLLM.md +37 -0
- package/.docs/reference/agents/getMemory.md +34 -0
- package/.docs/reference/agents/getModel.md +34 -0
- package/.docs/reference/agents/getTools.md +29 -0
- package/.docs/reference/agents/getVoice.md +34 -0
- package/.docs/reference/agents/listAgents.md +35 -0
- package/.docs/reference/agents/listScorers.md +34 -0
- package/.docs/reference/agents/listTools.md +34 -0
- package/.docs/reference/agents/listWorkflows.md +34 -0
- package/.docs/reference/agents/network.md +133 -0
- package/.docs/reference/ai-sdk/chat-route.md +82 -0
- package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
- package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
- package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
- package/.docs/reference/ai-sdk/network-route.md +74 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
- package/.docs/reference/ai-sdk/with-mastra.md +59 -0
- package/.docs/reference/ai-sdk/workflow-route.md +79 -0
- package/.docs/reference/auth/auth0.md +73 -0
- package/.docs/reference/auth/better-auth.md +71 -0
- package/.docs/reference/auth/clerk.md +36 -0
- package/.docs/reference/auth/firebase.md +80 -0
- package/.docs/reference/auth/jwt.md +26 -0
- package/.docs/reference/auth/supabase.md +33 -0
- package/.docs/reference/auth/workos.md +84 -0
- package/.docs/reference/cli/create-mastra.md +137 -0
- package/.docs/reference/cli/mastra.md +336 -0
- package/.docs/reference/client-js/agents.md +437 -0
- package/.docs/reference/client-js/error-handling.md +16 -0
- package/.docs/reference/client-js/logs.md +24 -0
- package/.docs/reference/client-js/mastra-client.md +63 -0
- package/.docs/reference/client-js/memory.md +221 -0
- package/.docs/reference/client-js/observability.md +72 -0
- package/.docs/reference/client-js/telemetry.md +20 -0
- package/.docs/reference/client-js/tools.md +44 -0
- package/.docs/reference/client-js/vectors.md +79 -0
- package/.docs/reference/client-js/workflows.md +199 -0
- package/.docs/reference/configuration.md +752 -0
- package/.docs/reference/core/addGateway.md +42 -0
- package/.docs/reference/core/getAgent.md +21 -0
- package/.docs/reference/core/getAgentById.md +21 -0
- package/.docs/reference/core/getDeployer.md +22 -0
- package/.docs/reference/core/getGateway.md +38 -0
- package/.docs/reference/core/getGatewayById.md +41 -0
- package/.docs/reference/core/getLogger.md +22 -0
- package/.docs/reference/core/getMCPServer.md +47 -0
- package/.docs/reference/core/getMCPServerById.md +55 -0
- package/.docs/reference/core/getMemory.md +50 -0
- package/.docs/reference/core/getScorer.md +54 -0
- package/.docs/reference/core/getScorerById.md +54 -0
- package/.docs/reference/core/getServer.md +22 -0
- package/.docs/reference/core/getStorage.md +22 -0
- package/.docs/reference/core/getStoredAgentById.md +89 -0
- package/.docs/reference/core/getTelemetry.md +22 -0
- package/.docs/reference/core/getVector.md +22 -0
- package/.docs/reference/core/getWorkflow.md +42 -0
- package/.docs/reference/core/listAgents.md +21 -0
- package/.docs/reference/core/listGateways.md +40 -0
- package/.docs/reference/core/listLogs.md +38 -0
- package/.docs/reference/core/listLogsByRunId.md +36 -0
- package/.docs/reference/core/listMCPServers.md +55 -0
- package/.docs/reference/core/listMemory.md +56 -0
- package/.docs/reference/core/listScorers.md +29 -0
- package/.docs/reference/core/listStoredAgents.md +93 -0
- package/.docs/reference/core/listVectors.md +22 -0
- package/.docs/reference/core/listWorkflows.md +21 -0
- package/.docs/reference/core/mastra-class.md +66 -0
- package/.docs/reference/core/mastra-model-gateway.md +153 -0
- package/.docs/reference/core/setLogger.md +26 -0
- package/.docs/reference/core/setStorage.md +27 -0
- package/.docs/reference/datasets/addItem.md +37 -0
- package/.docs/reference/datasets/addItems.md +35 -0
- package/.docs/reference/datasets/compareExperiments.md +52 -0
- package/.docs/reference/datasets/create.md +51 -0
- package/.docs/reference/datasets/dataset.md +82 -0
- package/.docs/reference/datasets/datasets-manager.md +94 -0
- package/.docs/reference/datasets/delete.md +25 -0
- package/.docs/reference/datasets/deleteExperiment.md +27 -0
- package/.docs/reference/datasets/deleteItem.md +27 -0
- package/.docs/reference/datasets/deleteItems.md +29 -0
- package/.docs/reference/datasets/get.md +31 -0
- package/.docs/reference/datasets/getDetails.md +47 -0
- package/.docs/reference/datasets/getExperiment.md +30 -0
- package/.docs/reference/datasets/getItem.md +33 -0
- package/.docs/reference/datasets/getItemHistory.md +31 -0
- package/.docs/reference/datasets/list.md +31 -0
- package/.docs/reference/datasets/listExperimentResults.md +39 -0
- package/.docs/reference/datasets/listExperiments.md +33 -0
- package/.docs/reference/datasets/listItems.md +46 -0
- package/.docs/reference/datasets/listVersions.md +33 -0
- package/.docs/reference/datasets/startExperiment.md +62 -0
- package/.docs/reference/datasets/startExperimentAsync.md +43 -0
- package/.docs/reference/datasets/update.md +48 -0
- package/.docs/reference/datasets/updateItem.md +38 -0
- package/.docs/reference/deployer/cloudflare.md +79 -0
- package/.docs/reference/deployer/netlify.md +80 -0
- package/.docs/reference/deployer/vercel.md +91 -0
- package/.docs/reference/deployer.md +100 -0
- package/.docs/reference/evals/answer-relevancy.md +105 -0
- package/.docs/reference/evals/answer-similarity.md +99 -0
- package/.docs/reference/evals/bias.md +120 -0
- package/.docs/reference/evals/completeness.md +136 -0
- package/.docs/reference/evals/content-similarity.md +101 -0
- package/.docs/reference/evals/context-precision.md +196 -0
- package/.docs/reference/evals/context-relevance.md +531 -0
- package/.docs/reference/evals/create-scorer.md +270 -0
- package/.docs/reference/evals/faithfulness.md +114 -0
- package/.docs/reference/evals/hallucination.md +213 -0
- package/.docs/reference/evals/keyword-coverage.md +128 -0
- package/.docs/reference/evals/mastra-scorer.md +123 -0
- package/.docs/reference/evals/noise-sensitivity.md +675 -0
- package/.docs/reference/evals/prompt-alignment.md +614 -0
- package/.docs/reference/evals/run-evals.md +179 -0
- package/.docs/reference/evals/scorer-utils.md +326 -0
- package/.docs/reference/evals/textual-difference.md +113 -0
- package/.docs/reference/evals/tone-consistency.md +119 -0
- package/.docs/reference/evals/tool-call-accuracy.md +533 -0
- package/.docs/reference/evals/toxicity.md +123 -0
- package/.docs/reference/harness/harness-class.md +708 -0
- package/.docs/reference/index.md +277 -0
- package/.docs/reference/logging/pino-logger.md +117 -0
- package/.docs/reference/mastra-code/createMastraCode.md +108 -0
- package/.docs/reference/memory/clone-utilities.md +199 -0
- package/.docs/reference/memory/cloneThread.md +130 -0
- package/.docs/reference/memory/createThread.md +68 -0
- package/.docs/reference/memory/deleteMessages.md +38 -0
- package/.docs/reference/memory/getThreadById.md +24 -0
- package/.docs/reference/memory/listThreads.md +145 -0
- package/.docs/reference/memory/memory-class.md +147 -0
- package/.docs/reference/memory/observational-memory.md +565 -0
- package/.docs/reference/memory/recall.md +91 -0
- package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
- package/.docs/reference/observability/tracing/configuration.md +178 -0
- package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
- package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
- package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
- package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
- package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
- package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
- package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
- package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
- package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
- package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
- package/.docs/reference/observability/tracing/instances.md +107 -0
- package/.docs/reference/observability/tracing/interfaces.md +743 -0
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
- package/.docs/reference/observability/tracing/spans.md +224 -0
- package/.docs/reference/processors/batch-parts-processor.md +61 -0
- package/.docs/reference/processors/language-detector.md +82 -0
- package/.docs/reference/processors/message-history-processor.md +85 -0
- package/.docs/reference/processors/moderation-processor.md +104 -0
- package/.docs/reference/processors/pii-detector.md +108 -0
- package/.docs/reference/processors/processor-interface.md +521 -0
- package/.docs/reference/processors/prompt-injection-detector.md +72 -0
- package/.docs/reference/processors/semantic-recall-processor.md +117 -0
- package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
- package/.docs/reference/processors/token-limiter-processor.md +115 -0
- package/.docs/reference/processors/tool-call-filter.md +85 -0
- package/.docs/reference/processors/tool-search-processor.md +111 -0
- package/.docs/reference/processors/unicode-normalizer.md +62 -0
- package/.docs/reference/processors/working-memory-processor.md +152 -0
- package/.docs/reference/rag/chunk.md +221 -0
- package/.docs/reference/rag/database-config.md +261 -0
- package/.docs/reference/rag/document.md +114 -0
- package/.docs/reference/rag/embeddings.md +92 -0
- package/.docs/reference/rag/extract-params.md +168 -0
- package/.docs/reference/rag/graph-rag.md +111 -0
- package/.docs/reference/rag/metadata-filters.md +216 -0
- package/.docs/reference/rag/rerank.md +75 -0
- package/.docs/reference/rag/rerankWithScorer.md +80 -0
- package/.docs/reference/server/create-route.md +262 -0
- package/.docs/reference/server/express-adapter.md +176 -0
- package/.docs/reference/server/fastify-adapter.md +90 -0
- package/.docs/reference/server/hono-adapter.md +162 -0
- package/.docs/reference/server/koa-adapter.md +127 -0
- package/.docs/reference/server/mastra-server.md +298 -0
- package/.docs/reference/server/register-api-route.md +249 -0
- package/.docs/reference/server/routes.md +306 -0
- package/.docs/reference/storage/cloudflare-d1.md +218 -0
- package/.docs/reference/storage/cloudflare.md +88 -0
- package/.docs/reference/storage/composite.md +235 -0
- package/.docs/reference/storage/convex.md +161 -0
- package/.docs/reference/storage/dynamodb.md +282 -0
- package/.docs/reference/storage/lance.md +131 -0
- package/.docs/reference/storage/libsql.md +135 -0
- package/.docs/reference/storage/mongodb.md +262 -0
- package/.docs/reference/storage/mssql.md +157 -0
- package/.docs/reference/storage/overview.md +121 -0
- package/.docs/reference/storage/postgresql.md +526 -0
- package/.docs/reference/storage/upstash.md +160 -0
- package/.docs/reference/streaming/ChunkType.md +292 -0
- package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
- package/.docs/reference/streaming/agents/stream.md +221 -0
- package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
- package/.docs/reference/streaming/workflows/observeStream.md +42 -0
- package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
- package/.docs/reference/streaming/workflows/stream.md +88 -0
- package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
- package/.docs/reference/templates/overview.md +194 -0
- package/.docs/reference/tools/create-tool.md +237 -0
- package/.docs/reference/tools/document-chunker-tool.md +89 -0
- package/.docs/reference/tools/graph-rag-tool.md +182 -0
- package/.docs/reference/tools/mcp-client.md +954 -0
- package/.docs/reference/tools/mcp-server.md +1271 -0
- package/.docs/reference/tools/vector-query-tool.md +459 -0
- package/.docs/reference/vectors/astra.md +121 -0
- package/.docs/reference/vectors/chroma.md +264 -0
- package/.docs/reference/vectors/convex.md +300 -0
- package/.docs/reference/vectors/couchbase.md +226 -0
- package/.docs/reference/vectors/duckdb.md +318 -0
- package/.docs/reference/vectors/elasticsearch.md +189 -0
- package/.docs/reference/vectors/lance.md +220 -0
- package/.docs/reference/vectors/libsql.md +305 -0
- package/.docs/reference/vectors/mongodb.md +295 -0
- package/.docs/reference/vectors/opensearch.md +99 -0
- package/.docs/reference/vectors/pg.md +408 -0
- package/.docs/reference/vectors/pinecone.md +168 -0
- package/.docs/reference/vectors/qdrant.md +222 -0
- package/.docs/reference/vectors/s3vectors.md +277 -0
- package/.docs/reference/vectors/turbopuffer.md +157 -0
- package/.docs/reference/vectors/upstash.md +294 -0
- package/.docs/reference/vectors/vectorize.md +147 -0
- package/.docs/reference/voice/azure.md +148 -0
- package/.docs/reference/voice/cloudflare.md +83 -0
- package/.docs/reference/voice/composite-voice.md +121 -0
- package/.docs/reference/voice/deepgram.md +79 -0
- package/.docs/reference/voice/elevenlabs.md +98 -0
- package/.docs/reference/voice/google-gemini-live.md +378 -0
- package/.docs/reference/voice/google.md +228 -0
- package/.docs/reference/voice/mastra-voice.md +311 -0
- package/.docs/reference/voice/murf.md +122 -0
- package/.docs/reference/voice/openai-realtime.md +203 -0
- package/.docs/reference/voice/openai.md +88 -0
- package/.docs/reference/voice/playai.md +80 -0
- package/.docs/reference/voice/sarvam.md +126 -0
- package/.docs/reference/voice/speechify.md +75 -0
- package/.docs/reference/voice/voice.addInstructions.md +55 -0
- package/.docs/reference/voice/voice.addTools.md +67 -0
- package/.docs/reference/voice/voice.answer.md +54 -0
- package/.docs/reference/voice/voice.close.md +51 -0
- package/.docs/reference/voice/voice.connect.md +94 -0
- package/.docs/reference/voice/voice.events.md +37 -0
- package/.docs/reference/voice/voice.getSpeakers.md +129 -0
- package/.docs/reference/voice/voice.listen.md +164 -0
- package/.docs/reference/voice/voice.off.md +54 -0
- package/.docs/reference/voice/voice.on.md +111 -0
- package/.docs/reference/voice/voice.send.md +65 -0
- package/.docs/reference/voice/voice.speak.md +157 -0
- package/.docs/reference/voice/voice.updateConfig.md +60 -0
- package/.docs/reference/workflows/run-methods/cancel.md +86 -0
- package/.docs/reference/workflows/run-methods/restart.md +33 -0
- package/.docs/reference/workflows/run-methods/resume.md +59 -0
- package/.docs/reference/workflows/run-methods/start.md +58 -0
- package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
- package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
- package/.docs/reference/workflows/run.md +59 -0
- package/.docs/reference/workflows/step.md +119 -0
- package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
- package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
- package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
- package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
- package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
- package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
- package/.docs/reference/workflows/workflow-methods/map.md +93 -0
- package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
- package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
- package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
- package/.docs/reference/workflows/workflow-methods/then.md +21 -0
- package/.docs/reference/workflows/workflow.md +157 -0
- package/.docs/reference/workspace/e2b-sandbox.md +289 -0
- package/.docs/reference/workspace/filesystem.md +255 -0
- package/.docs/reference/workspace/gcs-filesystem.md +174 -0
- package/.docs/reference/workspace/local-filesystem.md +343 -0
- package/.docs/reference/workspace/local-sandbox.md +301 -0
- package/.docs/reference/workspace/s3-filesystem.md +175 -0
- package/.docs/reference/workspace/sandbox.md +87 -0
- package/.docs/reference/workspace/workspace-class.md +244 -0
- package/CHANGELOG.md +8 -0
- package/package.json +5 -5
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# rerank()
|
|
2
|
+
|
|
3
|
+
The `rerank()` function provides advanced reranking capabilities for vector search results by combining semantic relevance, vector similarity, and position-based scoring.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
function rerank(
|
|
7
|
+
results: QueryResult[],
|
|
8
|
+
query: string,
|
|
9
|
+
modelConfig: ModelConfig,
|
|
10
|
+
options?: RerankerFunctionOptions,
|
|
11
|
+
): Promise<RerankResult[]>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { rerank } from '@mastra/rag'
|
|
18
|
+
|
|
19
|
+
const model = 'openai/gpt-5.1'
|
|
20
|
+
|
|
21
|
+
const rerankedResults = await rerank(vectorSearchResults, 'How do I deploy to production?', model, {
|
|
22
|
+
weights: {
|
|
23
|
+
semantic: 0.5,
|
|
24
|
+
vector: 0.3,
|
|
25
|
+
position: 0.2,
|
|
26
|
+
},
|
|
27
|
+
topK: 3,
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Parameters
|
|
32
|
+
|
|
33
|
+
**results:** (`QueryResult[]`): The vector search results to rerank
|
|
34
|
+
|
|
35
|
+
**query:** (`string`): The search query text used to evaluate relevance
|
|
36
|
+
|
|
37
|
+
**model:** (`MastraLanguageModel`): The language Model to use for reranking
|
|
38
|
+
|
|
39
|
+
**options?:** (`RerankerFunctionOptions`): Options for the reranking model
|
|
40
|
+
|
|
41
|
+
The rerank function accepts any LanguageModel from the Vercel AI SDK. When using the Cohere model `rerank-v3.5`, it will automatically use Cohere's reranking capabilities.
|
|
42
|
+
|
|
43
|
+
> **Note:** For semantic scoring to work properly during re-ranking, each result must include the text content in its `metadata.text` field.
|
|
44
|
+
|
|
45
|
+
### RerankerFunctionOptions
|
|
46
|
+
|
|
47
|
+
**weights?:** (`WeightConfig`): numbersemantic?:number (default: 0.4)Weight for semantic relevancenumbervector?:number (default: 0.4)Weight for vector similaritynumberposition?:number (default: 0.2)Weight for position-based scoring
|
|
48
|
+
|
|
49
|
+
**queryEmbedding?:** (`number[]`): Embedding of the query
|
|
50
|
+
|
|
51
|
+
**topK?:** (`number`): Number of top results to return (Default: `3`)
|
|
52
|
+
|
|
53
|
+
## Returns
|
|
54
|
+
|
|
55
|
+
The function returns an array of `RerankResult` objects:
|
|
56
|
+
|
|
57
|
+
**result:** (`QueryResult`): The original query result
|
|
58
|
+
|
|
59
|
+
**score:** (`number`): Combined reranking score (0-1)
|
|
60
|
+
|
|
61
|
+
**details:** (`ScoringDetails`): Detailed scoring information
|
|
62
|
+
|
|
63
|
+
### ScoringDetails
|
|
64
|
+
|
|
65
|
+
**semantic:** (`number`): Semantic relevance score (0-1)
|
|
66
|
+
|
|
67
|
+
**vector:** (`number`): Vector similarity score (0-1)
|
|
68
|
+
|
|
69
|
+
**position:** (`number`): Position-based score (0-1)
|
|
70
|
+
|
|
71
|
+
**queryAnalysis?:** (`object`): numbermagnitude:Magnitude of the querynumber\[]dominantFeatures:Dominant features of the query
|
|
72
|
+
|
|
73
|
+
## Related
|
|
74
|
+
|
|
75
|
+
- [createVectorQueryTool](https://mastra.ai/reference/tools/vector-query-tool)
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# rerankWithScorer()
|
|
2
|
+
|
|
3
|
+
The `rerankWithScorer()` function provides advanced reranking capabilities for vector search results by combining semantic relevance, vector similarity, and position-based scoring.
|
|
4
|
+
|
|
5
|
+
```typescript
|
|
6
|
+
function rerankWithScorer({
|
|
7
|
+
results: QueryResult[],
|
|
8
|
+
query: string,
|
|
9
|
+
scorer: RelevanceScoreProvider,
|
|
10
|
+
options?: RerankerFunctionOptions,
|
|
11
|
+
}): Promise<RerankResult[]>;
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Usage Example
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
import { rerankWithScorer as rerank, CohereRelevanceScorer } from '@mastra/rag'
|
|
18
|
+
|
|
19
|
+
const scorer = new CohereRelevanceScorer('rerank-v3.5')
|
|
20
|
+
|
|
21
|
+
const rerankedResults = await rerank({
|
|
22
|
+
results: vectorSearchResults,
|
|
23
|
+
query: 'How do I deploy to production?',
|
|
24
|
+
scorer,
|
|
25
|
+
options: {
|
|
26
|
+
weights: {
|
|
27
|
+
semantic: 0.5,
|
|
28
|
+
vector: 0.3,
|
|
29
|
+
position: 0.2,
|
|
30
|
+
},
|
|
31
|
+
topK: 3,
|
|
32
|
+
},
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Parameters
|
|
37
|
+
|
|
38
|
+
**results:** (`QueryResult[]`): The vector search results to rerank
|
|
39
|
+
|
|
40
|
+
**query:** (`string`): The search query text used to evaluate relevance
|
|
41
|
+
|
|
42
|
+
**scorer:** (`RelevanceScoreProvider`): The relevance scorer to use for reranking
|
|
43
|
+
|
|
44
|
+
**options?:** (`RerankerFunctionOptions`): Options for the reranking model
|
|
45
|
+
|
|
46
|
+
The `rerankWithScorer` function accepts any `RelevanceScoreProvider` from @mastra/rag.
|
|
47
|
+
|
|
48
|
+
> **Note:** For semantic scoring to work properly during re-ranking, each result must include the text content in its `metadata.text` field.
|
|
49
|
+
|
|
50
|
+
### RerankerFunctionOptions
|
|
51
|
+
|
|
52
|
+
**weights?:** (`WeightConfig`): numbersemantic?:number (default: 0.4)Weight for semantic relevancenumbervector?:number (default: 0.4)Weight for vector similaritynumberposition?:number (default: 0.2)Weight for position-based scoring
|
|
53
|
+
|
|
54
|
+
**queryEmbedding?:** (`number[]`): Embedding of the query
|
|
55
|
+
|
|
56
|
+
**topK?:** (`number`): Number of top results to return (Default: `3`)
|
|
57
|
+
|
|
58
|
+
## Returns
|
|
59
|
+
|
|
60
|
+
The function returns an array of `RerankResult` objects:
|
|
61
|
+
|
|
62
|
+
**result:** (`QueryResult`): The original query result
|
|
63
|
+
|
|
64
|
+
**score:** (`number`): Combined reranking score (0-1)
|
|
65
|
+
|
|
66
|
+
**details:** (`ScoringDetails`): Detailed scoring information
|
|
67
|
+
|
|
68
|
+
### ScoringDetails
|
|
69
|
+
|
|
70
|
+
**semantic:** (`number`): Semantic relevance score (0-1)
|
|
71
|
+
|
|
72
|
+
**vector:** (`number`): Vector similarity score (0-1)
|
|
73
|
+
|
|
74
|
+
**position:** (`number`): Position-based score (0-1)
|
|
75
|
+
|
|
76
|
+
**queryAnalysis?:** (`object`): numbermagnitude:Magnitude of the querynumber\[]dominantFeatures:Dominant features of the query
|
|
77
|
+
|
|
78
|
+
## Related
|
|
79
|
+
|
|
80
|
+
- [createVectorQueryTool](https://mastra.ai/reference/tools/vector-query-tool)
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# createRoute()
|
|
2
|
+
|
|
3
|
+
The `createRoute()` function creates type-safe routes with Zod validation. When an `openapiPath` is configured on the server adapter, it generates OpenAPI schema entries from the supplied Zod schemas.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { createRoute } from '@mastra/server/server-adapter'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Signature
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
function createRoute<TPath, TQuery, TBody, TResponse, TResponseType>(
|
|
15
|
+
config: RouteConfig<TPath, TQuery, TBody, TResponse, TResponseType>,
|
|
16
|
+
): ServerRoute
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Parameters
|
|
20
|
+
|
|
21
|
+
**method:** (`'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'ALL'`): HTTP method
|
|
22
|
+
|
|
23
|
+
**path:** (`string`): Route path with optional params (e.g., \`/api/items/:id\`)
|
|
24
|
+
|
|
25
|
+
**responseType:** (`'json' | 'stream'`): Response format. Internal routes may use additional types (\`datastream-response\`, \`mcp-http\`, \`mcp-sse\`).
|
|
26
|
+
|
|
27
|
+
**handler:** (`ServerRouteHandler`): Route handler function
|
|
28
|
+
|
|
29
|
+
**pathParamSchema?:** (`ZodSchema`): Validates URL path parameters
|
|
30
|
+
|
|
31
|
+
**queryParamSchema?:** (`ZodSchema`): Validates query string parameters
|
|
32
|
+
|
|
33
|
+
**bodySchema?:** (`ZodSchema`): Validates request body
|
|
34
|
+
|
|
35
|
+
**responseSchema?:** (`ZodSchema`): Documents response shape for OpenAPI
|
|
36
|
+
|
|
37
|
+
**streamFormat?:** (`'sse' | 'stream'`): Stream format (when responseType is 'stream')
|
|
38
|
+
|
|
39
|
+
**maxBodySize?:** (`number`): Override default body size limit in bytes
|
|
40
|
+
|
|
41
|
+
**summary?:** (`string`): OpenAPI summary
|
|
42
|
+
|
|
43
|
+
**description?:** (`string`): OpenAPI description
|
|
44
|
+
|
|
45
|
+
**tags?:** (`string[]`): OpenAPI tags
|
|
46
|
+
|
|
47
|
+
**deprecated?:** (`boolean`): Mark route as deprecated
|
|
48
|
+
|
|
49
|
+
## Handler parameters
|
|
50
|
+
|
|
51
|
+
The handler receives validated parameters plus runtime context:
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
handler: async params => {
|
|
55
|
+
// From schemas (typed from Zod)
|
|
56
|
+
params.id // From pathParamSchema
|
|
57
|
+
params.filter // From queryParamSchema
|
|
58
|
+
params.name // From bodySchema
|
|
59
|
+
|
|
60
|
+
// Runtime context (always available)
|
|
61
|
+
params.mastra // Mastra instance
|
|
62
|
+
params.requestContext // Request-scoped context
|
|
63
|
+
params.tools // Available tools
|
|
64
|
+
params.abortSignal // Request cancellation signal
|
|
65
|
+
params.taskStore // A2A task storage
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Return value
|
|
70
|
+
|
|
71
|
+
Returns a `ServerRoute` object that can be registered with an adapter.
|
|
72
|
+
|
|
73
|
+
## Examples
|
|
74
|
+
|
|
75
|
+
### GET route with path params
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
import { createRoute } from '@mastra/server/server-adapter'
|
|
79
|
+
import { z } from 'zod'
|
|
80
|
+
|
|
81
|
+
const getAgent = createRoute({
|
|
82
|
+
method: 'GET',
|
|
83
|
+
path: '/api/agents/:agentId',
|
|
84
|
+
responseType: 'json',
|
|
85
|
+
pathParamSchema: z.object({
|
|
86
|
+
agentId: z.string(),
|
|
87
|
+
}),
|
|
88
|
+
responseSchema: z.object({
|
|
89
|
+
name: z.string(),
|
|
90
|
+
description: z.string().optional(),
|
|
91
|
+
}),
|
|
92
|
+
summary: 'Get agent by ID',
|
|
93
|
+
tags: ['Agents'],
|
|
94
|
+
handler: async ({ agentId, mastra }) => {
|
|
95
|
+
return mastra.getAgent(agentId)
|
|
96
|
+
},
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### POST route with body
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const createItem = createRoute({
|
|
104
|
+
method: 'POST',
|
|
105
|
+
path: '/api/items',
|
|
106
|
+
responseType: 'json',
|
|
107
|
+
bodySchema: z.object({
|
|
108
|
+
name: z.string(),
|
|
109
|
+
value: z.number(),
|
|
110
|
+
}),
|
|
111
|
+
responseSchema: z.object({
|
|
112
|
+
id: z.string(),
|
|
113
|
+
name: z.string(),
|
|
114
|
+
value: z.number(),
|
|
115
|
+
}),
|
|
116
|
+
handler: async ({ name, value, mastra }) => {
|
|
117
|
+
// name and value are typed from bodySchema
|
|
118
|
+
return { id: 'new-id', name, value }
|
|
119
|
+
},
|
|
120
|
+
})
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Query params with coercion
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
const listItems = createRoute({
|
|
127
|
+
method: 'GET',
|
|
128
|
+
path: '/api/items',
|
|
129
|
+
responseType: 'json',
|
|
130
|
+
queryParamSchema: z.object({
|
|
131
|
+
page: z.coerce.number().default(0),
|
|
132
|
+
limit: z.coerce.number().default(50),
|
|
133
|
+
enabled: z.coerce.boolean().optional(),
|
|
134
|
+
}),
|
|
135
|
+
handler: async ({ page, limit, enabled, mastra }) => {
|
|
136
|
+
// page, limit, enabled are typed and coerced
|
|
137
|
+
return { items: [], page, limit }
|
|
138
|
+
},
|
|
139
|
+
})
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Streaming route
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const streamAgent = createRoute({
|
|
146
|
+
method: 'POST',
|
|
147
|
+
path: '/api/agents/:agentId/stream',
|
|
148
|
+
responseType: 'stream',
|
|
149
|
+
streamFormat: 'sse',
|
|
150
|
+
pathParamSchema: z.object({
|
|
151
|
+
agentId: z.string(),
|
|
152
|
+
}),
|
|
153
|
+
bodySchema: z.object({
|
|
154
|
+
messages: z.array(z.any()),
|
|
155
|
+
}),
|
|
156
|
+
handler: async ({ agentId, messages, mastra, abortSignal }) => {
|
|
157
|
+
const agent = mastra.getAgent(agentId)
|
|
158
|
+
return agent.stream(messages, { abortSignal })
|
|
159
|
+
},
|
|
160
|
+
})
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Custom body size limit
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
const uploadRoute = createRoute({
|
|
167
|
+
method: 'POST',
|
|
168
|
+
path: '/api/upload',
|
|
169
|
+
responseType: 'json',
|
|
170
|
+
maxBodySize: 50 * 1024 * 1024, // 50MB
|
|
171
|
+
bodySchema: z.object({
|
|
172
|
+
file: z.string(),
|
|
173
|
+
}),
|
|
174
|
+
handler: async ({ file }) => {
|
|
175
|
+
return { uploaded: true }
|
|
176
|
+
},
|
|
177
|
+
})
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Schema patterns
|
|
181
|
+
|
|
182
|
+
### Passthrough for extensibility
|
|
183
|
+
|
|
184
|
+
```typescript
|
|
185
|
+
const bodySchema = z
|
|
186
|
+
.object({
|
|
187
|
+
required: z.string(),
|
|
188
|
+
})
|
|
189
|
+
.passthrough() // Allow unknown fields
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Date coercion
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
const querySchema = z.object({
|
|
196
|
+
fromDate: z.coerce.date().optional(),
|
|
197
|
+
toDate: z.coerce.date().optional(),
|
|
198
|
+
})
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Union types
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
const bodySchema = z.object({
|
|
205
|
+
messages: z.union([z.array(z.any()), z.string()]),
|
|
206
|
+
})
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Error handling
|
|
210
|
+
|
|
211
|
+
Throw an error with a `status` property to return specific HTTP status codes from handlers. If using Hono, you can use `HTTPException` from `hono/http-exception`:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
import { createRoute } from '@mastra/server/server-adapter'
|
|
215
|
+
import { HTTPException } from 'hono/http-exception'
|
|
216
|
+
|
|
217
|
+
const getAgent = createRoute({
|
|
218
|
+
method: 'GET',
|
|
219
|
+
path: '/api/agents/:agentId',
|
|
220
|
+
responseType: 'json',
|
|
221
|
+
pathParamSchema: z.object({ agentId: z.string() }),
|
|
222
|
+
handler: async ({ agentId, mastra }) => {
|
|
223
|
+
const agent = mastra.getAgent(agentId)
|
|
224
|
+
if (!agent) {
|
|
225
|
+
throw new HTTPException(404, { message: `Agent '${agentId}' not found` })
|
|
226
|
+
}
|
|
227
|
+
return agent
|
|
228
|
+
},
|
|
229
|
+
})
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
For Express or framework-agnostic code, throw an error with a `status` property:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
class HttpError extends Error {
|
|
236
|
+
constructor(
|
|
237
|
+
public status: number,
|
|
238
|
+
message: string,
|
|
239
|
+
) {
|
|
240
|
+
super(message)
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
// In handler:
|
|
245
|
+
throw new HttpError(404, `Agent '${agentId}' not found`)
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Common status codes:
|
|
249
|
+
|
|
250
|
+
| Code | Meaning |
|
|
251
|
+
| ---- | --------------------- |
|
|
252
|
+
| 400 | Bad Request |
|
|
253
|
+
| 401 | Unauthorized |
|
|
254
|
+
| 403 | Forbidden |
|
|
255
|
+
| 404 | Not Found |
|
|
256
|
+
| 500 | Internal Server Error |
|
|
257
|
+
|
|
258
|
+
## Related
|
|
259
|
+
|
|
260
|
+
- [Server Routes](https://mastra.ai/reference/server/routes) - Default Mastra routes
|
|
261
|
+
- [MastraServer](https://mastra.ai/reference/server/mastra-server) - Server adapter class
|
|
262
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Using adapters
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
# Express Adapter
|
|
2
|
+
|
|
3
|
+
The `@mastra/express` package provides a server adapter for running Mastra with [Express](https://expressjs.com).
|
|
4
|
+
|
|
5
|
+
> **Info:** For general adapter concepts (constructor options, initialization flow, etc.), see [Server Adapters](https://mastra.ai/docs/server/server-adapters).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Install the Express adapter and Express framework:
|
|
10
|
+
|
|
11
|
+
**npm**:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @mastra/express@latest express
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**pnpm**:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @mastra/express@latest express
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Yarn**:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @mastra/express@latest express
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Bun**:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @mastra/express@latest express
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import express from 'express'
|
|
39
|
+
import { MastraServer } from '@mastra/express'
|
|
40
|
+
import { mastra } from './mastra'
|
|
41
|
+
|
|
42
|
+
const app = express()
|
|
43
|
+
app.use(express.json()) // Required for body parsing
|
|
44
|
+
|
|
45
|
+
const server = new MastraServer({ app, mastra })
|
|
46
|
+
await server.init()
|
|
47
|
+
|
|
48
|
+
app.listen(4111, () => {
|
|
49
|
+
console.log('Server running on port 4111')
|
|
50
|
+
})
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
> **Note:** Express requires `express.json()` middleware for JSON body parsing. Add it before creating the `MastraServer`.
|
|
54
|
+
|
|
55
|
+
## Constructor parameters
|
|
56
|
+
|
|
57
|
+
**app:** (`Application`): Express app instance
|
|
58
|
+
|
|
59
|
+
**mastra:** (`Mastra`): Mastra instance
|
|
60
|
+
|
|
61
|
+
**prefix?:** (`string`): Route path prefix (e.g., \`/api/v2\`) (Default: `''`)
|
|
62
|
+
|
|
63
|
+
**openapiPath?:** (`string`): Path to serve OpenAPI spec (e.g., \`/openapi.json\`) (Default: `''`)
|
|
64
|
+
|
|
65
|
+
**bodyLimitOptions?:** (`{ maxSize: number, onError: (err) => unknown }`): Request body size limits
|
|
66
|
+
|
|
67
|
+
**streamOptions?:** (`{ redact?: boolean }`): Stream redaction config. When true, redacts sensitive data from streams. (Default: `{ redact: true }`)
|
|
68
|
+
|
|
69
|
+
**customRouteAuthConfig?:** (`Map<string, boolean>`): Per-route auth overrides. Keys are \`METHOD:PATH\` (e.g., \`GET:/api/health\`). Value \`false\` makes route public, \`true\` requires auth.
|
|
70
|
+
|
|
71
|
+
**tools?:** (`Record<string, Tool>`): Available tools for the server
|
|
72
|
+
|
|
73
|
+
**taskStore?:** (`InMemoryTaskStore`): Task store for A2A (Agent-to-Agent) operations
|
|
74
|
+
|
|
75
|
+
**mcpOptions?:** (`MCPOptions`): MCP transport options. Set \`serverless: true\` for stateless environments like Cloudflare Workers or Vercel Edge.
|
|
76
|
+
|
|
77
|
+
## Differences from Hono
|
|
78
|
+
|
|
79
|
+
| Aspect | Express | Hono |
|
|
80
|
+
| -------------------- | ------------------------------ | --------------------- |
|
|
81
|
+
| Body parsing | Requires `express.json()` | Handled by framework |
|
|
82
|
+
| Context storage | `res.locals` | `c.get()` / `c.set()` |
|
|
83
|
+
| Middleware signature | `(req, res, next)` | `(c, next)` |
|
|
84
|
+
| Streaming | `res.write()` / `res.end()` | `stream()` helper |
|
|
85
|
+
| AbortSignal | Created from `req.on('close')` | `c.req.raw.signal` |
|
|
86
|
+
|
|
87
|
+
## Adding custom routes
|
|
88
|
+
|
|
89
|
+
Add routes directly to the Express app:
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
const app = express()
|
|
93
|
+
app.use(express.json())
|
|
94
|
+
|
|
95
|
+
const server = new MastraServer({ app, mastra })
|
|
96
|
+
|
|
97
|
+
// Before init - runs before Mastra middleware
|
|
98
|
+
app.get('/early-health', (req, res) => res.json({ status: 'ok' }))
|
|
99
|
+
|
|
100
|
+
await server.init()
|
|
101
|
+
|
|
102
|
+
// After init - has access to Mastra context
|
|
103
|
+
app.get('/custom', (req, res) => {
|
|
104
|
+
const mastraInstance = res.locals.mastra
|
|
105
|
+
res.json({ agents: Object.keys(mastraInstance.listAgents()) })
|
|
106
|
+
})
|
|
107
|
+
|
|
108
|
+
app.listen(4111)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
> **Tip:** Routes added before `init()` run without Mastra context. Add routes after `init()` to access the Mastra instance and request context.
|
|
112
|
+
|
|
113
|
+
## Accessing context
|
|
114
|
+
|
|
115
|
+
In Express middleware and routes, access Mastra context via `res.locals`:
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
app.get('/custom', (req, res) => {
|
|
119
|
+
const mastra = res.locals.mastra
|
|
120
|
+
const requestContext = res.locals.requestContext
|
|
121
|
+
const abortSignal = res.locals.abortSignal
|
|
122
|
+
|
|
123
|
+
const agent = mastra.getAgent('myAgent')
|
|
124
|
+
res.json({ agent: agent.name })
|
|
125
|
+
})
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Available properties on `res.locals`:
|
|
129
|
+
|
|
130
|
+
| Key | Description |
|
|
131
|
+
| ----------------------- | --------------------------------------- |
|
|
132
|
+
| `mastra` | Mastra instance |
|
|
133
|
+
| `requestContext` | Request context map |
|
|
134
|
+
| `abortSignal` | Request cancellation signal |
|
|
135
|
+
| `tools` | Available tools |
|
|
136
|
+
| `taskStore` | Task store for A2A operations |
|
|
137
|
+
| `customRouteAuthConfig` | Per-route auth overrides |
|
|
138
|
+
| `user` | Authenticated user (if auth configured) |
|
|
139
|
+
|
|
140
|
+
## Adding middleware
|
|
141
|
+
|
|
142
|
+
Add Express middleware before or after `init()`:
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
const app = express()
|
|
146
|
+
app.use(express.json())
|
|
147
|
+
|
|
148
|
+
// Middleware before init
|
|
149
|
+
app.use((req, res, next) => {
|
|
150
|
+
console.log(`${req.method} ${req.url}`)
|
|
151
|
+
next()
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
const server = new MastraServer({ app, mastra })
|
|
155
|
+
await server.init()
|
|
156
|
+
|
|
157
|
+
// Middleware after init has access to Mastra context
|
|
158
|
+
app.use((req, res, next) => {
|
|
159
|
+
const mastra = res.locals.mastra
|
|
160
|
+
next()
|
|
161
|
+
})
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
## Manual initialization
|
|
165
|
+
|
|
166
|
+
For custom middleware ordering, call each method separately instead of `init()`. See [manual initialization](https://mastra.ai/docs/server/server-adapters) for details.
|
|
167
|
+
|
|
168
|
+
## Examples
|
|
169
|
+
|
|
170
|
+
- [Express Adapter](https://github.com/mastra-ai/mastra/tree/main/examples/server-express-adapter) - Basic Express server setup
|
|
171
|
+
|
|
172
|
+
## Related
|
|
173
|
+
|
|
174
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Shared adapter concepts
|
|
175
|
+
- [MastraServer Reference](https://mastra.ai/reference/server/mastra-server) - Full API reference
|
|
176
|
+
- [createRoute() Reference](https://mastra.ai/reference/server/create-route) - Creating type-safe custom routes
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Fastify Adapter
|
|
2
|
+
|
|
3
|
+
The `@mastra/fastify` package provides a server adapter for running Mastra with [Fastify](https://fastify.dev).
|
|
4
|
+
|
|
5
|
+
> **Info:** For general adapter concepts (constructor options, initialization flow, etc.), see [Server Adapters](https://mastra.ai/docs/server/server-adapters).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
Install the Fastify adapter and Fastify framework:
|
|
10
|
+
|
|
11
|
+
**npm**:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @mastra/fastify@latest fastify
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**pnpm**:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @mastra/fastify@latest fastify
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Yarn**:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @mastra/fastify@latest fastify
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Bun**:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @mastra/fastify@latest fastify
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import Fastify from 'fastify'
|
|
39
|
+
import { MastraServer } from '@mastra/fastify'
|
|
40
|
+
import { mastra } from './mastra'
|
|
41
|
+
|
|
42
|
+
const app = Fastify({ logger: true })
|
|
43
|
+
const server = new MastraServer({ app, mastra })
|
|
44
|
+
|
|
45
|
+
await server.init()
|
|
46
|
+
|
|
47
|
+
app.listen({ port: 3000 }, (err, address) => {
|
|
48
|
+
if (err) {
|
|
49
|
+
console.error(err)
|
|
50
|
+
process.exit(1)
|
|
51
|
+
}
|
|
52
|
+
console.log(`Server running on ${address}`)
|
|
53
|
+
})
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Constructor parameters
|
|
57
|
+
|
|
58
|
+
**app:** (`FastifyInstance`): Fastify app instance
|
|
59
|
+
|
|
60
|
+
**mastra:** (`Mastra`): Mastra instance
|
|
61
|
+
|
|
62
|
+
**prefix?:** (`string`): Route path prefix (e.g., \`/api/v2\`) (Default: `''`)
|
|
63
|
+
|
|
64
|
+
**openapiPath?:** (`string`): Path to serve OpenAPI spec (e.g., \`/openapi.json\`) (Default: `''`)
|
|
65
|
+
|
|
66
|
+
**bodyLimitOptions?:** (`BodyLimitOptions`): Request body size limits
|
|
67
|
+
|
|
68
|
+
**streamOptions?:** (`StreamOptions`): Stream redaction config. When true (default), redacts sensitive data (system prompts, tool definitions, API keys) from stream chunks before sending to clients. (Default: `{ redact: true }`)
|
|
69
|
+
|
|
70
|
+
**customRouteAuthConfig?:** (`Map<string, boolean>`): Per-route auth overrides. Keys are \`METHOD:PATH\` (e.g., \`GET:/api/health\`). Value \`false\` makes route public, \`true\` requires auth.
|
|
71
|
+
|
|
72
|
+
**tools?:** (`ToolsInput`): Available tools for the server
|
|
73
|
+
|
|
74
|
+
**taskStore?:** (`InMemoryTaskStore`): Task store for A2A (Agent-to-Agent) operations
|
|
75
|
+
|
|
76
|
+
**mcpOptions?:** (`MCPOptions`): MCP transport options. Set \`serverless: true\` for stateless environments like Cloudflare Workers or Vercel Edge.
|
|
77
|
+
|
|
78
|
+
## Manual initialization
|
|
79
|
+
|
|
80
|
+
For custom middleware ordering, call each method separately instead of `init()`. See [manual initialization](https://mastra.ai/docs/server/server-adapters) for details.
|
|
81
|
+
|
|
82
|
+
## Examples
|
|
83
|
+
|
|
84
|
+
- [Fastify Adapter](https://github.com/mastra-ai/mastra/tree/main/examples/server-fastify-adapter) - Basic Fastify server setup
|
|
85
|
+
|
|
86
|
+
## Related
|
|
87
|
+
|
|
88
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Shared adapter concepts
|
|
89
|
+
- [MastraServer Reference](https://mastra.ai/reference/server/mastra-server) - Full API reference
|
|
90
|
+
- [createRoute() Reference](https://mastra.ai/reference/server/create-route) - Creating type-safe custom routes
|