@mastra/mcp-docs-server 1.0.0-beta.0 → 1.0.0-beta.10
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%2Fchangeset-cli.md +1 -15
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -7
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -55
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +250 -50
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +26 -0
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +89 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +396 -196
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +200 -0
- package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +42 -0
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +61 -0
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +251 -51
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Freact.md +128 -1
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +18 -0
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +42 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +251 -51
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
- package/.docs/organized/changelogs/create-mastra.md +201 -1
- package/.docs/organized/changelogs/mastra.md +201 -1
- package/.docs/organized/code-examples/agui.md +1 -0
- package/.docs/organized/code-examples/ai-elements.md +2 -2
- package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
- package/.docs/organized/code-examples/ai-sdk-v5.md +3 -2
- package/.docs/organized/code-examples/assistant-ui.md +2 -2
- package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +2 -2
- package/.docs/organized/code-examples/client-side-tools.md +1 -1
- package/.docs/organized/code-examples/crypto-chatbot.md +2 -2
- package/.docs/organized/code-examples/fireworks-r1.md +1 -1
- package/.docs/organized/code-examples/heads-up-game.md +1 -1
- package/.docs/organized/code-examples/mcp-configuration.md +0 -3
- package/.docs/organized/code-examples/mcp-server-adapters.md +720 -0
- package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
- package/.docs/organized/code-examples/memory-with-processors.md +1 -1
- package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
- package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
- package/.docs/organized/code-examples/quick-start.md +2 -2
- package/.docs/organized/code-examples/server-app-access.md +342 -0
- package/.docs/organized/code-examples/server-express-adapter.md +87 -0
- package/.docs/organized/code-examples/server-hono-adapter.md +85 -0
- package/.docs/organized/code-examples/stock-price-tool.md +1 -21
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +56 -10
- package/.docs/raw/agents/agent-approval.mdx +189 -0
- package/.docs/raw/agents/agent-memory.mdx +2 -2
- package/.docs/raw/agents/guardrails.mdx +27 -24
- package/.docs/raw/agents/networks.mdx +3 -3
- package/.docs/raw/agents/overview.mdx +19 -168
- package/.docs/raw/agents/processors.mdx +279 -0
- package/.docs/raw/agents/structured-output.mdx +224 -0
- package/.docs/raw/agents/using-tools.mdx +14 -14
- package/.docs/raw/auth/auth0.mdx +2 -2
- package/.docs/raw/auth/clerk.mdx +2 -2
- package/.docs/raw/auth/firebase.mdx +2 -2
- package/.docs/raw/auth/index.mdx +1 -1
- package/.docs/raw/auth/jwt.mdx +2 -2
- package/.docs/raw/auth/supabase.mdx +2 -2
- package/.docs/raw/auth/workos.mdx +2 -2
- package/.docs/raw/community/contributing-templates.mdx +1 -1
- package/.docs/raw/community/discord.mdx +2 -2
- package/.docs/raw/community/licensing.mdx +1 -1
- package/.docs/raw/course/01-first-agent/03-verifying-installation.md +1 -1
- package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
- package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
- package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
- package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
- package/.docs/raw/course/02-agent-tools-mcp/02-installing-mcp.md +1 -1
- package/.docs/raw/course/03-agent-memory/03-installing-memory.md +1 -1
- package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
- package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
- package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +4 -4
- package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +4 -4
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +2 -2
- package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +3 -3
- package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +46 -15
- package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +2 -2
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
- package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
- package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
- package/.docs/raw/deployment/monorepo.mdx +3 -3
- package/.docs/raw/deployment/overview.mdx +7 -7
- package/.docs/raw/deployment/web-framework.mdx +6 -6
- package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
- package/.docs/raw/evals/custom-scorers.mdx +4 -6
- package/.docs/raw/evals/overview.mdx +6 -7
- package/.docs/raw/evals/running-in-ci.mdx +2 -4
- package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +15 -89
- package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
- package/.docs/raw/getting-started/project-structure.mdx +2 -2
- package/.docs/raw/getting-started/start.mdx +72 -0
- package/.docs/raw/getting-started/studio.mdx +8 -6
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
- package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +72 -20
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
- package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +28 -30
- package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
- package/.docs/raw/guides/getting-started/next-js.mdx +276 -0
- package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
- package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +28 -30
- package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +12 -12
- package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
- package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +3 -3
- package/.docs/raw/guides/guide/research-assistant.mdx +8 -18
- package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
- package/.docs/raw/guides/guide/web-search.mdx +12 -10
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
- package/.docs/raw/guides/index.mdx +3 -35
- package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +56 -6
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +29 -5
- package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +3 -3
- package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +59 -37
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +70 -5
- package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +13 -13
- package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +175 -2
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
- package/.docs/raw/index.mdx +4 -4
- package/.docs/raw/mcp/overview.mdx +358 -0
- package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
- package/.docs/raw/memory/conversation-history.mdx +1 -1
- package/.docs/raw/memory/memory-processors.mdx +265 -80
- package/.docs/raw/memory/overview.mdx +3 -3
- package/.docs/raw/memory/semantic-recall.mdx +10 -10
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +5 -10
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
- package/.docs/raw/memory/storage/memory-with-pg.mdx +5 -10
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +5 -10
- package/.docs/raw/memory/threads-and-resources.mdx +4 -4
- package/.docs/raw/memory/working-memory.mdx +16 -8
- package/.docs/raw/{logging.mdx → observability/logging.mdx} +8 -8
- package/.docs/raw/observability/overview.mdx +5 -6
- package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
- package/.docs/raw/observability/tracing/exporters/arize.mdx +39 -3
- package/.docs/raw/observability/tracing/exporters/braintrust.mdx +22 -3
- package/.docs/raw/observability/tracing/exporters/cloud.mdx +4 -4
- package/.docs/raw/observability/tracing/exporters/default.mdx +6 -6
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +86 -3
- package/.docs/raw/observability/tracing/exporters/langsmith.mdx +15 -3
- package/.docs/raw/observability/tracing/exporters/otel.mdx +128 -30
- package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
- package/.docs/raw/observability/tracing/overview.mdx +100 -29
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +2 -3
- package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
- package/.docs/raw/rag/overview.mdx +5 -4
- package/.docs/raw/rag/retrieval.mdx +44 -39
- package/.docs/raw/rag/vector-databases.mdx +94 -3
- package/.docs/raw/reference/agents/agent.mdx +10 -14
- package/.docs/raw/reference/agents/generate.mdx +67 -99
- package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
- package/.docs/raw/reference/agents/getLLM.mdx +2 -2
- package/.docs/raw/reference/agents/getMemory.mdx +1 -1
- package/.docs/raw/reference/agents/getModel.mdx +1 -1
- package/.docs/raw/reference/agents/getTools.mdx +69 -0
- package/.docs/raw/reference/agents/getVoice.mdx +1 -1
- package/.docs/raw/reference/agents/listAgents.mdx +1 -1
- package/.docs/raw/reference/agents/listScorers.mdx +1 -1
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/agents/network.mdx +33 -72
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
- package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
- package/.docs/raw/reference/auth/auth0.mdx +1 -1
- package/.docs/raw/reference/auth/clerk.mdx +1 -1
- package/.docs/raw/reference/auth/firebase.mdx +1 -1
- package/.docs/raw/reference/auth/jwt.mdx +1 -1
- package/.docs/raw/reference/auth/supabase.mdx +1 -1
- package/.docs/raw/reference/auth/workos.mdx +1 -1
- package/.docs/raw/reference/cli/create-mastra.mdx +11 -11
- package/.docs/raw/reference/cli/mastra.mdx +25 -12
- package/.docs/raw/reference/client-js/agents.mdx +252 -68
- package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
- package/.docs/raw/reference/client-js/logs.mdx +1 -1
- package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
- package/.docs/raw/reference/client-js/memory.mdx +48 -2
- package/.docs/raw/reference/client-js/observability.mdx +1 -1
- package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
- package/.docs/raw/reference/client-js/tools.mdx +1 -1
- package/.docs/raw/reference/client-js/vectors.mdx +1 -1
- package/.docs/raw/reference/client-js/workflows.mdx +93 -64
- package/.docs/raw/reference/core/addGateway.mdx +59 -0
- 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 +1 -1
- package/.docs/raw/reference/core/getGateway.mdx +59 -0
- package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
- package/.docs/raw/reference/core/getLogger.mdx +3 -3
- package/.docs/raw/reference/core/getMCPServer.mdx +4 -4
- package/.docs/raw/reference/core/getMCPServerById.mdx +5 -5
- package/.docs/raw/reference/core/getMemory.mdx +73 -0
- package/.docs/raw/reference/core/getScorer.mdx +1 -1
- package/.docs/raw/reference/core/getScorerById.mdx +1 -1
- package/.docs/raw/reference/core/getServer.mdx +2 -2
- package/.docs/raw/reference/core/getStorage.mdx +1 -1
- package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
- package/.docs/raw/reference/core/getTelemetry.mdx +3 -3
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listGateways.mdx +53 -0
- package/.docs/raw/reference/core/listLogs.mdx +3 -3
- package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -3
- package/.docs/raw/reference/core/listMCPServers.mdx +5 -5
- package/.docs/raw/reference/core/listMemory.mdx +70 -0
- package/.docs/raw/reference/core/listScorers.mdx +1 -1
- package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/mastra-class.mdx +17 -1
- package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
- package/.docs/raw/reference/core/setLogger.mdx +3 -3
- package/.docs/raw/reference/core/setStorage.mdx +1 -1
- package/.docs/raw/reference/core/setTelemetry.mdx +3 -3
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
- package/.docs/raw/reference/deployer/deployer.mdx +1 -1
- package/.docs/raw/reference/deployer/netlify.mdx +2 -3
- package/.docs/raw/reference/deployer/vercel.mdx +1 -1
- package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
- package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
- package/.docs/raw/reference/evals/bias.mdx +30 -88
- package/.docs/raw/reference/evals/completeness.mdx +32 -91
- package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
- package/.docs/raw/reference/evals/context-precision.mdx +29 -131
- package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
- package/.docs/raw/reference/evals/create-scorer.mdx +59 -50
- package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
- package/.docs/raw/reference/evals/hallucination.mdx +29 -104
- package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
- package/.docs/raw/reference/evals/mastra-scorer.mdx +3 -1
- package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
- package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
- package/.docs/raw/reference/evals/run-evals.mdx +1 -1
- package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
- package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
- package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
- package/.docs/raw/reference/evals/toxicity.mdx +30 -93
- package/.docs/raw/reference/index.mdx +1 -0
- package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
- package/.docs/raw/reference/memory/createThread.mdx +1 -1
- package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
- package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
- package/.docs/raw/reference/memory/memory-class.mdx +6 -8
- package/.docs/raw/reference/memory/query.mdx +1 -1
- package/.docs/raw/reference/memory/recall.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
- package/.docs/raw/reference/observability/tracing/configuration.mdx +12 -16
- package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +31 -2
- package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +9 -9
- package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +9 -9
- package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +9 -9
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
- package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
- package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
- package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
- package/.docs/raw/reference/observability/tracing/instances.mdx +8 -12
- package/.docs/raw/reference/observability/tracing/interfaces.mdx +36 -11
- package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
- package/.docs/raw/reference/observability/tracing/spans.mdx +7 -11
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +10 -4
- package/.docs/raw/reference/processors/language-detector.mdx +19 -6
- package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
- package/.docs/raw/reference/processors/moderation-processor.mdx +21 -8
- package/.docs/raw/reference/processors/pii-detector.mdx +21 -8
- package/.docs/raw/reference/processors/processor-interface.mdx +502 -0
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +19 -6
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +12 -7
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +11 -5
- package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +10 -4
- package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/database-config.mdx +1 -1
- package/.docs/raw/reference/rag/document.mdx +1 -1
- package/.docs/raw/reference/rag/embeddings.mdx +6 -6
- package/.docs/raw/reference/rag/extract-params.mdx +1 -1
- package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
- package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
- package/.docs/raw/reference/rag/rerank.mdx +2 -3
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
- package/.docs/raw/reference/server/create-route.mdx +328 -0
- package/.docs/raw/reference/server/express-adapter.mdx +260 -0
- package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
- package/.docs/raw/reference/server/mastra-server.mdx +345 -0
- package/.docs/raw/reference/server/routes.mdx +250 -0
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +39 -2
- package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
- package/.docs/raw/reference/storage/convex.mdx +164 -0
- package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
- package/.docs/raw/reference/storage/lance.mdx +35 -2
- package/.docs/raw/reference/storage/libsql.mdx +39 -2
- package/.docs/raw/reference/storage/mongodb.mdx +41 -2
- package/.docs/raw/reference/storage/mssql.mdx +39 -2
- package/.docs/raw/reference/storage/postgresql.mdx +39 -2
- package/.docs/raw/reference/storage/upstash.mdx +2 -2
- package/.docs/raw/reference/streaming/ChunkType.mdx +2 -2
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
- package/.docs/raw/reference/streaming/agents/stream.mdx +68 -95
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
- package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
- package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
- package/.docs/raw/reference/templates/overview.mdx +3 -6
- package/.docs/raw/reference/tools/client.mdx +2 -3
- package/.docs/raw/reference/tools/create-tool.mdx +135 -4
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
- package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
- package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
- package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
- package/.docs/raw/reference/vectors/astra.mdx +1 -1
- package/.docs/raw/reference/vectors/chroma.mdx +82 -2
- package/.docs/raw/reference/vectors/convex.mdx +429 -0
- package/.docs/raw/reference/vectors/couchbase.mdx +33 -20
- package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
- package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
- package/.docs/raw/reference/vectors/lance.mdx +39 -23
- package/.docs/raw/reference/vectors/libsql.mdx +37 -4
- package/.docs/raw/reference/vectors/mongodb.mdx +43 -4
- package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
- package/.docs/raw/reference/vectors/pg.mdx +44 -37
- package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
- package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
- package/.docs/raw/reference/vectors/s3vectors.mdx +2 -2
- package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
- package/.docs/raw/reference/vectors/upstash.mdx +1 -1
- package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
- package/.docs/raw/reference/voice/azure.mdx +96 -81
- package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
- package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
- package/.docs/raw/reference/voice/deepgram.mdx +1 -1
- package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
- package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
- package/.docs/raw/reference/voice/google.mdx +160 -21
- package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
- package/.docs/raw/reference/voice/murf.mdx +1 -1
- package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
- package/.docs/raw/reference/voice/openai.mdx +1 -1
- package/.docs/raw/reference/voice/playai.mdx +1 -1
- package/.docs/raw/reference/voice/sarvam.mdx +1 -1
- package/.docs/raw/reference/voice/speechify.mdx +1 -1
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
- package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
- package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
- package/.docs/raw/reference/voice/voice.close.mdx +2 -2
- package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
- package/.docs/raw/reference/voice/voice.events.mdx +1 -1
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
- package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
- package/.docs/raw/reference/voice/voice.off.mdx +2 -2
- package/.docs/raw/reference/voice/voice.on.mdx +2 -2
- package/.docs/raw/reference/voice/voice.send.mdx +2 -2
- package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
- package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
- package/.docs/raw/reference/workflows/run.mdx +28 -6
- package/.docs/raw/reference/workflows/step.mdx +65 -1
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
- 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 +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
- 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 +21 -2
- package/.docs/raw/server-db/custom-adapters.mdx +386 -0
- package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
- package/.docs/raw/server-db/mastra-client.mdx +7 -8
- package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +16 -8
- package/.docs/raw/server-db/middleware.mdx +31 -31
- package/.docs/raw/server-db/request-context.mdx +3 -4
- package/.docs/raw/server-db/server-adapters.mdx +312 -0
- package/.docs/raw/server-db/storage.mdx +12 -1
- package/.docs/raw/streaming/events.mdx +1 -1
- package/.docs/raw/streaming/overview.mdx +27 -16
- package/.docs/raw/streaming/tool-streaming.mdx +58 -19
- package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
- package/.docs/raw/tools-mcp/mcp-overview.mdx +5 -7
- package/.docs/raw/tools-mcp/overview.mdx +1 -1
- package/.docs/raw/voice/overview.mdx +88 -41
- package/.docs/raw/voice/speech-to-speech.mdx +5 -5
- package/.docs/raw/voice/speech-to-text.mdx +3 -4
- package/.docs/raw/voice/text-to-speech.mdx +3 -4
- package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
- package/.docs/raw/workflows/control-flow.mdx +186 -1
- package/.docs/raw/workflows/error-handling.mdx +5 -4
- package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
- package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
- package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
- package/.docs/raw/workflows/overview.mdx +67 -47
- package/.docs/raw/workflows/snapshots.mdx +5 -3
- package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
- package/.docs/raw/workflows/time-travel.mdx +313 -0
- package/.docs/raw/workflows/workflow-state.mdx +190 -0
- package/CHANGELOG.md +88 -0
- package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
- package/dist/prepare-docs/package-changes.d.ts.map +1 -1
- package/dist/prepare-docs/prepare.js +1 -1
- package/dist/stdio.js +17 -19
- package/package.json +11 -15
- package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
- package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
- package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
- package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
- package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
- package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
- package/.docs/raw/getting-started/templates.mdx +0 -73
- package/.docs/raw/mastra-cloud/observability.mdx +0 -51
- package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
- package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Reference: MCPClient | Tools & MCP
|
|
2
|
+
title: "Reference: MCPClient | Tools & MCP"
|
|
3
3
|
description: API Reference for MCPClient - A class for managing multiple Model Context Protocol servers and their tools.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -99,6 +99,13 @@ Each server in the `servers` map is configured using the `MastraMCPServerDefinit
|
|
|
99
99
|
description:
|
|
100
100
|
"For SSE fallback: Custom fetch configuration for SSE connections. Required when using custom headers with SSE.",
|
|
101
101
|
},
|
|
102
|
+
{
|
|
103
|
+
name: "fetch",
|
|
104
|
+
type: "FetchLike",
|
|
105
|
+
isOptional: true,
|
|
106
|
+
description:
|
|
107
|
+
"For HTTP servers: Custom fetch implementation used for all network requests. When provided, this function will be used for all HTTP requests, allowing you to add dynamic authentication headers (e.g., refreshing bearer tokens), customize request behavior per-request, or intercept and modify requests/responses. When `fetch` is provided, `requestInit`, `eventSourceInit`, and `authProvider` become optional, as you can handle these concerns within your custom fetch function.",
|
|
108
|
+
},
|
|
102
109
|
{
|
|
103
110
|
name: "logger",
|
|
104
111
|
type: "LogHandler",
|
|
@@ -291,23 +298,6 @@ mcpClient.resources.onListChanged("myWeatherServer", () => {
|
|
|
291
298
|
});
|
|
292
299
|
```
|
|
293
300
|
|
|
294
|
-
### `prompts` Property
|
|
295
|
-
|
|
296
|
-
The `MCPClient` instance has a `prompts` property that provides access to prompt-related operations.
|
|
297
|
-
|
|
298
|
-
```typescript
|
|
299
|
-
const mcpClient = new MCPClient({
|
|
300
|
-
/* ...servers configuration... */
|
|
301
|
-
});
|
|
302
|
-
|
|
303
|
-
// Access prompt methods via mcpClient.prompts
|
|
304
|
-
const allPromptsByServer = await mcpClient.prompts.list();
|
|
305
|
-
const { prompt, messages } = await mcpClient.prompts.get({
|
|
306
|
-
serverName: "myWeatherServer",
|
|
307
|
-
name: "current",
|
|
308
|
-
});
|
|
309
|
-
```
|
|
310
|
-
|
|
311
301
|
### `elicitation` Property
|
|
312
302
|
|
|
313
303
|
The `MCPClient` instance has an `elicitation` property that provides access to elicitation-related operations. Elicitation allows MCP servers to request structured information from users.
|
|
@@ -451,6 +441,23 @@ await mcpClient.elicitation.onRequest("interactiveServer", async (request) => {
|
|
|
451
441
|
});
|
|
452
442
|
```
|
|
453
443
|
|
|
444
|
+
### `prompts` Property
|
|
445
|
+
|
|
446
|
+
The `MCPClient` instance has a `prompts` property that provides access to prompt-related operations.
|
|
447
|
+
|
|
448
|
+
```typescript
|
|
449
|
+
const mcpClient = new MCPClient({
|
|
450
|
+
/* ...servers configuration... */
|
|
451
|
+
});
|
|
452
|
+
|
|
453
|
+
// Access prompt methods via mcpClient.prompts
|
|
454
|
+
const allPromptsByServer = await mcpClient.prompts.list();
|
|
455
|
+
const { prompt, messages } = await mcpClient.prompts.get({
|
|
456
|
+
serverName: "myWeatherServer",
|
|
457
|
+
name: "current",
|
|
458
|
+
});
|
|
459
|
+
```
|
|
460
|
+
|
|
454
461
|
#### `prompts.list()`
|
|
455
462
|
|
|
456
463
|
Retrieves all available prompts from all connected MCP servers, grouped by server name.
|
|
@@ -516,6 +523,63 @@ mcpClient.prompts.onListChanged("myWeatherServer", () => {
|
|
|
516
523
|
});
|
|
517
524
|
```
|
|
518
525
|
|
|
526
|
+
### `progress` Property
|
|
527
|
+
|
|
528
|
+
The `MCPClient` instance has a `progress` property for subscribing to progress notifications emitted by MCP servers while tools execute.
|
|
529
|
+
|
|
530
|
+
```typescript
|
|
531
|
+
const mcpClient = new MCPClient({
|
|
532
|
+
servers: {
|
|
533
|
+
myServer: {
|
|
534
|
+
url: new URL('http://localhost:4111/api/mcp/myServer/mcp'),
|
|
535
|
+
// Enabled by default; set to false to disable
|
|
536
|
+
enableProgressTracking: true,
|
|
537
|
+
},
|
|
538
|
+
},
|
|
539
|
+
});
|
|
540
|
+
|
|
541
|
+
// Subscribe to progress updates for a specific server
|
|
542
|
+
await mcpClient.progress.onUpdate('myServer', (params) => {
|
|
543
|
+
console.log('📊 Progress:', params.progress, '/', params.total);
|
|
544
|
+
if (params.message) console.log('Message:', params.message);
|
|
545
|
+
if (params.progressToken) console.log('Token:', params.progressToken);
|
|
546
|
+
});
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
#### `progress.onUpdate(serverName: string, handler)`
|
|
550
|
+
|
|
551
|
+
Registers a handler function to receive progress updates from the specified server.
|
|
552
|
+
|
|
553
|
+
```typescript
|
|
554
|
+
async onUpdate(
|
|
555
|
+
serverName: string,
|
|
556
|
+
handler: (params: {
|
|
557
|
+
progressToken: string;
|
|
558
|
+
progress: number;
|
|
559
|
+
total?: number;
|
|
560
|
+
message?: string;
|
|
561
|
+
}) => void,
|
|
562
|
+
): Promise<void>
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Notes:
|
|
566
|
+
|
|
567
|
+
- When `enableProgressTracking` is true (default), tool calls include a `progressToken` so you can correlate updates to a specific run.
|
|
568
|
+
- If you pass a `runId` when executing a tool, it will be used as the `progressToken`.
|
|
569
|
+
|
|
570
|
+
To disable progress tracking for a server:
|
|
571
|
+
|
|
572
|
+
```typescript
|
|
573
|
+
const mcpClient = new MCPClient({
|
|
574
|
+
servers: {
|
|
575
|
+
myServer: {
|
|
576
|
+
url: new URL('http://localhost:4111/api/mcp/myServer/mcp'),
|
|
577
|
+
enableProgressTracking: false,
|
|
578
|
+
},
|
|
579
|
+
},
|
|
580
|
+
});
|
|
581
|
+
```
|
|
582
|
+
|
|
519
583
|
## Elicitation
|
|
520
584
|
|
|
521
585
|
Elicitation is a feature that allows MCP servers to request structured information from users. When a server needs additional data, it can send an elicitation request that the client handles by prompting the user. A common example is during a tool call.
|
|
@@ -632,7 +696,6 @@ For tools where you have a single connection to the MCP server for you entire ap
|
|
|
632
696
|
```typescript
|
|
633
697
|
import { MCPClient } from "@mastra/mcp";
|
|
634
698
|
import { Agent } from "@mastra/core/agent";
|
|
635
|
-
import { openai } from "@ai-sdk/openai";
|
|
636
699
|
|
|
637
700
|
const mcp = new MCPClient({
|
|
638
701
|
servers: {
|
|
@@ -657,7 +720,7 @@ const mcp = new MCPClient({
|
|
|
657
720
|
const agent = new Agent({
|
|
658
721
|
name: "Multi-tool Agent",
|
|
659
722
|
instructions: "You have access to multiple tool servers.",
|
|
660
|
-
model: openai
|
|
723
|
+
model: "openai/gpt-5.1",
|
|
661
724
|
tools: await mcp.listTools(),
|
|
662
725
|
});
|
|
663
726
|
|
|
@@ -707,13 +770,12 @@ When you need a new MCP connection for each user, use `listToolsets()` and add t
|
|
|
707
770
|
```typescript
|
|
708
771
|
import { Agent } from "@mastra/core/agent";
|
|
709
772
|
import { MCPClient } from "@mastra/mcp";
|
|
710
|
-
import { openai } from "@ai-sdk/openai";
|
|
711
773
|
|
|
712
774
|
// Create the agent first, without any tools
|
|
713
775
|
const agent = new Agent({
|
|
714
776
|
name: "Multi-tool Agent",
|
|
715
777
|
instructions: "You help users check stocks and weather.",
|
|
716
|
-
model: openai
|
|
778
|
+
model: "openai/gpt-5.1",
|
|
717
779
|
});
|
|
718
780
|
|
|
719
781
|
// Later, configure MCP with user-specific settings
|
|
@@ -799,11 +861,40 @@ MCPClient handles server connections gracefully:
|
|
|
799
861
|
2. Graceful server shutdown to prevent error messages during development
|
|
800
862
|
3. Proper cleanup of resources when disconnecting
|
|
801
863
|
|
|
864
|
+
## Using Custom Fetch for Dynamic Authentication
|
|
865
|
+
|
|
866
|
+
For HTTP servers, you can provide a custom `fetch` function to handle dynamic authentication, request interception, or other custom behavior. This is particularly useful when you need to refresh tokens on each request or customize request behavior.
|
|
867
|
+
|
|
868
|
+
When `fetch` is provided, `requestInit`, `eventSourceInit`, and `authProvider` become optional, as you can handle these concerns within your custom fetch function.
|
|
869
|
+
|
|
870
|
+
```typescript
|
|
871
|
+
const mcpClient = new MCPClient({
|
|
872
|
+
servers: {
|
|
873
|
+
apiServer: {
|
|
874
|
+
url: new URL("https://api.example.com/mcp"),
|
|
875
|
+
fetch: async (url, init) => {
|
|
876
|
+
// Refresh token on each request
|
|
877
|
+
const token = await getAuthToken(); // Your token refresh logic
|
|
878
|
+
|
|
879
|
+
return fetch(url, {
|
|
880
|
+
...init,
|
|
881
|
+
headers: {
|
|
882
|
+
...init?.headers,
|
|
883
|
+
Authorization: `Bearer ${token}`,
|
|
884
|
+
},
|
|
885
|
+
});
|
|
886
|
+
},
|
|
887
|
+
},
|
|
888
|
+
},
|
|
889
|
+
});
|
|
890
|
+
```
|
|
891
|
+
|
|
802
892
|
## Using SSE Request Headers
|
|
803
893
|
|
|
804
|
-
When using the legacy SSE MCP transport, you must configure both `requestInit` and `eventSourceInit` due to a bug in the MCP SDK:
|
|
894
|
+
When using the legacy SSE MCP transport, you must configure both `requestInit` and `eventSourceInit` due to a bug in the MCP SDK. Alternatively, you can use a custom `fetch` function which will be automatically used for both POST requests and SSE connections:
|
|
805
895
|
|
|
806
896
|
```ts
|
|
897
|
+
// Option 1: Using requestInit and eventSourceInit (required for SSE)
|
|
807
898
|
const sseClient = new MCPClient({
|
|
808
899
|
servers: {
|
|
809
900
|
exampleServer: {
|
|
@@ -828,6 +919,23 @@ const sseClient = new MCPClient({
|
|
|
828
919
|
},
|
|
829
920
|
},
|
|
830
921
|
});
|
|
922
|
+
|
|
923
|
+
// Option 2: Using custom fetch (simpler, works for both Streamable HTTP and SSE)
|
|
924
|
+
const sseClientWithFetch = new MCPClient({
|
|
925
|
+
servers: {
|
|
926
|
+
exampleServer: {
|
|
927
|
+
url: new URL("https://your-mcp-server.com/sse"),
|
|
928
|
+
fetch: async (url, init) => {
|
|
929
|
+
const headers = new Headers(init?.headers || {});
|
|
930
|
+
headers.set("Authorization", "Bearer your-token");
|
|
931
|
+
return fetch(url, {
|
|
932
|
+
...init,
|
|
933
|
+
headers,
|
|
934
|
+
});
|
|
935
|
+
},
|
|
936
|
+
},
|
|
937
|
+
},
|
|
938
|
+
});
|
|
831
939
|
```
|
|
832
940
|
|
|
833
941
|
## Related Information
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Reference: MCPServer | Tools & MCP
|
|
2
|
+
title: "Reference: MCPServer | Tools & MCP"
|
|
3
3
|
description: API Reference for MCPServer - A class for exposing Mastra tools and capabilities as a Model Context Protocol server.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -16,7 +16,6 @@ It supports both [stdio (subprocess) and SSE (HTTP) MCP transports](https://mode
|
|
|
16
16
|
To create a new `MCPServer`, you need to provide some basic information about your server, the tools it will offer, and optionally, any agents you want to expose as tools.
|
|
17
17
|
|
|
18
18
|
```typescript
|
|
19
|
-
import { openai } from "@ai-sdk/openai";
|
|
20
19
|
import { Agent } from "@mastra/core/agent";
|
|
21
20
|
import { createTool } from "@mastra/core/tools";
|
|
22
21
|
import { MCPServer } from "@mastra/mcp";
|
|
@@ -28,7 +27,7 @@ const myAgent = new Agent({
|
|
|
28
27
|
name: "MyExampleAgent",
|
|
29
28
|
description: "A generalist to help with basic questions."
|
|
30
29
|
instructions: "You are a helpful assistant.",
|
|
31
|
-
model: openai
|
|
30
|
+
model: "openai/gpt-5.1",
|
|
32
31
|
});
|
|
33
32
|
|
|
34
33
|
const weatherTool = createTool({
|
|
@@ -186,6 +185,55 @@ The description for this generated tool will be: "Ask agent `<agent.name>` a que
|
|
|
186
185
|
|
|
187
186
|
This allows you to quickly expose the generative capabilities of your agents through the MCP, enabling clients to "ask" your agents questions directly.
|
|
188
187
|
|
|
188
|
+
### Accessing MCP Context in Tools
|
|
189
|
+
|
|
190
|
+
Tools exposed through `MCPServer` can access MCP request context (authentication, session IDs, etc.) via two different properties depending on how the tool is invoked:
|
|
191
|
+
|
|
192
|
+
| Call Pattern | Access Method |
|
|
193
|
+
|-------------|---------------|
|
|
194
|
+
| Direct tool call | `context?.mcp?.extra` |
|
|
195
|
+
| Agent tool call | `context?.requestContext?.get("mcp.extra")` |
|
|
196
|
+
|
|
197
|
+
**Universal pattern** (works in both contexts):
|
|
198
|
+
```typescript
|
|
199
|
+
const mcpExtra = context?.mcp?.extra ?? context?.requestContext?.get("mcp.extra");
|
|
200
|
+
const authInfo = mcpExtra?.authInfo;
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
#### Example: Tool that works in both contexts
|
|
204
|
+
|
|
205
|
+
```typescript
|
|
206
|
+
import { createTool } from "@mastra/core/tools";
|
|
207
|
+
import { z } from "zod";
|
|
208
|
+
|
|
209
|
+
const fetchUserData = createTool({
|
|
210
|
+
id: "fetchUserData",
|
|
211
|
+
description: "Fetches user data using authentication from MCP context",
|
|
212
|
+
inputSchema: z.object({
|
|
213
|
+
userId: z.string().describe("The ID of the user to fetch"),
|
|
214
|
+
}),
|
|
215
|
+
execute: async (inputData, context) => {
|
|
216
|
+
// Access MCP authentication context
|
|
217
|
+
// When called directly via MCP: context.mcp.extra
|
|
218
|
+
// When called via agent: context.requestContext.get('mcp.extra')
|
|
219
|
+
const mcpExtra = context?.mcp?.extra || context?.requestContext?.get("mcp.extra");
|
|
220
|
+
const authInfo = mcpExtra?.authInfo;
|
|
221
|
+
|
|
222
|
+
if (!authInfo?.token) {
|
|
223
|
+
throw new Error("Authentication required");
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
const response = await fetch(`https://api.example.com/users/${inputData.userId}`, {
|
|
227
|
+
headers: {
|
|
228
|
+
Authorization: `Bearer ${authInfo.token}`,
|
|
229
|
+
},
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
return response.json();
|
|
233
|
+
},
|
|
234
|
+
});
|
|
235
|
+
```
|
|
236
|
+
|
|
189
237
|
## Methods
|
|
190
238
|
|
|
191
239
|
These are the functions you can call on an `MCPServer` instance to control its behavior and get information.
|
|
@@ -420,11 +468,11 @@ const server = new MCPServer({
|
|
|
420
468
|
|
|
421
469
|
serve(async (req) => {
|
|
422
470
|
const url = new URL(req.url);
|
|
423
|
-
|
|
471
|
+
|
|
424
472
|
if (url.pathname === "/mcp") {
|
|
425
473
|
// Convert Deno Request to Node.js-compatible format
|
|
426
474
|
const { req: nodeReq, res: nodeRes } = toReqRes(req);
|
|
427
|
-
|
|
475
|
+
|
|
428
476
|
await server.startHTTP({
|
|
429
477
|
url,
|
|
430
478
|
httpPath: "/mcp",
|
|
@@ -434,10 +482,10 @@ serve(async (req) => {
|
|
|
434
482
|
serverless: true, // ← Enable stateless mode for serverless
|
|
435
483
|
},
|
|
436
484
|
});
|
|
437
|
-
|
|
485
|
+
|
|
438
486
|
return toFetchResponse(nodeRes);
|
|
439
487
|
}
|
|
440
|
-
|
|
488
|
+
|
|
441
489
|
return new Response("Not found", { status: 404 });
|
|
442
490
|
});
|
|
443
491
|
```
|
|
@@ -918,7 +966,7 @@ await serverWithPrompts.prompts.notifyListChanged();
|
|
|
918
966
|
|
|
919
967
|
## Examples
|
|
920
968
|
|
|
921
|
-
For practical examples of setting up and deploying an MCPServer, see the [
|
|
969
|
+
For practical examples of setting up and deploying an MCPServer, see the [Publishing an MCP Server guide](/docs/v1/mcp/publishing-mcp-server).
|
|
922
970
|
|
|
923
971
|
The example at the beginning of this page also demonstrates how to instantiate `MCPServer` with both tools and agents.
|
|
924
972
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Reference: createVectorQueryTool() | Tools & MCP
|
|
2
|
+
title: "Reference: createVectorQueryTool() | Tools & MCP"
|
|
3
3
|
description: Documentation for the Vector Query Tool in Mastra, which facilitates semantic search over vector stores with filtering and reranking capabilities.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -13,13 +13,13 @@ The `createVectorQueryTool()` function creates a tool for semantic search over v
|
|
|
13
13
|
## Basic Usage
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import { openai } from "@ai-sdk/openai";
|
|
17
16
|
import { createVectorQueryTool } from "@mastra/rag";
|
|
17
|
+
import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
|
|
18
18
|
|
|
19
19
|
const queryTool = createVectorQueryTool({
|
|
20
20
|
vectorStoreName: "pinecone",
|
|
21
21
|
indexName: "docs",
|
|
22
|
-
model:
|
|
22
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
23
23
|
});
|
|
24
24
|
```
|
|
25
25
|
|
|
@@ -303,7 +303,7 @@ The tool determines the number of results to return based on the user's query, w
|
|
|
303
303
|
const queryTool = createVectorQueryTool({
|
|
304
304
|
vectorStoreName: "pinecone",
|
|
305
305
|
indexName: "docs",
|
|
306
|
-
model:
|
|
306
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
307
307
|
enableFilter: true,
|
|
308
308
|
});
|
|
309
309
|
```
|
|
@@ -334,9 +334,9 @@ For an example of how agent-driven filtering works, see the [Agent-Driven Metada
|
|
|
334
334
|
const queryTool = createVectorQueryTool({
|
|
335
335
|
vectorStoreName: "milvus",
|
|
336
336
|
indexName: "documentation",
|
|
337
|
-
model:
|
|
337
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
338
338
|
reranker: {
|
|
339
|
-
model: openai
|
|
339
|
+
model: "openai/gpt-5.1",
|
|
340
340
|
options: {
|
|
341
341
|
weights: {
|
|
342
342
|
semantic: 0.5, // Semantic relevance weight
|
|
@@ -364,7 +364,7 @@ The reranker processes the initial vector search results and returns a reordered
|
|
|
364
364
|
const queryTool = createVectorQueryTool({
|
|
365
365
|
vectorStoreName: "pinecone",
|
|
366
366
|
indexName: "docs",
|
|
367
|
-
model:
|
|
367
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
368
368
|
description:
|
|
369
369
|
"Search through document archives to find relevant information for answering questions about company policies and procedures",
|
|
370
370
|
});
|
|
@@ -384,7 +384,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
|
|
|
384
384
|
const pineconeQueryTool = createVectorQueryTool({
|
|
385
385
|
vectorStoreName: "pinecone",
|
|
386
386
|
indexName: "docs",
|
|
387
|
-
model:
|
|
387
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
388
388
|
databaseConfig: {
|
|
389
389
|
pinecone: {
|
|
390
390
|
namespace: "production", // Organize vectors by environment
|
|
@@ -411,7 +411,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
|
|
|
411
411
|
const pgVectorQueryTool = createVectorQueryTool({
|
|
412
412
|
vectorStoreName: "postgres",
|
|
413
413
|
indexName: "embeddings",
|
|
414
|
-
model:
|
|
414
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
415
415
|
databaseConfig: {
|
|
416
416
|
pgvector: {
|
|
417
417
|
minScore: 0.7, // Only return results above 70% similarity
|
|
@@ -437,7 +437,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
|
|
|
437
437
|
const chromaQueryTool = createVectorQueryTool({
|
|
438
438
|
vectorStoreName: "chroma",
|
|
439
439
|
indexName: "documents",
|
|
440
|
-
model:
|
|
440
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
441
441
|
databaseConfig: {
|
|
442
442
|
chroma: {
|
|
443
443
|
where: { // Metadata filtering
|
|
@@ -467,7 +467,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
|
|
|
467
467
|
const multiDbQueryTool = createVectorQueryTool({
|
|
468
468
|
vectorStoreName: "dynamic-store", // Will be set at runtime
|
|
469
469
|
indexName: "docs",
|
|
470
|
-
model:
|
|
470
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
471
471
|
databaseConfig: {
|
|
472
472
|
pinecone: {
|
|
473
473
|
namespace: "default"
|
|
@@ -501,7 +501,7 @@ import { RequestContext } from "@mastra/core/request-context";
|
|
|
501
501
|
const queryTool = createVectorQueryTool({
|
|
502
502
|
vectorStoreName: "pinecone",
|
|
503
503
|
indexName: "docs",
|
|
504
|
-
|
|
504
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
505
505
|
databaseConfig: {
|
|
506
506
|
pinecone: {
|
|
507
507
|
namespace: "development",
|
|
@@ -534,7 +534,7 @@ This approach allows you to:
|
|
|
534
534
|
const queryTool = createVectorQueryTool({
|
|
535
535
|
vectorStoreName: "pinecone",
|
|
536
536
|
indexName: "docs",
|
|
537
|
-
|
|
537
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
538
538
|
});
|
|
539
539
|
```
|
|
540
540
|
|
|
@@ -555,7 +555,7 @@ requestContext.set("filter", { category: "docs" });
|
|
|
555
555
|
requestContext.set("databaseConfig", {
|
|
556
556
|
pinecone: { namespace: "runtime-namespace" },
|
|
557
557
|
});
|
|
558
|
-
requestContext.set("model", openai
|
|
558
|
+
requestContext.set("model", "openai/text-embedding-3-small");
|
|
559
559
|
|
|
560
560
|
const response = await agent.generate(
|
|
561
561
|
"Find documentation from the knowledge base.",
|
|
@@ -568,14 +568,13 @@ const response = await agent.generate(
|
|
|
568
568
|
For more information on request context, please see:
|
|
569
569
|
|
|
570
570
|
- [Agent Request Context](/docs/v1/server-db/request-context)
|
|
571
|
-
- [
|
|
571
|
+
- [Request Context](/docs/v1/server-db/request-context#accessing-values-with-tools)
|
|
572
572
|
|
|
573
573
|
## Usage Without a Mastra Server
|
|
574
574
|
|
|
575
575
|
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
|
-
import { openai } from "@ai-sdk/openai";
|
|
579
578
|
import { RequestContext } from "@mastra/core/request-context";
|
|
580
579
|
import { createVectorQueryTool } from "@mastra/rag";
|
|
581
580
|
import { PgVector } from "@mastra/pg";
|
|
@@ -589,7 +588,7 @@ const vectorQueryTool = createVectorQueryTool({
|
|
|
589
588
|
vectorStoreName: "pgVector", // optional since we're passing in a store
|
|
590
589
|
vectorStore: pgVector,
|
|
591
590
|
indexName: "embeddings",
|
|
592
|
-
model:
|
|
591
|
+
model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
|
|
593
592
|
});
|
|
594
593
|
|
|
595
594
|
const requestContext = new RequestContext();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
title: "Reference: Chroma Vector Store | Vectors
|
|
2
|
+
title: "Reference: Chroma Vector Store | Vectors"
|
|
3
3
|
description: Documentation for the ChromaVector class in Mastra, which provides vector search using ChromaDB.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -335,6 +335,8 @@ interface IndexStats {
|
|
|
335
335
|
|
|
336
336
|
### updateVector()
|
|
337
337
|
|
|
338
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
339
|
+
|
|
338
340
|
<PropertiesTable
|
|
339
341
|
content={[
|
|
340
342
|
{
|
|
@@ -345,7 +347,14 @@ interface IndexStats {
|
|
|
345
347
|
{
|
|
346
348
|
name: "id",
|
|
347
349
|
type: "string",
|
|
348
|
-
|
|
350
|
+
isOptional: true,
|
|
351
|
+
description: "ID of the vector to update (mutually exclusive with filter)",
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: "filter",
|
|
355
|
+
type: "Record<string, any>",
|
|
356
|
+
isOptional: true,
|
|
357
|
+
description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
|
|
349
358
|
},
|
|
350
359
|
{
|
|
351
360
|
name: "update",
|
|
@@ -374,6 +383,24 @@ The `update` object can contain:
|
|
|
374
383
|
]}
|
|
375
384
|
/>
|
|
376
385
|
|
|
386
|
+
Example:
|
|
387
|
+
|
|
388
|
+
```typescript
|
|
389
|
+
// Update by ID
|
|
390
|
+
await vectorStore.updateVector({
|
|
391
|
+
indexName: 'docs',
|
|
392
|
+
id: 'vec_123',
|
|
393
|
+
update: { metadata: { status: 'reviewed' } }
|
|
394
|
+
});
|
|
395
|
+
|
|
396
|
+
// Update by filter
|
|
397
|
+
await vectorStore.updateVector({
|
|
398
|
+
indexName: 'docs',
|
|
399
|
+
filter: { source_id: 'manual.pdf' },
|
|
400
|
+
update: { metadata: { version: 2 } }
|
|
401
|
+
});
|
|
402
|
+
```
|
|
403
|
+
|
|
377
404
|
### deleteVector()
|
|
378
405
|
|
|
379
406
|
<PropertiesTable
|
|
@@ -391,6 +418,59 @@ The `update` object can contain:
|
|
|
391
418
|
]}
|
|
392
419
|
/>
|
|
393
420
|
|
|
421
|
+
### deleteVectors()
|
|
422
|
+
|
|
423
|
+
Delete multiple vectors by IDs or by metadata filter. This method enables bulk deletion and source-based vector management. Either `ids` or `filter` must be provided, but not both.
|
|
424
|
+
|
|
425
|
+
<PropertiesTable
|
|
426
|
+
content={[
|
|
427
|
+
{
|
|
428
|
+
name: "indexName",
|
|
429
|
+
type: "string",
|
|
430
|
+
description: "Name of the index containing the vectors to delete",
|
|
431
|
+
},
|
|
432
|
+
{
|
|
433
|
+
name: "ids",
|
|
434
|
+
type: "string[]",
|
|
435
|
+
isOptional: true,
|
|
436
|
+
description: "Array of vector IDs to delete (mutually exclusive with filter)",
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
name: "filter",
|
|
440
|
+
type: "Record<string, any>",
|
|
441
|
+
isOptional: true,
|
|
442
|
+
description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
|
|
443
|
+
},
|
|
444
|
+
]}
|
|
445
|
+
/>
|
|
446
|
+
|
|
447
|
+
Example:
|
|
448
|
+
|
|
449
|
+
```typescript
|
|
450
|
+
// Delete all chunks from a document
|
|
451
|
+
await vectorStore.deleteVectors({
|
|
452
|
+
indexName: 'docs',
|
|
453
|
+
filter: { source_id: 'manual.pdf' }
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
// Delete multiple vectors by ID
|
|
457
|
+
await vectorStore.deleteVectors({
|
|
458
|
+
indexName: 'docs',
|
|
459
|
+
ids: ['vec_1', 'vec_2', 'vec_3']
|
|
460
|
+
});
|
|
461
|
+
|
|
462
|
+
// Delete old temporary documents
|
|
463
|
+
await vectorStore.deleteVectors({
|
|
464
|
+
indexName: 'docs',
|
|
465
|
+
filter: {
|
|
466
|
+
$and: [
|
|
467
|
+
{ bucket: 'temp' },
|
|
468
|
+
{ indexed_at: { $lt: '2025-01-01' } }
|
|
469
|
+
]
|
|
470
|
+
}
|
|
471
|
+
});
|
|
472
|
+
```
|
|
473
|
+
|
|
394
474
|
## Response Types
|
|
395
475
|
|
|
396
476
|
Query results are returned in this format:
|