@mastra/mcp-docs-server 0.13.39 → 1.0.0-beta.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/organized/changelogs/%40internal%2Fai-sdk-v4.md +1 -0
- package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +0 -10
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +0 -10
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +36 -36
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +0 -10
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +40 -40
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +4 -14
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +18 -18
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +223 -223
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +190 -190
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +7 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +214 -214
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +74 -74
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +67 -67
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +67 -67
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +209 -209
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +191 -191
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +34 -34
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +5 -13
- package/.docs/organized/changelogs/%40mastra%2Flance.md +182 -182
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +58 -58
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +65 -65
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +228 -228
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +199 -199
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +19 -19
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +197 -197
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +217 -217
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Frag.md +61 -61
- package/.docs/organized/changelogs/%40mastra%2Freact.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +9 -17
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -30
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +206 -206
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +190 -190
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +18 -18
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +21 -21
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +56 -56
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +56 -56
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +20 -20
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +20 -20
- package/.docs/organized/changelogs/create-mastra.md +33 -33
- package/.docs/organized/changelogs/mastra.md +86 -86
- package/.docs/organized/code-examples/a2a.md +4 -2
- package/.docs/organized/code-examples/agui.md +12 -9
- package/.docs/organized/code-examples/ai-sdk-useChat.md +12 -18
- package/.docs/organized/code-examples/ai-sdk-v5.md +4 -2
- package/.docs/organized/code-examples/bird-checker-with-express.md +5 -4
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +4 -3
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +4 -3
- package/.docs/organized/code-examples/client-side-tools.md +1 -0
- package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
- package/.docs/organized/code-examples/experimental-auth-weather-agent.md +8 -177
- package/.docs/organized/code-examples/fireworks-r1.md +2 -2
- package/.docs/organized/code-examples/heads-up-game.md +10 -7
- package/.docs/organized/code-examples/mcp-configuration.md +5 -3
- package/.docs/organized/code-examples/mcp-registry-registry.md +3 -2
- package/.docs/organized/code-examples/memory-per-resource-example.md +4 -2
- package/.docs/organized/code-examples/memory-todo-agent.md +1 -0
- package/.docs/organized/code-examples/memory-with-context.md +2 -1
- package/.docs/organized/code-examples/memory-with-libsql.md +4 -2
- package/.docs/organized/code-examples/memory-with-mongodb.md +4 -2
- package/.docs/organized/code-examples/memory-with-pg.md +4 -2
- package/.docs/organized/code-examples/memory-with-processors.md +13 -8
- package/.docs/organized/code-examples/memory-with-upstash.md +5 -3
- package/.docs/organized/code-examples/openapi-spec-writer.md +32 -41
- package/.docs/organized/code-examples/quick-start.md +5 -32
- package/.docs/organized/code-examples/stock-price-tool.md +6 -5
- package/.docs/organized/code-examples/weather-agent.md +21 -16
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +3 -2
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +9 -12
- package/.docs/organized/code-examples/workflow-with-memory.md +16 -15
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +2 -2
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +3 -2
- package/.docs/raw/agents/adding-voice.mdx +27 -22
- package/.docs/raw/agents/agent-memory.mdx +23 -15
- package/.docs/raw/agents/guardrails.mdx +33 -12
- package/.docs/raw/agents/networks.mdx +8 -4
- package/.docs/raw/agents/overview.mdx +21 -15
- package/.docs/raw/agents/using-tools.mdx +11 -8
- package/.docs/raw/auth/auth0.mdx +8 -8
- package/.docs/raw/auth/clerk.mdx +6 -6
- package/.docs/raw/auth/firebase.mdx +8 -8
- package/.docs/raw/auth/index.mdx +6 -6
- package/.docs/raw/auth/jwt.mdx +6 -6
- package/.docs/raw/auth/supabase.mdx +7 -7
- package/.docs/raw/auth/workos.mdx +8 -8
- package/.docs/raw/community/contributing-templates.mdx +3 -3
- package/.docs/raw/community/discord.mdx +1 -1
- package/.docs/raw/course/01-first-agent/08-exporting-your-agent.md +2 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +2 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -0
- package/.docs/raw/course/03-agent-memory/10-storage-configuration.md +2 -3
- package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +2 -0
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +2 -0
- package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -0
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -0
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +1 -0
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -0
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +1 -0
- package/.docs/raw/course/04-workflows/08-running-workflows-programmatically.md +2 -2
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +5 -5
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +7 -5
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +4 -4
- package/.docs/raw/deployment/cloud-providers/index.mdx +11 -8
- package/.docs/raw/deployment/monorepo.mdx +2 -2
- package/.docs/raw/deployment/overview.mdx +2 -2
- package/.docs/raw/deployment/server-deployment.mdx +2 -10
- package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/index.mdx +10 -7
- package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +4 -4
- package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +4 -4
- package/.docs/raw/deployment/web-framework.mdx +8 -8
- package/.docs/raw/{scorers → evals}/custom-scorers.mdx +6 -6
- package/.docs/raw/evals/off-the-shelf-scorers.mdx +50 -0
- package/.docs/raw/{scorers → evals}/overview.mdx +8 -8
- package/.docs/raw/evals/running-in-ci.mdx +113 -0
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +22 -21
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +8 -8
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -0
- package/.docs/raw/frameworks/servers/express.mdx +10 -9
- package/.docs/raw/frameworks/web-frameworks/astro.mdx +6 -6
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +3 -3
- package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +4 -4
- package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +2 -2
- package/.docs/raw/getting-started/installation.mdx +13 -12
- package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
- package/.docs/raw/getting-started/project-structure.mdx +4 -4
- package/.docs/raw/getting-started/studio.mdx +8 -8
- package/.docs/raw/getting-started/templates.mdx +1 -1
- package/.docs/raw/guides/guide/ai-recruiter.mdx +264 -0
- package/.docs/raw/guides/guide/chef-michel.mdx +271 -0
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +450 -0
- package/.docs/raw/guides/guide/research-assistant.mdx +389 -0
- package/.docs/raw/guides/guide/stock-agent.mdx +185 -0
- package/.docs/raw/guides/guide/web-search.mdx +291 -0
- package/.docs/raw/guides/index.mdx +43 -0
- package/.docs/raw/guides/migrations/agentnetwork.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/_template.mdx +50 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +265 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +48 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +153 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +230 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +171 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +114 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +241 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +83 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +62 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +270 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +115 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +280 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +23 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +39 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +178 -0
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +367 -0
- package/.docs/raw/index.mdx +9 -9
- package/.docs/raw/{observability/logging.mdx → logging.mdx} +4 -4
- package/.docs/raw/mastra-cloud/dashboard.mdx +2 -2
- package/.docs/raw/mastra-cloud/observability.mdx +6 -6
- package/.docs/raw/mastra-cloud/overview.mdx +2 -2
- package/.docs/raw/mastra-cloud/setting-up.mdx +4 -4
- package/.docs/raw/memory/conversation-history.mdx +1 -0
- package/.docs/raw/memory/memory-processors.mdx +4 -3
- package/.docs/raw/memory/overview.mdx +9 -5
- package/.docs/raw/memory/semantic-recall.mdx +12 -7
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +10 -5
- package/.docs/raw/memory/storage/memory-with-pg.mdx +9 -4
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +9 -4
- package/.docs/raw/memory/threads-and-resources.mdx +11 -13
- package/.docs/raw/memory/working-memory.mdx +30 -14
- package/.docs/raw/observability/overview.mdx +13 -30
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/arize.mdx +10 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/cloud.mdx +11 -17
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/default.mdx +16 -20
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +7 -16
- package/.docs/raw/observability/{ai-tracing → tracing}/exporters/otel.mdx +9 -18
- package/.docs/raw/observability/{ai-tracing → tracing}/overview.mdx +107 -142
- package/.docs/raw/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +14 -13
- package/.docs/raw/rag/chunking-and-embedding.mdx +5 -5
- package/.docs/raw/rag/overview.mdx +3 -13
- package/.docs/raw/rag/retrieval.mdx +24 -12
- package/.docs/raw/rag/vector-databases.mdx +7 -1
- package/.docs/raw/reference/agents/agent.mdx +33 -28
- package/.docs/raw/reference/agents/generate.mdx +10 -10
- package/.docs/raw/reference/agents/generateLegacy.mdx +8 -8
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +21 -15
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +69 -0
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +22 -16
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +8 -8
- package/.docs/raw/reference/agents/getLLM.mdx +9 -9
- package/.docs/raw/reference/agents/getMemory.mdx +9 -9
- package/.docs/raw/reference/agents/getModel.mdx +10 -10
- package/.docs/raw/reference/agents/getVoice.mdx +8 -8
- package/.docs/raw/reference/agents/listAgents.mdx +9 -9
- package/.docs/raw/reference/agents/listScorers.mdx +7 -7
- package/.docs/raw/reference/agents/listTools.mdx +7 -7
- package/.docs/raw/reference/agents/listWorkflows.mdx +7 -7
- package/.docs/raw/reference/agents/network.mdx +11 -10
- package/.docs/raw/reference/auth/auth0.mdx +4 -4
- package/.docs/raw/reference/auth/clerk.mdx +4 -4
- package/.docs/raw/reference/auth/firebase.mdx +6 -6
- package/.docs/raw/reference/auth/jwt.mdx +4 -4
- package/.docs/raw/reference/auth/supabase.mdx +4 -4
- package/.docs/raw/reference/auth/workos.mdx +4 -4
- package/.docs/raw/reference/cli/mastra.mdx +7 -7
- package/.docs/raw/reference/client-js/agents.mdx +6 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +7 -7
- package/.docs/raw/reference/client-js/memory.mdx +24 -16
- package/.docs/raw/reference/client-js/observability.mdx +11 -11
- package/.docs/raw/reference/client-js/workflows.mdx +6 -34
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +2 -2
- package/.docs/raw/reference/core/getLogger.mdx +2 -2
- package/.docs/raw/reference/core/getMCPServer.mdx +31 -15
- package/.docs/raw/reference/core/getMCPServerById.mdx +81 -0
- package/.docs/raw/reference/core/getScorer.mdx +3 -3
- package/.docs/raw/reference/core/getScorerById.mdx +79 -0
- package/.docs/raw/reference/core/getServer.mdx +2 -2
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getTelemetry.mdx +2 -2
- package/.docs/raw/reference/core/getVector.mdx +2 -2
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +2 -2
- package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
- package/.docs/raw/reference/core/listMCPServers.mdx +65 -0
- package/.docs/raw/reference/core/listScorers.mdx +3 -3
- package/.docs/raw/reference/core/listVectors.mdx +36 -0
- package/.docs/raw/reference/core/listWorkflows.mdx +6 -6
- package/.docs/raw/reference/core/mastra-class.mdx +3 -2
- package/.docs/raw/reference/core/setLogger.mdx +2 -2
- package/.docs/raw/reference/core/setStorage.mdx +3 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
- package/.docs/raw/reference/deployer/cloudflare.mdx +2 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -6
- package/.docs/raw/reference/deployer/netlify.mdx +2 -2
- package/.docs/raw/reference/deployer/vercel.mdx +3 -3
- package/.docs/raw/reference/evals/answer-relevancy.mdx +164 -126
- package/.docs/raw/reference/{scorers → evals}/answer-similarity.mdx +27 -27
- package/.docs/raw/reference/evals/bias.mdx +149 -115
- package/.docs/raw/reference/evals/completeness.mdx +148 -117
- package/.docs/raw/reference/evals/content-similarity.mdx +126 -113
- package/.docs/raw/reference/evals/context-precision.mdx +290 -133
- package/.docs/raw/reference/{scorers → evals}/context-relevance.mdx +6 -6
- package/.docs/raw/reference/{scorers → evals}/create-scorer.mdx +11 -11
- package/.docs/raw/reference/evals/faithfulness.mdx +163 -121
- package/.docs/raw/reference/evals/hallucination.mdx +159 -132
- package/.docs/raw/reference/evals/keyword-coverage.mdx +169 -125
- package/.docs/raw/reference/{scorers → evals}/mastra-scorer.mdx +5 -5
- package/.docs/raw/reference/{scorers → evals}/noise-sensitivity.mdx +9 -9
- package/.docs/raw/reference/evals/prompt-alignment.mdx +604 -182
- package/.docs/raw/reference/{scorers/run-experiment.mdx → evals/run-evals.mdx} +17 -18
- package/.docs/raw/reference/evals/textual-difference.mdx +149 -117
- package/.docs/raw/reference/evals/tone-consistency.mdx +149 -125
- package/.docs/raw/reference/{scorers → evals}/tool-call-accuracy.mdx +8 -6
- package/.docs/raw/reference/evals/toxicity.mdx +152 -96
- package/.docs/raw/reference/{observability/logging → logging}/pino-logger.mdx +2 -2
- package/.docs/raw/reference/memory/createThread.mdx +5 -5
- package/.docs/raw/reference/memory/deleteMessages.mdx +7 -7
- package/.docs/raw/reference/memory/getThreadById.mdx +4 -4
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +110 -0
- package/.docs/raw/reference/memory/memory-class.mdx +13 -9
- package/.docs/raw/reference/memory/query.mdx +58 -57
- package/.docs/raw/reference/memory/recall.mdx +185 -0
- package/.docs/raw/reference/observability/tracing/configuration.mdx +245 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/arize.mdx +13 -13
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +11 -8
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/cloud-exporter.mdx +21 -19
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/console-exporter.mdx +49 -17
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/default-exporter.mdx +42 -41
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +10 -7
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/otel.mdx +5 -5
- package/.docs/raw/reference/observability/tracing/instances.mdx +168 -0
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/interfaces.mdx +115 -89
- package/.docs/raw/reference/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/reference/observability/{ai-tracing/span.mdx → tracing/spans.mdx} +59 -41
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
- package/.docs/raw/reference/processors/language-detector.mdx +1 -1
- package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
- package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
- package/.docs/raw/reference/rag/chunk.mdx +1 -8
- package/.docs/raw/reference/rag/database-config.mdx +7 -7
- package/.docs/raw/reference/rag/metadata-filters.mdx +14 -11
- package/.docs/raw/reference/storage/libsql.mdx +2 -0
- package/.docs/raw/reference/storage/mssql.mdx +5 -0
- package/.docs/raw/reference/storage/postgresql.mdx +6 -0
- package/.docs/raw/reference/storage/upstash.mdx +1 -0
- package/.docs/raw/reference/streaming/agents/stream.mdx +12 -12
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +8 -8
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +3 -3
- package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +6 -6
- package/.docs/raw/reference/streaming/workflows/stream.mdx +10 -10
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +11 -11
- package/.docs/raw/reference/templates/overview.mdx +2 -2
- package/.docs/raw/reference/tools/create-tool.mdx +52 -35
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +15 -15
- package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
- package/.docs/raw/reference/tools/mcp-server.mdx +119 -35
- package/.docs/raw/reference/tools/vector-query-tool.mdx +27 -26
- package/.docs/raw/reference/vectors/libsql.mdx +1 -0
- package/.docs/raw/reference/vectors/pg.mdx +3 -0
- package/.docs/raw/reference/vectors/upstash.mdx +1 -0
- package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addTools.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -4
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +14 -14
- package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -17
- package/.docs/raw/reference/workflows/run.mdx +1 -8
- package/.docs/raw/reference/workflows/step.mdx +5 -5
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -13
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +5 -0
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow.mdx +1 -1
- package/.docs/raw/server-db/custom-api-routes.mdx +2 -2
- package/.docs/raw/server-db/mastra-client.mdx +19 -18
- package/.docs/raw/server-db/middleware.mdx +7 -7
- package/.docs/raw/server-db/production-server.mdx +4 -4
- package/.docs/raw/server-db/{runtime-context.mdx → request-context.mdx} +46 -45
- package/.docs/raw/server-db/storage.mdx +29 -21
- package/.docs/raw/streaming/events.mdx +3 -3
- package/.docs/raw/streaming/overview.mdx +5 -5
- package/.docs/raw/streaming/tool-streaming.mdx +18 -17
- package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
- package/.docs/raw/tools-mcp/advanced-usage.mdx +5 -4
- package/.docs/raw/tools-mcp/mcp-overview.mdx +32 -19
- package/.docs/raw/tools-mcp/overview.mdx +11 -11
- package/.docs/raw/voice/overview.mdx +63 -43
- package/.docs/raw/voice/speech-to-speech.mdx +5 -3
- package/.docs/raw/voice/speech-to-text.mdx +9 -8
- package/.docs/raw/voice/text-to-speech.mdx +12 -11
- package/.docs/raw/workflows/agents-and-tools.mdx +9 -5
- package/.docs/raw/workflows/control-flow.mdx +3 -3
- package/.docs/raw/workflows/error-handling.mdx +2 -21
- package/.docs/raw/workflows/human-in-the-loop.mdx +7 -4
- package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
- package/.docs/raw/workflows/input-data-mapping.mdx +107 -0
- package/.docs/raw/workflows/overview.mdx +17 -16
- package/.docs/raw/workflows/snapshots.mdx +13 -11
- package/.docs/raw/workflows/suspend-and-resume.mdx +23 -15
- package/CHANGELOG.md +52 -57
- package/README.md +11 -2
- package/dist/{chunk-TUAHUTTB.js → chunk-5NJC7NRO.js} +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
- package/dist/prepare-docs/prepare.js +1 -1
- package/dist/prompts/migration.d.ts +6 -0
- package/dist/prompts/migration.d.ts.map +1 -0
- package/dist/stdio.js +402 -30
- package/dist/tools/migration.d.ts +40 -0
- package/dist/tools/migration.d.ts.map +1 -0
- package/package.json +8 -12
- package/.docs/organized/changelogs/%40mastra%2Fcloud.md +0 -302
- package/.docs/raw/observability/nextjs-tracing.mdx +0 -109
- package/.docs/raw/observability/otel-tracing.mdx +0 -189
- package/.docs/raw/reference/agents/getScorers.mdx +0 -69
- package/.docs/raw/reference/agents/getTools.mdx +0 -69
- package/.docs/raw/reference/agents/getWorkflows.mdx +0 -69
- package/.docs/raw/reference/client-js/workflows-legacy.mdx +0 -143
- package/.docs/raw/reference/core/getAgents.mdx +0 -35
- package/.docs/raw/reference/core/getLogs.mdx +0 -96
- package/.docs/raw/reference/core/getLogsByRunId.mdx +0 -87
- package/.docs/raw/reference/core/getMCPServers.mdx +0 -36
- package/.docs/raw/reference/core/getMemory.mdx +0 -36
- package/.docs/raw/reference/core/getScorerByName.mdx +0 -78
- package/.docs/raw/reference/core/getScorers.mdx +0 -43
- package/.docs/raw/reference/core/getVectors.mdx +0 -36
- package/.docs/raw/reference/core/getWorkflows.mdx +0 -45
- package/.docs/raw/reference/evals/context-position.mdx +0 -197
- package/.docs/raw/reference/evals/context-relevancy.mdx +0 -196
- package/.docs/raw/reference/evals/contextual-recall.mdx +0 -196
- package/.docs/raw/reference/evals/summarization.mdx +0 -212
- package/.docs/raw/reference/legacyWorkflows/after.mdx +0 -89
- package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +0 -79
- package/.docs/raw/reference/legacyWorkflows/commit.mdx +0 -33
- package/.docs/raw/reference/legacyWorkflows/createRun.mdx +0 -76
- package/.docs/raw/reference/legacyWorkflows/else.mdx +0 -68
- package/.docs/raw/reference/legacyWorkflows/events.mdx +0 -305
- package/.docs/raw/reference/legacyWorkflows/execute.mdx +0 -110
- package/.docs/raw/reference/legacyWorkflows/if.mdx +0 -108
- package/.docs/raw/reference/legacyWorkflows/resume.mdx +0 -158
- package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +0 -133
- package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +0 -207
- package/.docs/raw/reference/legacyWorkflows/start.mdx +0 -87
- package/.docs/raw/reference/legacyWorkflows/step-class.mdx +0 -100
- package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +0 -137
- package/.docs/raw/reference/legacyWorkflows/step-function.mdx +0 -93
- package/.docs/raw/reference/legacyWorkflows/step-options.mdx +0 -69
- package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +0 -196
- package/.docs/raw/reference/legacyWorkflows/suspend.mdx +0 -70
- package/.docs/raw/reference/legacyWorkflows/then.mdx +0 -72
- package/.docs/raw/reference/legacyWorkflows/until.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/watch.mdx +0 -124
- package/.docs/raw/reference/legacyWorkflows/while.mdx +0 -168
- package/.docs/raw/reference/legacyWorkflows/workflow.mdx +0 -234
- package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +0 -79
- package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +0 -110
- package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +0 -185
- package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +0 -238
- package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +0 -117
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +0 -81
- package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +0 -121
- package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +0 -20
- package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +0 -73
- package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +0 -41
- package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +0 -84
- package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +0 -48
- package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +0 -43
- package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +0 -40
- package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +0 -40
- package/.docs/raw/reference/scorers/answer-relevancy.mdx +0 -227
- package/.docs/raw/reference/scorers/bias.mdx +0 -228
- package/.docs/raw/reference/scorers/completeness.mdx +0 -214
- package/.docs/raw/reference/scorers/content-similarity.mdx +0 -197
- package/.docs/raw/reference/scorers/context-precision.mdx +0 -352
- package/.docs/raw/reference/scorers/faithfulness.mdx +0 -241
- package/.docs/raw/reference/scorers/hallucination.mdx +0 -252
- package/.docs/raw/reference/scorers/keyword-coverage.mdx +0 -229
- package/.docs/raw/reference/scorers/prompt-alignment.mdx +0 -668
- package/.docs/raw/reference/scorers/textual-difference.mdx +0 -203
- package/.docs/raw/reference/scorers/tone-consistency.mdx +0 -211
- package/.docs/raw/reference/scorers/toxicity.mdx +0 -228
- package/.docs/raw/reference/workflows/run-methods/watch.mdx +0 -73
- package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +0 -24
- package/.docs/raw/scorers/evals-old-api/overview.mdx +0 -106
- package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +0 -85
- package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +0 -58
- package/.docs/raw/scorers/off-the-shelf-scorers.mdx +0 -50
- package/.docs/raw/workflows-legacy/control-flow.mdx +0 -774
- package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +0 -239
- package/.docs/raw/workflows-legacy/error-handling.mdx +0 -187
- package/.docs/raw/workflows-legacy/nested-workflows.mdx +0 -360
- package/.docs/raw/workflows-legacy/overview.mdx +0 -182
- package/.docs/raw/workflows-legacy/runtime-variables.mdx +0 -156
- package/.docs/raw/workflows-legacy/steps.mdx +0 -115
- package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +0 -406
- package/.docs/raw/workflows-legacy/variables.mdx +0 -318
|
@@ -24,6 +24,7 @@ import { z } from "zod";
|
|
|
24
24
|
import { dataProcessingWorkflow } from "../workflows/dataProcessingWorkflow";
|
|
25
25
|
|
|
26
26
|
const myAgent = new Agent({
|
|
27
|
+
id: "my-example-agent",
|
|
27
28
|
name: "MyExampleAgent",
|
|
28
29
|
description: "A generalist to help with basic questions."
|
|
29
30
|
instructions: "You are a helpful assistant.",
|
|
@@ -34,10 +35,11 @@ const weatherTool = createTool({
|
|
|
34
35
|
id: "getWeather",
|
|
35
36
|
description: "Gets the current weather for a location.",
|
|
36
37
|
inputSchema: z.object({ location: z.string() }),
|
|
37
|
-
execute: async (
|
|
38
|
+
execute: async (inputData) => `Weather in ${inputData.location} is sunny.`,
|
|
38
39
|
});
|
|
39
40
|
|
|
40
41
|
const server = new MCPServer({
|
|
42
|
+
id: "my-custom-server",
|
|
41
43
|
name: "My Custom Server",
|
|
42
44
|
version: "1.0.0",
|
|
43
45
|
tools: { weatherTool },
|
|
@@ -54,6 +56,13 @@ The constructor accepts an `MCPServerConfig` object with the following propertie
|
|
|
54
56
|
|
|
55
57
|
<PropertiesTable
|
|
56
58
|
content={[
|
|
59
|
+
{
|
|
60
|
+
name: "id",
|
|
61
|
+
type: "string",
|
|
62
|
+
isOptional: false,
|
|
63
|
+
description:
|
|
64
|
+
"Unique identifier for the server. This ID is preserved when the server is registered with Mastra and can be used to retrieve the server via getMCPServerById().",
|
|
65
|
+
},
|
|
57
66
|
{
|
|
58
67
|
name: "name",
|
|
59
68
|
type: "string",
|
|
@@ -86,14 +95,7 @@ The constructor accepts an `MCPServerConfig` object with the following propertie
|
|
|
86
95
|
type: "Record<string, Workflow>",
|
|
87
96
|
isOptional: true,
|
|
88
97
|
description:
|
|
89
|
-
"An object where keys are workflow identifiers and values are Mastra Workflow instances. Each workflow is converted into a tool named `run_<workflowKey>`. The workflow's `inputSchema` becomes the tool's input schema. The workflow **must** have a non-empty `description` string property, which is used for the tool's description. If a workflow's description is missing or empty, an error will be thrown. The tool executes the workflow by calling `workflow.
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: "id",
|
|
93
|
-
type: "string",
|
|
94
|
-
isOptional: true,
|
|
95
|
-
description:
|
|
96
|
-
"Optional unique identifier for the server. If not provided, a UUID will be generated. This ID is considered final and cannot be changed by Mastra if provided.",
|
|
98
|
+
"An object where keys are workflow identifiers and values are Mastra Workflow instances. Each workflow is converted into a tool named `run_<workflowKey>`. The workflow's `inputSchema` becomes the tool's input schema. The workflow **must** have a non-empty `description` string property, which is used for the tool's description. If a workflow's description is missing or empty, an error will be thrown. The tool executes the workflow by calling `workflow.createRun()` followed by `run.start({ inputData: <tool_input> })`. If a tool name derived from an agent or workflow (e.g., `ask_myAgent` or `run_myWorkflow`) collides with an explicitly defined tool name or another derived name, the explicitly defined tool takes precedence, and a warning is logged. Agents/workflows leading to subsequent collisions are skipped.",
|
|
97
99
|
},
|
|
98
100
|
{
|
|
99
101
|
name: "description",
|
|
@@ -200,7 +202,10 @@ Here's how you would start the server using stdio:
|
|
|
200
202
|
|
|
201
203
|
```typescript
|
|
202
204
|
const server = new MCPServer({
|
|
203
|
-
|
|
205
|
+
id: "my-server",
|
|
206
|
+
name: "My Server",
|
|
207
|
+
version: "1.0.0",
|
|
208
|
+
tools: { /* ... */ },
|
|
204
209
|
});
|
|
205
210
|
await server.startStdio();
|
|
206
211
|
```
|
|
@@ -387,7 +392,7 @@ const httpServer = http.createServer(async (req, res) => {
|
|
|
387
392
|
req,
|
|
388
393
|
res,
|
|
389
394
|
options: {
|
|
390
|
-
sessionIdGenerator:
|
|
395
|
+
sessionIdGenerator: () => randomUUID(),
|
|
391
396
|
},
|
|
392
397
|
});
|
|
393
398
|
});
|
|
@@ -397,6 +402,75 @@ httpServer.listen(PORT, () => {
|
|
|
397
402
|
});
|
|
398
403
|
```
|
|
399
404
|
|
|
405
|
+
For **serverless environments** (Supabase Edge Functions, Cloudflare Workers, Vercel Edge, etc.), use `serverless: true` to enable stateless operation:
|
|
406
|
+
|
|
407
|
+
```typescript
|
|
408
|
+
// Supabase Edge Function example
|
|
409
|
+
import { serve } from "https://deno.land/std@0.168.0/http/server.ts";
|
|
410
|
+
import { MCPServer } from "@mastra/mcp";
|
|
411
|
+
// Note: You will need to convert req/res format from Deno to Node
|
|
412
|
+
import { toReqRes, toFetchResponse } from "fetch-to-node";
|
|
413
|
+
|
|
414
|
+
const server = new MCPServer({
|
|
415
|
+
id: "my-serverless-mcp",
|
|
416
|
+
name: "My Serverless MCP",
|
|
417
|
+
version: "1.0.0",
|
|
418
|
+
tools: { /* your tools */ },
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
serve(async (req) => {
|
|
422
|
+
const url = new URL(req.url);
|
|
423
|
+
|
|
424
|
+
if (url.pathname === "/mcp") {
|
|
425
|
+
// Convert Deno Request to Node.js-compatible format
|
|
426
|
+
const { req: nodeReq, res: nodeRes } = toReqRes(req);
|
|
427
|
+
|
|
428
|
+
await server.startHTTP({
|
|
429
|
+
url,
|
|
430
|
+
httpPath: "/mcp",
|
|
431
|
+
req: nodeReq,
|
|
432
|
+
res: nodeRes,
|
|
433
|
+
options: {
|
|
434
|
+
serverless: true, // ← Enable stateless mode for serverless
|
|
435
|
+
},
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
return toFetchResponse(nodeRes);
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
return new Response("Not found", { status: 404 });
|
|
442
|
+
});
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
:::info
|
|
446
|
+
|
|
447
|
+
**When to use `serverless: true`**
|
|
448
|
+
|
|
449
|
+
Use `serverless: true` when deploying to environments where each request runs in a fresh, stateless execution context:
|
|
450
|
+
- Supabase Edge Functions
|
|
451
|
+
- Cloudflare Workers
|
|
452
|
+
- Vercel Edge Functions
|
|
453
|
+
- Netlify Edge Functions
|
|
454
|
+
- AWS Lambda
|
|
455
|
+
- Deno Deploy
|
|
456
|
+
|
|
457
|
+
Use the default session-based mode (without `serverless: true`) for:
|
|
458
|
+
- Long-lived Node.js servers
|
|
459
|
+
- Docker containers
|
|
460
|
+
- Traditional hosting (VPS, dedicated servers)
|
|
461
|
+
|
|
462
|
+
The serverless mode disables session management and creates fresh server instances per request, which is necessary for stateless environments where memory doesn't persist between invocations.
|
|
463
|
+
|
|
464
|
+
**Note:** The following MCP features require session state or persistent connections and will **not work** in serverless mode:
|
|
465
|
+
- **Elicitation** - Interactive user input requests during tool execution require session management to route responses back to the correct client
|
|
466
|
+
- **Resource subscriptions** - `resources/subscribe` and `resources/unsubscribe` need persistent connections to maintain subscription state
|
|
467
|
+
- **Resource update notifications** - `resources.notifyUpdated()` requires active subscriptions and persistent connections to notify clients
|
|
468
|
+
- **Prompt list change notifications** - `prompts.notifyListChanged()` requires persistent connections to push updates to clients
|
|
469
|
+
|
|
470
|
+
These features work normally in long-lived server environments (Node.js servers, Docker containers, etc.).
|
|
471
|
+
|
|
472
|
+
:::
|
|
473
|
+
|
|
400
474
|
Here are the details for the values needed by the `startHTTP` method:
|
|
401
475
|
|
|
402
476
|
<PropertiesTable
|
|
@@ -437,6 +511,13 @@ The `StreamableHTTPServerTransportOptions` object allows you to customize the be
|
|
|
437
511
|
|
|
438
512
|
<PropertiesTable
|
|
439
513
|
content={[
|
|
514
|
+
{
|
|
515
|
+
name: "serverless",
|
|
516
|
+
type: "boolean",
|
|
517
|
+
description:
|
|
518
|
+
"If `true`, runs in stateless mode without session management. Each request is handled independently with a fresh server instance. Essential for serverless environments (Cloudflare Workers, Supabase Edge Functions, Vercel Edge, etc.) where sessions cannot persist between invocations. Defaults to `false`.",
|
|
519
|
+
optional: true,
|
|
520
|
+
},
|
|
440
521
|
{
|
|
441
522
|
name: "sessionIdGenerator",
|
|
442
523
|
type: "(() => string) | undefined",
|
|
@@ -668,6 +749,7 @@ const myResourceHandlers: MCPServerResources = {
|
|
|
668
749
|
};
|
|
669
750
|
|
|
670
751
|
const serverWithResources = new MCPServer({
|
|
752
|
+
id: "resourceful-server",
|
|
671
753
|
name: "Resourceful Server",
|
|
672
754
|
version: "1.0.0",
|
|
673
755
|
tools: {
|
|
@@ -800,6 +882,7 @@ const myPromptHandlers: MCPServerPrompts = {
|
|
|
800
882
|
};
|
|
801
883
|
|
|
802
884
|
const serverWithPrompts = new MCPServer({
|
|
885
|
+
id: "promptful-server",
|
|
803
886
|
name: "Promptful Server",
|
|
804
887
|
version: "1.0.0",
|
|
805
888
|
tools: {
|
|
@@ -835,7 +918,7 @@ await serverWithPrompts.prompts.notifyListChanged();
|
|
|
835
918
|
|
|
836
919
|
## Examples
|
|
837
920
|
|
|
838
|
-
For practical examples of setting up and deploying an MCPServer, see the [Deploying an MCPServer Example](/examples/agents/deploying-mcp-server).
|
|
921
|
+
For practical examples of setting up and deploying an MCPServer, see the [Deploying an MCPServer Example](/examples/v1/agents/deploying-mcp-server).
|
|
839
922
|
|
|
840
923
|
The example at the beginning of this page also demonstrates how to instantiate `MCPServer` with both tools and agents.
|
|
841
924
|
|
|
@@ -845,24 +928,24 @@ The example at the beginning of this page also demonstrates how to instantiate `
|
|
|
845
928
|
|
|
846
929
|
Elicitation is a feature in the Model Context Protocol (MCP) that allows servers to request structured information from users. This enables interactive workflows where servers can collect additional data dynamically.
|
|
847
930
|
|
|
848
|
-
The `MCPServer` class automatically includes elicitation capabilities. Tools receive
|
|
931
|
+
The `MCPServer` class automatically includes elicitation capabilities. Tools receive a `context.mcp` object in their `execute` function that includes an `elicitation.sendRequest()` method for requesting user input.
|
|
849
932
|
|
|
850
933
|
### Tool Execution Signature
|
|
851
934
|
|
|
852
|
-
When tools are executed within an MCP server context, they receive
|
|
935
|
+
When tools are executed within an MCP server context, they receive MCP-specific capabilities via the `context.mcp` object:
|
|
853
936
|
|
|
854
937
|
```typescript
|
|
855
|
-
execute: async (
|
|
856
|
-
//
|
|
857
|
-
//
|
|
938
|
+
execute: async (inputData, context) => {
|
|
939
|
+
// input contains the tool's inputData parameters
|
|
940
|
+
// context.mcp contains server capabilities like elicitation and authentication info
|
|
858
941
|
|
|
859
942
|
// Access authentication information (when available)
|
|
860
|
-
if (
|
|
861
|
-
console.log("Authenticated request from:",
|
|
943
|
+
if (context.mcp?.extra?.authInfo) {
|
|
944
|
+
console.log("Authenticated request from:", context.mcp.extra.authInfo.clientId);
|
|
862
945
|
}
|
|
863
946
|
|
|
864
947
|
// Use elicitation capabilities
|
|
865
|
-
const result = await
|
|
948
|
+
const result = await context.mcp.elicitation.sendRequest({
|
|
866
949
|
message: "Please provide information",
|
|
867
950
|
requestedSchema: {
|
|
868
951
|
/* schema */
|
|
@@ -875,9 +958,9 @@ execute: async ({ context }, options) => {
|
|
|
875
958
|
|
|
876
959
|
### How Elicitation Works
|
|
877
960
|
|
|
878
|
-
A common use case is during tool execution. When a tool needs user input, it can use the elicitation functionality provided through the
|
|
961
|
+
A common use case is during tool execution. When a tool needs user input, it can use the elicitation functionality provided through the context parameter:
|
|
879
962
|
|
|
880
|
-
1. The tool calls `
|
|
963
|
+
1. The tool calls `context.mcp.elicitation.sendRequest()` with a message and schema
|
|
881
964
|
2. The request is sent to the connected MCP client
|
|
882
965
|
3. The client presents the request to the user (via UI, command line, etc.)
|
|
883
966
|
4. The user provides input, declines, or cancels the request
|
|
@@ -894,6 +977,7 @@ import { createTool } from "@mastra/core/tools";
|
|
|
894
977
|
import { z } from "zod";
|
|
895
978
|
|
|
896
979
|
const server = new MCPServer({
|
|
980
|
+
id: "interactive-server",
|
|
897
981
|
name: "Interactive Server",
|
|
898
982
|
version: "1.0.0",
|
|
899
983
|
tools: {
|
|
@@ -906,15 +990,15 @@ const server = new MCPServer({
|
|
|
906
990
|
.optional()
|
|
907
991
|
.describe("Reason for collecting contact info"),
|
|
908
992
|
}),
|
|
909
|
-
execute: async (
|
|
910
|
-
const { reason } =
|
|
993
|
+
execute: async (inputData, context) => {
|
|
994
|
+
const { reason } = inputData;
|
|
911
995
|
|
|
912
996
|
// Log session info if available
|
|
913
|
-
console.log("Request from session:",
|
|
997
|
+
console.log("Request from session:", context.mcp?.extra?.sessionId);
|
|
914
998
|
|
|
915
999
|
try {
|
|
916
1000
|
// Request user input via elicitation
|
|
917
|
-
const result = await
|
|
1001
|
+
const result = await context.mcp.elicitation.sendRequest({
|
|
918
1002
|
message: reason
|
|
919
1003
|
? `Please provide your contact information. ${reason}`
|
|
920
1004
|
: "Please provide your contact information",
|
|
@@ -1022,16 +1106,16 @@ The elicitation functionality is available through the `options` parameter in to
|
|
|
1022
1106
|
|
|
1023
1107
|
```typescript
|
|
1024
1108
|
// Within a tool's execute function
|
|
1025
|
-
execute: async (
|
|
1109
|
+
execute: async (inputData, context) => {
|
|
1026
1110
|
// Use elicitation for user input
|
|
1027
|
-
const result = await
|
|
1111
|
+
const result = await context.mcp.elicitation.sendRequest({
|
|
1028
1112
|
message: string, // Message to display to user
|
|
1029
1113
|
requestedSchema: object // JSON schema defining expected response structure
|
|
1030
1114
|
}): Promise<ElicitResult>
|
|
1031
1115
|
|
|
1032
1116
|
// Access authentication info if needed
|
|
1033
|
-
if (
|
|
1034
|
-
// Use
|
|
1117
|
+
if (context.mcp?.extra?.authInfo) {
|
|
1118
|
+
// Use context.mcp.extra.authInfo.token, etc.
|
|
1035
1119
|
}
|
|
1036
1120
|
}
|
|
1037
1121
|
```
|
|
@@ -1049,18 +1133,18 @@ type ElicitResult = {
|
|
|
1049
1133
|
|
|
1050
1134
|
## Authentication Context
|
|
1051
1135
|
|
|
1052
|
-
Tools can access request metadata via `
|
|
1136
|
+
Tools can access request metadata via `context.mcp.extra` when using HTTP-based transports:
|
|
1053
1137
|
|
|
1054
1138
|
```typescript
|
|
1055
|
-
execute: async (
|
|
1056
|
-
if (!
|
|
1139
|
+
execute: async (inputData, context) => {
|
|
1140
|
+
if (!context.mcp?.extra?.authInfo?.token) {
|
|
1057
1141
|
return "Authentication required";
|
|
1058
1142
|
}
|
|
1059
1143
|
|
|
1060
1144
|
// Use the auth token
|
|
1061
1145
|
const response = await fetch("/api/data", {
|
|
1062
|
-
headers: { Authorization: `Bearer ${
|
|
1063
|
-
signal:
|
|
1146
|
+
headers: { Authorization: `Bearer ${context.mcp.extra.authInfo.token}` },
|
|
1147
|
+
signal: context.mcp.extra.signal,
|
|
1064
1148
|
});
|
|
1065
1149
|
|
|
1066
1150
|
return response.json();
|
|
@@ -28,7 +28,7 @@ const queryTool = createVectorQueryTool({
|
|
|
28
28
|
:::note
|
|
29
29
|
|
|
30
30
|
**Parameter Requirements:** Most fields can be set at creation as defaults.
|
|
31
|
-
Some fields can be overridden at runtime via the
|
|
31
|
+
Some fields can be overridden at runtime via the request context or input. If
|
|
32
32
|
a required field is missing from both creation and runtime, an error will be
|
|
33
33
|
thrown. Note that `model`, `id`, and `description` can only be set at creation
|
|
34
34
|
time.
|
|
@@ -76,7 +76,7 @@ time.
|
|
|
76
76
|
name: "enableFilter",
|
|
77
77
|
type: "boolean",
|
|
78
78
|
description:
|
|
79
|
-
"Enable filtering of results based on metadata. (Set at creation only, but will be automatically enabled if a filter is provided in the
|
|
79
|
+
"Enable filtering of results based on metadata. (Set at creation only, but will be automatically enabled if a filter is provided in the request context.)",
|
|
80
80
|
isOptional: true,
|
|
81
81
|
defaultValue: "false",
|
|
82
82
|
},
|
|
@@ -326,7 +326,7 @@ This agent-driven approach:
|
|
|
326
326
|
|
|
327
327
|
For detailed filter syntax and store-specific capabilities, see the [Metadata Filters](../rag/metadata-filters) documentation.
|
|
328
328
|
|
|
329
|
-
For an example of how agent-driven filtering works, see the [Agent-Driven Metadata Filtering](/examples/rag/usage/filter-rag) example.
|
|
329
|
+
For an example of how agent-driven filtering works, see the [Agent-Driven Metadata Filtering](/examples/v1/rag/usage/filter-rag) example.
|
|
330
330
|
|
|
331
331
|
## Example with Reranking
|
|
332
332
|
|
|
@@ -496,7 +496,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
|
|
|
496
496
|
You can override database configurations at runtime to adapt to different scenarios:
|
|
497
497
|
|
|
498
498
|
```typescript
|
|
499
|
-
import {
|
|
499
|
+
import { RequestContext } from "@mastra/core/request-context";
|
|
500
500
|
|
|
501
501
|
const queryTool = createVectorQueryTool({
|
|
502
502
|
vectorStoreName: "pinecone",
|
|
@@ -510,15 +510,15 @@ const queryTool = createVectorQueryTool({
|
|
|
510
510
|
});
|
|
511
511
|
|
|
512
512
|
// Override at runtime
|
|
513
|
-
const
|
|
514
|
-
|
|
513
|
+
const requestContext = new RequestContext();
|
|
514
|
+
requestContext.set("databaseConfig", {
|
|
515
515
|
pinecone: {
|
|
516
516
|
namespace: "production", // Switch to production namespace
|
|
517
517
|
},
|
|
518
518
|
});
|
|
519
519
|
|
|
520
520
|
const response = await agent.generate("Find information about deployment", {
|
|
521
|
-
|
|
521
|
+
requestContext,
|
|
522
522
|
});
|
|
523
523
|
```
|
|
524
524
|
|
|
@@ -528,7 +528,7 @@ This approach allows you to:
|
|
|
528
528
|
- Adjust performance parameters based on load
|
|
529
529
|
- Apply different filtering strategies per request
|
|
530
530
|
|
|
531
|
-
## Example: Using
|
|
531
|
+
## Example: Using Request Context
|
|
532
532
|
|
|
533
533
|
```typescript
|
|
534
534
|
const queryTool = createVectorQueryTool({
|
|
@@ -538,37 +538,37 @@ const queryTool = createVectorQueryTool({
|
|
|
538
538
|
});
|
|
539
539
|
```
|
|
540
540
|
|
|
541
|
-
When using
|
|
541
|
+
When using request context, provide required parameters at execution time via the request context:
|
|
542
542
|
|
|
543
543
|
```typescript
|
|
544
|
-
const
|
|
544
|
+
const requestContext = new RequestContext<{
|
|
545
545
|
vectorStoreName: string;
|
|
546
546
|
indexName: string;
|
|
547
547
|
topK: number;
|
|
548
548
|
filter: VectorFilter;
|
|
549
549
|
databaseConfig: DatabaseConfig;
|
|
550
550
|
}>();
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
551
|
+
requestContext.set("vectorStoreName", "my-store");
|
|
552
|
+
requestContext.set("indexName", "my-index");
|
|
553
|
+
requestContext.set("topK", 5);
|
|
554
|
+
requestContext.set("filter", { category: "docs" });
|
|
555
|
+
requestContext.set("databaseConfig", {
|
|
556
556
|
pinecone: { namespace: "runtime-namespace" },
|
|
557
557
|
});
|
|
558
|
-
|
|
558
|
+
requestContext.set("model", openai.embedding("text-embedding-3-small"));
|
|
559
559
|
|
|
560
560
|
const response = await agent.generate(
|
|
561
561
|
"Find documentation from the knowledge base.",
|
|
562
562
|
{
|
|
563
|
-
|
|
563
|
+
requestContext,
|
|
564
564
|
},
|
|
565
565
|
);
|
|
566
566
|
```
|
|
567
567
|
|
|
568
|
-
For more information on
|
|
568
|
+
For more information on request context, please see:
|
|
569
569
|
|
|
570
|
-
- [Agent
|
|
571
|
-
- [Tool
|
|
570
|
+
- [Agent Request Context](/docs/v1/server-db/request-context)
|
|
571
|
+
- [Tool Request Context](/docs/v1/tools-mcp/overview#using-requestcontext)
|
|
572
572
|
|
|
573
573
|
## Usage Without a Mastra Server
|
|
574
574
|
|
|
@@ -576,11 +576,12 @@ The tool can be used by itself to retrieve documents matching a query:
|
|
|
576
576
|
|
|
577
577
|
```typescript copy showLineNumbers title="src/index.ts"
|
|
578
578
|
import { openai } from "@ai-sdk/openai";
|
|
579
|
-
import {
|
|
579
|
+
import { RequestContext } from "@mastra/core/request-context";
|
|
580
580
|
import { createVectorQueryTool } from "@mastra/rag";
|
|
581
581
|
import { PgVector } from "@mastra/pg";
|
|
582
582
|
|
|
583
583
|
const pgVector = new PgVector({
|
|
584
|
+
id: 'pg-vector',
|
|
584
585
|
connectionString: process.env.POSTGRES_CONNECTION_STRING!,
|
|
585
586
|
});
|
|
586
587
|
|
|
@@ -591,11 +592,11 @@ const vectorQueryTool = createVectorQueryTool({
|
|
|
591
592
|
model: openai.embedding("text-embedding-3-small"),
|
|
592
593
|
});
|
|
593
594
|
|
|
594
|
-
const
|
|
595
|
-
const queryResult = await vectorQueryTool.execute(
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
595
|
+
const requestContext = new RequestContext();
|
|
596
|
+
const queryResult = await vectorQueryTool.execute(
|
|
597
|
+
{ queryText: "foo", topK: 1 },
|
|
598
|
+
{ requestContext }
|
|
599
|
+
);
|
|
599
600
|
|
|
600
601
|
console.log(queryResult.sources);
|
|
601
602
|
```
|
|
@@ -21,6 +21,7 @@ import { LibSQLVector } from "@mastra/libsql";
|
|
|
21
21
|
|
|
22
22
|
// Create a new vector store instance
|
|
23
23
|
const store = new LibSQLVector({
|
|
24
|
+
id: 'libsql-vector',
|
|
24
25
|
connectionUrl: process.env.DATABASE_URL,
|
|
25
26
|
// Optional: for Turso cloud databases
|
|
26
27
|
authToken: process.env.DATABASE_AUTH_TOKEN,
|
|
@@ -90,6 +90,7 @@ It provides robust vector similarity search capabilities within your existing Po
|
|
|
90
90
|
import { PgVector } from "@mastra/pg";
|
|
91
91
|
|
|
92
92
|
const vectorStore = new PgVector({
|
|
93
|
+
id: 'pg-vector',
|
|
93
94
|
connectionString: "postgresql://user:password@localhost:5432/mydb",
|
|
94
95
|
});
|
|
95
96
|
```
|
|
@@ -98,6 +99,7 @@ const vectorStore = new PgVector({
|
|
|
98
99
|
|
|
99
100
|
```ts
|
|
100
101
|
const vectorStore = new PgVector({
|
|
102
|
+
id: 'pg-vector',
|
|
101
103
|
host: "localhost",
|
|
102
104
|
port: 5432,
|
|
103
105
|
database: "mydb",
|
|
@@ -110,6 +112,7 @@ const vectorStore = new PgVector({
|
|
|
110
112
|
|
|
111
113
|
```ts
|
|
112
114
|
const vectorStore = new PgVector({
|
|
115
|
+
id: 'pg-vector',
|
|
113
116
|
connectionString: "postgresql://user:password@localhost:5432/mydb",
|
|
114
117
|
schemaName: "custom_schema",
|
|
115
118
|
max: 30,
|
|
@@ -242,6 +242,7 @@ Upstash Vector supports hybrid search that combines semantic search (dense vecto
|
|
|
242
242
|
import { UpstashVector } from "@mastra/upstash";
|
|
243
243
|
|
|
244
244
|
const vectorStore = new UpstashVector({
|
|
245
|
+
id: 'upstash-vector',
|
|
245
246
|
url: process.env.UPSTASH_VECTOR_URL,
|
|
246
247
|
token: process.env.UPSTASH_VECTOR_TOKEN,
|
|
247
248
|
});
|
|
@@ -218,7 +218,7 @@ Establishes a connection to the Gemini Live API. Must be called before using spe
|
|
|
218
218
|
<PropertiesTable
|
|
219
219
|
content={[
|
|
220
220
|
{
|
|
221
|
-
name: "
|
|
221
|
+
name: "requestContext",
|
|
222
222
|
type: "object",
|
|
223
223
|
description: "Optional request context for the connection.",
|
|
224
224
|
isOptional: true,
|
|
@@ -24,14 +24,14 @@ const weatherTool = createTool({
|
|
|
24
24
|
outputSchema: z.object({
|
|
25
25
|
message: z.string(),
|
|
26
26
|
}),
|
|
27
|
-
execute: async (
|
|
27
|
+
execute: async (inputData) => {
|
|
28
28
|
// Fetch weather data from an API
|
|
29
29
|
const response = await fetch(
|
|
30
|
-
`https://api.weather.com?location=${encodeURIComponent(
|
|
30
|
+
`https://api.weather.com?location=${encodeURIComponent(inputData.location)}`,
|
|
31
31
|
);
|
|
32
32
|
const data = await response.json();
|
|
33
33
|
return {
|
|
34
|
-
message: `The current temperature in ${
|
|
34
|
+
message: `The current temperature in ${inputData.location} is ${data.temperature}°F with ${data.conditions}.`,
|
|
35
35
|
};
|
|
36
36
|
},
|
|
37
37
|
});
|
|
@@ -10,7 +10,7 @@ The `.cancel()` method cancels a workflow run, stopping execution and cleaning u
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
12
|
```typescript showLineNumbers copy
|
|
13
|
-
const run = await workflow.
|
|
13
|
+
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
await run.cancel();
|
|
16
16
|
```
|
|
@@ -44,7 +44,7 @@ await run.cancel();
|
|
|
44
44
|
## Extended usage example
|
|
45
45
|
|
|
46
46
|
```typescript showLineNumbers copy
|
|
47
|
-
const run = await workflow.
|
|
47
|
+
const run = await workflow.createRun();
|
|
48
48
|
|
|
49
49
|
try {
|
|
50
50
|
const result = await run.start({ inputData: { value: "initial data" } });
|
|
@@ -55,5 +55,5 @@ try {
|
|
|
55
55
|
|
|
56
56
|
## Related
|
|
57
57
|
|
|
58
|
-
- [Workflows overview](/docs/workflows/overview#running-workflows)
|
|
59
|
-
- [Workflow.
|
|
58
|
+
- [Workflows overview](/docs/v1/workflows/overview#running-workflows)
|
|
59
|
+
- [Workflow.createRun()](../workflow-methods/create-run)
|
|
@@ -10,7 +10,7 @@ The `.resume()` method resumes a suspended workflow run with new data, allowing
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
12
|
```typescript showLineNumbers copy
|
|
13
|
-
const run = await workflow.
|
|
13
|
+
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
const result = await run.start({ inputData: { value: "initial data" } });
|
|
16
16
|
|
|
@@ -39,9 +39,9 @@ if (result.status === "suspended") {
|
|
|
39
39
|
isOptional: true,
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
|
-
name: "
|
|
43
|
-
type: "
|
|
44
|
-
description: "
|
|
42
|
+
name: "requestContext",
|
|
43
|
+
type: "RequestContext",
|
|
44
|
+
description: "Request Context data to use when resuming",
|
|
45
45
|
isOptional: true,
|
|
46
46
|
},
|
|
47
47
|
{
|
|
@@ -55,16 +55,16 @@ if (result.status === "suspended") {
|
|
|
55
55
|
type: "TracingContext",
|
|
56
56
|
isOptional: true,
|
|
57
57
|
description:
|
|
58
|
-
"
|
|
58
|
+
"Tracing context for creating child spans and adding metadata. Automatically injected when using Mastra's tracing system.",
|
|
59
59
|
properties: [
|
|
60
60
|
{
|
|
61
61
|
parameters: [
|
|
62
62
|
{
|
|
63
63
|
name: "currentSpan",
|
|
64
|
-
type: "
|
|
64
|
+
type: "Span",
|
|
65
65
|
isOptional: true,
|
|
66
66
|
description:
|
|
67
|
-
"Current
|
|
67
|
+
"Current span for creating child spans and adding metadata. Use this to create custom child spans or update span attributes during execution.",
|
|
68
68
|
},
|
|
69
69
|
],
|
|
70
70
|
},
|
|
@@ -74,7 +74,7 @@ if (result.status === "suspended") {
|
|
|
74
74
|
name: "tracingOptions",
|
|
75
75
|
type: "TracingOptions",
|
|
76
76
|
isOptional: true,
|
|
77
|
-
description: "Options for
|
|
77
|
+
description: "Options for Tracing configuration.",
|
|
78
78
|
properties: [
|
|
79
79
|
{
|
|
80
80
|
parameters: [
|
|
@@ -93,7 +93,7 @@ if (result.status === "suspended") {
|
|
|
93
93
|
name: "outputOptions",
|
|
94
94
|
type: "OutputOptions",
|
|
95
95
|
isOptional: true,
|
|
96
|
-
description: "Options for
|
|
96
|
+
description: "Options for output configuration.",
|
|
97
97
|
properties: [
|
|
98
98
|
{
|
|
99
99
|
parameters: [
|
|
@@ -126,7 +126,7 @@ if (result.status === "suspended") {
|
|
|
126
126
|
type: "string",
|
|
127
127
|
isOptional: true,
|
|
128
128
|
description:
|
|
129
|
-
"The trace ID associated with this execution when
|
|
129
|
+
"The trace ID associated with this execution when Tracing is enabled. Use this to correlate logs and debug execution flow.",
|
|
130
130
|
},
|
|
131
131
|
]}
|
|
132
132
|
/>
|
|
@@ -146,7 +146,7 @@ if (result.status === "suspended") {
|
|
|
146
146
|
|
|
147
147
|
## Related
|
|
148
148
|
|
|
149
|
-
- [Workflows overview](/docs/workflows/overview#running-workflows)
|
|
150
|
-
- [Workflow.
|
|
151
|
-
- [Suspend and resume](/docs/workflows/suspend-and-resume)
|
|
152
|
-
- [Human in the loop
|
|
149
|
+
- [Workflows overview](/docs/v1/workflows/overview#running-workflows)
|
|
150
|
+
- [Workflow.createRun()](../workflow-methods/create-run)
|
|
151
|
+
- [Suspend and resume](/docs/v1/workflows/suspend-and-resume)
|
|
152
|
+
- [Human in the loop](/docs/v1/workflows/human-in-the-loop)
|