@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.
Files changed (496) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +1 -15
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -7
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -55
  5. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +250 -50
  7. package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
  8. package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
  10. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
  11. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +201 -1
  12. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
  14. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +26 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +89 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +396 -196
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +200 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +42 -0
  24. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
  25. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +61 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
  27. package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
  28. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
  29. package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
  33. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
  34. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
  35. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
  36. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
  37. package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
  38. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
  39. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +251 -51
  40. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
  41. package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
  42. package/.docs/organized/changelogs/%40mastra%2Freact.md +128 -1
  43. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +18 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +42 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fserver.md +251 -51
  46. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
  47. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
  48. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
  62. package/.docs/organized/changelogs/create-mastra.md +201 -1
  63. package/.docs/organized/changelogs/mastra.md +201 -1
  64. package/.docs/organized/code-examples/agui.md +1 -0
  65. package/.docs/organized/code-examples/ai-elements.md +2 -2
  66. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  67. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -2
  68. package/.docs/organized/code-examples/assistant-ui.md +2 -2
  69. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  70. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  71. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +2 -2
  72. package/.docs/organized/code-examples/client-side-tools.md +1 -1
  73. package/.docs/organized/code-examples/crypto-chatbot.md +2 -2
  74. package/.docs/organized/code-examples/fireworks-r1.md +1 -1
  75. package/.docs/organized/code-examples/heads-up-game.md +1 -1
  76. package/.docs/organized/code-examples/mcp-configuration.md +0 -3
  77. package/.docs/organized/code-examples/mcp-server-adapters.md +720 -0
  78. package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
  79. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  80. package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
  81. package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
  82. package/.docs/organized/code-examples/quick-start.md +2 -2
  83. package/.docs/organized/code-examples/server-app-access.md +342 -0
  84. package/.docs/organized/code-examples/server-express-adapter.md +87 -0
  85. package/.docs/organized/code-examples/server-hono-adapter.md +85 -0
  86. package/.docs/organized/code-examples/stock-price-tool.md +1 -21
  87. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  88. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  89. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  90. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  91. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  92. package/.docs/raw/agents/adding-voice.mdx +56 -10
  93. package/.docs/raw/agents/agent-approval.mdx +189 -0
  94. package/.docs/raw/agents/agent-memory.mdx +2 -2
  95. package/.docs/raw/agents/guardrails.mdx +27 -24
  96. package/.docs/raw/agents/networks.mdx +3 -3
  97. package/.docs/raw/agents/overview.mdx +19 -168
  98. package/.docs/raw/agents/processors.mdx +279 -0
  99. package/.docs/raw/agents/structured-output.mdx +224 -0
  100. package/.docs/raw/agents/using-tools.mdx +14 -14
  101. package/.docs/raw/auth/auth0.mdx +2 -2
  102. package/.docs/raw/auth/clerk.mdx +2 -2
  103. package/.docs/raw/auth/firebase.mdx +2 -2
  104. package/.docs/raw/auth/index.mdx +1 -1
  105. package/.docs/raw/auth/jwt.mdx +2 -2
  106. package/.docs/raw/auth/supabase.mdx +2 -2
  107. package/.docs/raw/auth/workos.mdx +2 -2
  108. package/.docs/raw/community/contributing-templates.mdx +1 -1
  109. package/.docs/raw/community/discord.mdx +2 -2
  110. package/.docs/raw/community/licensing.mdx +1 -1
  111. package/.docs/raw/course/01-first-agent/03-verifying-installation.md +1 -1
  112. package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
  113. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  114. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  115. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  116. package/.docs/raw/course/02-agent-tools-mcp/02-installing-mcp.md +1 -1
  117. package/.docs/raw/course/03-agent-memory/03-installing-memory.md +1 -1
  118. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  119. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  120. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +3 -3
  121. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +4 -4
  122. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +4 -4
  123. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +2 -2
  124. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +3 -3
  125. package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
  126. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +46 -15
  127. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +2 -2
  128. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  129. package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
  130. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  131. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  132. package/.docs/raw/deployment/monorepo.mdx +3 -3
  133. package/.docs/raw/deployment/overview.mdx +7 -7
  134. package/.docs/raw/deployment/web-framework.mdx +6 -6
  135. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  136. package/.docs/raw/evals/custom-scorers.mdx +4 -6
  137. package/.docs/raw/evals/overview.mdx +6 -7
  138. package/.docs/raw/evals/running-in-ci.mdx +2 -4
  139. package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +15 -89
  140. package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
  141. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  142. package/.docs/raw/getting-started/start.mdx +72 -0
  143. package/.docs/raw/getting-started/studio.mdx +8 -6
  144. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
  145. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
  146. package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +72 -20
  147. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
  148. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +28 -30
  149. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
  150. package/.docs/raw/guides/getting-started/next-js.mdx +276 -0
  151. package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
  152. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +28 -30
  153. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +12 -12
  154. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  155. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  156. package/.docs/raw/guides/guide/notes-mcp-server.mdx +3 -3
  157. package/.docs/raw/guides/guide/research-assistant.mdx +8 -18
  158. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  159. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  160. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
  161. package/.docs/raw/guides/index.mdx +3 -35
  162. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  163. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +56 -6
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +29 -5
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +3 -3
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +59 -37
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  172. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +70 -5
  173. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +13 -13
  174. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  175. package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +1 -1
  176. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +175 -2
  177. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  178. package/.docs/raw/index.mdx +4 -4
  179. package/.docs/raw/mcp/overview.mdx +358 -0
  180. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  181. package/.docs/raw/memory/conversation-history.mdx +1 -1
  182. package/.docs/raw/memory/memory-processors.mdx +265 -80
  183. package/.docs/raw/memory/overview.mdx +3 -3
  184. package/.docs/raw/memory/semantic-recall.mdx +10 -10
  185. package/.docs/raw/memory/storage/memory-with-libsql.mdx +5 -10
  186. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  187. package/.docs/raw/memory/storage/memory-with-pg.mdx +5 -10
  188. package/.docs/raw/memory/storage/memory-with-upstash.mdx +5 -10
  189. package/.docs/raw/memory/threads-and-resources.mdx +4 -4
  190. package/.docs/raw/memory/working-memory.mdx +16 -8
  191. package/.docs/raw/{logging.mdx → observability/logging.mdx} +8 -8
  192. package/.docs/raw/observability/overview.mdx +5 -6
  193. package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
  194. package/.docs/raw/observability/tracing/exporters/arize.mdx +39 -3
  195. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +22 -3
  196. package/.docs/raw/observability/tracing/exporters/cloud.mdx +4 -4
  197. package/.docs/raw/observability/tracing/exporters/default.mdx +6 -6
  198. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +86 -3
  199. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +15 -3
  200. package/.docs/raw/observability/tracing/exporters/otel.mdx +128 -30
  201. package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
  202. package/.docs/raw/observability/tracing/overview.mdx +100 -29
  203. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +2 -3
  204. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  205. package/.docs/raw/rag/overview.mdx +5 -4
  206. package/.docs/raw/rag/retrieval.mdx +44 -39
  207. package/.docs/raw/rag/vector-databases.mdx +94 -3
  208. package/.docs/raw/reference/agents/agent.mdx +10 -14
  209. package/.docs/raw/reference/agents/generate.mdx +67 -99
  210. package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
  211. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  212. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  213. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  214. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  215. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  216. package/.docs/raw/reference/agents/getLLM.mdx +2 -2
  217. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  218. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  219. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  220. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  221. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  222. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  223. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  224. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  225. package/.docs/raw/reference/agents/network.mdx +33 -72
  226. package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
  227. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
  228. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
  229. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
  230. package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
  231. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
  232. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
  233. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
  234. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  235. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  236. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  237. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  238. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  239. package/.docs/raw/reference/auth/workos.mdx +1 -1
  240. package/.docs/raw/reference/cli/create-mastra.mdx +11 -11
  241. package/.docs/raw/reference/cli/mastra.mdx +25 -12
  242. package/.docs/raw/reference/client-js/agents.mdx +252 -68
  243. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  244. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  245. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
  246. package/.docs/raw/reference/client-js/memory.mdx +48 -2
  247. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  248. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  249. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  250. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  251. package/.docs/raw/reference/client-js/workflows.mdx +93 -64
  252. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  253. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  254. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  255. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  256. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  257. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  258. package/.docs/raw/reference/core/getLogger.mdx +3 -3
  259. package/.docs/raw/reference/core/getMCPServer.mdx +4 -4
  260. package/.docs/raw/reference/core/getMCPServerById.mdx +5 -5
  261. package/.docs/raw/reference/core/getMemory.mdx +73 -0
  262. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  263. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  264. package/.docs/raw/reference/core/getServer.mdx +2 -2
  265. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  266. package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
  267. package/.docs/raw/reference/core/getTelemetry.mdx +3 -3
  268. package/.docs/raw/reference/core/getVector.mdx +1 -1
  269. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  270. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  271. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  272. package/.docs/raw/reference/core/listLogs.mdx +3 -3
  273. package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -3
  274. package/.docs/raw/reference/core/listMCPServers.mdx +5 -5
  275. package/.docs/raw/reference/core/listMemory.mdx +70 -0
  276. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  277. package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
  278. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  279. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  280. package/.docs/raw/reference/core/mastra-class.mdx +17 -1
  281. package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
  282. package/.docs/raw/reference/core/setLogger.mdx +3 -3
  283. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  284. package/.docs/raw/reference/core/setTelemetry.mdx +3 -3
  285. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  286. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  287. package/.docs/raw/reference/deployer/netlify.mdx +2 -3
  288. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  289. package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
  290. package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
  291. package/.docs/raw/reference/evals/bias.mdx +30 -88
  292. package/.docs/raw/reference/evals/completeness.mdx +32 -91
  293. package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
  294. package/.docs/raw/reference/evals/context-precision.mdx +29 -131
  295. package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
  296. package/.docs/raw/reference/evals/create-scorer.mdx +59 -50
  297. package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
  298. package/.docs/raw/reference/evals/hallucination.mdx +29 -104
  299. package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
  300. package/.docs/raw/reference/evals/mastra-scorer.mdx +3 -1
  301. package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
  302. package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
  303. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  304. package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
  305. package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
  306. package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
  307. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
  308. package/.docs/raw/reference/evals/toxicity.mdx +30 -93
  309. package/.docs/raw/reference/index.mdx +1 -0
  310. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  311. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  312. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  313. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  314. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  315. package/.docs/raw/reference/memory/memory-class.mdx +6 -8
  316. package/.docs/raw/reference/memory/query.mdx +1 -1
  317. package/.docs/raw/reference/memory/recall.mdx +1 -1
  318. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
  319. package/.docs/raw/reference/observability/tracing/configuration.mdx +12 -16
  320. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +31 -2
  321. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  322. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +9 -9
  323. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +9 -9
  324. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +9 -9
  325. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
  326. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
  327. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
  328. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  329. package/.docs/raw/reference/observability/tracing/instances.mdx +8 -12
  330. package/.docs/raw/reference/observability/tracing/interfaces.mdx +36 -11
  331. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  332. package/.docs/raw/reference/observability/tracing/spans.mdx +7 -11
  333. package/.docs/raw/reference/processors/batch-parts-processor.mdx +10 -4
  334. package/.docs/raw/reference/processors/language-detector.mdx +19 -6
  335. package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
  336. package/.docs/raw/reference/processors/moderation-processor.mdx +21 -8
  337. package/.docs/raw/reference/processors/pii-detector.mdx +21 -8
  338. package/.docs/raw/reference/processors/processor-interface.mdx +502 -0
  339. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +19 -6
  340. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
  341. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +12 -7
  342. package/.docs/raw/reference/processors/token-limiter-processor.mdx +11 -5
  343. package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
  344. package/.docs/raw/reference/processors/unicode-normalizer.mdx +10 -4
  345. package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
  346. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  347. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  348. package/.docs/raw/reference/rag/document.mdx +1 -1
  349. package/.docs/raw/reference/rag/embeddings.mdx +6 -6
  350. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  351. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  352. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  353. package/.docs/raw/reference/rag/rerank.mdx +2 -3
  354. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
  355. package/.docs/raw/reference/server/create-route.mdx +328 -0
  356. package/.docs/raw/reference/server/express-adapter.mdx +260 -0
  357. package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
  358. package/.docs/raw/reference/server/mastra-server.mdx +345 -0
  359. package/.docs/raw/reference/server/routes.mdx +250 -0
  360. package/.docs/raw/reference/storage/cloudflare-d1.mdx +39 -2
  361. package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
  362. package/.docs/raw/reference/storage/convex.mdx +164 -0
  363. package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
  364. package/.docs/raw/reference/storage/lance.mdx +35 -2
  365. package/.docs/raw/reference/storage/libsql.mdx +39 -2
  366. package/.docs/raw/reference/storage/mongodb.mdx +41 -2
  367. package/.docs/raw/reference/storage/mssql.mdx +39 -2
  368. package/.docs/raw/reference/storage/postgresql.mdx +39 -2
  369. package/.docs/raw/reference/storage/upstash.mdx +2 -2
  370. package/.docs/raw/reference/streaming/ChunkType.mdx +2 -2
  371. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  372. package/.docs/raw/reference/streaming/agents/stream.mdx +68 -95
  373. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  374. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
  375. package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
  376. package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
  377. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
  378. package/.docs/raw/reference/templates/overview.mdx +3 -6
  379. package/.docs/raw/reference/tools/client.mdx +2 -3
  380. package/.docs/raw/reference/tools/create-tool.mdx +135 -4
  381. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  382. package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
  383. package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
  384. package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
  385. package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
  386. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  387. package/.docs/raw/reference/vectors/chroma.mdx +82 -2
  388. package/.docs/raw/reference/vectors/convex.mdx +429 -0
  389. package/.docs/raw/reference/vectors/couchbase.mdx +33 -20
  390. package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
  391. package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
  392. package/.docs/raw/reference/vectors/lance.mdx +39 -23
  393. package/.docs/raw/reference/vectors/libsql.mdx +37 -4
  394. package/.docs/raw/reference/vectors/mongodb.mdx +43 -4
  395. package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
  396. package/.docs/raw/reference/vectors/pg.mdx +44 -37
  397. package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
  398. package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
  399. package/.docs/raw/reference/vectors/s3vectors.mdx +2 -2
  400. package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
  401. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  402. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  403. package/.docs/raw/reference/voice/azure.mdx +96 -81
  404. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  405. package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
  406. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  407. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  408. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  409. package/.docs/raw/reference/voice/google.mdx +160 -21
  410. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  411. package/.docs/raw/reference/voice/murf.mdx +1 -1
  412. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
  413. package/.docs/raw/reference/voice/openai.mdx +1 -1
  414. package/.docs/raw/reference/voice/playai.mdx +1 -1
  415. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  416. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  417. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
  418. package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
  419. package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
  420. package/.docs/raw/reference/voice/voice.close.mdx +2 -2
  421. package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
  422. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  423. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  424. package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
  425. package/.docs/raw/reference/voice/voice.off.mdx +2 -2
  426. package/.docs/raw/reference/voice/voice.on.mdx +2 -2
  427. package/.docs/raw/reference/voice/voice.send.mdx +2 -2
  428. package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
  429. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
  430. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  431. package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
  432. package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
  433. package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
  434. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
  435. package/.docs/raw/reference/workflows/run.mdx +28 -6
  436. package/.docs/raw/reference/workflows/step.mdx +65 -1
  437. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  438. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  439. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  440. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  441. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  442. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  443. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  444. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  445. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  446. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  447. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  448. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  449. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  450. package/.docs/raw/reference/workflows/workflow.mdx +21 -2
  451. package/.docs/raw/server-db/custom-adapters.mdx +386 -0
  452. package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
  453. package/.docs/raw/server-db/mastra-client.mdx +7 -8
  454. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +16 -8
  455. package/.docs/raw/server-db/middleware.mdx +31 -31
  456. package/.docs/raw/server-db/request-context.mdx +3 -4
  457. package/.docs/raw/server-db/server-adapters.mdx +312 -0
  458. package/.docs/raw/server-db/storage.mdx +12 -1
  459. package/.docs/raw/streaming/events.mdx +1 -1
  460. package/.docs/raw/streaming/overview.mdx +27 -16
  461. package/.docs/raw/streaming/tool-streaming.mdx +58 -19
  462. package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
  463. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
  464. package/.docs/raw/tools-mcp/mcp-overview.mdx +5 -7
  465. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  466. package/.docs/raw/voice/overview.mdx +88 -41
  467. package/.docs/raw/voice/speech-to-speech.mdx +5 -5
  468. package/.docs/raw/voice/speech-to-text.mdx +3 -4
  469. package/.docs/raw/voice/text-to-speech.mdx +3 -4
  470. package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
  471. package/.docs/raw/workflows/control-flow.mdx +186 -1
  472. package/.docs/raw/workflows/error-handling.mdx +5 -4
  473. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  474. package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
  475. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  476. package/.docs/raw/workflows/overview.mdx +67 -47
  477. package/.docs/raw/workflows/snapshots.mdx +5 -3
  478. package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
  479. package/.docs/raw/workflows/time-travel.mdx +313 -0
  480. package/.docs/raw/workflows/workflow-state.mdx +190 -0
  481. package/CHANGELOG.md +88 -0
  482. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  483. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  484. package/dist/prepare-docs/prepare.js +1 -1
  485. package/dist/stdio.js +17 -19
  486. package/package.json +11 -15
  487. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
  488. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
  489. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
  490. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
  491. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  492. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  493. package/.docs/raw/getting-started/templates.mdx +0 -73
  494. package/.docs/raw/mastra-cloud/observability.mdx +0 -51
  495. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
  496. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
@@ -0,0 +1,386 @@
1
+ ---
2
+ title: "Custom Adapters | Server & DB"
3
+ description: "Create a custom server adapter for frameworks other than Hono or Express."
4
+ ---
5
+
6
+ import PropertiesTable from "@site/src/components/PropertiesTable";
7
+
8
+ # Custom Adapters
9
+
10
+ Create a custom adapter when you need to run Mastra with a framework other than Hono or Express. This might be necessary if you have specific request/response handling requirements that `@mastra/hono` and `@mastra/express` don't support.
11
+
12
+ A custom adapter translates between Mastra's route definitions and your framework's routing system. You'll implement methods that register middleware, handle requests, and send responses using your framework's APIs.
13
+
14
+ :::info
15
+
16
+ For Hono or Express, use the provided adapters instead:
17
+ - [@mastra/hono](/reference/v1/server/hono-adapter)
18
+ - [@mastra/express](/reference/v1/server/express-adapter)
19
+
20
+ :::
21
+
22
+ ## Abstract class
23
+
24
+ The `MastraServer` abstract class from `@mastra/server/server-adapter` provides the foundation for all adapters. It handles route registration logic, parameter validation, and other shared functionality. Your custom adapter extends this class and implements the framework-specific parts.
25
+
26
+ The class takes three type parameters that represent your framework's types:
27
+
28
+ ```typescript title="my-framework-adapter.ts" copy
29
+ import { MastraServer } from '@mastra/server/server-adapter';
30
+
31
+ export class MyFrameworkServer extends MastraServer<
32
+ // Your framework's app type (e.g., FastifyInstance)
33
+ MyApp,
34
+ // Your framework's request type (e.g., FastifyRequest)
35
+ MyRequest,
36
+ // Your framework's response type (e.g., FastifyReply)
37
+ MyResponse
38
+ > {
39
+ // Implement abstract methods
40
+ }
41
+ ```
42
+
43
+ These type parameters ensure type safety throughout your adapter implementation and enable proper typing when accessing framework-specific APIs.
44
+
45
+ ## Required methods
46
+
47
+ You must implement these six abstract methods. Each handles a specific part of the request lifecycle, from attaching context to sending responses.
48
+
49
+ ### registerContextMiddleware()
50
+
51
+ This method runs first and attaches Mastra context to every incoming request. Route handlers need access to the Mastra instance, tools, and other context to function. How you attach this context depends on your framework — Express uses `res.locals`, Hono uses `c.set()`, and other frameworks have their own patterns.
52
+
53
+ ```typescript copy
54
+ registerContextMiddleware(): void {
55
+ this.app.use('*', (req, res, next) => {
56
+ // Attach context to your framework's request/response
57
+ res.locals.mastra = this.mastra;
58
+ res.locals.requestContext = new RequestContext();
59
+ res.locals.tools = this.tools;
60
+ res.locals.abortSignal = createAbortSignal(req);
61
+ next();
62
+ });
63
+ }
64
+ ```
65
+
66
+ Context to attach:
67
+
68
+ | Key | Type | Description |
69
+ |-----|------|-------------|
70
+ | `mastra` | `Mastra` | The Mastra instance |
71
+ | `requestContext` | `RequestContext` | Request-scoped context map |
72
+ | `tools` | `Record<string, Tool>` | Available tools |
73
+ | `abortSignal` | `AbortSignal` | Request cancellation signal |
74
+ | `taskStore` | `InMemoryTaskStore` | A2A task storage (if configured) |
75
+
76
+ ### registerAuthMiddleware()
77
+
78
+ Register authentication and authorization middleware. This method should check if authentication is configured on the Mastra instance and skip registration entirely if not. When auth is configured, you'll typically register two middleware functions: one for authentication (validating tokens and setting the user) and one for authorization (checking if the user can access the requested resource).
79
+
80
+ ```typescript copy
81
+ registerAuthMiddleware(): void {
82
+ const authConfig = this.mastra.getServer()?.auth;
83
+ if (!authConfig) return;
84
+
85
+ // Register authentication (validate token, set user)
86
+ this.app.use('*', async (req, res, next) => {
87
+ const token = extractToken(req);
88
+ const user = await authConfig.authenticateToken?.(token, req);
89
+ if (!user) {
90
+ return res.status(401).json({ error: 'Unauthorized' });
91
+ }
92
+ res.locals.user = user;
93
+ next();
94
+ });
95
+
96
+ // Register authorization (check permissions)
97
+ this.app.use('*', async (req, res, next) => {
98
+ const allowed = await authConfig.authorize?.(
99
+ req.path,
100
+ req.method,
101
+ res.locals.user,
102
+ res
103
+ );
104
+ if (!allowed) {
105
+ return res.status(403).json({ error: 'Forbidden' });
106
+ }
107
+ next();
108
+ });
109
+ }
110
+ ```
111
+
112
+ ### registerRoute()
113
+
114
+ Register a single route with your framework. This method is called once for each Mastra route during initialization. It receives a `ServerRoute` object containing the path, HTTP method, handler function, and Zod schemas for validation. Your implementation should wire this up to your framework's routing system.
115
+
116
+ ```typescript copy
117
+ async registerRoute(
118
+ app: MyApp,
119
+ route: ServerRoute,
120
+ { prefix }: { prefix?: string }
121
+ ): Promise<void> {
122
+ const path = `${prefix || ''}${route.path}`;
123
+ const method = route.method.toLowerCase();
124
+
125
+ app[method](path, async (req, res) => {
126
+ try {
127
+ // 1. Extract parameters
128
+ const params = await this.getParams(route, req);
129
+
130
+ // 2. Validate with Zod schemas
131
+ const queryParams = await this.parseQueryParams(route, params.queryParams);
132
+ const body = await this.parseBody(route, params.body);
133
+
134
+ // 3. Build handler params
135
+ const handlerParams = {
136
+ ...params.urlParams,
137
+ ...queryParams,
138
+ ...(typeof body === 'object' ? body : {}),
139
+ mastra: this.mastra,
140
+ requestContext: res.locals.requestContext,
141
+ tools: res.locals.tools,
142
+ abortSignal: res.locals.abortSignal,
143
+ taskStore: this.taskStore,
144
+ };
145
+
146
+ // 4. Call handler
147
+ const result = await route.handler(handlerParams);
148
+
149
+ // 5. Send response
150
+ return this.sendResponse(route, res, result);
151
+ } catch (error) {
152
+ const status = error.status ?? error.details?.status ?? 500;
153
+ return res.status(status).json({ error: error.message });
154
+ }
155
+ });
156
+ }
157
+ ```
158
+
159
+ ### getParams()
160
+
161
+ Extract URL parameters, query parameters, and request body from the incoming request. Different frameworks expose these values in different ways—Express uses `req.params`, `req.query`, and `req.body`, while other frameworks may use different property names or require method calls. This method normalizes the extraction for your framework.
162
+
163
+ ```typescript copy
164
+ async getParams(
165
+ route: ServerRoute,
166
+ request: MyRequest
167
+ ): Promise<{
168
+ urlParams: Record<string, string>;
169
+ queryParams: Record<string, string>;
170
+ body: unknown;
171
+ }> {
172
+ return {
173
+ // From route path (e.g., :agentId)
174
+ urlParams: request.params,
175
+ // From URL query string
176
+ queryParams: request.query,
177
+ // From request body
178
+ body: request.body,
179
+ };
180
+ }
181
+ ```
182
+
183
+ ### sendResponse()
184
+
185
+ Send the response back to the client based on the route's response type. Mastra routes can return different response types: JSON for most API responses, streams for agent generation, and special types for MCP transports. Your implementation should handle each type appropriately for your framework.
186
+
187
+ ```typescript copy
188
+ async sendResponse(
189
+ route: ServerRoute,
190
+ response: MyResponse,
191
+ result: unknown
192
+ ): Promise<unknown> {
193
+ switch (route.responseType) {
194
+ case 'json':
195
+ return response.json(result);
196
+
197
+ case 'stream':
198
+ return this.stream(route, response, result);
199
+
200
+ case 'datastream-response':
201
+ // Return AI SDK Response directly
202
+ return result;
203
+
204
+ case 'mcp-http':
205
+ // Handle MCP HTTP transport
206
+ return this.handleMcpHttp(response, result);
207
+
208
+ case 'mcp-sse':
209
+ // Handle MCP SSE transport
210
+ return this.handleMcpSse(response, result);
211
+
212
+ default:
213
+ return response.json(result);
214
+ }
215
+ }
216
+ ```
217
+
218
+ ### stream()
219
+
220
+ Handle streaming responses for agent generation. When an agent generates a response, it produces a stream of chunks that should be sent to the client as they become available. This method reads from the stream, optionally applies redaction to hide sensitive data, and writes chunks to the response in the appropriate format (SSE or newline-delimited JSON).
221
+
222
+ ```typescript copy
223
+ async stream(
224
+ route: ServerRoute,
225
+ response: MyResponse,
226
+ result: unknown
227
+ ): Promise<unknown> {
228
+ const isSSE = route.streamFormat === 'sse';
229
+
230
+ // Set streaming headers based on format
231
+ response.setHeader('Content-Type', isSSE ? 'text/event-stream' : 'text/plain');
232
+ response.setHeader('Transfer-Encoding', 'chunked');
233
+
234
+ const reader = result.fullStream.getReader();
235
+
236
+ try {
237
+ while (true) {
238
+ const { done, value } = await reader.read();
239
+ if (done) break;
240
+
241
+ // Apply redaction if enabled
242
+ const chunk = this.streamOptions.redact
243
+ ? redactChunk(value)
244
+ : value;
245
+
246
+ // Format based on stream format
247
+ if (isSSE) {
248
+ response.write(`data: ${JSON.stringify(chunk)}\n\n`);
249
+ } else {
250
+ response.write(JSON.stringify(chunk) + '\x1E');
251
+ }
252
+ }
253
+
254
+ // Send completion marker (SSE uses data: [DONE], other formats use record separator)
255
+ if (isSSE) {
256
+ response.write('data: [DONE]\n\n');
257
+ }
258
+ response.end();
259
+ } catch (error) {
260
+ reader.cancel();
261
+ throw error;
262
+ }
263
+ }
264
+ ```
265
+
266
+ ## Helper methods
267
+
268
+ The base class provides helper methods you can use in your implementation. These handle common tasks like parameter validation and route registration, so you don't need to reimplement them:
269
+
270
+ | Method | Description |
271
+ |--------|-------------|
272
+ | `parsePathParams(route, params)` | Validate path params with Zod schema |
273
+ | `parseQueryParams(route, params)` | Validate query params with Zod schema |
274
+ | `parseBody(route, body)` | Validate body with Zod schema |
275
+ | `mergeRequestContext({ paramsRequestContext, bodyRequestContext })` | Merge request context from multiple sources |
276
+ | `registerRoutes()` | Register all Mastra routes (calls `registerRoute` for each) |
277
+ | `registerOpenAPIRoute(app, config, { prefix })` | Register OpenAPI spec endpoint |
278
+
279
+ The `parse*` methods use Zod schemas defined on each route to validate input and return typed results. If validation fails, they throw an error with details about what went wrong.
280
+
281
+ ## Constructor
282
+
283
+ Your adapter's constructor should accept the same options as the base class and pass them to `super()`. You can add additional framework-specific options if needed:
284
+
285
+ ```typescript copy
286
+ constructor(options: {
287
+ app: MyApp;
288
+ mastra: Mastra;
289
+ prefix?: string;
290
+ openapiPath?: string;
291
+ bodyLimitOptions?: BodyLimitOptions;
292
+ streamOptions?: StreamOptions;
293
+ customRouteAuthConfig?: Map<string, boolean>;
294
+ }) {
295
+ super(options);
296
+ }
297
+ ```
298
+
299
+ See [Server Adapters](/docs/v1/server-db/server-adapters#constructor-options) for full documentation on each option.
300
+
301
+ ## Full example
302
+
303
+ Here's a skeleton implementation showing all the required methods. This uses pseudocode for framework-specific parts—replace with your framework's actual APIs:
304
+
305
+ ```typescript title="my-framework-adapter.ts" copy
306
+ import { MastraServer, ServerRoute } from '@mastra/server/server-adapter';
307
+ import type { Mastra } from '@mastra/core';
308
+
309
+ export class MyFrameworkServer extends MastraServer<MyApp, MyRequest, MyResponse> {
310
+ constructor(options: { app: MyApp; mastra: Mastra; prefix?: string }) {
311
+ super(options);
312
+ }
313
+
314
+ registerContextMiddleware(): void {
315
+ this.app.use('*', (req, res, next) => {
316
+ res.locals.mastra = this.mastra;
317
+ res.locals.requestContext = this.mergeRequestContext({
318
+ paramsRequestContext: req.query.requestContext,
319
+ bodyRequestContext: req.body?.requestContext,
320
+ });
321
+ res.locals.tools = this.tools ?? {};
322
+ res.locals.abortSignal = createAbortSignal(req);
323
+ next();
324
+ });
325
+ }
326
+
327
+ registerAuthMiddleware(): void {
328
+ const authConfig = this.mastra.getServer()?.auth;
329
+ if (!authConfig) return;
330
+ // ... implement auth middleware
331
+ }
332
+
333
+ async registerRoute(app: MyApp, route: ServerRoute, { prefix }: { prefix?: string }): Promise<void> {
334
+ // ... implement route registration
335
+ }
336
+
337
+ async getParams(route: ServerRoute, request: MyRequest) {
338
+ return {
339
+ urlParams: request.params,
340
+ queryParams: request.query,
341
+ body: request.body,
342
+ };
343
+ }
344
+
345
+ async sendResponse(route: ServerRoute, response: MyResponse, result: unknown) {
346
+ if (route.responseType === 'stream') {
347
+ return this.stream(route, response, result);
348
+ }
349
+ return response.json(result);
350
+ }
351
+
352
+ async stream(route: ServerRoute, response: MyResponse, result: unknown) {
353
+ // ... implement streaming
354
+ }
355
+ }
356
+ ```
357
+
358
+ ## Usage
359
+
360
+ Once your adapter is implemented, use it the same way as the provided adapters:
361
+
362
+ ```typescript title="server.ts" copy
363
+ import { MyFrameworkServer } from './my-framework-adapter';
364
+ import { mastra } from './mastra';
365
+
366
+ const app = createMyFrameworkApp();
367
+ const server = new MyFrameworkServer({ app, mastra });
368
+
369
+ await server.init();
370
+
371
+ app.listen(4111);
372
+ ```
373
+
374
+ :::tip
375
+
376
+ The existing [@mastra/hono](https://github.com/mastra-ai/mastra/blob/main/server-adapters/hono/src/index.ts) and [@mastra/express](https://github.com/mastra-ai/mastra/blob/main/server-adapters/express/src/index.ts) implementations are good references when building your custom adapter. They show how to handle framework-specific patterns for context storage, middleware registration, and response handling.
377
+
378
+ :::
379
+
380
+ ## Related
381
+
382
+ - [Server Adapters](/docs/v1/server-db/server-adapters) - Overview and shared concepts
383
+ - [Hono Adapter](/reference/v1/server/hono-adapter) - Reference implementation
384
+ - [Express Adapter](/reference/v1/server/express-adapter) - Reference implementation
385
+ - [MastraServer Reference](/reference/v1/server/mastra-server) - Full API reference
386
+ - [createRoute() Reference](/reference/v1/server/create-route) - Creating type-safe custom routes
@@ -1,15 +1,15 @@
1
1
  ---
2
- title: "Custom API Routes | Server & DB | Mastra Docs"
2
+ title: "Custom API Routes | Server & DB"
3
3
  description: "Expose additional HTTP endpoints from your Mastra server."
4
4
  ---
5
5
 
6
6
  # Custom API Routes
7
7
 
8
- By default Mastra automatically exposes registered agents and workflows via the server. For additional behavior you can define your own HTTP routes.
8
+ By default, Mastra automatically exposes registered agents and workflows via its server. For additional behavior you can define your own HTTP routes.
9
9
 
10
- Routes are provided with a helper `registerApiRoute` from `@mastra/core/server`. Routes can live in the same file as the `Mastra` instance but separating them helps keep configuration concise.
10
+ Routes are provided with a helper `registerApiRoute()` from `@mastra/core/server`. Routes can live in the same file as the `Mastra` instance but separating them helps keep configuration concise.
11
11
 
12
- ```typescript title="src/mastra/index.ts" copy showLineNumbers
12
+ ```typescript title="src/mastra/index.ts" copy
13
13
  import { Mastra } from "@mastra/core";
14
14
  import { registerApiRoute } from "@mastra/core/server";
15
15
 
@@ -39,9 +39,9 @@ curl http://localhost:4111/my-custom-route
39
39
 
40
40
  Each route's handler receives the Hono `Context`. Within the handler you can access the `Mastra` instance to fetch or call agents and workflows.
41
41
 
42
- To add route-specific middleware pass a `middleware` array when calling `registerApiRoute`.
42
+ To add route-specific middleware pass a `middleware` array when calling `registerApiRoute()`.
43
43
 
44
- ```typescript title="src/mastra/index.ts" copy showLineNumbers
44
+ ```typescript title="src/mastra/index.ts" copy
45
45
  import { Mastra } from "@mastra/core";
46
46
  import { registerApiRoute } from "@mastra/core/server";
47
47
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Mastra Client SDK | Server & DB | Mastra Docs"
2
+ title: "Mastra Client SDK | Server & DB"
3
3
  description: "Learn how to set up and use the Mastra Client SDK"
4
4
  ---
5
5
 
@@ -8,7 +8,7 @@ import TabItem from "@theme/TabItem";
8
8
 
9
9
  # Mastra Client SDK
10
10
 
11
- The Mastra Client SDK provides a simple and type-safe interface for interacting with your [Mastra Server](/docs/v1/server-db/production-server) from your client environment.
11
+ The Mastra Client SDK provides a simple and type-safe interface for interacting with your [Mastra Server](/docs/v1/server-db/mastra-server) from your client environment.
12
12
 
13
13
  ## Prerequisites
14
14
 
@@ -30,28 +30,28 @@ To use the Mastra Client SDK, install the required dependencies:
30
30
  <TabItem value="npm" label="npm">
31
31
 
32
32
  ```bash copy
33
- npm install @mastra/client-js@latest
33
+ npm install @mastra/client-js@beta
34
34
  ```
35
35
 
36
36
  </TabItem>
37
37
  <TabItem value="pnpm" label="pnpm">
38
38
 
39
39
  ```bash copy
40
- pnpm add @mastra/client-js@latest
40
+ pnpm add @mastra/client-js@beta
41
41
  ```
42
42
 
43
43
  </TabItem>
44
44
  <TabItem value="yarn" label="yarn">
45
45
 
46
46
  ```bash copy
47
- yarn add @mastra/client-js@latest
47
+ yarn add @mastra/client-js@beta
48
48
  ```
49
49
 
50
50
  </TabItem>
51
51
  <TabItem value="bun" label="bun">
52
52
 
53
53
  ```bash copy
54
- bun add @mastra/client-js@latest
54
+ bun add @mastra/client-js@beta
55
55
  ```
56
56
 
57
57
  </TabItem>
@@ -240,7 +240,6 @@ const handleClientTool = async () => {
240
240
  This is a standard Mastra [agent](../agents/overview#setting-up-agents) configured to return hex color codes, intended to work with the browser-based client tool defined above.
241
241
 
242
242
  ```typescript title="src/mastra/agents/color-agent" showLineNumbers copy
243
- import { openai } from "@ai-sdk/openai";
244
243
  import { Agent } from "@mastra/core/agent";
245
244
 
246
245
  export const colorAgent = new Agent({
@@ -249,7 +248,7 @@ export const colorAgent = new Agent({
249
248
  instructions: `You are a helpful CSS assistant.
250
249
  You can change the background color of web pages.
251
250
  Respond with a hex reference for the color requested by the user`,
252
- model: openai("gpt-4o-mini"),
251
+ model: "openai/gpt-5.1",
253
252
  });
254
253
  ```
255
254
 
@@ -1,12 +1,18 @@
1
1
  ---
2
- title: "Create a Mastra Production Server | Server & DB | Mastra Docs"
3
- description: "Learn how to configure and deploy a production-ready Mastra server with custom settings for APIs, CORS, and more"
2
+ title: "Server Configuration | Server & DB"
3
+ description: "Configure the Mastra server with custom settings for port, timeout, CORS, and more."
4
4
  ---
5
5
 
6
- # Create a Mastra Production Server
6
+ # Server Configuration
7
7
 
8
8
  When deploying your Mastra application to production, it runs as an HTTP server that exposes your agents, workflows, and other functionality as API endpoints. This page covers how to configure and customize the server for a production environment.
9
9
 
10
+ :::info
11
+
12
+ This page covers the `server` configuration options passed to the `Mastra` constructor. For running Mastra with your own HTTP server (Hono, Express, etc.), see [Server Adapters](/docs/v1/server-db/server-adapters).
13
+
14
+ :::
15
+
10
16
  ## Server architecture
11
17
 
12
18
  Mastra uses [Hono](https://hono.dev) as its underlying HTTP server framework. When you build a Mastra application using `mastra build`, it generates a Hono-based HTTP server in the `.mastra` directory.
@@ -36,15 +42,11 @@ export const mastra = new Mastra({
36
42
  // ...
37
43
  server: {
38
44
  port: 3000, // Defaults to 4111
39
- timeout: 10000, // Defaults to 30000 (30s)
45
+ timeout: 10000, // Defaults to 3 * 60 * 1000 (3 minutes)
40
46
  },
41
47
  });
42
48
  ```
43
49
 
44
- The `method` option can be one of `"GET"`, `"POST"`, `"PUT"`,
45
- `"DELETE"` or `"ALL"`. Using `"ALL"` will cause the handler to be
46
- invoked for any HTTP method that matches the path.
47
-
48
50
  ## TypeScript configuration
49
51
 
50
52
  Mastra requires `module` and `moduleResolution` values that support modern Node.js versions. Older settings like `CommonJS` or `node` are incompatible with Mastra’s packages and will cause resolution errors.
@@ -87,3 +89,9 @@ export const mastra = new Mastra({
87
89
  },
88
90
  });
89
91
  ```
92
+
93
+ ## Stream data redaction
94
+
95
+ When streaming agent responses, the HTTP streaming layer redacts system prompts, tool definitions, API keys, and similar data from each chunk before sending it to clients. This is enabled by default.
96
+
97
+ If you're using server adapters directly, you can configure redaction behavior. See [Stream data redaction](/docs/v1/server-db/server-adapters#stream-data-redaction) in the Server Adapters docs.
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Middleware | Server & DB | Mastra Docs"
2
+ title: "Middleware | Server & DB"
3
3
  description: "Apply custom middleware functions to intercept requests."
4
4
  ---
5
5
 
@@ -64,6 +64,35 @@ registerApiRoute("/my-custom-route", {
64
64
 
65
65
  ## Common examples
66
66
 
67
+ ### Using `RequestContext`
68
+
69
+ You can populate `RequestContext` dynamically in server middleware by extracting information from the request. In this example, the `temperature-unit` is set based on the Cloudflare `CF-IPCountry` header to ensure responses match the user's locale.
70
+
71
+ ```typescript title="src/mastra/index.ts" showLineNumbers copy
72
+ import { Mastra } from "@mastra/core";
73
+ import { RequestContext } from "@mastra/core/request-context";
74
+ import { testWeatherAgent } from "./agents/test-weather-agent";
75
+
76
+ export const mastra = new Mastra({
77
+ agents: { testWeatherAgent },
78
+ server: {
79
+ middleware: [
80
+ async (context, next) => {
81
+ const country = context.req.header("CF-IPCountry");
82
+ const requestContext = context.get("requestContext");
83
+
84
+ requestContext.set(
85
+ "temperature-unit",
86
+ country === "US" ? "fahrenheit" : "celsius",
87
+ );
88
+
89
+ await next();
90
+ },
91
+ ],
92
+ },
93
+ });
94
+ ```
95
+
67
96
  ### Authentication
68
97
 
69
98
  ```typescript copy
@@ -143,35 +172,6 @@ be inspected by middleware to tailor behavior:
143
172
  - `x-mastra-client-type`: identifies the client SDK, e.g. `js` or `python`
144
173
  - `x-studio`: request triggered from Studio
145
174
 
146
- ### Setting `requestContext`
147
-
148
- You can populate `requestContext` dynamically in server middleware by extracting information from the request. In this example, the `temperature-unit` is set based on the Cloudflare `CF-IPCountry` header to ensure responses match the user's locale.
149
-
150
- ```typescript title="src/mastra/index.ts" showLineNumbers copy
151
- import { Mastra } from "@mastra/core";
152
- import { RequestContext } from "@mastra/core/request-context";
153
- import { testWeatherAgent } from "./agents/test-weather-agent";
154
-
155
- export const mastra = new Mastra({
156
- agents: { testWeatherAgent },
157
- server: {
158
- middleware: [
159
- async (context, next) => {
160
- const country = context.req.header("CF-IPCountry");
161
- const requestContext = context.get("requestContext");
162
-
163
- requestContext.set(
164
- "temperature-unit",
165
- country === "US" ? "fahrenheit" : "celsius",
166
- );
167
-
168
- await next();
169
- },
170
- ],
171
- },
172
- });
173
- ```
174
-
175
175
  # Related
176
176
 
177
- - [Request Context](./request-context)
177
+ - [Request Context](/docs/v1/server-db/request-context)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Request Context | Server & DB | Mastra Docs"
2
+ title: "Request Context | Server & DB"
3
3
  description: Learn how to use Mastra's RequestContext to provide dynamic, request-specific configuration to agents.
4
4
  ---
5
5
 
@@ -187,8 +187,7 @@ export const weatherTool = createTool({
187
187
 
188
188
  ## Related
189
189
 
190
- - [Request Context Example](/examples/v1/agents/request-context)
191
190
  - [Agent Request Context](/docs/v1/agents/overview#using-requestcontext)
192
191
  - [Workflow Request Context](../workflows/overview#using-requestcontext)
193
- - [Tool Request Context](../tools-mcp/overview#using-requestcontext)
194
- - [Server Middleware Request Context](/docs/v1/server-db/middleware)
192
+ - [Tool Request Context](../mcp/overview#using-requestcontext)
193
+ - [Server Middleware](/docs/v1/server-db/middleware)