@mastra/mcp-docs-server 1.0.0-beta.9 → 1.0.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.
Files changed (541) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +3 -1
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +3 -1
  3. package/.docs/organized/changelogs/%40internal%2Fplayground.md +40 -0
  4. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
  5. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +3 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +287 -287
  7. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +299 -299
  8. package/.docs/organized/changelogs/%40mastra%2Fastra.md +53 -53
  9. package/.docs/organized/changelogs/%40mastra%2Fauth.md +38 -0
  10. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +66 -66
  11. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +522 -212
  12. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +662 -200
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +439 -234
  14. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +450 -211
  15. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +202 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +448 -22
  17. package/.docs/organized/changelogs/%40mastra%2Fcore.md +3359 -289
  18. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +60 -60
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +289 -289
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +90 -90
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +74 -74
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +70 -70
  23. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +248 -221
  24. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +70 -0
  25. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +403 -225
  26. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +72 -0
  27. package/.docs/organized/changelogs/%40mastra%2Fevals.md +145 -145
  28. package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +54 -0
  29. package/.docs/organized/changelogs/%40mastra%2Flance.md +456 -226
  30. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +625 -229
  31. package/.docs/organized/changelogs/%40mastra%2Floggers.md +71 -71
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +247 -247
  33. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +28 -28
  34. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +281 -281
  35. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +354 -156
  36. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +545 -212
  37. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +481 -202
  38. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +194 -194
  39. package/.docs/organized/changelogs/%40mastra%2Fpg.md +781 -235
  40. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +198 -198
  41. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +655 -248
  42. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +163 -163
  43. package/.docs/organized/changelogs/%40mastra%2Frag.md +310 -310
  44. package/.docs/organized/changelogs/%40mastra%2Freact.md +328 -237
  45. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +64 -0
  46. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +160 -0
  47. package/.docs/organized/changelogs/%40mastra%2Fserver.md +850 -239
  48. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +57 -57
  49. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +479 -232
  50. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +53 -53
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +45 -45
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +45 -45
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +47 -47
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +110 -110
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +15 -0
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +98 -0
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +54 -54
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +46 -46
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +93 -93
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +47 -47
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +45 -45
  62. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +45 -45
  63. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +45 -45
  64. package/.docs/organized/changelogs/create-mastra.md +215 -215
  65. package/.docs/organized/changelogs/mastra.md +278 -278
  66. package/.docs/organized/code-examples/a2a.md +2 -2
  67. package/.docs/organized/code-examples/agent-v6.md +221 -0
  68. package/.docs/organized/code-examples/agui.md +4 -4
  69. package/.docs/organized/code-examples/ai-elements.md +3 -3
  70. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  71. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -3
  72. package/.docs/organized/code-examples/assistant-ui.md +5 -5
  73. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  74. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  75. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +3 -3
  76. package/.docs/organized/code-examples/client-side-tools.md +4 -4
  77. package/.docs/organized/code-examples/crypto-chatbot.md +5 -5
  78. package/.docs/organized/code-examples/experimental-auth-weather-agent.md +1 -1
  79. package/.docs/organized/code-examples/fireworks-r1.md +2 -2
  80. package/.docs/organized/code-examples/heads-up-game.md +7 -7
  81. package/.docs/organized/code-examples/inngest.md +1075 -0
  82. package/.docs/organized/code-examples/mcp-configuration.md +1 -1
  83. package/.docs/organized/code-examples/mcp-server-adapters.md +2 -2
  84. package/.docs/organized/code-examples/memory-per-resource-example.md +3 -3
  85. package/.docs/organized/code-examples/memory-todo-agent.md +1 -1
  86. package/.docs/organized/code-examples/memory-with-context.md +1 -1
  87. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  88. package/.docs/organized/code-examples/openapi-spec-writer.md +3 -3
  89. package/.docs/organized/code-examples/quick-start.md +1 -5
  90. package/.docs/organized/code-examples/server-app-access.md +2 -2
  91. package/.docs/organized/code-examples/server-express-adapter.md +1 -1
  92. package/.docs/organized/code-examples/server-fastify-adapter.md +83 -0
  93. package/.docs/organized/code-examples/server-hono-adapter.md +2 -2
  94. package/.docs/organized/code-examples/server-koa-adapter.md +94 -0
  95. package/.docs/organized/code-examples/stock-price-tool.md +21 -2
  96. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  97. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  98. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  99. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  100. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  101. package/.docs/raw/agents/adding-voice.mdx +24 -6
  102. package/.docs/raw/agents/agent-approval.mdx +209 -12
  103. package/.docs/raw/agents/agent-memory.mdx +36 -32
  104. package/.docs/raw/agents/guardrails.mdx +105 -56
  105. package/.docs/raw/agents/network-approval.mdx +281 -0
  106. package/.docs/raw/agents/networks.mdx +69 -13
  107. package/.docs/raw/agents/overview.mdx +43 -25
  108. package/.docs/raw/agents/processors.mdx +234 -17
  109. package/.docs/raw/agents/structured-output.mdx +78 -8
  110. package/.docs/raw/agents/using-tools.mdx +67 -6
  111. package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
  112. package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
  113. package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
  114. package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
  115. package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
  116. package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
  117. package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
  118. package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
  119. package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +3 -3
  120. package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
  121. package/.docs/raw/course/03-agent-memory/07-understanding-memory-threads.md +35 -0
  122. package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
  123. package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +1 -1
  124. package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +4 -5
  125. package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -1
  126. package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +3 -4
  127. package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +3 -4
  128. package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +3 -4
  129. package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +3 -4
  130. package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
  131. package/.docs/raw/deployment/cloud-providers.mdx +22 -0
  132. package/.docs/raw/deployment/mastra-server.mdx +140 -0
  133. package/.docs/raw/deployment/monorepo.mdx +106 -42
  134. package/.docs/raw/deployment/overview.mdx +35 -48
  135. package/.docs/raw/deployment/web-framework.mdx +17 -19
  136. package/.docs/raw/deployment/workflow-runners.mdx +16 -0
  137. package/.docs/raw/evals/built-in-scorers.mdx +2 -0
  138. package/.docs/raw/evals/custom-scorers.mdx +60 -12
  139. package/.docs/raw/evals/overview.mdx +6 -6
  140. package/.docs/raw/evals/running-in-ci.mdx +4 -2
  141. package/.docs/raw/getting-started/manual-install.mdx +20 -20
  142. package/.docs/raw/getting-started/mcp-docs-server.mdx +59 -2
  143. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  144. package/.docs/raw/getting-started/start.mdx +17 -1
  145. package/.docs/raw/getting-started/studio.mdx +6 -35
  146. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +23 -33
  147. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1034 -80
  148. package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
  149. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +32 -11
  150. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
  151. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
  152. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
  153. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
  154. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +18 -23
  155. package/.docs/raw/guides/deployment/index.mdx +32 -0
  156. package/.docs/raw/guides/deployment/inngest.mdx +673 -0
  157. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
  158. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
  159. package/.docs/raw/guides/getting-started/astro.mdx +292 -451
  160. package/.docs/raw/guides/getting-started/express.mdx +72 -153
  161. package/.docs/raw/guides/getting-started/hono.mdx +227 -0
  162. package/.docs/raw/guides/getting-started/next-js.mdx +173 -61
  163. package/.docs/raw/guides/getting-started/nuxt.mdx +505 -0
  164. package/.docs/raw/guides/getting-started/quickstart.mdx +5 -5
  165. package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
  166. package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
  167. package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
  168. package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
  169. package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
  170. package/.docs/raw/guides/guide/research-assistant.mdx +20 -20
  171. package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
  172. package/.docs/raw/guides/guide/web-search.mdx +38 -38
  173. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
  174. package/.docs/raw/guides/index.mdx +0 -1
  175. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
  176. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +105 -4
  177. package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +15 -1
  178. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +170 -0
  179. package/.docs/raw/guides/migrations/upgrade-to-v1/deployment.mdx +42 -0
  180. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +0 -35
  181. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +40 -3
  182. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +17 -2
  183. package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +11 -0
  184. package/.docs/raw/guides/migrations/upgrade-to-v1/rag.mdx +47 -0
  185. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +271 -25
  186. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +72 -17
  187. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +46 -1
  188. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +50 -7
  189. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
  190. package/.docs/raw/index.mdx +2 -2
  191. package/.docs/raw/mastra-cloud/deployment.mdx +86 -0
  192. package/.docs/raw/mastra-cloud/observability.mdx +43 -0
  193. package/.docs/raw/mastra-cloud/overview.mdx +31 -0
  194. package/.docs/raw/mastra-cloud/setup.mdx +64 -0
  195. package/.docs/raw/mastra-cloud/studio.mdx +35 -0
  196. package/.docs/raw/mcp/overview.mdx +60 -25
  197. package/.docs/raw/mcp/publishing-mcp-server.mdx +7 -4
  198. package/.docs/raw/memory/memory-processors.mdx +17 -12
  199. package/.docs/raw/memory/message-history.mdx +72 -0
  200. package/.docs/raw/memory/overview.mdx +38 -76
  201. package/.docs/raw/memory/semantic-recall.mdx +65 -52
  202. package/.docs/raw/memory/storage.mdx +248 -0
  203. package/.docs/raw/memory/working-memory.mdx +24 -13
  204. package/.docs/raw/observability/logging.mdx +16 -15
  205. package/.docs/raw/observability/overview.mdx +27 -7
  206. package/.docs/raw/observability/tracing/bridges/otel.mdx +7 -4
  207. package/.docs/raw/observability/tracing/exporters/arize.mdx +61 -24
  208. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +32 -22
  209. package/.docs/raw/observability/tracing/exporters/cloud.mdx +24 -5
  210. package/.docs/raw/observability/tracing/exporters/datadog.mdx +175 -0
  211. package/.docs/raw/observability/tracing/exporters/default.mdx +28 -7
  212. package/.docs/raw/observability/tracing/exporters/laminar.mdx +89 -0
  213. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +31 -22
  214. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +33 -3
  215. package/.docs/raw/observability/tracing/exporters/otel.mdx +194 -22
  216. package/.docs/raw/observability/tracing/exporters/posthog.mdx +32 -22
  217. package/.docs/raw/observability/tracing/exporters/sentry.mdx +198 -0
  218. package/.docs/raw/observability/tracing/overview.mdx +388 -108
  219. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +27 -7
  220. package/.docs/raw/rag/chunking-and-embedding.mdx +22 -33
  221. package/.docs/raw/rag/graph-rag.mdx +223 -0
  222. package/.docs/raw/rag/overview.mdx +6 -3
  223. package/.docs/raw/rag/retrieval.mdx +53 -57
  224. package/.docs/raw/rag/vector-databases.mdx +55 -31
  225. package/.docs/raw/reference/agents/agent.mdx +17 -14
  226. package/.docs/raw/reference/agents/generate.mdx +172 -44
  227. package/.docs/raw/reference/agents/generateLegacy.mdx +5 -3
  228. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +5 -3
  229. package/.docs/raw/reference/agents/getDefaultOptions.mdx +5 -3
  230. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +5 -3
  231. package/.docs/raw/reference/agents/getDescription.mdx +3 -1
  232. package/.docs/raw/reference/agents/getInstructions.mdx +5 -3
  233. package/.docs/raw/reference/agents/getLLM.mdx +5 -3
  234. package/.docs/raw/reference/agents/getMemory.mdx +5 -3
  235. package/.docs/raw/reference/agents/getModel.mdx +5 -3
  236. package/.docs/raw/reference/agents/getTools.mdx +4 -2
  237. package/.docs/raw/reference/agents/getVoice.mdx +4 -2
  238. package/.docs/raw/reference/agents/listAgents.mdx +4 -2
  239. package/.docs/raw/reference/agents/listScorers.mdx +5 -3
  240. package/.docs/raw/reference/agents/listTools.mdx +4 -2
  241. package/.docs/raw/reference/agents/listWorkflows.mdx +4 -2
  242. package/.docs/raw/reference/agents/network.mdx +113 -1
  243. package/.docs/raw/reference/ai-sdk/chat-route.mdx +6 -3
  244. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +4 -2
  245. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +4 -2
  246. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +5 -3
  247. package/.docs/raw/reference/ai-sdk/network-route.mdx +6 -3
  248. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +10 -6
  249. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +130 -0
  250. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +110 -0
  251. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +122 -0
  252. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +7 -4
  253. package/.docs/raw/reference/auth/auth0.mdx +5 -3
  254. package/.docs/raw/reference/auth/clerk.mdx +5 -3
  255. package/.docs/raw/reference/auth/firebase.mdx +6 -5
  256. package/.docs/raw/reference/auth/jwt.mdx +5 -3
  257. package/.docs/raw/reference/auth/supabase.mdx +5 -3
  258. package/.docs/raw/reference/auth/workos.mdx +5 -3
  259. package/.docs/raw/reference/cli/create-mastra.mdx +12 -10
  260. package/.docs/raw/reference/cli/mastra.mdx +63 -15
  261. package/.docs/raw/reference/client-js/agents.mdx +77 -35
  262. package/.docs/raw/reference/client-js/error-handling.mdx +3 -3
  263. package/.docs/raw/reference/client-js/logs.mdx +2 -0
  264. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -2
  265. package/.docs/raw/reference/client-js/memory.mdx +43 -1
  266. package/.docs/raw/reference/client-js/observability.mdx +2 -0
  267. package/.docs/raw/reference/client-js/telemetry.mdx +2 -0
  268. package/.docs/raw/reference/client-js/tools.mdx +2 -0
  269. package/.docs/raw/reference/client-js/vectors.mdx +2 -0
  270. package/.docs/raw/reference/client-js/workflows.mdx +47 -3
  271. package/.docs/raw/reference/configuration.mdx +761 -0
  272. package/.docs/raw/reference/core/addGateway.mdx +2 -0
  273. package/.docs/raw/reference/core/getAgent.mdx +3 -1
  274. package/.docs/raw/reference/core/getAgentById.mdx +3 -1
  275. package/.docs/raw/reference/core/getDeployer.mdx +3 -1
  276. package/.docs/raw/reference/core/getGateway.mdx +2 -0
  277. package/.docs/raw/reference/core/getGatewayById.mdx +2 -0
  278. package/.docs/raw/reference/core/getLogger.mdx +3 -1
  279. package/.docs/raw/reference/core/getMCPServer.mdx +3 -1
  280. package/.docs/raw/reference/core/getMCPServerById.mdx +3 -1
  281. package/.docs/raw/reference/core/getMemory.mdx +7 -3
  282. package/.docs/raw/reference/core/getScorer.mdx +2 -0
  283. package/.docs/raw/reference/core/getScorerById.mdx +2 -0
  284. package/.docs/raw/reference/core/getServer.mdx +6 -4
  285. package/.docs/raw/reference/core/getStorage.mdx +5 -3
  286. package/.docs/raw/reference/core/getStoredAgentById.mdx +6 -4
  287. package/.docs/raw/reference/core/getTelemetry.mdx +3 -1
  288. package/.docs/raw/reference/core/getVector.mdx +3 -1
  289. package/.docs/raw/reference/core/getWorkflow.mdx +3 -1
  290. package/.docs/raw/reference/core/listAgents.mdx +3 -1
  291. package/.docs/raw/reference/core/listGateways.mdx +2 -0
  292. package/.docs/raw/reference/core/listLogs.mdx +3 -1
  293. package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -1
  294. package/.docs/raw/reference/core/listMCPServers.mdx +3 -1
  295. package/.docs/raw/reference/core/listMemory.mdx +8 -4
  296. package/.docs/raw/reference/core/listScorers.mdx +2 -0
  297. package/.docs/raw/reference/core/listStoredAgents.mdx +7 -5
  298. package/.docs/raw/reference/core/listVectors.mdx +3 -1
  299. package/.docs/raw/reference/core/listWorkflows.mdx +3 -1
  300. package/.docs/raw/reference/core/mastra-class.mdx +27 -20
  301. package/.docs/raw/reference/core/mastra-model-gateway.mdx +2 -0
  302. package/.docs/raw/reference/core/setLogger.mdx +3 -1
  303. package/.docs/raw/reference/core/setStorage.mdx +6 -4
  304. package/.docs/raw/reference/deployer/cloudflare.mdx +22 -53
  305. package/.docs/raw/reference/deployer/deployer.mdx +2 -1
  306. package/.docs/raw/reference/deployer/netlify.mdx +4 -1
  307. package/.docs/raw/reference/deployer/vercel.mdx +5 -4
  308. package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -1
  309. package/.docs/raw/reference/evals/answer-similarity.mdx +4 -1
  310. package/.docs/raw/reference/evals/bias.mdx +4 -1
  311. package/.docs/raw/reference/evals/completeness.mdx +4 -1
  312. package/.docs/raw/reference/evals/content-similarity.mdx +4 -1
  313. package/.docs/raw/reference/evals/context-precision.mdx +4 -1
  314. package/.docs/raw/reference/evals/context-relevance.mdx +2 -0
  315. package/.docs/raw/reference/evals/create-scorer.mdx +11 -3
  316. package/.docs/raw/reference/evals/faithfulness.mdx +4 -1
  317. package/.docs/raw/reference/evals/hallucination.mdx +4 -1
  318. package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -1
  319. package/.docs/raw/reference/evals/mastra-scorer.mdx +2 -0
  320. package/.docs/raw/reference/evals/noise-sensitivity.mdx +2 -0
  321. package/.docs/raw/reference/evals/prompt-alignment.mdx +9 -7
  322. package/.docs/raw/reference/evals/run-evals.mdx +3 -1
  323. package/.docs/raw/reference/evals/scorer-utils.mdx +3 -0
  324. package/.docs/raw/reference/evals/textual-difference.mdx +4 -1
  325. package/.docs/raw/reference/evals/tone-consistency.mdx +4 -1
  326. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +25 -23
  327. package/.docs/raw/reference/evals/toxicity.mdx +4 -1
  328. package/.docs/raw/reference/index.mdx +2 -1
  329. package/.docs/raw/reference/logging/pino-logger.mdx +10 -8
  330. package/.docs/raw/reference/memory/clone-utilities.mdx +345 -0
  331. package/.docs/raw/reference/memory/cloneThread.mdx +237 -0
  332. package/.docs/raw/reference/memory/createThread.mdx +6 -4
  333. package/.docs/raw/reference/memory/deleteMessages.mdx +4 -2
  334. package/.docs/raw/reference/memory/getThreadById.mdx +3 -1
  335. package/.docs/raw/reference/memory/listThreads.mdx +187 -0
  336. package/.docs/raw/reference/memory/memory-class.mdx +27 -20
  337. package/.docs/raw/reference/memory/recall.mdx +6 -4
  338. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +6 -2
  339. package/.docs/raw/reference/observability/tracing/configuration.mdx +51 -0
  340. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +25 -6
  341. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +23 -2
  342. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +10 -0
  343. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +3 -0
  344. package/.docs/raw/reference/observability/tracing/exporters/datadog.mdx +172 -0
  345. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +10 -0
  346. package/.docs/raw/reference/observability/tracing/exporters/laminar.mdx +139 -0
  347. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +26 -4
  348. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +10 -0
  349. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +51 -34
  350. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +25 -4
  351. package/.docs/raw/reference/observability/tracing/exporters/sentry.mdx +224 -0
  352. package/.docs/raw/reference/observability/tracing/instances.mdx +2 -0
  353. package/.docs/raw/reference/observability/tracing/interfaces.mdx +20 -0
  354. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +2 -0
  355. package/.docs/raw/reference/observability/tracing/spans.mdx +2 -0
  356. package/.docs/raw/reference/processors/batch-parts-processor.mdx +4 -2
  357. package/.docs/raw/reference/processors/language-detector.mdx +6 -3
  358. package/.docs/raw/reference/processors/message-history-processor.mdx +5 -2
  359. package/.docs/raw/reference/processors/moderation-processor.mdx +6 -4
  360. package/.docs/raw/reference/processors/pii-detector.mdx +6 -4
  361. package/.docs/raw/reference/processors/processor-interface.mdx +326 -23
  362. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +5 -3
  363. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +7 -2
  364. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +5 -3
  365. package/.docs/raw/reference/processors/token-limiter-processor.mdx +62 -19
  366. package/.docs/raw/reference/processors/tool-call-filter.mdx +5 -3
  367. package/.docs/raw/reference/processors/unicode-normalizer.mdx +6 -3
  368. package/.docs/raw/reference/processors/working-memory-processor.mdx +6 -3
  369. package/.docs/raw/reference/rag/chunk.mdx +7 -6
  370. package/.docs/raw/reference/rag/database-config.mdx +8 -6
  371. package/.docs/raw/reference/rag/document.mdx +2 -0
  372. package/.docs/raw/reference/rag/embeddings.mdx +2 -0
  373. package/.docs/raw/reference/rag/extract-params.mdx +57 -3
  374. package/.docs/raw/reference/rag/graph-rag.mdx +2 -0
  375. package/.docs/raw/reference/rag/metadata-filters.mdx +27 -7
  376. package/.docs/raw/reference/rag/rerank.mdx +2 -0
  377. package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -0
  378. package/.docs/raw/reference/server/create-route.mdx +34 -18
  379. package/.docs/raw/reference/server/express-adapter.mdx +27 -51
  380. package/.docs/raw/reference/server/fastify-adapter.mdx +130 -0
  381. package/.docs/raw/reference/server/hono-adapter.mdx +27 -51
  382. package/.docs/raw/reference/server/koa-adapter.mdx +129 -0
  383. package/.docs/raw/reference/server/mastra-server.mdx +52 -34
  384. package/.docs/raw/reference/server/routes.mdx +73 -10
  385. package/.docs/raw/reference/storage/cloudflare-d1.mdx +10 -5
  386. package/.docs/raw/reference/storage/cloudflare.mdx +12 -2
  387. package/.docs/raw/reference/storage/composite.mdx +245 -0
  388. package/.docs/raw/reference/storage/convex.mdx +8 -6
  389. package/.docs/raw/reference/storage/dynamodb.mdx +134 -8
  390. package/.docs/raw/reference/storage/lance.mdx +9 -5
  391. package/.docs/raw/reference/storage/libsql.mdx +76 -54
  392. package/.docs/raw/reference/storage/mongodb.mdx +115 -16
  393. package/.docs/raw/reference/storage/mssql.mdx +11 -6
  394. package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +15 -111
  395. package/.docs/raw/reference/storage/postgresql.mdx +228 -83
  396. package/.docs/raw/reference/storage/upstash.mdx +78 -2
  397. package/.docs/raw/reference/streaming/ChunkType.mdx +31 -3
  398. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +67 -6
  399. package/.docs/raw/reference/streaming/agents/stream.mdx +48 -51
  400. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +5 -3
  401. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -1
  402. package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +3 -1
  403. package/.docs/raw/reference/streaming/workflows/stream.mdx +37 -22
  404. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +6 -4
  405. package/.docs/raw/reference/templates/overview.mdx +3 -2
  406. package/.docs/raw/reference/tools/client.mdx +3 -0
  407. package/.docs/raw/reference/tools/create-tool.mdx +127 -5
  408. package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -0
  409. package/.docs/raw/reference/tools/graph-rag-tool.mdx +40 -3
  410. package/.docs/raw/reference/tools/mcp-client.mdx +110 -1
  411. package/.docs/raw/reference/tools/mcp-server.mdx +278 -24
  412. package/.docs/raw/reference/tools/vector-query-tool.mdx +68 -4
  413. package/.docs/raw/reference/vectors/astra.mdx +5 -3
  414. package/.docs/raw/reference/vectors/chroma.mdx +5 -3
  415. package/.docs/raw/reference/vectors/convex.mdx +14 -12
  416. package/.docs/raw/reference/vectors/couchbase.mdx +7 -5
  417. package/.docs/raw/reference/vectors/duckdb.mdx +12 -10
  418. package/.docs/raw/reference/vectors/elasticsearch.mdx +12 -4
  419. package/.docs/raw/reference/vectors/lance.mdx +6 -4
  420. package/.docs/raw/reference/vectors/libsql.mdx +66 -13
  421. package/.docs/raw/reference/vectors/mongodb.mdx +90 -10
  422. package/.docs/raw/reference/vectors/opensearch.mdx +30 -3
  423. package/.docs/raw/reference/vectors/pg.mdx +58 -6
  424. package/.docs/raw/reference/vectors/pinecone.mdx +23 -8
  425. package/.docs/raw/reference/vectors/qdrant.mdx +148 -4
  426. package/.docs/raw/reference/vectors/s3vectors.mdx +8 -6
  427. package/.docs/raw/reference/vectors/turbopuffer.mdx +6 -4
  428. package/.docs/raw/reference/vectors/upstash.mdx +60 -6
  429. package/.docs/raw/reference/vectors/vectorize.mdx +5 -3
  430. package/.docs/raw/reference/voice/azure.mdx +2 -0
  431. package/.docs/raw/reference/voice/cloudflare.mdx +2 -0
  432. package/.docs/raw/reference/voice/composite-voice.mdx +4 -0
  433. package/.docs/raw/reference/voice/deepgram.mdx +2 -0
  434. package/.docs/raw/reference/voice/elevenlabs.mdx +2 -0
  435. package/.docs/raw/reference/voice/google-gemini-live.mdx +3 -0
  436. package/.docs/raw/reference/voice/google.mdx +2 -0
  437. package/.docs/raw/reference/voice/mastra-voice.mdx +2 -0
  438. package/.docs/raw/reference/voice/murf.mdx +2 -0
  439. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -0
  440. package/.docs/raw/reference/voice/openai.mdx +2 -0
  441. package/.docs/raw/reference/voice/playai.mdx +2 -0
  442. package/.docs/raw/reference/voice/sarvam.mdx +2 -0
  443. package/.docs/raw/reference/voice/speechify.mdx +2 -0
  444. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -0
  445. package/.docs/raw/reference/voice/voice.addTools.mdx +3 -0
  446. package/.docs/raw/reference/voice/voice.answer.mdx +4 -0
  447. package/.docs/raw/reference/voice/voice.close.mdx +3 -0
  448. package/.docs/raw/reference/voice/voice.connect.mdx +5 -1
  449. package/.docs/raw/reference/voice/voice.events.mdx +2 -0
  450. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +3 -0
  451. package/.docs/raw/reference/voice/voice.listen.mdx +6 -0
  452. package/.docs/raw/reference/voice/voice.off.mdx +2 -0
  453. package/.docs/raw/reference/voice/voice.on.mdx +5 -1
  454. package/.docs/raw/reference/voice/voice.send.mdx +4 -0
  455. package/.docs/raw/reference/voice/voice.speak.mdx +6 -0
  456. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -0
  457. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +55 -5
  458. package/.docs/raw/reference/workflows/run-methods/restart.mdx +3 -3
  459. package/.docs/raw/reference/workflows/run-methods/resume.mdx +6 -4
  460. package/.docs/raw/reference/workflows/run-methods/start.mdx +7 -5
  461. package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +145 -0
  462. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +10 -8
  463. package/.docs/raw/reference/workflows/run.mdx +11 -3
  464. package/.docs/raw/reference/workflows/step.mdx +56 -3
  465. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +3 -1
  466. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +3 -1
  467. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +39 -2
  468. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +3 -1
  469. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +3 -1
  470. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +71 -4
  471. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +9 -7
  472. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +3 -1
  473. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +4 -6
  474. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +4 -6
  475. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +3 -1
  476. package/.docs/raw/reference/workflows/workflow.mdx +193 -2
  477. package/.docs/raw/{auth → server/auth}/auth0.mdx +40 -21
  478. package/.docs/raw/{auth → server/auth}/clerk.mdx +37 -16
  479. package/.docs/raw/{auth → server/auth}/firebase.mdx +47 -25
  480. package/.docs/raw/{auth → server/auth}/index.mdx +8 -6
  481. package/.docs/raw/{auth → server/auth}/jwt.mdx +22 -10
  482. package/.docs/raw/{auth → server/auth}/supabase.mdx +45 -25
  483. package/.docs/raw/{auth → server/auth}/workos.mdx +39 -20
  484. package/.docs/raw/{server-db → server}/custom-adapters.mdx +40 -24
  485. package/.docs/raw/{server-db → server}/custom-api-routes.mdx +6 -6
  486. package/.docs/raw/{server-db → server}/mastra-client.mdx +35 -38
  487. package/.docs/raw/server/mastra-server.mdx +86 -0
  488. package/.docs/raw/{server-db → server}/middleware.mdx +11 -9
  489. package/.docs/raw/{server-db → server}/request-context.mdx +85 -43
  490. package/.docs/raw/{server-db → server}/server-adapters.mdx +154 -33
  491. package/.docs/raw/streaming/events.mdx +16 -7
  492. package/.docs/raw/streaming/overview.mdx +30 -17
  493. package/.docs/raw/streaming/tool-streaming.mdx +8 -6
  494. package/.docs/raw/streaming/workflow-streaming.mdx +8 -8
  495. package/.docs/raw/tools-mcp/advanced-usage.mdx +4 -2
  496. package/.docs/raw/tools-mcp/mcp-overview.mdx +46 -12
  497. package/.docs/raw/tools-mcp/overview.mdx +14 -13
  498. package/.docs/raw/voice/overview.mdx +17 -2
  499. package/.docs/raw/voice/speech-to-speech.mdx +5 -0
  500. package/.docs/raw/voice/speech-to-text.mdx +4 -0
  501. package/.docs/raw/voice/text-to-speech.mdx +3 -0
  502. package/.docs/raw/workflows/agents-and-tools.mdx +70 -21
  503. package/.docs/raw/workflows/control-flow.mdx +369 -34
  504. package/.docs/raw/workflows/error-handling.mdx +192 -18
  505. package/.docs/raw/workflows/human-in-the-loop.mdx +8 -7
  506. package/.docs/raw/workflows/input-data-mapping.mdx +9 -7
  507. package/.docs/raw/workflows/overview.mdx +80 -34
  508. package/.docs/raw/workflows/snapshots.mdx +19 -45
  509. package/.docs/raw/workflows/suspend-and-resume.mdx +14 -14
  510. package/.docs/raw/workflows/time-travel.mdx +25 -21
  511. package/.docs/raw/workflows/workflow-state.mdx +7 -8
  512. package/CHANGELOG.md +246 -0
  513. package/README.md +36 -0
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/logger.d.ts +3 -0
  516. package/dist/logger.d.ts.map +1 -1
  517. package/dist/stdio.js +746 -49
  518. package/dist/tools/course.d.ts.map +1 -1
  519. package/dist/tools/embedded-docs.d.ts +276 -0
  520. package/dist/tools/embedded-docs.d.ts.map +1 -0
  521. package/package.json +9 -8
  522. package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
  523. package/.docs/raw/deployment/building-mastra.mdx +0 -73
  524. package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
  525. package/.docs/raw/deployment/mastra-cloud/dashboard.mdx +0 -100
  526. package/.docs/raw/deployment/mastra-cloud/observability.mdx +0 -53
  527. package/.docs/raw/deployment/mastra-cloud/overview.mdx +0 -65
  528. package/.docs/raw/deployment/mastra-cloud/setting-up.mdx +0 -105
  529. package/.docs/raw/memory/conversation-history.mdx +0 -24
  530. package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
  531. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
  532. package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
  533. package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
  534. package/.docs/raw/memory/threads-and-resources.mdx +0 -95
  535. package/.docs/raw/reference/core/setTelemetry.mdx +0 -36
  536. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +0 -110
  537. package/.docs/raw/reference/memory/query.mdx +0 -189
  538. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +0 -70
  539. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +0 -66
  540. package/.docs/raw/server-db/mastra-server.mdx +0 -97
  541. package/.docs/raw/workflows/inngest-workflow.mdx +0 -363
@@ -1,6 +1,9 @@
1
1
  ---
2
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
+ packages:
5
+ - "@mastra/core"
6
+ - "@mastra/mcp"
4
7
  ---
5
8
 
6
9
  # MCPServer
@@ -41,6 +44,8 @@ const server = new MCPServer({
41
44
  id: "my-custom-server",
42
45
  name: "My Custom Server",
43
46
  version: "1.0.0",
47
+ description: "A server that provides weather data and agent capabilities",
48
+ instructions: "Use the available tools to help users with weather information and data processing tasks.",
44
49
  tools: { weatherTool },
45
50
  agents: { myAgent }, // this agent will become tool "ask_myAgent"
46
51
  workflows: {
@@ -102,6 +107,13 @@ The constructor accepts an `MCPServerConfig` object with the following propertie
102
107
  isOptional: true,
103
108
  description: "Optional description of what the MCP server does.",
104
109
  },
110
+ {
111
+ name: "instructions",
112
+ type: "string",
113
+ isOptional: true,
114
+ description:
115
+ "Optional instructions describing how to use the server and its features.",
116
+ },
105
117
  {
106
118
  name: "repository",
107
119
  type: "Repository", // { url: string; source: string; id: string; }
@@ -1179,44 +1191,286 @@ type ElicitResult = {
1179
1191
  };
1180
1192
  ```
1181
1193
 
1194
+ ## OAuth Protection
1195
+
1196
+ To protect your MCP server with OAuth authentication per the [MCP Auth Specification](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization), use the `createOAuthMiddleware` function:
1197
+
1198
+ ```typescript
1199
+ import http from "node:http";
1200
+ import { MCPServer, createOAuthMiddleware, createStaticTokenValidator } from "@mastra/mcp";
1201
+
1202
+ const mcpServer = new MCPServer({
1203
+ id: "protected-server",
1204
+ name: "Protected MCP Server",
1205
+ version: "1.0.0",
1206
+ tools: { /* your tools */ },
1207
+ });
1208
+
1209
+ // Create OAuth middleware
1210
+ const oauthMiddleware = createOAuthMiddleware({
1211
+ oauth: {
1212
+ resource: "https://mcp.example.com/mcp",
1213
+ authorizationServers: ["https://auth.example.com"],
1214
+ scopesSupported: ["mcp:read", "mcp:write"],
1215
+ resourceName: "My Protected MCP Server",
1216
+ validateToken: createStaticTokenValidator(["allowed-token-1"]),
1217
+ },
1218
+ mcpPath: "/mcp",
1219
+ });
1220
+
1221
+ // Create HTTP server with OAuth protection
1222
+ const httpServer = http.createServer(async (req, res) => {
1223
+ const url = new URL(req.url || "", "https://mcp.example.com");
1224
+
1225
+ // Apply OAuth middleware first
1226
+ const result = await oauthMiddleware(req, res, url);
1227
+ if (!result.proceed) return; // Middleware handled response (401, metadata, etc.)
1228
+
1229
+ // Token is valid, proceed to MCP handler
1230
+ await mcpServer.startHTTP({ url, httpPath: "/mcp", req, res });
1231
+ });
1232
+
1233
+ httpServer.listen(3000);
1234
+ ```
1235
+
1236
+ The middleware automatically:
1237
+
1238
+ - Serves **Protected Resource Metadata** at `/.well-known/oauth-protected-resource` (RFC 9728)
1239
+ - Returns `401 Unauthorized` with proper `WWW-Authenticate` headers when authentication is required
1240
+ - Validates bearer tokens using your provided validator
1241
+
1242
+ ### Token Validation
1243
+
1244
+ For production, use proper token validation:
1245
+
1246
+ ```typescript
1247
+ import { createOAuthMiddleware, createIntrospectionValidator } from "@mastra/mcp";
1248
+
1249
+ // Option 1: Token introspection (RFC 7662)
1250
+ const middleware = createOAuthMiddleware({
1251
+ oauth: {
1252
+ resource: "https://mcp.example.com/mcp",
1253
+ authorizationServers: ["https://auth.example.com"],
1254
+ validateToken: createIntrospectionValidator(
1255
+ "https://auth.example.com/oauth/introspect",
1256
+ { clientId: "mcp-server", clientSecret: "secret" }
1257
+ ),
1258
+ },
1259
+ });
1260
+
1261
+ // Option 2: Custom validation (JWT, database lookup, etc.)
1262
+ const customMiddleware = createOAuthMiddleware({
1263
+ oauth: {
1264
+ resource: "https://mcp.example.com/mcp",
1265
+ authorizationServers: ["https://auth.example.com"],
1266
+ validateToken: async (token, resource) => {
1267
+ const decoded = await verifyJWT(token);
1268
+ if (!decoded) {
1269
+ return { valid: false, error: "invalid_token" };
1270
+ }
1271
+ return {
1272
+ valid: true,
1273
+ scopes: decoded.scope?.split(" ") || [],
1274
+ subject: decoded.sub,
1275
+ };
1276
+ },
1277
+ },
1278
+ });
1279
+ ```
1280
+
1281
+ ### OAuth Middleware Options
1282
+
1283
+ <PropertiesTable
1284
+ content={[
1285
+ {
1286
+ name: "oauth.resource",
1287
+ type: "string",
1288
+ description: "The canonical URL of your MCP server. This is returned in Protected Resource Metadata.",
1289
+ },
1290
+ {
1291
+ name: "oauth.authorizationServers",
1292
+ type: "string[]",
1293
+ description: "URLs of authorization servers that can issue tokens for this resource.",
1294
+ },
1295
+ {
1296
+ name: "oauth.scopesSupported",
1297
+ type: "string[]",
1298
+ isOptional: true,
1299
+ defaultValue: "['mcp:read', 'mcp:write']",
1300
+ description: "Scopes supported by this MCP server.",
1301
+ },
1302
+ {
1303
+ name: "oauth.resourceName",
1304
+ type: "string",
1305
+ isOptional: true,
1306
+ description: "Human-readable name for this resource server.",
1307
+ },
1308
+ {
1309
+ name: "oauth.validateToken",
1310
+ type: "(token: string, resource: string) => Promise<TokenValidationResult>",
1311
+ isOptional: true,
1312
+ description: "Function to validate access tokens. If not provided, tokens are accepted without validation (NOT recommended for production).",
1313
+ },
1314
+ {
1315
+ name: "mcpPath",
1316
+ type: "string",
1317
+ isOptional: true,
1318
+ defaultValue: "'/mcp'",
1319
+ description: "Path where the MCP endpoint is served. Only requests to this path require authentication.",
1320
+ },
1321
+ ]}
1322
+ />
1323
+
1182
1324
  ## Authentication Context
1183
1325
 
1184
- Tools can access request metadata via `context.mcp.extra` when using HTTP-based transports:
1326
+ Tools can access request metadata via `context.mcp.extra` when using HTTP-based transports. This allows you to pass authentication info, user context, or any custom data from your HTTP middleware to your MCP tools.
1327
+
1328
+ ### How It Works
1329
+
1330
+ Whatever you set on `req.auth` in your HTTP middleware becomes available as `context.mcp.extra.authInfo` in your tools:
1331
+
1332
+ ```
1333
+ req.auth = { ... } → context?.mcp?.extra?.authInfo.extra = { ... }
1334
+ ```
1335
+
1336
+ ### Setting Up Authentication Middleware
1337
+
1338
+ To pass data to your tools, populate `req.auth` on the Node.js request object in your HTTP server middleware before calling `server.startHTTP()`.
1339
+
1340
+ ```typescript
1341
+ import express from "express";
1342
+
1343
+ const app = express();
1344
+
1345
+ // Auth middleware - set req.auth before the MCP handler
1346
+ app.use("/mcp", (req, res, next) => {
1347
+ const token = req.headers.authorization?.replace("Bearer ", "");
1348
+ const user = verifyToken(token);
1349
+
1350
+ // This entire object becomes context.mcp.extra.authInfo
1351
+ // @ts-ignore - req.auth is read by the MCP SDK
1352
+ req.auth = {
1353
+ token,
1354
+ userId: user.userId,
1355
+ email: user.email,
1356
+ };
1357
+ next();
1358
+ });
1359
+
1360
+ app.all("/mcp", async (req, res) => {
1361
+ const url = new URL(req.url, `http://${req.headers.host}`);
1362
+ await server.startHTTP({ url, httpPath: "/mcp", req, res });
1363
+ });
1364
+ ```
1365
+
1366
+ ### Accessing Auth Data in Tools
1367
+
1368
+ The `req.auth` object is available as `context.mcp.extra.authInfo` in your tool's execute function:
1185
1369
 
1186
1370
  ```typescript
1187
1371
  execute: async (inputData, context) => {
1188
- if (!context.mcp?.extra?.authInfo?.token) {
1189
- return "Authentication required";
1372
+ // Access the auth data you set in middleware
1373
+ const authInfo = context?.mcp?.extra?.authInfo;
1374
+
1375
+ if (!authInfo?.extra?.userId) {
1376
+ return { error: "Authentication required" };
1190
1377
  }
1191
1378
 
1192
- // Use the auth token
1379
+ // Use the auth data
1380
+ console.log("User ID:", authInfo.extra.userId);
1381
+ console.log("Email:", authInfo.extra.email);
1382
+
1193
1383
  const response = await fetch("/api/data", {
1194
- headers: { Authorization: `Bearer ${context.mcp.extra.authInfo.token}` },
1195
- signal: context.mcp.extra.signal,
1384
+ headers: { Authorization: `Bearer ${authInfo.token}` },
1385
+ signal: context?.mcp?.extra?.signal,
1196
1386
  });
1197
1387
 
1198
1388
  return response.json();
1199
1389
  };
1200
1390
  ```
1201
1391
 
1202
- The `extra` object contains:
1203
-
1204
- - `authInfo`: Authentication info (when provided by server middleware)
1205
- - `sessionId`: Session identifier
1206
- - `signal`: AbortSignal for cancellation
1207
- - `sendNotification`/`sendRequest`: MCP protocol functions
1208
-
1209
- > Note: To enable authentication, your HTTP server needs middleware that populates `req.auth` before calling `server.startHTTP()`. For example:
1210
- >
1211
- > ```typescript
1212
- > httpServer.createServer((req, res) => {
1213
- > // Add auth middleware
1214
- > req.auth = validateAuthToken(req.headers.authorization);
1215
- >
1216
- > // Then pass to MCP server
1217
- > await server.startHTTP({ url, httpPath, req, res });
1218
- > });
1219
- > ```
1392
+ ### The `extra` Object
1393
+
1394
+ The full `context.mcp.extra` object contains:
1395
+
1396
+ | Property | Description |
1397
+ |----------|-------------|
1398
+ | `authInfo` | Whatever you set on `req.auth` in your middleware |
1399
+ | `sessionId` | Session identifier for the MCP connection |
1400
+ | `signal` | AbortSignal for request cancellation |
1401
+ | `sendNotification` | MCP protocol function for sending notifications |
1402
+ | `sendRequest` | MCP protocol function for sending requests |
1403
+
1404
+ ### Complete Example
1405
+
1406
+ Here's a complete example showing the data flow from middleware to tool:
1407
+
1408
+ ```typescript
1409
+ import express from "express";
1410
+ import { MCPServer } from "@mastra/mcp";
1411
+ import { createTool } from "@mastra/core/tools";
1412
+ import { z } from "zod";
1413
+
1414
+ const verifyToken = (token: string) => {
1415
+ // TODO: Implement token verification
1416
+ return {
1417
+ userId: "123",
1418
+ email: "test@test.com",
1419
+ };
1420
+ };
1421
+
1422
+ // 1. Define your tool that uses auth context
1423
+ const getUserData = createTool({
1424
+ id: "get-user-data",
1425
+ description: "Fetches data for the authenticated user",
1426
+ inputSchema: z.object({}),
1427
+ execute: async (inputData, context) => {
1428
+ const authInfo = context?.mcp?.extra?.authInfo;
1429
+
1430
+ if (!authInfo?.extra?.userId) {
1431
+ return { error: "Authentication required" };
1432
+ }
1433
+
1434
+ // Access the data you set in middleware
1435
+ return {
1436
+ userId: authInfo.extra.userId,
1437
+ email: authInfo.extra.email,
1438
+ };
1439
+ },
1440
+ });
1441
+
1442
+ // 2. Create the MCP server with your tools
1443
+ const server = new MCPServer({
1444
+ id: "my-server",
1445
+ name: "My Server",
1446
+ version: "1.0.0",
1447
+ tools: { getUserData },
1448
+ });
1449
+
1450
+ // 3. Set up Express with auth middleware
1451
+ const app = express();
1452
+
1453
+ app.use("/mcp", (req, res, next) => {
1454
+ const token = req.headers.authorization?.replace("Bearer ", "");
1455
+ const user = verifyToken(token);
1456
+
1457
+ // This entire object becomes context.mcp.extra.authInfo
1458
+ // @ts-ignore - req.auth is read by the MCP SDK
1459
+ req.auth = {
1460
+ token,
1461
+ userId: user.userId,
1462
+ email: user.email,
1463
+ };
1464
+ next();
1465
+ });
1466
+
1467
+ app.all("/mcp", async (req, res) => {
1468
+ const url = new URL(req.url, `http://${req.headers.host}`);
1469
+ await server.startHTTP({ url, httpPath: "/mcp", req, res });
1470
+ });
1471
+
1472
+ app.listen(3000);
1473
+ ```
1220
1474
 
1221
1475
  ## Related Information
1222
1476
 
@@ -1,6 +1,10 @@
1
1
  ---
2
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
+ packages:
5
+ - "@mastra/core"
6
+ - "@mastra/pg"
7
+ - "@mastra/rag"
4
8
  ---
5
9
 
6
10
  import Tabs from "@theme/Tabs";
@@ -117,6 +121,13 @@ time.
117
121
  "Provider-specific options for the embedding model (e.g., outputDimensionality). **Important**: Only works with AI SDK EmbeddingModelV2 models. For V1 models, configure options when creating the model itself.",
118
122
  isOptional: true,
119
123
  },
124
+ {
125
+ name: "vectorStore",
126
+ type: "MastraVector | VectorStoreResolver",
127
+ description:
128
+ "Direct vector store instance or a resolver function for dynamic selection. Use a function for multi-tenant applications where the vector store is selected based on request context. When provided, `vectorStoreName` becomes optional.",
129
+ isOptional: true,
130
+ },
120
131
  ]}
121
132
  />
122
133
 
@@ -326,7 +337,7 @@ This agent-driven approach:
326
337
 
327
338
  For detailed filter syntax and store-specific capabilities, see the [Metadata Filters](../rag/metadata-filters) documentation.
328
339
 
329
- For an example of how agent-driven filtering works, see the [Agent-Driven Metadata Filtering](/examples/v1/rag/usage/filter-rag) example.
340
+ For an example of how agent-driven filtering works, see the [Agent-Driven Metadata Filtering](https://github.com/mastra-ai/mastra/tree/main/examples/basics/rag/filter-rag) example.
330
341
 
331
342
  ## Example with Reranking
332
343
 
@@ -567,14 +578,14 @@ const response = await agent.generate(
567
578
 
568
579
  For more information on request context, please see:
569
580
 
570
- - [Agent Request Context](/docs/v1/server-db/request-context)
571
- - [Request Context](/docs/v1/server-db/request-context#accessing-values-with-tools)
581
+ - [Agent Request Context](/docs/v1/server/request-context)
582
+ - [Request Context](/docs/v1/server/request-context#accessing-values-with-tools)
572
583
 
573
584
  ## Usage Without a Mastra Server
574
585
 
575
586
  The tool can be used by itself to retrieve documents matching a query:
576
587
 
577
- ```typescript copy showLineNumbers title="src/index.ts"
588
+ ```typescript title="src/index.ts"
578
589
  import { RequestContext } from "@mastra/core/request-context";
579
590
  import { createVectorQueryTool } from "@mastra/rag";
580
591
  import { PgVector } from "@mastra/pg";
@@ -600,6 +611,59 @@ const queryResult = await vectorQueryTool.execute(
600
611
  console.log(queryResult.sources);
601
612
  ```
602
613
 
614
+ ## Dynamic Vector Store for Multi-Tenant Applications
615
+
616
+ For multi-tenant applications where each tenant has isolated data (e.g., separate PostgreSQL schemas), you can pass a resolver function instead of a static vector store instance. The function receives the request context and can return the appropriate vector store for the current tenant:
617
+
618
+ ```typescript title="src/index.ts"
619
+ import { createVectorQueryTool, VectorStoreResolver } from "@mastra/rag";
620
+ import { PgVector } from "@mastra/pg";
621
+
622
+ // Cache for tenant-specific vector stores
623
+ const vectorStoreCache = new Map<string, PgVector>();
624
+
625
+ // Resolver function that returns the correct vector store based on tenant
626
+ const vectorStoreResolver: VectorStoreResolver = async ({ requestContext }) => {
627
+ const tenantId = requestContext?.get("tenantId");
628
+
629
+ if (!tenantId) {
630
+ throw new Error("tenantId is required in request context");
631
+ }
632
+
633
+ // Return cached instance or create new one
634
+ if (!vectorStoreCache.has(tenantId)) {
635
+ vectorStoreCache.set(tenantId, new PgVector({
636
+ id: `pg-vector-${tenantId}`,
637
+ connectionString: process.env.POSTGRES_CONNECTION_STRING!,
638
+ schemaName: `tenant_${tenantId}`, // Each tenant has their own schema
639
+ }));
640
+ }
641
+
642
+ return vectorStoreCache.get(tenantId)!;
643
+ };
644
+
645
+ const vectorQueryTool = createVectorQueryTool({
646
+ indexName: "embeddings",
647
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
648
+ vectorStore: vectorStoreResolver, // Dynamic resolution!
649
+ });
650
+
651
+ // Usage with tenant context
652
+ const requestContext = new RequestContext();
653
+ requestContext.set("tenantId", "acme-corp");
654
+
655
+ const result = await vectorQueryTool.execute(
656
+ { queryText: "company policies", topK: 5 },
657
+ { requestContext }
658
+ );
659
+ ```
660
+
661
+ This pattern is similar to how `Agent.memory` supports dynamic configuration and enables:
662
+
663
+ - **Schema isolation**: Each tenant's data in separate PostgreSQL schemas
664
+ - **Database isolation**: Route to different database instances per tenant
665
+ - **Dynamic configuration**: Adjust vector store settings based on request context
666
+
603
667
  ## Tool Details
604
668
 
605
669
  The tool is created with:
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: "Reference: Astra Vector Store | Vectors"
3
3
  description: Documentation for the AstraVector class in Mastra, which provides vector search using DataStax Astra DB.
4
+ packages:
5
+ - "@mastra/astra"
4
6
  ---
5
7
 
6
8
  # Astra Vector Store
@@ -142,7 +144,7 @@ Returns an array of index names as strings.
142
144
 
143
145
  Returns:
144
146
 
145
- ```typescript copy
147
+ ```typescript
146
148
  interface IndexStats {
147
149
  dimension: number;
148
150
  count: number;
@@ -219,7 +221,7 @@ interface IndexStats {
219
221
 
220
222
  Query results are returned in this format:
221
223
 
222
- ```typescript copy
224
+ ```typescript
223
225
  interface QueryResult {
224
226
  id: string;
225
227
  score: number;
@@ -232,7 +234,7 @@ interface QueryResult {
232
234
 
233
235
  The store throws typed errors that can be caught:
234
236
 
235
- ```typescript copy
237
+ ```typescript
236
238
  try {
237
239
  await store.query({
238
240
  indexName: "index_name",
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: "Reference: Chroma Vector Store | Vectors"
3
3
  description: Documentation for the ChromaVector class in Mastra, which provides vector search using ChromaDB.
4
+ packages:
5
+ - "@mastra/chroma"
4
6
  ---
5
7
 
6
8
  # Chroma Vector Store
@@ -313,7 +315,7 @@ Returns an array of index names as strings.
313
315
 
314
316
  Returns:
315
317
 
316
- ```typescript copy
318
+ ```typescript
317
319
  interface IndexStats {
318
320
  dimension: number;
319
321
  count: number;
@@ -475,7 +477,7 @@ await vectorStore.deleteVectors({
475
477
 
476
478
  Query results are returned in this format:
477
479
 
478
- ```typescript copy
480
+ ```typescript
479
481
  interface QueryResult {
480
482
  id: string;
481
483
  score: number;
@@ -489,7 +491,7 @@ interface QueryResult {
489
491
 
490
492
  The store throws typed errors that can be caught:
491
493
 
492
- ```typescript copy
494
+ ```typescript
493
495
  try {
494
496
  await store.query({
495
497
  indexName: "index_name",
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: "Reference: Convex Vector Store | Vectors"
3
3
  description: Documentation for the ConvexVector class in Mastra, which provides vector search using Convex.
4
+ packages:
5
+ - "@mastra/convex"
4
6
  ---
5
7
 
6
8
  # Convex Vector Store
@@ -9,7 +11,7 @@ The ConvexVector class provides vector storage and similarity search using [Conv
9
11
 
10
12
  ## Installation
11
13
 
12
- ```bash copy
14
+ ```bash
13
15
  npm install @mastra/convex@beta
14
16
  ```
15
17
 
@@ -94,7 +96,7 @@ const vectorStore = new ConvexVector({
94
96
  ]}
95
97
  />
96
98
 
97
- ```typescript copy
99
+ ```typescript
98
100
  await vectorStore.createIndex({
99
101
  indexName: "my_vectors",
100
102
  dimension: 1536,
@@ -130,7 +132,7 @@ await vectorStore.createIndex({
130
132
  ]}
131
133
  />
132
134
 
133
- ```typescript copy
135
+ ```typescript
134
136
  await vectorStore.upsert({
135
137
  indexName: "my_vectors",
136
138
  vectors: [[0.1, 0.2, 0.3, ...]],
@@ -176,7 +178,7 @@ await vectorStore.upsert({
176
178
  ]}
177
179
  />
178
180
 
179
- ```typescript copy
181
+ ```typescript
180
182
  const results = await vectorStore.query({
181
183
  indexName: "my_vectors",
182
184
  queryVector: [0.1, 0.2, 0.3, ...],
@@ -189,7 +191,7 @@ const results = await vectorStore.query({
189
191
 
190
192
  Returns an array of index names as strings.
191
193
 
192
- ```typescript copy
194
+ ```typescript
193
195
  const indexes = await vectorStore.listIndexes();
194
196
  // ["my_vectors", "embeddings", ...]
195
197
  ```
@@ -208,7 +210,7 @@ const indexes = await vectorStore.listIndexes();
208
210
 
209
211
  Returns:
210
212
 
211
- ```typescript copy
213
+ ```typescript
212
214
  interface IndexStats {
213
215
  dimension: number;
214
216
  count: number;
@@ -230,7 +232,7 @@ interface IndexStats {
230
232
 
231
233
  Deletes the index and all its vectors.
232
234
 
233
- ```typescript copy
235
+ ```typescript
234
236
  await vectorStore.deleteIndex({ indexName: "my_vectors" });
235
237
  ```
236
238
 
@@ -265,7 +267,7 @@ Update a single vector by ID or by metadata filter. Either `id` or `filter` must
265
267
  ]}
266
268
  />
267
269
 
268
- ```typescript copy
270
+ ```typescript
269
271
  // Update by ID
270
272
  await vectorStore.updateVector({
271
273
  indexName: "my_vectors",
@@ -303,7 +305,7 @@ await vectorStore.updateVector({
303
305
  ]}
304
306
  />
305
307
 
306
- ```typescript copy
308
+ ```typescript
307
309
  await vectorStore.deleteVector({ indexName: "my_vectors", id: "vector123" });
308
310
  ```
309
311
 
@@ -333,7 +335,7 @@ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` m
333
335
  ]}
334
336
  />
335
337
 
336
- ```typescript copy
338
+ ```typescript
337
339
  // Delete by IDs
338
340
  await vectorStore.deleteVectors({
339
341
  indexName: "my_vectors",
@@ -351,7 +353,7 @@ await vectorStore.deleteVectors({
351
353
 
352
354
  Query results are returned in this format:
353
355
 
354
- ```typescript copy
356
+ ```typescript
355
357
  interface QueryResult {
356
358
  id: string;
357
359
  score: number;
@@ -364,7 +366,7 @@ interface QueryResult {
364
366
 
365
367
  ConvexVector supports metadata filtering with various operators:
366
368
 
367
- ```typescript copy
369
+ ```typescript
368
370
  // Simple equality
369
371
  const results = await vectorStore.query({
370
372
  indexName: "my_vectors",
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: "Reference: Couchbase Vector Store | Vectors"
3
3
  description: Documentation for the CouchbaseVector class in Mastra, which provides vector search using Couchbase Vector Search.
4
+ packages:
5
+ - "@mastra/couchbase"
4
6
  ---
5
7
 
6
8
  # Couchbase Vector Store
@@ -14,13 +16,13 @@ The `CouchbaseVector` class provides vector search using [Couchbase Vector Searc
14
16
 
15
17
  ## Installation
16
18
 
17
- ```bash copy
19
+ ```bash
18
20
  npm install @mastra/couchbase@beta
19
21
  ```
20
22
 
21
23
  ## Usage Example
22
24
 
23
- ```typescript copy
25
+ ```typescript
24
26
  import { CouchbaseVector } from "@mastra/couchbase";
25
27
 
26
28
  const store = new CouchbaseVector({
@@ -209,7 +211,7 @@ Returns information about the index.
209
211
 
210
212
  Returns:
211
213
 
212
- ```typescript copy
214
+ ```typescript
213
215
  interface IndexStats {
214
216
  dimension: number;
215
217
  count: number;
@@ -307,7 +309,7 @@ Closes the Couchbase client connection. Should be called when done using the sto
307
309
 
308
310
  Query results are returned in this format:
309
311
 
310
- ```typescript copy
312
+ ```typescript
311
313
  interface QueryResult {
312
314
  id: string;
313
315
  score: number;
@@ -320,7 +322,7 @@ interface QueryResult {
320
322
 
321
323
  The store throws typed errors that can be caught:
322
324
 
323
- ```typescript copy
325
+ ```typescript
324
326
  try {
325
327
  await store.query({
326
328
  indexName: "my_index",