@mastra/mcp-docs-server 1.1.4 → 1.1.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (547) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/package.json +3 -3
  3. package/.docs/docs/agents/adding-voice.md +0 -353
  4. package/.docs/docs/agents/agent-approval.md +0 -377
  5. package/.docs/docs/agents/agent-memory.md +0 -212
  6. package/.docs/docs/agents/guardrails.md +0 -382
  7. package/.docs/docs/agents/network-approval.md +0 -275
  8. package/.docs/docs/agents/networks.md +0 -290
  9. package/.docs/docs/agents/overview.md +0 -309
  10. package/.docs/docs/agents/processors.md +0 -632
  11. package/.docs/docs/agents/structured-output.md +0 -271
  12. package/.docs/docs/agents/using-tools.md +0 -214
  13. package/.docs/docs/build-with-ai/mcp-docs-server.md +0 -241
  14. package/.docs/docs/build-with-ai/skills.md +0 -35
  15. package/.docs/docs/community/contributing-templates.md +0 -3
  16. package/.docs/docs/community/discord.md +0 -9
  17. package/.docs/docs/community/licensing.md +0 -66
  18. package/.docs/docs/deployment/cloud-providers.md +0 -15
  19. package/.docs/docs/deployment/mastra-server.md +0 -122
  20. package/.docs/docs/deployment/monorepo.md +0 -142
  21. package/.docs/docs/deployment/overview.md +0 -62
  22. package/.docs/docs/deployment/studio.md +0 -234
  23. package/.docs/docs/deployment/web-framework.md +0 -52
  24. package/.docs/docs/deployment/workflow-runners.md +0 -9
  25. package/.docs/docs/evals/built-in-scorers.md +0 -47
  26. package/.docs/docs/evals/custom-scorers.md +0 -519
  27. package/.docs/docs/evals/overview.md +0 -146
  28. package/.docs/docs/evals/running-in-ci.md +0 -106
  29. package/.docs/docs/getting-started/build-with-ai.md +0 -68
  30. package/.docs/docs/getting-started/manual-install.md +0 -226
  31. package/.docs/docs/getting-started/project-structure.md +0 -60
  32. package/.docs/docs/getting-started/start.md +0 -28
  33. package/.docs/docs/getting-started/studio.md +0 -101
  34. package/.docs/docs/index.md +0 -43
  35. package/.docs/docs/mastra-cloud/deployment.md +0 -77
  36. package/.docs/docs/mastra-cloud/observability.md +0 -38
  37. package/.docs/docs/mastra-cloud/overview.md +0 -23
  38. package/.docs/docs/mastra-cloud/setup.md +0 -42
  39. package/.docs/docs/mastra-cloud/studio.md +0 -24
  40. package/.docs/docs/mcp/overview.md +0 -370
  41. package/.docs/docs/mcp/publishing-mcp-server.md +0 -95
  42. package/.docs/docs/memory/memory-processors.md +0 -316
  43. package/.docs/docs/memory/message-history.md +0 -260
  44. package/.docs/docs/memory/observational-memory.md +0 -246
  45. package/.docs/docs/memory/overview.md +0 -45
  46. package/.docs/docs/memory/semantic-recall.md +0 -272
  47. package/.docs/docs/memory/storage.md +0 -261
  48. package/.docs/docs/memory/working-memory.md +0 -400
  49. package/.docs/docs/observability/datasets/overview.md +0 -188
  50. package/.docs/docs/observability/datasets/running-experiments.md +0 -266
  51. package/.docs/docs/observability/logging.md +0 -99
  52. package/.docs/docs/observability/overview.md +0 -70
  53. package/.docs/docs/observability/tracing/bridges/otel.md +0 -209
  54. package/.docs/docs/observability/tracing/exporters/arize.md +0 -274
  55. package/.docs/docs/observability/tracing/exporters/braintrust.md +0 -111
  56. package/.docs/docs/observability/tracing/exporters/cloud.md +0 -129
  57. package/.docs/docs/observability/tracing/exporters/datadog.md +0 -187
  58. package/.docs/docs/observability/tracing/exporters/default.md +0 -211
  59. package/.docs/docs/observability/tracing/exporters/laminar.md +0 -100
  60. package/.docs/docs/observability/tracing/exporters/langfuse.md +0 -217
  61. package/.docs/docs/observability/tracing/exporters/langsmith.md +0 -202
  62. package/.docs/docs/observability/tracing/exporters/otel.md +0 -479
  63. package/.docs/docs/observability/tracing/exporters/posthog.md +0 -148
  64. package/.docs/docs/observability/tracing/exporters/sentry.md +0 -208
  65. package/.docs/docs/observability/tracing/overview.md +0 -1114
  66. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +0 -303
  67. package/.docs/docs/rag/chunking-and-embedding.md +0 -183
  68. package/.docs/docs/rag/graph-rag.md +0 -215
  69. package/.docs/docs/rag/overview.md +0 -72
  70. package/.docs/docs/rag/retrieval.md +0 -521
  71. package/.docs/docs/rag/vector-databases.md +0 -648
  72. package/.docs/docs/server/auth/auth0.md +0 -222
  73. package/.docs/docs/server/auth/better-auth.md +0 -203
  74. package/.docs/docs/server/auth/clerk.md +0 -132
  75. package/.docs/docs/server/auth/composite-auth.md +0 -234
  76. package/.docs/docs/server/auth/custom-auth-provider.md +0 -513
  77. package/.docs/docs/server/auth/firebase.md +0 -272
  78. package/.docs/docs/server/auth/jwt.md +0 -110
  79. package/.docs/docs/server/auth/simple-auth.md +0 -178
  80. package/.docs/docs/server/auth/supabase.md +0 -117
  81. package/.docs/docs/server/auth/workos.md +0 -190
  82. package/.docs/docs/server/auth.md +0 -38
  83. package/.docs/docs/server/custom-adapters.md +0 -374
  84. package/.docs/docs/server/custom-api-routes.md +0 -267
  85. package/.docs/docs/server/mastra-client.md +0 -243
  86. package/.docs/docs/server/mastra-server.md +0 -71
  87. package/.docs/docs/server/middleware.md +0 -228
  88. package/.docs/docs/server/request-context.md +0 -478
  89. package/.docs/docs/server/server-adapters.md +0 -547
  90. package/.docs/docs/streaming/events.md +0 -247
  91. package/.docs/docs/streaming/overview.md +0 -181
  92. package/.docs/docs/streaming/tool-streaming.md +0 -178
  93. package/.docs/docs/streaming/workflow-streaming.md +0 -109
  94. package/.docs/docs/voice/overview.md +0 -979
  95. package/.docs/docs/voice/speech-to-speech.md +0 -103
  96. package/.docs/docs/voice/speech-to-text.md +0 -80
  97. package/.docs/docs/voice/text-to-speech.md +0 -84
  98. package/.docs/docs/workflows/agents-and-tools.md +0 -170
  99. package/.docs/docs/workflows/control-flow.md +0 -823
  100. package/.docs/docs/workflows/error-handling.md +0 -360
  101. package/.docs/docs/workflows/human-in-the-loop.md +0 -213
  102. package/.docs/docs/workflows/overview.md +0 -372
  103. package/.docs/docs/workflows/snapshots.md +0 -238
  104. package/.docs/docs/workflows/suspend-and-resume.md +0 -205
  105. package/.docs/docs/workflows/time-travel.md +0 -309
  106. package/.docs/docs/workflows/workflow-state.md +0 -181
  107. package/.docs/docs/workspace/filesystem.md +0 -162
  108. package/.docs/docs/workspace/overview.md +0 -239
  109. package/.docs/docs/workspace/sandbox.md +0 -63
  110. package/.docs/docs/workspace/search.md +0 -219
  111. package/.docs/docs/workspace/skills.md +0 -126
  112. package/.docs/guides/agent-frameworks/ai-sdk.md +0 -140
  113. package/.docs/guides/build-your-ui/ai-sdk-ui.md +0 -1463
  114. package/.docs/guides/build-your-ui/assistant-ui.md +0 -156
  115. package/.docs/guides/build-your-ui/copilotkit.md +0 -292
  116. package/.docs/guides/deployment/amazon-ec2.md +0 -130
  117. package/.docs/guides/deployment/aws-lambda.md +0 -248
  118. package/.docs/guides/deployment/azure-app-services.md +0 -114
  119. package/.docs/guides/deployment/cloudflare.md +0 -99
  120. package/.docs/guides/deployment/digital-ocean.md +0 -168
  121. package/.docs/guides/deployment/inngest.md +0 -685
  122. package/.docs/guides/deployment/netlify.md +0 -77
  123. package/.docs/guides/deployment/vercel.md +0 -101
  124. package/.docs/guides/getting-started/astro.md +0 -408
  125. package/.docs/guides/getting-started/electron.md +0 -504
  126. package/.docs/guides/getting-started/express.md +0 -251
  127. package/.docs/guides/getting-started/hono.md +0 -191
  128. package/.docs/guides/getting-started/next-js.md +0 -355
  129. package/.docs/guides/getting-started/nuxt.md +0 -476
  130. package/.docs/guides/getting-started/quickstart.md +0 -67
  131. package/.docs/guides/getting-started/sveltekit.md +0 -300
  132. package/.docs/guides/getting-started/vite-react.md +0 -439
  133. package/.docs/guides/guide/ai-recruiter.md +0 -227
  134. package/.docs/guides/guide/chef-michel.md +0 -215
  135. package/.docs/guides/guide/code-review-bot.md +0 -221
  136. package/.docs/guides/guide/dev-assistant.md +0 -304
  137. package/.docs/guides/guide/docs-manager.md +0 -238
  138. package/.docs/guides/guide/github-actions-pr-description.md +0 -236
  139. package/.docs/guides/guide/notes-mcp-server.md +0 -425
  140. package/.docs/guides/guide/research-assistant.md +0 -349
  141. package/.docs/guides/guide/stock-agent.md +0 -134
  142. package/.docs/guides/guide/web-search.md +0 -326
  143. package/.docs/guides/guide/whatsapp-chat-bot.md +0 -416
  144. package/.docs/guides/index.md +0 -3
  145. package/.docs/guides/migrations/agentnetwork.md +0 -101
  146. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +0 -112
  147. package/.docs/guides/migrations/upgrade-to-v1/agent.md +0 -404
  148. package/.docs/guides/migrations/upgrade-to-v1/cli.md +0 -57
  149. package/.docs/guides/migrations/upgrade-to-v1/client.md +0 -337
  150. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +0 -37
  151. package/.docs/guides/migrations/upgrade-to-v1/evals.md +0 -239
  152. package/.docs/guides/migrations/upgrade-to-v1/mastra.md +0 -143
  153. package/.docs/guides/migrations/upgrade-to-v1/mcp.md +0 -97
  154. package/.docs/guides/migrations/upgrade-to-v1/memory.md +0 -285
  155. package/.docs/guides/migrations/upgrade-to-v1/overview.md +0 -119
  156. package/.docs/guides/migrations/upgrade-to-v1/processors.md +0 -68
  157. package/.docs/guides/migrations/upgrade-to-v1/rag.md +0 -42
  158. package/.docs/guides/migrations/upgrade-to-v1/storage.md +0 -553
  159. package/.docs/guides/migrations/upgrade-to-v1/tools.md +0 -180
  160. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +0 -417
  161. package/.docs/guides/migrations/upgrade-to-v1/vectors.md +0 -87
  162. package/.docs/guides/migrations/upgrade-to-v1/voice.md +0 -30
  163. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +0 -341
  164. package/.docs/guides/migrations/vnext-to-standard-apis.md +0 -364
  165. package/.docs/models/embeddings.md +0 -161
  166. package/.docs/models/gateways/azure-openai.md +0 -128
  167. package/.docs/models/gateways/custom-gateways.md +0 -545
  168. package/.docs/models/gateways/netlify.md +0 -88
  169. package/.docs/models/gateways/openrouter.md +0 -219
  170. package/.docs/models/gateways/vercel.md +0 -225
  171. package/.docs/models/gateways.md +0 -14
  172. package/.docs/models/index.md +0 -286
  173. package/.docs/models/providers/302ai.md +0 -134
  174. package/.docs/models/providers/abacus.md +0 -125
  175. package/.docs/models/providers/agentrouter.md +0 -90
  176. package/.docs/models/providers/aihubmix.md +0 -107
  177. package/.docs/models/providers/alibaba-cn.md +0 -135
  178. package/.docs/models/providers/alibaba.md +0 -111
  179. package/.docs/models/providers/amazon-bedrock.md +0 -33
  180. package/.docs/models/providers/anthropic.md +0 -153
  181. package/.docs/models/providers/azure.md +0 -33
  182. package/.docs/models/providers/bailing.md +0 -72
  183. package/.docs/models/providers/baseten.md +0 -77
  184. package/.docs/models/providers/berget.md +0 -78
  185. package/.docs/models/providers/cerebras.md +0 -101
  186. package/.docs/models/providers/chutes.md +0 -136
  187. package/.docs/models/providers/cloudflare-ai-gateway.md +0 -33
  188. package/.docs/models/providers/cloudflare-workers-ai.md +0 -109
  189. package/.docs/models/providers/cohere.md +0 -33
  190. package/.docs/models/providers/cortecs.md +0 -91
  191. package/.docs/models/providers/deepinfra.md +0 -112
  192. package/.docs/models/providers/deepseek.md +0 -88
  193. package/.docs/models/providers/fastrouter.md +0 -84
  194. package/.docs/models/providers/fireworks-ai.md +0 -89
  195. package/.docs/models/providers/firmware.md +0 -85
  196. package/.docs/models/providers/friendli.md +0 -78
  197. package/.docs/models/providers/github-models.md +0 -125
  198. package/.docs/models/providers/google-vertex.md +0 -33
  199. package/.docs/models/providers/google.md +0 -159
  200. package/.docs/models/providers/groq.md +0 -107
  201. package/.docs/models/providers/helicone.md +0 -161
  202. package/.docs/models/providers/huggingface.md +0 -90
  203. package/.docs/models/providers/iflowcn.md +0 -84
  204. package/.docs/models/providers/inception.md +0 -72
  205. package/.docs/models/providers/inference.md +0 -79
  206. package/.docs/models/providers/io-intelligence.md +0 -87
  207. package/.docs/models/providers/io-net.md +0 -87
  208. package/.docs/models/providers/jiekou.md +0 -131
  209. package/.docs/models/providers/kilo.md +0 -333
  210. package/.docs/models/providers/kimi-for-coding.md +0 -100
  211. package/.docs/models/providers/kuae-cloud-coding-plan.md +0 -71
  212. package/.docs/models/providers/llama.md +0 -77
  213. package/.docs/models/providers/lmstudio.md +0 -73
  214. package/.docs/models/providers/lucidquery.md +0 -72
  215. package/.docs/models/providers/minimax-cn-coding-plan.md +0 -102
  216. package/.docs/models/providers/minimax-cn.md +0 -102
  217. package/.docs/models/providers/minimax-coding-plan.md +0 -102
  218. package/.docs/models/providers/minimax.md +0 -104
  219. package/.docs/models/providers/mistral.md +0 -124
  220. package/.docs/models/providers/moark.md +0 -72
  221. package/.docs/models/providers/modelscope.md +0 -77
  222. package/.docs/models/providers/moonshotai-cn.md +0 -76
  223. package/.docs/models/providers/moonshotai.md +0 -76
  224. package/.docs/models/providers/morph.md +0 -73
  225. package/.docs/models/providers/nano-gpt.md +0 -103
  226. package/.docs/models/providers/nebius.md +0 -116
  227. package/.docs/models/providers/nova.md +0 -72
  228. package/.docs/models/providers/novita-ai.md +0 -154
  229. package/.docs/models/providers/nvidia.md +0 -141
  230. package/.docs/models/providers/ollama-cloud.md +0 -103
  231. package/.docs/models/providers/ollama.md +0 -33
  232. package/.docs/models/providers/openai.md +0 -193
  233. package/.docs/models/providers/opencode.md +0 -100
  234. package/.docs/models/providers/ovhcloud.md +0 -83
  235. package/.docs/models/providers/perplexity.md +0 -100
  236. package/.docs/models/providers/poe.md +0 -183
  237. package/.docs/models/providers/privatemode-ai.md +0 -75
  238. package/.docs/models/providers/requesty.md +0 -90
  239. package/.docs/models/providers/scaleway.md +0 -84
  240. package/.docs/models/providers/siliconflow-cn.md +0 -138
  241. package/.docs/models/providers/siliconflow.md +0 -140
  242. package/.docs/models/providers/stackit.md +0 -78
  243. package/.docs/models/providers/stepfun.md +0 -73
  244. package/.docs/models/providers/submodel.md +0 -79
  245. package/.docs/models/providers/synthetic.md +0 -96
  246. package/.docs/models/providers/togetherai.md +0 -115
  247. package/.docs/models/providers/upstage.md +0 -73
  248. package/.docs/models/providers/venice.md +0 -95
  249. package/.docs/models/providers/vivgrid.md +0 -106
  250. package/.docs/models/providers/vultr.md +0 -75
  251. package/.docs/models/providers/wandb.md +0 -80
  252. package/.docs/models/providers/xai.md +0 -141
  253. package/.docs/models/providers/xiaomi.md +0 -71
  254. package/.docs/models/providers/zai-coding-plan.md +0 -80
  255. package/.docs/models/providers/zai.md +0 -79
  256. package/.docs/models/providers/zenmux.md +0 -161
  257. package/.docs/models/providers/zhipuai-coding-plan.md +0 -79
  258. package/.docs/models/providers/zhipuai.md +0 -79
  259. package/.docs/models/providers.md +0 -81
  260. package/.docs/reference/agents/agent.md +0 -142
  261. package/.docs/reference/agents/generate.md +0 -174
  262. package/.docs/reference/agents/generateLegacy.md +0 -176
  263. package/.docs/reference/agents/getDefaultGenerateOptions.md +0 -36
  264. package/.docs/reference/agents/getDefaultOptions.md +0 -34
  265. package/.docs/reference/agents/getDefaultStreamOptions.md +0 -36
  266. package/.docs/reference/agents/getDescription.md +0 -21
  267. package/.docs/reference/agents/getInstructions.md +0 -34
  268. package/.docs/reference/agents/getLLM.md +0 -37
  269. package/.docs/reference/agents/getMemory.md +0 -34
  270. package/.docs/reference/agents/getModel.md +0 -34
  271. package/.docs/reference/agents/getTools.md +0 -29
  272. package/.docs/reference/agents/getVoice.md +0 -34
  273. package/.docs/reference/agents/listAgents.md +0 -35
  274. package/.docs/reference/agents/listScorers.md +0 -34
  275. package/.docs/reference/agents/listTools.md +0 -34
  276. package/.docs/reference/agents/listWorkflows.md +0 -34
  277. package/.docs/reference/agents/network.md +0 -134
  278. package/.docs/reference/ai-sdk/chat-route.md +0 -82
  279. package/.docs/reference/ai-sdk/handle-chat-stream.md +0 -53
  280. package/.docs/reference/ai-sdk/handle-network-stream.md +0 -37
  281. package/.docs/reference/ai-sdk/handle-workflow-stream.md +0 -55
  282. package/.docs/reference/ai-sdk/network-route.md +0 -74
  283. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +0 -232
  284. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +0 -79
  285. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +0 -73
  286. package/.docs/reference/ai-sdk/with-mastra.md +0 -59
  287. package/.docs/reference/ai-sdk/workflow-route.md +0 -79
  288. package/.docs/reference/auth/auth0.md +0 -73
  289. package/.docs/reference/auth/better-auth.md +0 -71
  290. package/.docs/reference/auth/clerk.md +0 -36
  291. package/.docs/reference/auth/firebase.md +0 -80
  292. package/.docs/reference/auth/jwt.md +0 -26
  293. package/.docs/reference/auth/supabase.md +0 -33
  294. package/.docs/reference/auth/workos.md +0 -84
  295. package/.docs/reference/cli/create-mastra.md +0 -137
  296. package/.docs/reference/cli/mastra.md +0 -336
  297. package/.docs/reference/client-js/agents.md +0 -438
  298. package/.docs/reference/client-js/error-handling.md +0 -16
  299. package/.docs/reference/client-js/logs.md +0 -24
  300. package/.docs/reference/client-js/mastra-client.md +0 -63
  301. package/.docs/reference/client-js/memory.md +0 -225
  302. package/.docs/reference/client-js/observability.md +0 -72
  303. package/.docs/reference/client-js/telemetry.md +0 -20
  304. package/.docs/reference/client-js/tools.md +0 -44
  305. package/.docs/reference/client-js/vectors.md +0 -79
  306. package/.docs/reference/client-js/workflows.md +0 -199
  307. package/.docs/reference/configuration.md +0 -749
  308. package/.docs/reference/core/addGateway.md +0 -42
  309. package/.docs/reference/core/getAgent.md +0 -21
  310. package/.docs/reference/core/getAgentById.md +0 -21
  311. package/.docs/reference/core/getDeployer.md +0 -22
  312. package/.docs/reference/core/getGateway.md +0 -38
  313. package/.docs/reference/core/getGatewayById.md +0 -41
  314. package/.docs/reference/core/getLogger.md +0 -22
  315. package/.docs/reference/core/getMCPServer.md +0 -45
  316. package/.docs/reference/core/getMCPServerById.md +0 -53
  317. package/.docs/reference/core/getMemory.md +0 -50
  318. package/.docs/reference/core/getScorer.md +0 -54
  319. package/.docs/reference/core/getScorerById.md +0 -54
  320. package/.docs/reference/core/getServer.md +0 -22
  321. package/.docs/reference/core/getStorage.md +0 -22
  322. package/.docs/reference/core/getStoredAgentById.md +0 -89
  323. package/.docs/reference/core/getTelemetry.md +0 -22
  324. package/.docs/reference/core/getVector.md +0 -22
  325. package/.docs/reference/core/getWorkflow.md +0 -40
  326. package/.docs/reference/core/listAgents.md +0 -21
  327. package/.docs/reference/core/listGateways.md +0 -40
  328. package/.docs/reference/core/listLogs.md +0 -38
  329. package/.docs/reference/core/listLogsByRunId.md +0 -36
  330. package/.docs/reference/core/listMCPServers.md +0 -51
  331. package/.docs/reference/core/listMemory.md +0 -56
  332. package/.docs/reference/core/listScorers.md +0 -29
  333. package/.docs/reference/core/listStoredAgents.md +0 -93
  334. package/.docs/reference/core/listVectors.md +0 -22
  335. package/.docs/reference/core/listWorkflows.md +0 -21
  336. package/.docs/reference/core/mastra-class.md +0 -66
  337. package/.docs/reference/core/mastra-model-gateway.md +0 -153
  338. package/.docs/reference/core/setLogger.md +0 -26
  339. package/.docs/reference/core/setStorage.md +0 -27
  340. package/.docs/reference/datasets/addItem.md +0 -35
  341. package/.docs/reference/datasets/addItems.md +0 -33
  342. package/.docs/reference/datasets/compareExperiments.md +0 -48
  343. package/.docs/reference/datasets/create.md +0 -49
  344. package/.docs/reference/datasets/dataset.md +0 -78
  345. package/.docs/reference/datasets/datasets-manager.md +0 -84
  346. package/.docs/reference/datasets/delete.md +0 -23
  347. package/.docs/reference/datasets/deleteExperiment.md +0 -25
  348. package/.docs/reference/datasets/deleteItem.md +0 -25
  349. package/.docs/reference/datasets/deleteItems.md +0 -27
  350. package/.docs/reference/datasets/get.md +0 -29
  351. package/.docs/reference/datasets/getDetails.md +0 -45
  352. package/.docs/reference/datasets/getExperiment.md +0 -28
  353. package/.docs/reference/datasets/getItem.md +0 -31
  354. package/.docs/reference/datasets/getItemHistory.md +0 -29
  355. package/.docs/reference/datasets/list.md +0 -29
  356. package/.docs/reference/datasets/listExperimentResults.md +0 -37
  357. package/.docs/reference/datasets/listExperiments.md +0 -31
  358. package/.docs/reference/datasets/listItems.md +0 -44
  359. package/.docs/reference/datasets/listVersions.md +0 -31
  360. package/.docs/reference/datasets/startExperiment.md +0 -60
  361. package/.docs/reference/datasets/startExperimentAsync.md +0 -41
  362. package/.docs/reference/datasets/update.md +0 -46
  363. package/.docs/reference/datasets/updateItem.md +0 -36
  364. package/.docs/reference/deployer/cloudflare.md +0 -79
  365. package/.docs/reference/deployer/netlify.md +0 -82
  366. package/.docs/reference/deployer/vercel.md +0 -91
  367. package/.docs/reference/deployer.md +0 -100
  368. package/.docs/reference/evals/answer-relevancy.md +0 -105
  369. package/.docs/reference/evals/answer-similarity.md +0 -99
  370. package/.docs/reference/evals/bias.md +0 -120
  371. package/.docs/reference/evals/completeness.md +0 -137
  372. package/.docs/reference/evals/content-similarity.md +0 -101
  373. package/.docs/reference/evals/context-precision.md +0 -196
  374. package/.docs/reference/evals/context-relevance.md +0 -536
  375. package/.docs/reference/evals/create-scorer.md +0 -270
  376. package/.docs/reference/evals/faithfulness.md +0 -114
  377. package/.docs/reference/evals/hallucination.md +0 -220
  378. package/.docs/reference/evals/keyword-coverage.md +0 -128
  379. package/.docs/reference/evals/mastra-scorer.md +0 -123
  380. package/.docs/reference/evals/noise-sensitivity.md +0 -685
  381. package/.docs/reference/evals/prompt-alignment.md +0 -619
  382. package/.docs/reference/evals/run-evals.md +0 -138
  383. package/.docs/reference/evals/scorer-utils.md +0 -330
  384. package/.docs/reference/evals/textual-difference.md +0 -113
  385. package/.docs/reference/evals/tone-consistency.md +0 -119
  386. package/.docs/reference/evals/tool-call-accuracy.md +0 -533
  387. package/.docs/reference/evals/toxicity.md +0 -123
  388. package/.docs/reference/harness/harness-class.md +0 -645
  389. package/.docs/reference/index.md +0 -276
  390. package/.docs/reference/logging/pino-logger.md +0 -117
  391. package/.docs/reference/memory/clone-utilities.md +0 -199
  392. package/.docs/reference/memory/cloneThread.md +0 -130
  393. package/.docs/reference/memory/createThread.md +0 -68
  394. package/.docs/reference/memory/deleteMessages.md +0 -40
  395. package/.docs/reference/memory/getThreadById.md +0 -24
  396. package/.docs/reference/memory/listThreads.md +0 -145
  397. package/.docs/reference/memory/memory-class.md +0 -147
  398. package/.docs/reference/memory/observational-memory.md +0 -565
  399. package/.docs/reference/memory/recall.md +0 -91
  400. package/.docs/reference/observability/tracing/bridges/otel.md +0 -131
  401. package/.docs/reference/observability/tracing/configuration.md +0 -178
  402. package/.docs/reference/observability/tracing/exporters/arize.md +0 -141
  403. package/.docs/reference/observability/tracing/exporters/braintrust.md +0 -93
  404. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +0 -163
  405. package/.docs/reference/observability/tracing/exporters/console-exporter.md +0 -138
  406. package/.docs/reference/observability/tracing/exporters/datadog.md +0 -116
  407. package/.docs/reference/observability/tracing/exporters/default-exporter.md +0 -174
  408. package/.docs/reference/observability/tracing/exporters/laminar.md +0 -78
  409. package/.docs/reference/observability/tracing/exporters/langfuse.md +0 -134
  410. package/.docs/reference/observability/tracing/exporters/langsmith.md +0 -110
  411. package/.docs/reference/observability/tracing/exporters/otel.md +0 -199
  412. package/.docs/reference/observability/tracing/exporters/posthog.md +0 -92
  413. package/.docs/reference/observability/tracing/exporters/sentry.md +0 -184
  414. package/.docs/reference/observability/tracing/instances.md +0 -109
  415. package/.docs/reference/observability/tracing/interfaces.md +0 -749
  416. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +0 -144
  417. package/.docs/reference/observability/tracing/spans.md +0 -224
  418. package/.docs/reference/processors/batch-parts-processor.md +0 -61
  419. package/.docs/reference/processors/language-detector.md +0 -81
  420. package/.docs/reference/processors/message-history-processor.md +0 -85
  421. package/.docs/reference/processors/moderation-processor.md +0 -104
  422. package/.docs/reference/processors/pii-detector.md +0 -107
  423. package/.docs/reference/processors/processor-interface.md +0 -525
  424. package/.docs/reference/processors/prompt-injection-detector.md +0 -71
  425. package/.docs/reference/processors/semantic-recall-processor.md +0 -123
  426. package/.docs/reference/processors/system-prompt-scrubber.md +0 -80
  427. package/.docs/reference/processors/token-limiter-processor.md +0 -113
  428. package/.docs/reference/processors/tool-call-filter.md +0 -85
  429. package/.docs/reference/processors/tool-search-processor.md +0 -113
  430. package/.docs/reference/processors/unicode-normalizer.md +0 -62
  431. package/.docs/reference/processors/working-memory-processor.md +0 -154
  432. package/.docs/reference/rag/chunk.md +0 -221
  433. package/.docs/reference/rag/database-config.md +0 -264
  434. package/.docs/reference/rag/document.md +0 -114
  435. package/.docs/reference/rag/embeddings.md +0 -92
  436. package/.docs/reference/rag/extract-params.md +0 -168
  437. package/.docs/reference/rag/graph-rag.md +0 -111
  438. package/.docs/reference/rag/metadata-filters.md +0 -216
  439. package/.docs/reference/rag/rerank.md +0 -80
  440. package/.docs/reference/rag/rerankWithScorer.md +0 -80
  441. package/.docs/reference/server/create-route.md +0 -260
  442. package/.docs/reference/server/express-adapter.md +0 -176
  443. package/.docs/reference/server/fastify-adapter.md +0 -90
  444. package/.docs/reference/server/hono-adapter.md +0 -162
  445. package/.docs/reference/server/koa-adapter.md +0 -127
  446. package/.docs/reference/server/mastra-server.md +0 -298
  447. package/.docs/reference/server/register-api-route.md +0 -249
  448. package/.docs/reference/server/routes.md +0 -306
  449. package/.docs/reference/storage/cloudflare-d1.md +0 -218
  450. package/.docs/reference/storage/cloudflare.md +0 -88
  451. package/.docs/reference/storage/composite.md +0 -235
  452. package/.docs/reference/storage/convex.md +0 -161
  453. package/.docs/reference/storage/dynamodb.md +0 -282
  454. package/.docs/reference/storage/lance.md +0 -131
  455. package/.docs/reference/storage/libsql.md +0 -135
  456. package/.docs/reference/storage/mongodb.md +0 -262
  457. package/.docs/reference/storage/mssql.md +0 -155
  458. package/.docs/reference/storage/overview.md +0 -121
  459. package/.docs/reference/storage/postgresql.md +0 -529
  460. package/.docs/reference/storage/upstash.md +0 -160
  461. package/.docs/reference/streaming/ChunkType.md +0 -292
  462. package/.docs/reference/streaming/agents/MastraModelOutput.md +0 -182
  463. package/.docs/reference/streaming/agents/stream.md +0 -212
  464. package/.docs/reference/streaming/agents/streamLegacy.md +0 -142
  465. package/.docs/reference/streaming/workflows/observeStream.md +0 -42
  466. package/.docs/reference/streaming/workflows/resumeStream.md +0 -61
  467. package/.docs/reference/streaming/workflows/stream.md +0 -88
  468. package/.docs/reference/streaming/workflows/timeTravelStream.md +0 -142
  469. package/.docs/reference/templates/overview.md +0 -194
  470. package/.docs/reference/tools/create-tool.md +0 -237
  471. package/.docs/reference/tools/document-chunker-tool.md +0 -89
  472. package/.docs/reference/tools/graph-rag-tool.md +0 -185
  473. package/.docs/reference/tools/mcp-client.md +0 -962
  474. package/.docs/reference/tools/mcp-server.md +0 -1275
  475. package/.docs/reference/tools/vector-query-tool.md +0 -459
  476. package/.docs/reference/vectors/astra.md +0 -121
  477. package/.docs/reference/vectors/chroma.md +0 -267
  478. package/.docs/reference/vectors/convex.md +0 -303
  479. package/.docs/reference/vectors/couchbase.md +0 -226
  480. package/.docs/reference/vectors/duckdb.md +0 -318
  481. package/.docs/reference/vectors/elasticsearch.md +0 -189
  482. package/.docs/reference/vectors/lance.md +0 -220
  483. package/.docs/reference/vectors/libsql.md +0 -305
  484. package/.docs/reference/vectors/mongodb.md +0 -295
  485. package/.docs/reference/vectors/opensearch.md +0 -99
  486. package/.docs/reference/vectors/pg.md +0 -408
  487. package/.docs/reference/vectors/pinecone.md +0 -168
  488. package/.docs/reference/vectors/qdrant.md +0 -222
  489. package/.docs/reference/vectors/s3vectors.md +0 -277
  490. package/.docs/reference/vectors/turbopuffer.md +0 -157
  491. package/.docs/reference/vectors/upstash.md +0 -294
  492. package/.docs/reference/vectors/vectorize.md +0 -147
  493. package/.docs/reference/voice/azure.md +0 -148
  494. package/.docs/reference/voice/cloudflare.md +0 -83
  495. package/.docs/reference/voice/composite-voice.md +0 -121
  496. package/.docs/reference/voice/deepgram.md +0 -79
  497. package/.docs/reference/voice/elevenlabs.md +0 -98
  498. package/.docs/reference/voice/google-gemini-live.md +0 -378
  499. package/.docs/reference/voice/google.md +0 -228
  500. package/.docs/reference/voice/mastra-voice.md +0 -313
  501. package/.docs/reference/voice/murf.md +0 -122
  502. package/.docs/reference/voice/openai-realtime.md +0 -203
  503. package/.docs/reference/voice/openai.md +0 -88
  504. package/.docs/reference/voice/playai.md +0 -80
  505. package/.docs/reference/voice/sarvam.md +0 -126
  506. package/.docs/reference/voice/speechify.md +0 -75
  507. package/.docs/reference/voice/voice.addInstructions.md +0 -56
  508. package/.docs/reference/voice/voice.addTools.md +0 -67
  509. package/.docs/reference/voice/voice.answer.md +0 -54
  510. package/.docs/reference/voice/voice.close.md +0 -51
  511. package/.docs/reference/voice/voice.connect.md +0 -94
  512. package/.docs/reference/voice/voice.events.md +0 -37
  513. package/.docs/reference/voice/voice.getSpeakers.md +0 -129
  514. package/.docs/reference/voice/voice.listen.md +0 -164
  515. package/.docs/reference/voice/voice.off.md +0 -54
  516. package/.docs/reference/voice/voice.on.md +0 -111
  517. package/.docs/reference/voice/voice.send.md +0 -65
  518. package/.docs/reference/voice/voice.speak.md +0 -157
  519. package/.docs/reference/voice/voice.updateConfig.md +0 -60
  520. package/.docs/reference/workflows/run-methods/cancel.md +0 -86
  521. package/.docs/reference/workflows/run-methods/restart.md +0 -33
  522. package/.docs/reference/workflows/run-methods/resume.md +0 -59
  523. package/.docs/reference/workflows/run-methods/start.md +0 -58
  524. package/.docs/reference/workflows/run-methods/startAsync.md +0 -67
  525. package/.docs/reference/workflows/run-methods/timeTravel.md +0 -142
  526. package/.docs/reference/workflows/run.md +0 -59
  527. package/.docs/reference/workflows/step.md +0 -119
  528. package/.docs/reference/workflows/workflow-methods/branch.md +0 -25
  529. package/.docs/reference/workflows/workflow-methods/commit.md +0 -17
  530. package/.docs/reference/workflows/workflow-methods/create-run.md +0 -63
  531. package/.docs/reference/workflows/workflow-methods/dountil.md +0 -25
  532. package/.docs/reference/workflows/workflow-methods/dowhile.md +0 -25
  533. package/.docs/reference/workflows/workflow-methods/foreach.md +0 -118
  534. package/.docs/reference/workflows/workflow-methods/map.md +0 -93
  535. package/.docs/reference/workflows/workflow-methods/parallel.md +0 -21
  536. package/.docs/reference/workflows/workflow-methods/sleep.md +0 -35
  537. package/.docs/reference/workflows/workflow-methods/sleepUntil.md +0 -35
  538. package/.docs/reference/workflows/workflow-methods/then.md +0 -21
  539. package/.docs/reference/workflows/workflow.md +0 -157
  540. package/.docs/reference/workspace/e2b-sandbox.md +0 -288
  541. package/.docs/reference/workspace/filesystem.md +0 -202
  542. package/.docs/reference/workspace/gcs-filesystem.md +0 -170
  543. package/.docs/reference/workspace/local-filesystem.md +0 -327
  544. package/.docs/reference/workspace/local-sandbox.md +0 -285
  545. package/.docs/reference/workspace/s3-filesystem.md +0 -169
  546. package/.docs/reference/workspace/sandbox.md +0 -81
  547. package/.docs/reference/workspace/workspace-class.md +0 -226
@@ -1,228 +0,0 @@
1
- # Middleware
2
-
3
- Mastra servers can execute custom middleware functions before or after an API route handler is invoked. This is useful for things like authentication, logging, injecting request-specific context or adding CORS headers.
4
-
5
- A middleware receives the [Hono](https://hono.dev) `Context` (`c`) and a `next` function. If it returns a `Response` the request is short-circuited. Calling `next()` continues processing the next middleware or route handler.
6
-
7
- ```typescript
8
- import { Mastra } from "@mastra/core";
9
-
10
- export const mastra = new Mastra({
11
- server: {
12
- middleware: [
13
- {
14
- handler: async (c, next) => {
15
- // Example: Add authentication check
16
- const authHeader = c.req.header("Authorization");
17
- if (!authHeader) {
18
- return new Response("Unauthorized", { status: 401 });
19
- }
20
-
21
- await next();
22
- },
23
- path: "/api/*",
24
- },
25
- // Add a global request logger
26
- async (c, next) => {
27
- console.log(`${c.req.method} ${c.req.url}`);
28
- await next();
29
- },
30
- ],
31
- },
32
- });
33
- ```
34
-
35
- To attach middleware to a single route pass the `middleware` option to `registerApiRoute`:
36
-
37
- ```typescript
38
- registerApiRoute("/my-custom-route", {
39
- method: "GET",
40
- middleware: [
41
- async (c, next) => {
42
- console.log(`${c.req.method} ${c.req.url}`);
43
- await next();
44
- },
45
- ],
46
- handler: async (c) => {
47
- const mastra = c.get("mastra");
48
- return c.json({ message: "Hello, world!" });
49
- },
50
- });
51
- ```
52
-
53
- ## Common examples
54
-
55
- ### Using `RequestContext`
56
-
57
- 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.
58
-
59
- ```typescript
60
- import { Mastra } from "@mastra/core";
61
- import { RequestContext } from "@mastra/core/request-context";
62
- import { testWeatherAgent } from "./agents/test-weather-agent";
63
-
64
- export const mastra = new Mastra({
65
- agents: { testWeatherAgent },
66
- server: {
67
- middleware: [
68
- async (context, next) => {
69
- const country = context.req.header("CF-IPCountry");
70
- const requestContext = context.get("requestContext");
71
-
72
- requestContext.set(
73
- "temperature-unit",
74
- country === "US" ? "fahrenheit" : "celsius",
75
- );
76
-
77
- await next();
78
- },
79
- ],
80
- },
81
- });
82
- ```
83
-
84
- ### Authentication
85
-
86
- ```typescript
87
- {
88
- handler: async (c, next) => {
89
- const authHeader = c.req.header('Authorization');
90
- if (!authHeader || !authHeader.startsWith('Bearer ')) {
91
- return new Response('Unauthorized', { status: 401 });
92
- }
93
-
94
- // Validate token here
95
- await next();
96
- },
97
- path: '/api/*',
98
- }
99
- ```
100
-
101
- ### Authorization (User Isolation)
102
-
103
- Authentication verifies who the user is. Authorization controls what they can access. Without authorization middleware, an authenticated user could access other users' threads by guessing IDs or manipulating the `resourceId` parameter.
104
-
105
- Mastra provides reserved context keys that, when set by middleware, take precedence over client-provided values. The server automatically enforces these keys across memory and agent endpoints:
106
-
107
- ```typescript
108
- import { Mastra } from "@mastra/core";
109
- import { MASTRA_RESOURCE_ID_KEY } from "@mastra/core/request-context";
110
-
111
- export const mastra = new Mastra({
112
- server: {
113
- auth: {
114
- authenticateToken: async (token) => {
115
- // Your auth logic returns the user
116
- return verifyToken(token); // { id: 'user-123', ... }
117
- },
118
- },
119
- middleware: [
120
- {
121
- path: '/api/*',
122
- handler: async (c, next) => {
123
- const requestContext = c.get('requestContext');
124
- const user = requestContext.get('user');
125
-
126
- if (!user) {
127
- return c.json({ error: 'Unauthorized' }, 401);
128
- }
129
-
130
- // Force all API operations to use this user's ID
131
- // This takes precedence over any client-provided resourceId
132
- requestContext.set(MASTRA_RESOURCE_ID_KEY, user.id);
133
-
134
- return next();
135
- },
136
- },
137
- ],
138
- },
139
- });
140
- ```
141
-
142
- With this middleware, the server automatically:
143
-
144
- - **Filters thread listing** to only return threads owned by the user
145
- - **Validates thread access** and returns 403 if accessing another user's thread
146
- - **Forces thread creation** to use the authenticated user's ID
147
- - **Validates message operations** including deletion, ensuring messages belong to owned threads
148
-
149
- Even if a client passes `?resourceId=other-user-id`, the middleware-set value takes precedence. Attempts to access threads or messages owned by other users will return a 403 error.
150
-
151
- #### Using `MASTRA_THREAD_ID_KEY`
152
-
153
- You can also set `MASTRA_THREAD_ID_KEY` to override the client-provided thread ID:
154
-
155
- ```typescript
156
- import { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from "@mastra/core/request-context";
157
-
158
- // Force operations to use a specific thread
159
- requestContext.set(MASTRA_THREAD_ID_KEY, validatedThreadId);
160
- ```
161
-
162
- This is useful when you want to restrict operations to a specific thread that you've validated through other means.
163
-
164
- ### CORS support
165
-
166
- ```typescript
167
- {
168
- handler: async (c, next) => {
169
- c.header('Access-Control-Allow-Origin', '*');
170
- c.header(
171
- 'Access-Control-Allow-Methods',
172
- 'GET, POST, PUT, DELETE, OPTIONS',
173
- );
174
- c.header(
175
- 'Access-Control-Allow-Headers',
176
- 'Content-Type, Authorization',
177
- );
178
-
179
- if (c.req.method === 'OPTIONS') {
180
- return new Response(null, { status: 204 });
181
- }
182
-
183
- await next();
184
- },
185
- }
186
- ```
187
-
188
- ### Request logging
189
-
190
- ```typescript
191
- {
192
- handler: async (c, next) => {
193
- const start = Date.now();
194
- await next();
195
- const duration = Date.now() - start;
196
- console.log(`${c.req.method} ${c.req.url} - ${duration}ms`);
197
- },
198
- }
199
- ```
200
-
201
- ### Special Mastra headers
202
-
203
- When integrating with Mastra Cloud or custom clients the following headers can be inspected by middleware to tailor behavior:
204
-
205
- ```typescript
206
- {
207
- handler: async (c, next) => {
208
- const isFromMastraCloud = c.req.header('x-mastra-cloud') === 'true';
209
- const clientType = c.req.header('x-mastra-client-type');
210
- const isStudio =
211
- c.req.header('x-studio') === 'true';
212
-
213
- if (isFromMastraCloud) {
214
- // Special handling
215
- }
216
- await next();
217
- },
218
- }
219
- ```
220
-
221
- - `x-mastra-cloud`: request originates from Mastra Cloud
222
- - `x-mastra-client-type`: identifies the client SDK, e.g. `js` or `python`
223
- - `x-studio`: request triggered from Studio
224
-
225
- # Related
226
-
227
- - [Request Context](https://mastra.ai/docs/server/request-context)
228
- - [Reserved Keys](https://mastra.ai/docs/server/request-context)
@@ -1,478 +0,0 @@
1
- # Request Context
2
-
3
- Agents, tools, and workflows can all accept `RequestContext` as a parameter, making request-specific values available to the underlying primitives.
4
-
5
- ## When to use `RequestContext`
6
-
7
- Use `RequestContext` when a primitive's behavior should change based on runtime conditions. For example, you might switch models or storage backends based on user attributes, or adjust instructions and tool selection based on language.
8
-
9
- > **Note:** **Note:** `RequestContext` is primarily used for passing data into specific requests. It's distinct from agent memory, which handles conversation history and state persistence across multiple calls.
10
-
11
- ## Setting values
12
-
13
- Pass `requestContext` into an agent, network, workflow, or tool call to make values available to all underlying primitives during execution. Use `.set()` to define values before making the call.
14
-
15
- The `.set()` method takes two arguments:
16
-
17
- 1. **key**: The name used to identify the value.
18
- 2. **value**: The data to associate with that key.
19
-
20
- ```typescript
21
- import { RequestContext } from "@mastra/core/request-context";
22
-
23
- export type UserTier = {
24
- "user-tier": "enterprise" | "pro";
25
- };
26
-
27
- const requestContext = new RequestContext<UserTier>();
28
- requestContext.set("user-tier", "enterprise");
29
-
30
- const agent = mastra.getAgent("weatherAgent");
31
- await agent.generate("What's the weather in London?", {
32
- requestContext,
33
- });
34
-
35
- const routingAgent = mastra.getAgent("routingAgent");
36
- routingAgent.network("What's the weather in London?", {
37
- requestContext,
38
- });
39
-
40
- const run = await mastra.getWorkflow("weatherWorkflow").createRun();
41
- await run.start({
42
- inputData: {
43
- location: "London",
44
- },
45
- requestContext,
46
- });
47
- await run.resume({
48
- resumeData: {
49
- city: "New York",
50
- },
51
- requestContext,
52
- });
53
-
54
- await weatherTool.execute(
55
- { location: "London" },
56
- { requestContext },
57
- );
58
- ```
59
-
60
- ### Setting values based on request headers
61
-
62
- 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.
63
-
64
- ```typescript
65
- import { Mastra } from "@mastra/core";
66
- import { RequestContext } from "@mastra/core/request-context";
67
- import { testWeatherAgent } from "./agents/test-weather-agent";
68
-
69
- export const mastra = new Mastra({
70
- agents: { testWeatherAgent },
71
- server: {
72
- middleware: [
73
- async (context, next) => {
74
- const country = context.req.header("CF-IPCountry");
75
- const requestContext = context.get("requestContext");
76
-
77
- requestContext.set(
78
- "temperature-unit",
79
- country === "US" ? "fahrenheit" : "celsius",
80
- );
81
-
82
- await next();
83
- },
84
- ],
85
- },
86
- });
87
- ```
88
-
89
- > **Info:** Visit [Middleware](https://mastra.ai/docs/server/middleware) for how to use server middleware.
90
-
91
- ## Accessing values with agents
92
-
93
- You can access the `requestContext` argument from any supported configuration options in agents. These functions can be sync or `async`. Use the `.get()` method to read values from `requestContext`.
94
-
95
- ```typescript
96
- export type UserTier = {
97
- "user-tier": "enterprise" | "pro";
98
- };
99
-
100
- export const weatherAgent = new Agent({
101
- id: "weather-agent",
102
- name: "Weather Agent",
103
- instructions: async ({ requestContext }) => {
104
- const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
105
-
106
- if (userTier === "enterprise") {}
107
- },
108
- model: ({ requestContext }) => {},
109
- tools: ({ requestContext }) => {},
110
- memory: ({ requestContext }) => {},
111
- });
112
- ```
113
-
114
- You can also use `requestContext` with other options like `agents`, `workflows`, `scorers`, `inputProcessors`, and `outputProcessors`.
115
-
116
- ### Dynamic instructions
117
-
118
- Agent instructions can be provided as an async function, enabling you to resolve prompts dynamically at runtime. Combined with `requestContext`, this enables patterns like:
119
-
120
- - **Personalization**: Tailor instructions based on user attributes, preferences, or tier
121
- - **Localization**: Adjust tone, language, or behavior based on locale
122
- - **A/B testing**: Serve different prompt variants for experimentation
123
- - **External prompt management**: Fetch prompts from registry services without redeploying
124
-
125
- ```typescript
126
- import { Agent } from "@mastra/core/agent";
127
-
128
- export const dynamicAgent = new Agent({
129
- id: "dynamic-agent",
130
- name: "Dynamic Agent",
131
- instructions: async ({ requestContext }) => {
132
- const userTier = requestContext?.get("user-tier");
133
- const locale = requestContext?.get("locale");
134
-
135
- // Personalize based on user tier
136
- const basePrompt = userTier === "enterprise"
137
- ? "You are a premium support agent. Provide detailed, thorough responses with technical depth."
138
- : "You are a helpful assistant. Be concise and friendly.";
139
-
140
- // Localize behavior
141
- const localeInstructions = locale === "ja"
142
- ? "Respond in Japanese using formal keigo."
143
- : "";
144
-
145
- return `${basePrompt} ${localeInstructions}`.trim();
146
- },
147
- model: "openai/gpt-5.1",
148
- });
149
- ```
150
-
151
- #### Fetching from a prompt registry
152
-
153
- If your organization uses a prompt registry service for central prompt management, you can fetch instructions at runtime. This allows you to update prompts without redeploying, run experiments with variants, and track prompt usage across your agents.
154
-
155
- ```typescript
156
- import { Agent } from "@mastra/core/agent";
157
-
158
- // Your prompt registry client
159
- import { promptRegistry } from "../lib/prompt-registry";
160
-
161
- export const registryAgent = new Agent({
162
- id: "registry-agent",
163
- name: "Registry Agent",
164
- instructions: async ({ requestContext }) => {
165
- const prompt = await promptRegistry.getPrompt({
166
- promptId: "customer-support-agent",
167
- // Pass context for variant selection or tracking
168
- variant: requestContext?.get("experiment-variant"),
169
- userId: requestContext?.get("user-id"),
170
- });
171
-
172
- return prompt.content;
173
- },
174
- model: "openai/gpt-5.1",
175
- });
176
- ```
177
-
178
- > **Info:** Visit [Agent](https://mastra.ai/reference/agents/agent) for a full list of configuration options.
179
-
180
- ## Accessing values from workflow steps
181
-
182
- You can access the `requestContext` argument from a workflow step's `execute` function. This function can be sync or async. Use the `.get()` method to read values from `requestContext`.
183
-
184
- ```typescript
185
- export type UserTier = {
186
- "user-tier": "enterprise" | "pro";
187
- };
188
-
189
- const stepOne = createStep({
190
- id: "step-one",
191
- execute: async ({ requestContext }) => {
192
- const userTier = requestContext.get("user-tier") as UserTier["user-tier"];
193
-
194
- if (userTier === "enterprise") {}
195
- },
196
- });
197
- ```
198
-
199
- > **Info:** Visit [createStep()](https://mastra.ai/reference/workflows/step) for a full list of configuration options.
200
-
201
- ## Accessing values with tools
202
-
203
- You can access the `requestContext` argument from a tool's `execute` function. This function is `async`. Use the `.get()` method to read values from `requestContext`.
204
-
205
- ```typescript
206
- export type UserTier = {
207
- "user-tier": "enterprise" | "pro";
208
- };
209
-
210
- export const weatherTool = createTool({
211
- id: "weather-tool",
212
- execute: async (inputData, context) => {
213
- const userTier = context?.requestContext?.get("user-tier") as UserTier["user-tier"] | undefined;
214
-
215
- if (userTier === "enterprise") {}
216
- },
217
- });
218
- ```
219
-
220
- > **Info:** Visit [createTool()](https://mastra.ai/reference/tools/create-tool) for a full list of configuration options.
221
-
222
- ## Reserved keys
223
-
224
- Mastra reserves special context keys for security purposes. When set by middleware, these keys take precedence over client-provided values. The server automatically validates ownership and returns 403 errors when users attempt to access resources they don't own.
225
-
226
- ```typescript
227
- import {
228
- MASTRA_RESOURCE_ID_KEY,
229
- MASTRA_THREAD_ID_KEY,
230
- } from "@mastra/core/request-context";
231
-
232
- // In middleware: force memory operations to use authenticated user's ID
233
- requestContext.set(MASTRA_RESOURCE_ID_KEY, user.id);
234
-
235
- // In middleware: set validated thread ID
236
- requestContext.set(MASTRA_THREAD_ID_KEY, threadId);
237
- ```
238
-
239
- | Key | Purpose |
240
- | ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
241
- | `MASTRA_RESOURCE_ID_KEY` | Forces all memory operations to use this resource ID. The server validates that accessed threads belong to this resource and returns 403 if not. |
242
- | `MASTRA_THREAD_ID_KEY` | Forces thread operations to use this thread ID, overriding client-provided values |
243
-
244
- These keys are used to implement user isolation in multi-tenant applications. See [Authorization middleware](https://mastra.ai/docs/server/middleware) for usage examples.
245
-
246
- ## TypeScript support
247
-
248
- When you provide a type parameter to `RequestContext`, all methods are fully typed:
249
-
250
- ```typescript
251
- import { RequestContext } from "@mastra/core/request-context";
252
-
253
- type MyContext = {
254
- userId: string;
255
- maxTokens: number;
256
- isPremium: boolean;
257
- };
258
-
259
- const ctx = new RequestContext<MyContext>();
260
-
261
- // set() enforces correct value types
262
- ctx.set("userId", "user-123"); // ✓ valid
263
- ctx.set("maxTokens", 4096); // ✓ valid
264
- ctx.set("maxTokens", "wrong"); // ✗ TypeScript error: expected number
265
-
266
- // get() returns the correct type automatically
267
- const tokens = ctx.get("maxTokens"); // inferred as number
268
- const id = ctx.get("userId"); // inferred as string
269
-
270
- // keys() returns typed keys
271
- for (const key of ctx.keys()) {
272
- // key is "userId" | "maxTokens" | "isPremium"
273
- }
274
-
275
- // entries() supports type narrowing
276
- for (const [key, value] of ctx.entries()) {
277
- if (key === "maxTokens") {
278
- // TypeScript knows value is number here
279
- console.log(value.toFixed(2));
280
- }
281
- if (key === "userId") {
282
- // TypeScript knows value is string here
283
- console.log(value.toUpperCase());
284
- }
285
- }
286
- ```
287
-
288
- ## Schema validation
289
-
290
- Use `requestContextSchema` to define a Zod schema that validates request context values at runtime. This catches missing or invalid context values early, provides clear error messages, and gives you type inference within your component.
291
-
292
- ### Agent schema validation
293
-
294
- When you define `requestContextSchema` on an agent, the context is validated at the start of `generate()` or `stream()`. If validation fails, the agent throws a `MastraError` before any LLM calls are made.
295
-
296
- ```typescript
297
- import { Agent } from "@mastra/core/agent";
298
- import { z } from "zod";
299
-
300
- export const validatedAgent = new Agent({
301
- id: "validated-agent",
302
- name: "Validated Agent",
303
- requestContextSchema: z.object({
304
- userId: z.string(),
305
- apiKey: z.string(),
306
- }),
307
- instructions: ({ requestContext }) => {
308
- // Access all values as a typed object
309
- const { userId, apiKey } = requestContext.all;
310
- // { userId: string; apiKey: string }
311
-
312
- // Or retrieve individual values with .get()
313
- const id = requestContext.get("userId");
314
- // string
315
-
316
- return `You are helping user ${userId}`;
317
- },
318
- model: "openai/gpt-4o",
319
- });
320
- ```
321
-
322
- When validation fails, the error includes the agent ID and details about which fields failed:
323
-
324
- ```text
325
- Request context validation failed for agent 'validated-agent':
326
- - apiKey: Required
327
- ```
328
-
329
- ### Tool schema validation
330
-
331
- When you define `requestContextSchema` on a tool, the context is validated before `execute()` runs. Unlike agents, tools return a validation error object instead of throwing:
332
-
333
- ```typescript
334
- import { createTool } from "@mastra/core/tools";
335
- import { z } from "zod";
336
-
337
- export const validatedTool = createTool({
338
- id: "validated-tool",
339
- description: "A tool that requires authenticated context",
340
- inputSchema: z.object({
341
- query: z.string(),
342
- }),
343
- requestContextSchema: z.object({
344
- userId: z.string(),
345
- }),
346
- execute: async (inputData, context) => {
347
- // Access all values as a typed object
348
- const { userId } = context.requestContext?.all ?? {};
349
- // { userId: string }
350
-
351
- // Or retrieve individual values with .get()
352
- const id = context.requestContext?.get("userId");
353
- // string | undefined
354
-
355
- return { result: `Processed for ${userId}` };
356
- },
357
- });
358
- ```
359
-
360
- When validation fails, the tool returns an error object instead of throwing:
361
-
362
- ```json
363
- {
364
- "error": true,
365
- "message": "Request context validation failed for validated-tool. Please fix the following errors and try again:\n- userId: Required\n\nProvided context: {}"
366
- }
367
- ```
368
-
369
- ### Workflow schema validation
370
-
371
- When you define `requestContextSchema` on a workflow, the context is validated at the start of `run.start()`. If validation fails, the workflow throws an error before any steps execute.
372
-
373
- ```typescript
374
- import { createWorkflow, createStep } from "@mastra/core/workflows";
375
- import { z } from "zod";
376
-
377
- // Define schema once and share between workflow and steps
378
- const workflowContextSchema = z.object({
379
- tenantId: z.string(),
380
- });
381
-
382
- const step1 = createStep({
383
- id: "step-1",
384
- inputSchema: z.object({ message: z.string() }),
385
- outputSchema: z.object({ result: z.string() }),
386
- // Add schema to step for type inference
387
- requestContextSchema: workflowContextSchema,
388
- execute: async ({ inputData, requestContext }) => {
389
- // Access all values as a typed object
390
- const { tenantId } = requestContext.all;
391
- // { tenantId: string }
392
-
393
- // Or retrieve individual values with .get()
394
- const id = requestContext.get("tenantId");
395
- // string
396
-
397
- return { result: `Processed for tenant ${tenantId}` };
398
- },
399
- });
400
-
401
- export const validatedWorkflow = createWorkflow({
402
- id: "validated-workflow",
403
- inputSchema: z.object({ message: z.string() }),
404
- outputSchema: z.object({ result: z.string() }),
405
- requestContextSchema: workflowContextSchema,
406
- })
407
- .then(step1)
408
- .commit();
409
- ```
410
-
411
- When validation fails, the workflow throws an error:
412
-
413
- ```text
414
- Request context validation failed for workflow 'validated-workflow':
415
- - tenantId: Required
416
- ```
417
-
418
- Steps can also define their own `requestContextSchema` for step-level validation. Step validation runs before the step's `execute()` function.
419
-
420
- ### Validation behavior
421
-
422
- | Component | Property | Validation timing | On failure |
423
- | --------- | ---------------------- | ---------------------------------- | --------------------- |
424
- | Agent | `requestContextSchema` | Start of `generate()` / `stream()` | Throws `MastraError` |
425
- | Tool | `requestContextSchema` | Before `execute()` | Returns error object |
426
- | Workflow | `requestContextSchema` | Start of `run.start()` | Throws `Error` |
427
- | Step | `requestContextSchema` | Before step `execute()` | Step fails with error |
428
-
429
- ### Best practices
430
-
431
- **Match your middleware**: Define the same required fields in your schema that your middleware sets. This ensures the contract between middleware and components is explicit and validated.
432
-
433
- ```typescript
434
- // Middleware sets these fields
435
- requestContext.set("userId", user.id);
436
- requestContext.set("tenantId", tenant.id);
437
-
438
- // Schema validates they exist
439
- requestContextSchema: z.object({
440
- userId: z.string(),
441
- tenantId: z.string(),
442
- })
443
- ```
444
-
445
- **Use optional fields for conditional context**: Use `.optional()` for values that may not always be present.
446
-
447
- ```typescript
448
- requestContextSchema: z.object({
449
- userId: z.string(), // Always required
450
- experimentVariant: z.string().optional(), // May not be set
451
- })
452
- ```
453
-
454
- **Handle tool validation errors**: Since tools return error objects instead of throwing, check for errors in your agent or workflow logic when tool execution is critical.
455
-
456
- ## Testing with Studio presets
457
-
458
- When developing locally, you can define named presets in a JSON file and load them into Studio with the [`--request-context-presets`](https://mastra.ai/reference/cli/mastra) CLI flag. This adds a dropdown to the request context editor in Studio so you can quickly switch between configurations without manually editing JSON each time.
459
-
460
- ```bash
461
- mastra dev --request-context-presets ./presets.json
462
- ```
463
-
464
- ```json
465
- {
466
- "development": { "userId": "dev-user", "env": "development" },
467
- "production": { "userId": "prod-user", "env": "production" }
468
- }
469
- ```
470
-
471
- When you select a preset from the dropdown, the JSON editor populates with that preset's values. Editing the JSON manually switches the dropdown back to "Custom".
472
-
473
- ## Related
474
-
475
- - [Agent Request Context](https://mastra.ai/docs/agents/overview)
476
- - [Workflow Request Context](https://mastra.ai/docs/workflows/overview)
477
- - [Server Middleware](https://mastra.ai/docs/server/middleware)
478
- - [Authorization Middleware](https://mastra.ai/docs/server/middleware)