@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,162 @@
|
|
|
1
|
+
# Hono Adapter
|
|
2
|
+
|
|
3
|
+
The `@mastra/hono` package provides a server adapter for running Mastra with [Hono](https://hono.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 Hono adapter and Hono framework:
|
|
10
|
+
|
|
11
|
+
**npm**:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @mastra/hono@latest hono
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**pnpm**:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @mastra/hono@latest hono
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Yarn**:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @mastra/hono@latest hono
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Bun**:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @mastra/hono@latest hono
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import { Hono } from 'hono'
|
|
39
|
+
import { HonoBindings, HonoVariables, MastraServer } from '@mastra/hono'
|
|
40
|
+
import { mastra } from './mastra'
|
|
41
|
+
|
|
42
|
+
const app = new Hono<{ Bindings: HonoBindings; Variables: HonoVariables }>()
|
|
43
|
+
const server = new MastraServer({ app, mastra })
|
|
44
|
+
|
|
45
|
+
await server.init()
|
|
46
|
+
|
|
47
|
+
export default app
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Constructor parameters
|
|
51
|
+
|
|
52
|
+
**app:** (`Hono`): Hono app instance
|
|
53
|
+
|
|
54
|
+
**mastra:** (`Mastra`): Mastra instance
|
|
55
|
+
|
|
56
|
+
**prefix?:** (`string`): Route path prefix (e.g., \`/api/v2\`) (Default: `''`)
|
|
57
|
+
|
|
58
|
+
**openapiPath?:** (`string`): Path to serve OpenAPI spec (e.g., \`/openapi.json\`) (Default: `''`)
|
|
59
|
+
|
|
60
|
+
**bodyLimitOptions?:** (`{ maxSize: number, onError: (err) => unknown }`): Request body size limits
|
|
61
|
+
|
|
62
|
+
**streamOptions?:** (`{ redact?: boolean }`): Stream redaction config. When true, redacts sensitive data from streams. (Default: `{ redact: true }`)
|
|
63
|
+
|
|
64
|
+
**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.
|
|
65
|
+
|
|
66
|
+
**tools?:** (`Record<string, Tool>`): Available tools for the server
|
|
67
|
+
|
|
68
|
+
**taskStore?:** (`InMemoryTaskStore`): Task store for A2A (Agent-to-Agent) operations
|
|
69
|
+
|
|
70
|
+
**mcpOptions?:** (`MCPOptions`): MCP transport options. Set \`serverless: true\` for stateless environments like Cloudflare Workers or Vercel Edge.
|
|
71
|
+
|
|
72
|
+
## Adding custom routes
|
|
73
|
+
|
|
74
|
+
Add routes directly to the Hono app:
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
import { Hono } from 'hono'
|
|
78
|
+
import { HonoBindings, HonoVariables, MastraServer } from '@mastra/hono'
|
|
79
|
+
|
|
80
|
+
const app = new Hono<{ Bindings: HonoBindings; Variables: HonoVariables }>()
|
|
81
|
+
const server = new MastraServer({ app, mastra })
|
|
82
|
+
|
|
83
|
+
// Before init - runs before Mastra middleware
|
|
84
|
+
app.get('/early-health', c => c.json({ status: 'ok' }))
|
|
85
|
+
|
|
86
|
+
await server.init()
|
|
87
|
+
|
|
88
|
+
// After init - has access to Mastra context
|
|
89
|
+
app.get('/custom', c => {
|
|
90
|
+
const mastraInstance = c.get('mastra')
|
|
91
|
+
return c.json({ agents: Object.keys(mastraInstance.listAgents()) })
|
|
92
|
+
})
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
> **Tip:** Routes added before `init()` run without Mastra context. Add routes after `init()` to access the Mastra instance and request context.
|
|
96
|
+
|
|
97
|
+
## Accessing context
|
|
98
|
+
|
|
99
|
+
In Hono middleware and route handlers, access Mastra context via `c.get()`:
|
|
100
|
+
|
|
101
|
+
```typescript
|
|
102
|
+
app.get('/custom', async c => {
|
|
103
|
+
const mastra = c.get('mastra')
|
|
104
|
+
const requestContext = c.get('requestContext')
|
|
105
|
+
const abortSignal = c.get('abortSignal')
|
|
106
|
+
|
|
107
|
+
const agent = mastra.getAgent('myAgent')
|
|
108
|
+
return c.json({ agent: agent.name })
|
|
109
|
+
})
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Available context keys:
|
|
113
|
+
|
|
114
|
+
| Key | Description |
|
|
115
|
+
| ----------------------- | --------------------------------------- |
|
|
116
|
+
| `mastra` | Mastra instance |
|
|
117
|
+
| `requestContext` | Request context map |
|
|
118
|
+
| `abortSignal` | Request cancellation signal |
|
|
119
|
+
| `tools` | Available tools |
|
|
120
|
+
| `taskStore` | Task store for A2A operations |
|
|
121
|
+
| `customRouteAuthConfig` | Per-route auth overrides |
|
|
122
|
+
| `user` | Authenticated user (if auth configured) |
|
|
123
|
+
|
|
124
|
+
## Adding middleware
|
|
125
|
+
|
|
126
|
+
Add Hono middleware before or after `init()`:
|
|
127
|
+
|
|
128
|
+
```typescript
|
|
129
|
+
import { Hono } from 'hono'
|
|
130
|
+
import { HonoBindings, HonoVariables, MastraServer } from '@mastra/hono'
|
|
131
|
+
|
|
132
|
+
const app = new Hono<{ Bindings: HonoBindings; Variables: HonoVariables }>()
|
|
133
|
+
|
|
134
|
+
// Middleware before init
|
|
135
|
+
app.use('*', async (c, next) => {
|
|
136
|
+
console.log(`${c.req.method} ${c.req.url}`)
|
|
137
|
+
await next()
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
const server = new MastraServer({ app, mastra })
|
|
141
|
+
await server.init()
|
|
142
|
+
|
|
143
|
+
// Middleware after init has access to Mastra context
|
|
144
|
+
app.use('*', async (c, next) => {
|
|
145
|
+
const mastra = c.get('mastra')
|
|
146
|
+
await next()
|
|
147
|
+
})
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
## Manual initialization
|
|
151
|
+
|
|
152
|
+
For custom middleware ordering, call each method separately instead of `init()`. See [manual initialization](https://mastra.ai/docs/server/server-adapters) for details.
|
|
153
|
+
|
|
154
|
+
## Examples
|
|
155
|
+
|
|
156
|
+
- [Hono Adapter](https://github.com/mastra-ai/mastra/tree/main/examples/server-hono-adapter) - Basic Hono server setup
|
|
157
|
+
|
|
158
|
+
## Related
|
|
159
|
+
|
|
160
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Shared adapter concepts
|
|
161
|
+
- [MastraServer Reference](https://mastra.ai/reference/server/mastra-server) - Full API reference
|
|
162
|
+
- [createRoute() Reference](https://mastra.ai/reference/server/create-route) - Creating type-safe custom routes
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# Koa Adapter
|
|
2
|
+
|
|
3
|
+
The `@mastra/koa` package provides a server adapter for running Mastra with [Koa](https://koajs.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 Koa adapter and Koa framework:
|
|
10
|
+
|
|
11
|
+
**npm**:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @mastra/koa@latest koa koa-bodyparser
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**pnpm**:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add @mastra/koa@latest koa koa-bodyparser
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
**Yarn**:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
yarn add @mastra/koa@latest koa koa-bodyparser
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Bun**:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bun add @mastra/koa@latest koa koa-bodyparser
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Usage example
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
import Koa from 'koa'
|
|
39
|
+
import bodyParser from 'koa-bodyparser'
|
|
40
|
+
import { MastraServer } from '@mastra/koa'
|
|
41
|
+
import { mastra } from './mastra'
|
|
42
|
+
|
|
43
|
+
const app = new Koa()
|
|
44
|
+
app.use(bodyParser())
|
|
45
|
+
|
|
46
|
+
const server = new MastraServer({ app, mastra })
|
|
47
|
+
|
|
48
|
+
await server.init()
|
|
49
|
+
|
|
50
|
+
app.listen(3000, () => {
|
|
51
|
+
console.log('Server running on http://localhost:3000')
|
|
52
|
+
})
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Constructor parameters
|
|
56
|
+
|
|
57
|
+
**app:** (`Koa`): Koa 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?:** (`BodyLimitOptions`): Request body size limits
|
|
66
|
+
|
|
67
|
+
**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 }`)
|
|
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?:** (`ToolsInput`): 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
|
+
## Error handling
|
|
78
|
+
|
|
79
|
+
The Koa adapter propagates errors from route handlers up through Koa's middleware chain, following Koa's standard error handling pattern. This means you can use regular Koa error-handling middleware:
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
const app = new Koa()
|
|
83
|
+
app.use(bodyParser())
|
|
84
|
+
|
|
85
|
+
// Your error middleware catches errors from Mastra route handlers
|
|
86
|
+
app.use(async (ctx, next) => {
|
|
87
|
+
try {
|
|
88
|
+
await next()
|
|
89
|
+
} catch (err) {
|
|
90
|
+
ctx.status = err.status || 500
|
|
91
|
+
ctx.body = { error: err.message }
|
|
92
|
+
// Log, report to Sentry, etc.
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
const server = new MastraServer({ app, mastra })
|
|
97
|
+
await server.init()
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
The [`server.onError`](https://mastra.ai/reference/configuration) hook is also supported. When configured, it is called before the error propagates to middleware, and its response is used directly:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
const mastra = new Mastra({
|
|
104
|
+
server: {
|
|
105
|
+
onError: (err, c) => {
|
|
106
|
+
console.error('Unhandled error:', err)
|
|
107
|
+
return c.json({ error: err.message }, 500)
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
})
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
When `init()` is used, a global error-handling middleware is also registered as a safety net. Errors that reach this middleware are emitted via `ctx.app.emit('error', err, ctx)` following the standard Koa convention.
|
|
114
|
+
|
|
115
|
+
## Manual initialization
|
|
116
|
+
|
|
117
|
+
For custom middleware ordering, call each method separately instead of `init()`. See [manual initialization](https://mastra.ai/docs/server/server-adapters) for details.
|
|
118
|
+
|
|
119
|
+
## Examples
|
|
120
|
+
|
|
121
|
+
- [Koa Adapter](https://github.com/mastra-ai/mastra/tree/main/examples/server-koa-adapter) - Basic Koa server setup
|
|
122
|
+
|
|
123
|
+
## Related
|
|
124
|
+
|
|
125
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Shared adapter concepts
|
|
126
|
+
- [MastraServer Reference](https://mastra.ai/reference/server/mastra-server) - Full API reference
|
|
127
|
+
- [createRoute() Reference](https://mastra.ai/reference/server/create-route) - Creating type-safe custom routes
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# MastraServer
|
|
2
|
+
|
|
3
|
+
The `MastraServer` abstract class is the base for all server adapters. Extend this class to create adapters for frameworks other than Hono or Express.
|
|
4
|
+
|
|
5
|
+
## Import
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { MastraServer } from '@mastra/server/server-adapter'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Type parameters
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
MastraServer<TApp, TRequest, TResponse>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
| Parameter | Description |
|
|
18
|
+
| ----------- | ------------------------------------------------ |
|
|
19
|
+
| `TApp` | Framework app type (e.g., `Hono`, `Application`) |
|
|
20
|
+
| `TRequest` | Framework request type |
|
|
21
|
+
| `TResponse` | Framework response/context type |
|
|
22
|
+
|
|
23
|
+
## Constructor
|
|
24
|
+
|
|
25
|
+
```typescript
|
|
26
|
+
constructor(options: MastraServerOptions<TApp>)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Options
|
|
30
|
+
|
|
31
|
+
**app:** (`TApp`): Framework app instance
|
|
32
|
+
|
|
33
|
+
**mastra:** (`Mastra`): Mastra instance
|
|
34
|
+
|
|
35
|
+
**prefix?:** (`string`): Route path prefix (e.g., \`/api/v2\`) (Default: `''`)
|
|
36
|
+
|
|
37
|
+
**openapiPath?:** (`string`): Path to serve OpenAPI spec (Default: `''`)
|
|
38
|
+
|
|
39
|
+
**bodyLimitOptions?:** (`BodyLimitOptions`): Request body size limits
|
|
40
|
+
|
|
41
|
+
**streamOptions?:** (`StreamOptions`): Stream redaction config (Default: `{ redact: true }`)
|
|
42
|
+
|
|
43
|
+
**customRouteAuthConfig?:** (`Map<string, boolean>`): Per-route auth overrides
|
|
44
|
+
|
|
45
|
+
**tools?:** (`Record<string, Tool>`): Available tools for the server
|
|
46
|
+
|
|
47
|
+
**taskStore?:** (`InMemoryTaskStore`): Task store for A2A (Agent-to-Agent) operations
|
|
48
|
+
|
|
49
|
+
**mcpOptions?:** (`MCPOptions`): MCP transport options for serverless environments
|
|
50
|
+
|
|
51
|
+
## Abstract methods
|
|
52
|
+
|
|
53
|
+
These methods must be implemented by adapters:
|
|
54
|
+
|
|
55
|
+
### registerContextMiddleware()
|
|
56
|
+
|
|
57
|
+
Attach Mastra context to every request.
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
abstract registerContextMiddleware(): void
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**Context to attach:**
|
|
64
|
+
|
|
65
|
+
- `mastra` - Mastra instance
|
|
66
|
+
- `requestContext` - Request-scoped context
|
|
67
|
+
- `tools` - Available tools
|
|
68
|
+
- `abortSignal` - Request cancellation signal
|
|
69
|
+
|
|
70
|
+
### registerAuthMiddleware()
|
|
71
|
+
|
|
72
|
+
Register authentication and authorization middleware.
|
|
73
|
+
|
|
74
|
+
```typescript
|
|
75
|
+
abstract registerAuthMiddleware(): void
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### registerRoute()
|
|
79
|
+
|
|
80
|
+
Register a single route with the framework.
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
abstract registerRoute(
|
|
84
|
+
app: TApp,
|
|
85
|
+
route: ServerRoute,
|
|
86
|
+
options: { prefix?: string }
|
|
87
|
+
): Promise<void>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### getParams()
|
|
91
|
+
|
|
92
|
+
Extract parameters from the request.
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
abstract getParams(
|
|
96
|
+
route: ServerRoute,
|
|
97
|
+
request: TRequest
|
|
98
|
+
): Promise<{
|
|
99
|
+
urlParams: Record<string, string>;
|
|
100
|
+
queryParams: Record<string, string>;
|
|
101
|
+
body: unknown;
|
|
102
|
+
}>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### sendResponse()
|
|
106
|
+
|
|
107
|
+
Send response based on route type.
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
abstract sendResponse(
|
|
111
|
+
route: ServerRoute,
|
|
112
|
+
response: TResponse,
|
|
113
|
+
result: unknown
|
|
114
|
+
): Promise<unknown>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### stream()
|
|
118
|
+
|
|
119
|
+
Handle streaming responses.
|
|
120
|
+
|
|
121
|
+
```typescript
|
|
122
|
+
abstract stream(
|
|
123
|
+
route: ServerRoute,
|
|
124
|
+
response: TResponse,
|
|
125
|
+
result: unknown
|
|
126
|
+
): Promise<unknown>
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Instance methods
|
|
130
|
+
|
|
131
|
+
### init()
|
|
132
|
+
|
|
133
|
+
Initialize the server by registering all middleware and routes.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
async init(): Promise<void>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Calls in order:
|
|
140
|
+
|
|
141
|
+
1. `registerContextMiddleware()`
|
|
142
|
+
2. `registerAuthMiddleware()`
|
|
143
|
+
3. `registerRoutes()`
|
|
144
|
+
|
|
145
|
+
### registerRoutes()
|
|
146
|
+
|
|
147
|
+
Register all Mastra routes.
|
|
148
|
+
|
|
149
|
+
```typescript
|
|
150
|
+
async registerRoutes(): Promise<void>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### getApp()
|
|
154
|
+
|
|
155
|
+
Get the framework app instance.
|
|
156
|
+
|
|
157
|
+
```typescript
|
|
158
|
+
getApp<T = TApp>(): T
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### parsePathParams()
|
|
162
|
+
|
|
163
|
+
Validate path parameters with the route's Zod schema.
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
async parsePathParams(
|
|
167
|
+
route: ServerRoute,
|
|
168
|
+
params: Record<string, string>
|
|
169
|
+
): Promise<Record<string, unknown>>
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### parseQueryParams()
|
|
173
|
+
|
|
174
|
+
Validate query parameters with the route's Zod schema.
|
|
175
|
+
|
|
176
|
+
```typescript
|
|
177
|
+
async parseQueryParams(
|
|
178
|
+
route: ServerRoute,
|
|
179
|
+
params: Record<string, string>
|
|
180
|
+
): Promise<Record<string, unknown>>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### parseBody()
|
|
184
|
+
|
|
185
|
+
Validate request body with the route's Zod schema.
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
async parseBody(
|
|
189
|
+
route: ServerRoute,
|
|
190
|
+
body: unknown
|
|
191
|
+
): Promise<unknown>
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### registerOpenAPIRoute()
|
|
195
|
+
|
|
196
|
+
Register an endpoint that serves the OpenAPI specification.
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
async registerOpenAPIRoute(
|
|
200
|
+
app: TApp,
|
|
201
|
+
config: OpenAPIConfig,
|
|
202
|
+
options: { prefix?: string }
|
|
203
|
+
): Promise<void>
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Protected methods
|
|
207
|
+
|
|
208
|
+
### mergeRequestContext()
|
|
209
|
+
|
|
210
|
+
Merge request context from multiple sources (query params and body).
|
|
211
|
+
|
|
212
|
+
```typescript
|
|
213
|
+
protected mergeRequestContext(options: {
|
|
214
|
+
paramsRequestContext?: Record<string, any>;
|
|
215
|
+
bodyRequestContext?: Record<string, any>;
|
|
216
|
+
}): RequestContext
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## Types
|
|
220
|
+
|
|
221
|
+
### BodyLimitOptions
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
interface BodyLimitOptions {
|
|
225
|
+
maxSize: number
|
|
226
|
+
onError: (error: unknown) => unknown
|
|
227
|
+
}
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### StreamOptions
|
|
231
|
+
|
|
232
|
+
```typescript
|
|
233
|
+
interface StreamOptions {
|
|
234
|
+
redact?: boolean
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### MCPOptions
|
|
239
|
+
|
|
240
|
+
```typescript
|
|
241
|
+
interface MCPOptions {
|
|
242
|
+
serverless?: boolean
|
|
243
|
+
sessionIdGenerator?: () => string
|
|
244
|
+
}
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
| Property | Description |
|
|
248
|
+
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
249
|
+
| `serverless` | When `true`, runs MCP in stateless mode without session management. Use for serverless environments like Cloudflare Workers or Vercel Edge. |
|
|
250
|
+
| `sessionIdGenerator` | Custom function to generate session IDs. |
|
|
251
|
+
|
|
252
|
+
## Example
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
import { MastraServer, ServerRoute } from '@mastra/server/server-adapter'
|
|
256
|
+
import type { Mastra } from '@mastra/core'
|
|
257
|
+
|
|
258
|
+
export class MyServer extends MastraServer<MyApp, MyRequest, MyResponse> {
|
|
259
|
+
registerContextMiddleware(): void {
|
|
260
|
+
this.app.use('*', (req, res, next) => {
|
|
261
|
+
res.locals.mastra = this.mastra
|
|
262
|
+
next()
|
|
263
|
+
})
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
registerAuthMiddleware(): void {
|
|
267
|
+
const auth = this.mastra.getServer()?.auth
|
|
268
|
+
if (!auth) return
|
|
269
|
+
// Implement auth
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
async registerRoute(app, route, { prefix }) {
|
|
273
|
+
// Implement route registration
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
async getParams(route, request) {
|
|
277
|
+
return {
|
|
278
|
+
urlParams: request.params,
|
|
279
|
+
queryParams: request.query,
|
|
280
|
+
body: request.body,
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
async sendResponse(route, response, result) {
|
|
285
|
+
return response.json(result)
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
async stream(route, response, result) {
|
|
289
|
+
// Implement streaming
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
## Related
|
|
295
|
+
|
|
296
|
+
- [Server Adapters](https://mastra.ai/docs/server/server-adapters) - Using adapters
|
|
297
|
+
- [Custom Adapters](https://mastra.ai/docs/server/custom-adapters) - Creating custom adapters
|
|
298
|
+
- [createRoute()](https://mastra.ai/reference/server/create-route) - Creating custom routes
|