@mastra/mcp-docs-server 1.1.5 → 1.1.6-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 (556) hide show
  1. package/.docs/docs/agents/adding-voice.md +349 -0
  2. package/.docs/docs/agents/agent-approval.md +558 -0
  3. package/.docs/docs/agents/agent-memory.md +209 -0
  4. package/.docs/docs/agents/guardrails.md +374 -0
  5. package/.docs/docs/agents/network-approval.md +275 -0
  6. package/.docs/docs/agents/networks.md +299 -0
  7. package/.docs/docs/agents/overview.md +304 -0
  8. package/.docs/docs/agents/processors.md +622 -0
  9. package/.docs/docs/agents/structured-output.md +273 -0
  10. package/.docs/docs/agents/supervisor-agents.md +304 -0
  11. package/.docs/docs/agents/using-tools.md +214 -0
  12. package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
  13. package/.docs/docs/build-with-ai/skills.md +35 -0
  14. package/.docs/docs/community/contributing-templates.md +3 -0
  15. package/.docs/docs/community/discord.md +9 -0
  16. package/.docs/docs/community/licensing.md +66 -0
  17. package/.docs/docs/deployment/cloud-providers.md +15 -0
  18. package/.docs/docs/deployment/mastra-server.md +122 -0
  19. package/.docs/docs/deployment/monorepo.md +142 -0
  20. package/.docs/docs/deployment/overview.md +62 -0
  21. package/.docs/docs/deployment/studio.md +239 -0
  22. package/.docs/docs/deployment/web-framework.md +52 -0
  23. package/.docs/docs/deployment/workflow-runners.md +9 -0
  24. package/.docs/docs/evals/built-in-scorers.md +47 -0
  25. package/.docs/docs/evals/custom-scorers.md +519 -0
  26. package/.docs/docs/evals/overview.md +141 -0
  27. package/.docs/docs/evals/running-in-ci.md +124 -0
  28. package/.docs/docs/getting-started/build-with-ai.md +68 -0
  29. package/.docs/docs/getting-started/manual-install.md +226 -0
  30. package/.docs/docs/getting-started/project-structure.md +60 -0
  31. package/.docs/docs/getting-started/start.md +28 -0
  32. package/.docs/docs/getting-started/studio.md +101 -0
  33. package/.docs/docs/index.md +43 -0
  34. package/.docs/docs/mastra-cloud/deployment.md +77 -0
  35. package/.docs/docs/mastra-cloud/observability.md +38 -0
  36. package/.docs/docs/mastra-cloud/overview.md +23 -0
  37. package/.docs/docs/mastra-cloud/setup.md +42 -0
  38. package/.docs/docs/mastra-cloud/studio.md +24 -0
  39. package/.docs/docs/mastra-code/configuration.md +299 -0
  40. package/.docs/docs/mastra-code/customization.md +228 -0
  41. package/.docs/docs/mastra-code/modes.md +104 -0
  42. package/.docs/docs/mastra-code/overview.md +135 -0
  43. package/.docs/docs/mastra-code/tools.md +229 -0
  44. package/.docs/docs/mcp/overview.md +373 -0
  45. package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
  46. package/.docs/docs/memory/memory-processors.md +314 -0
  47. package/.docs/docs/memory/message-history.md +260 -0
  48. package/.docs/docs/memory/observational-memory.md +248 -0
  49. package/.docs/docs/memory/overview.md +45 -0
  50. package/.docs/docs/memory/semantic-recall.md +272 -0
  51. package/.docs/docs/memory/storage.md +261 -0
  52. package/.docs/docs/memory/working-memory.md +400 -0
  53. package/.docs/docs/observability/datasets/overview.md +198 -0
  54. package/.docs/docs/observability/datasets/running-experiments.md +274 -0
  55. package/.docs/docs/observability/logging.md +99 -0
  56. package/.docs/docs/observability/overview.md +70 -0
  57. package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
  58. package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
  59. package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
  60. package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
  61. package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
  62. package/.docs/docs/observability/tracing/exporters/default.md +209 -0
  63. package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
  64. package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
  65. package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
  66. package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
  67. package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
  68. package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
  69. package/.docs/docs/observability/tracing/overview.md +1112 -0
  70. package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
  71. package/.docs/docs/rag/chunking-and-embedding.md +183 -0
  72. package/.docs/docs/rag/graph-rag.md +215 -0
  73. package/.docs/docs/rag/overview.md +72 -0
  74. package/.docs/docs/rag/retrieval.md +515 -0
  75. package/.docs/docs/rag/vector-databases.md +645 -0
  76. package/.docs/docs/server/auth/auth0.md +220 -0
  77. package/.docs/docs/server/auth/better-auth.md +203 -0
  78. package/.docs/docs/server/auth/clerk.md +132 -0
  79. package/.docs/docs/server/auth/composite-auth.md +234 -0
  80. package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
  81. package/.docs/docs/server/auth/firebase.md +272 -0
  82. package/.docs/docs/server/auth/jwt.md +110 -0
  83. package/.docs/docs/server/auth/simple-auth.md +180 -0
  84. package/.docs/docs/server/auth/supabase.md +117 -0
  85. package/.docs/docs/server/auth/workos.md +186 -0
  86. package/.docs/docs/server/auth.md +38 -0
  87. package/.docs/docs/server/custom-adapters.md +378 -0
  88. package/.docs/docs/server/custom-api-routes.md +267 -0
  89. package/.docs/docs/server/mastra-client.md +243 -0
  90. package/.docs/docs/server/mastra-server.md +71 -0
  91. package/.docs/docs/server/middleware.md +225 -0
  92. package/.docs/docs/server/request-context.md +471 -0
  93. package/.docs/docs/server/server-adapters.md +547 -0
  94. package/.docs/docs/streaming/events.md +237 -0
  95. package/.docs/docs/streaming/overview.md +175 -0
  96. package/.docs/docs/streaming/tool-streaming.md +175 -0
  97. package/.docs/docs/streaming/workflow-streaming.md +109 -0
  98. package/.docs/docs/voice/overview.md +959 -0
  99. package/.docs/docs/voice/speech-to-speech.md +102 -0
  100. package/.docs/docs/voice/speech-to-text.md +79 -0
  101. package/.docs/docs/voice/text-to-speech.md +83 -0
  102. package/.docs/docs/workflows/agents-and-tools.md +166 -0
  103. package/.docs/docs/workflows/control-flow.md +822 -0
  104. package/.docs/docs/workflows/error-handling.md +360 -0
  105. package/.docs/docs/workflows/human-in-the-loop.md +215 -0
  106. package/.docs/docs/workflows/overview.md +370 -0
  107. package/.docs/docs/workflows/snapshots.md +238 -0
  108. package/.docs/docs/workflows/suspend-and-resume.md +205 -0
  109. package/.docs/docs/workflows/time-travel.md +309 -0
  110. package/.docs/docs/workflows/workflow-state.md +181 -0
  111. package/.docs/docs/workspace/filesystem.md +164 -0
  112. package/.docs/docs/workspace/overview.md +239 -0
  113. package/.docs/docs/workspace/sandbox.md +63 -0
  114. package/.docs/docs/workspace/search.md +243 -0
  115. package/.docs/docs/workspace/skills.md +169 -0
  116. package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
  117. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
  118. package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
  119. package/.docs/guides/build-your-ui/copilotkit.md +289 -0
  120. package/.docs/guides/deployment/amazon-ec2.md +130 -0
  121. package/.docs/guides/deployment/aws-lambda.md +248 -0
  122. package/.docs/guides/deployment/azure-app-services.md +114 -0
  123. package/.docs/guides/deployment/cloudflare.md +99 -0
  124. package/.docs/guides/deployment/digital-ocean.md +168 -0
  125. package/.docs/guides/deployment/inngest.md +682 -0
  126. package/.docs/guides/deployment/netlify.md +77 -0
  127. package/.docs/guides/deployment/vercel.md +101 -0
  128. package/.docs/guides/getting-started/astro.md +398 -0
  129. package/.docs/guides/getting-started/electron.md +504 -0
  130. package/.docs/guides/getting-started/express.md +251 -0
  131. package/.docs/guides/getting-started/hono.md +190 -0
  132. package/.docs/guides/getting-started/next-js.md +347 -0
  133. package/.docs/guides/getting-started/nuxt.md +497 -0
  134. package/.docs/guides/getting-started/quickstart.md +67 -0
  135. package/.docs/guides/getting-started/sveltekit.md +296 -0
  136. package/.docs/guides/getting-started/vite-react.md +425 -0
  137. package/.docs/guides/guide/ai-recruiter.md +226 -0
  138. package/.docs/guides/guide/chef-michel.md +211 -0
  139. package/.docs/guides/guide/code-review-bot.md +226 -0
  140. package/.docs/guides/guide/dev-assistant.md +307 -0
  141. package/.docs/guides/guide/docs-manager.md +238 -0
  142. package/.docs/guides/guide/github-actions-pr-description.md +236 -0
  143. package/.docs/guides/guide/notes-mcp-server.md +416 -0
  144. package/.docs/guides/guide/research-assistant.md +348 -0
  145. package/.docs/guides/guide/research-coordinator.md +416 -0
  146. package/.docs/guides/guide/stock-agent.md +132 -0
  147. package/.docs/guides/guide/web-search.md +320 -0
  148. package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
  149. package/.docs/guides/index.md +3 -0
  150. package/.docs/guides/migrations/agentnetwork.md +97 -0
  151. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
  152. package/.docs/guides/migrations/network-to-supervisor.md +261 -0
  153. package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
  154. package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
  155. package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
  156. package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
  157. package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
  158. package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
  159. package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
  160. package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
  161. package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
  162. package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
  163. package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
  164. package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
  165. package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
  166. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
  167. package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
  168. package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
  169. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
  170. package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
  171. package/.docs/models/embeddings.md +161 -0
  172. package/.docs/models/gateways/azure-openai.md +128 -0
  173. package/.docs/models/gateways/custom-gateways.md +545 -0
  174. package/.docs/models/gateways/netlify.md +88 -0
  175. package/.docs/models/gateways/openrouter.md +219 -0
  176. package/.docs/models/gateways/vercel.md +225 -0
  177. package/.docs/models/gateways.md +14 -0
  178. package/.docs/models/index.md +286 -0
  179. package/.docs/models/providers/302ai.md +134 -0
  180. package/.docs/models/providers/abacus.md +125 -0
  181. package/.docs/models/providers/agentrouter.md +90 -0
  182. package/.docs/models/providers/aihubmix.md +107 -0
  183. package/.docs/models/providers/alibaba-cn.md +135 -0
  184. package/.docs/models/providers/alibaba.md +111 -0
  185. package/.docs/models/providers/amazon-bedrock.md +33 -0
  186. package/.docs/models/providers/anthropic.md +153 -0
  187. package/.docs/models/providers/azure.md +33 -0
  188. package/.docs/models/providers/bailing.md +72 -0
  189. package/.docs/models/providers/baseten.md +77 -0
  190. package/.docs/models/providers/berget.md +78 -0
  191. package/.docs/models/providers/cerebras.md +101 -0
  192. package/.docs/models/providers/chutes.md +136 -0
  193. package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
  194. package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
  195. package/.docs/models/providers/cohere.md +33 -0
  196. package/.docs/models/providers/cortecs.md +91 -0
  197. package/.docs/models/providers/deepinfra.md +112 -0
  198. package/.docs/models/providers/deepseek.md +88 -0
  199. package/.docs/models/providers/fastrouter.md +84 -0
  200. package/.docs/models/providers/fireworks-ai.md +89 -0
  201. package/.docs/models/providers/firmware.md +85 -0
  202. package/.docs/models/providers/friendli.md +78 -0
  203. package/.docs/models/providers/github-models.md +125 -0
  204. package/.docs/models/providers/google-vertex.md +33 -0
  205. package/.docs/models/providers/google.md +159 -0
  206. package/.docs/models/providers/groq.md +107 -0
  207. package/.docs/models/providers/helicone.md +161 -0
  208. package/.docs/models/providers/huggingface.md +90 -0
  209. package/.docs/models/providers/iflowcn.md +84 -0
  210. package/.docs/models/providers/inception.md +72 -0
  211. package/.docs/models/providers/inference.md +79 -0
  212. package/.docs/models/providers/io-intelligence.md +87 -0
  213. package/.docs/models/providers/io-net.md +87 -0
  214. package/.docs/models/providers/jiekou.md +131 -0
  215. package/.docs/models/providers/kilo.md +333 -0
  216. package/.docs/models/providers/kimi-for-coding.md +100 -0
  217. package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
  218. package/.docs/models/providers/llama.md +77 -0
  219. package/.docs/models/providers/lmstudio.md +73 -0
  220. package/.docs/models/providers/lucidquery.md +72 -0
  221. package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
  222. package/.docs/models/providers/minimax-cn.md +102 -0
  223. package/.docs/models/providers/minimax-coding-plan.md +102 -0
  224. package/.docs/models/providers/minimax.md +104 -0
  225. package/.docs/models/providers/mistral.md +124 -0
  226. package/.docs/models/providers/moark.md +72 -0
  227. package/.docs/models/providers/modelscope.md +77 -0
  228. package/.docs/models/providers/moonshotai-cn.md +76 -0
  229. package/.docs/models/providers/moonshotai.md +76 -0
  230. package/.docs/models/providers/morph.md +73 -0
  231. package/.docs/models/providers/nano-gpt.md +103 -0
  232. package/.docs/models/providers/nebius.md +116 -0
  233. package/.docs/models/providers/nova.md +72 -0
  234. package/.docs/models/providers/novita-ai.md +154 -0
  235. package/.docs/models/providers/nvidia.md +141 -0
  236. package/.docs/models/providers/ollama-cloud.md +103 -0
  237. package/.docs/models/providers/ollama.md +33 -0
  238. package/.docs/models/providers/openai.md +193 -0
  239. package/.docs/models/providers/opencode.md +100 -0
  240. package/.docs/models/providers/ovhcloud.md +83 -0
  241. package/.docs/models/providers/perplexity.md +100 -0
  242. package/.docs/models/providers/poe.md +183 -0
  243. package/.docs/models/providers/privatemode-ai.md +75 -0
  244. package/.docs/models/providers/requesty.md +90 -0
  245. package/.docs/models/providers/scaleway.md +84 -0
  246. package/.docs/models/providers/siliconflow-cn.md +138 -0
  247. package/.docs/models/providers/siliconflow.md +140 -0
  248. package/.docs/models/providers/stackit.md +78 -0
  249. package/.docs/models/providers/stepfun.md +73 -0
  250. package/.docs/models/providers/submodel.md +79 -0
  251. package/.docs/models/providers/synthetic.md +96 -0
  252. package/.docs/models/providers/togetherai.md +115 -0
  253. package/.docs/models/providers/upstage.md +73 -0
  254. package/.docs/models/providers/venice.md +95 -0
  255. package/.docs/models/providers/vivgrid.md +106 -0
  256. package/.docs/models/providers/vultr.md +75 -0
  257. package/.docs/models/providers/wandb.md +80 -0
  258. package/.docs/models/providers/xai.md +141 -0
  259. package/.docs/models/providers/xiaomi.md +71 -0
  260. package/.docs/models/providers/zai-coding-plan.md +80 -0
  261. package/.docs/models/providers/zai.md +79 -0
  262. package/.docs/models/providers/zenmux.md +161 -0
  263. package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
  264. package/.docs/models/providers/zhipuai.md +79 -0
  265. package/.docs/models/providers.md +81 -0
  266. package/.docs/reference/agents/agent.md +141 -0
  267. package/.docs/reference/agents/generate.md +186 -0
  268. package/.docs/reference/agents/generateLegacy.md +173 -0
  269. package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
  270. package/.docs/reference/agents/getDefaultOptions.md +34 -0
  271. package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
  272. package/.docs/reference/agents/getDescription.md +21 -0
  273. package/.docs/reference/agents/getInstructions.md +34 -0
  274. package/.docs/reference/agents/getLLM.md +37 -0
  275. package/.docs/reference/agents/getMemory.md +34 -0
  276. package/.docs/reference/agents/getModel.md +34 -0
  277. package/.docs/reference/agents/getTools.md +29 -0
  278. package/.docs/reference/agents/getVoice.md +34 -0
  279. package/.docs/reference/agents/listAgents.md +35 -0
  280. package/.docs/reference/agents/listScorers.md +34 -0
  281. package/.docs/reference/agents/listTools.md +34 -0
  282. package/.docs/reference/agents/listWorkflows.md +34 -0
  283. package/.docs/reference/agents/network.md +133 -0
  284. package/.docs/reference/ai-sdk/chat-route.md +82 -0
  285. package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
  286. package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
  287. package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
  288. package/.docs/reference/ai-sdk/network-route.md +74 -0
  289. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
  290. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
  291. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
  292. package/.docs/reference/ai-sdk/with-mastra.md +59 -0
  293. package/.docs/reference/ai-sdk/workflow-route.md +79 -0
  294. package/.docs/reference/auth/auth0.md +73 -0
  295. package/.docs/reference/auth/better-auth.md +71 -0
  296. package/.docs/reference/auth/clerk.md +36 -0
  297. package/.docs/reference/auth/firebase.md +80 -0
  298. package/.docs/reference/auth/jwt.md +26 -0
  299. package/.docs/reference/auth/supabase.md +33 -0
  300. package/.docs/reference/auth/workos.md +84 -0
  301. package/.docs/reference/cli/create-mastra.md +137 -0
  302. package/.docs/reference/cli/mastra.md +336 -0
  303. package/.docs/reference/client-js/agents.md +437 -0
  304. package/.docs/reference/client-js/error-handling.md +16 -0
  305. package/.docs/reference/client-js/logs.md +24 -0
  306. package/.docs/reference/client-js/mastra-client.md +63 -0
  307. package/.docs/reference/client-js/memory.md +221 -0
  308. package/.docs/reference/client-js/observability.md +72 -0
  309. package/.docs/reference/client-js/telemetry.md +20 -0
  310. package/.docs/reference/client-js/tools.md +44 -0
  311. package/.docs/reference/client-js/vectors.md +79 -0
  312. package/.docs/reference/client-js/workflows.md +199 -0
  313. package/.docs/reference/configuration.md +752 -0
  314. package/.docs/reference/core/addGateway.md +42 -0
  315. package/.docs/reference/core/getAgent.md +21 -0
  316. package/.docs/reference/core/getAgentById.md +21 -0
  317. package/.docs/reference/core/getDeployer.md +22 -0
  318. package/.docs/reference/core/getGateway.md +38 -0
  319. package/.docs/reference/core/getGatewayById.md +41 -0
  320. package/.docs/reference/core/getLogger.md +22 -0
  321. package/.docs/reference/core/getMCPServer.md +47 -0
  322. package/.docs/reference/core/getMCPServerById.md +55 -0
  323. package/.docs/reference/core/getMemory.md +50 -0
  324. package/.docs/reference/core/getScorer.md +54 -0
  325. package/.docs/reference/core/getScorerById.md +54 -0
  326. package/.docs/reference/core/getServer.md +22 -0
  327. package/.docs/reference/core/getStorage.md +22 -0
  328. package/.docs/reference/core/getStoredAgentById.md +89 -0
  329. package/.docs/reference/core/getTelemetry.md +22 -0
  330. package/.docs/reference/core/getVector.md +22 -0
  331. package/.docs/reference/core/getWorkflow.md +42 -0
  332. package/.docs/reference/core/listAgents.md +21 -0
  333. package/.docs/reference/core/listGateways.md +40 -0
  334. package/.docs/reference/core/listLogs.md +38 -0
  335. package/.docs/reference/core/listLogsByRunId.md +36 -0
  336. package/.docs/reference/core/listMCPServers.md +55 -0
  337. package/.docs/reference/core/listMemory.md +56 -0
  338. package/.docs/reference/core/listScorers.md +29 -0
  339. package/.docs/reference/core/listStoredAgents.md +93 -0
  340. package/.docs/reference/core/listVectors.md +22 -0
  341. package/.docs/reference/core/listWorkflows.md +21 -0
  342. package/.docs/reference/core/mastra-class.md +66 -0
  343. package/.docs/reference/core/mastra-model-gateway.md +153 -0
  344. package/.docs/reference/core/setLogger.md +26 -0
  345. package/.docs/reference/core/setStorage.md +27 -0
  346. package/.docs/reference/datasets/addItem.md +37 -0
  347. package/.docs/reference/datasets/addItems.md +35 -0
  348. package/.docs/reference/datasets/compareExperiments.md +52 -0
  349. package/.docs/reference/datasets/create.md +51 -0
  350. package/.docs/reference/datasets/dataset.md +82 -0
  351. package/.docs/reference/datasets/datasets-manager.md +94 -0
  352. package/.docs/reference/datasets/delete.md +25 -0
  353. package/.docs/reference/datasets/deleteExperiment.md +27 -0
  354. package/.docs/reference/datasets/deleteItem.md +27 -0
  355. package/.docs/reference/datasets/deleteItems.md +29 -0
  356. package/.docs/reference/datasets/get.md +31 -0
  357. package/.docs/reference/datasets/getDetails.md +47 -0
  358. package/.docs/reference/datasets/getExperiment.md +30 -0
  359. package/.docs/reference/datasets/getItem.md +33 -0
  360. package/.docs/reference/datasets/getItemHistory.md +31 -0
  361. package/.docs/reference/datasets/list.md +31 -0
  362. package/.docs/reference/datasets/listExperimentResults.md +39 -0
  363. package/.docs/reference/datasets/listExperiments.md +33 -0
  364. package/.docs/reference/datasets/listItems.md +46 -0
  365. package/.docs/reference/datasets/listVersions.md +33 -0
  366. package/.docs/reference/datasets/startExperiment.md +62 -0
  367. package/.docs/reference/datasets/startExperimentAsync.md +43 -0
  368. package/.docs/reference/datasets/update.md +48 -0
  369. package/.docs/reference/datasets/updateItem.md +38 -0
  370. package/.docs/reference/deployer/cloudflare.md +79 -0
  371. package/.docs/reference/deployer/netlify.md +80 -0
  372. package/.docs/reference/deployer/vercel.md +91 -0
  373. package/.docs/reference/deployer.md +100 -0
  374. package/.docs/reference/evals/answer-relevancy.md +105 -0
  375. package/.docs/reference/evals/answer-similarity.md +99 -0
  376. package/.docs/reference/evals/bias.md +120 -0
  377. package/.docs/reference/evals/completeness.md +136 -0
  378. package/.docs/reference/evals/content-similarity.md +101 -0
  379. package/.docs/reference/evals/context-precision.md +196 -0
  380. package/.docs/reference/evals/context-relevance.md +531 -0
  381. package/.docs/reference/evals/create-scorer.md +270 -0
  382. package/.docs/reference/evals/faithfulness.md +114 -0
  383. package/.docs/reference/evals/hallucination.md +213 -0
  384. package/.docs/reference/evals/keyword-coverage.md +128 -0
  385. package/.docs/reference/evals/mastra-scorer.md +123 -0
  386. package/.docs/reference/evals/noise-sensitivity.md +675 -0
  387. package/.docs/reference/evals/prompt-alignment.md +614 -0
  388. package/.docs/reference/evals/run-evals.md +179 -0
  389. package/.docs/reference/evals/scorer-utils.md +326 -0
  390. package/.docs/reference/evals/textual-difference.md +113 -0
  391. package/.docs/reference/evals/tone-consistency.md +119 -0
  392. package/.docs/reference/evals/tool-call-accuracy.md +533 -0
  393. package/.docs/reference/evals/toxicity.md +123 -0
  394. package/.docs/reference/harness/harness-class.md +708 -0
  395. package/.docs/reference/index.md +277 -0
  396. package/.docs/reference/logging/pino-logger.md +117 -0
  397. package/.docs/reference/mastra-code/createMastraCode.md +108 -0
  398. package/.docs/reference/memory/clone-utilities.md +199 -0
  399. package/.docs/reference/memory/cloneThread.md +130 -0
  400. package/.docs/reference/memory/createThread.md +68 -0
  401. package/.docs/reference/memory/deleteMessages.md +38 -0
  402. package/.docs/reference/memory/getThreadById.md +24 -0
  403. package/.docs/reference/memory/listThreads.md +145 -0
  404. package/.docs/reference/memory/memory-class.md +147 -0
  405. package/.docs/reference/memory/observational-memory.md +565 -0
  406. package/.docs/reference/memory/recall.md +91 -0
  407. package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
  408. package/.docs/reference/observability/tracing/configuration.md +178 -0
  409. package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
  410. package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
  411. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
  412. package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
  413. package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
  414. package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
  415. package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
  416. package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
  417. package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
  418. package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
  419. package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
  420. package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
  421. package/.docs/reference/observability/tracing/instances.md +107 -0
  422. package/.docs/reference/observability/tracing/interfaces.md +743 -0
  423. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
  424. package/.docs/reference/observability/tracing/spans.md +224 -0
  425. package/.docs/reference/processors/batch-parts-processor.md +61 -0
  426. package/.docs/reference/processors/language-detector.md +82 -0
  427. package/.docs/reference/processors/message-history-processor.md +85 -0
  428. package/.docs/reference/processors/moderation-processor.md +104 -0
  429. package/.docs/reference/processors/pii-detector.md +108 -0
  430. package/.docs/reference/processors/processor-interface.md +521 -0
  431. package/.docs/reference/processors/prompt-injection-detector.md +72 -0
  432. package/.docs/reference/processors/semantic-recall-processor.md +117 -0
  433. package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
  434. package/.docs/reference/processors/token-limiter-processor.md +115 -0
  435. package/.docs/reference/processors/tool-call-filter.md +85 -0
  436. package/.docs/reference/processors/tool-search-processor.md +111 -0
  437. package/.docs/reference/processors/unicode-normalizer.md +62 -0
  438. package/.docs/reference/processors/working-memory-processor.md +152 -0
  439. package/.docs/reference/rag/chunk.md +221 -0
  440. package/.docs/reference/rag/database-config.md +261 -0
  441. package/.docs/reference/rag/document.md +114 -0
  442. package/.docs/reference/rag/embeddings.md +92 -0
  443. package/.docs/reference/rag/extract-params.md +168 -0
  444. package/.docs/reference/rag/graph-rag.md +111 -0
  445. package/.docs/reference/rag/metadata-filters.md +216 -0
  446. package/.docs/reference/rag/rerank.md +75 -0
  447. package/.docs/reference/rag/rerankWithScorer.md +80 -0
  448. package/.docs/reference/server/create-route.md +262 -0
  449. package/.docs/reference/server/express-adapter.md +176 -0
  450. package/.docs/reference/server/fastify-adapter.md +90 -0
  451. package/.docs/reference/server/hono-adapter.md +162 -0
  452. package/.docs/reference/server/koa-adapter.md +127 -0
  453. package/.docs/reference/server/mastra-server.md +298 -0
  454. package/.docs/reference/server/register-api-route.md +249 -0
  455. package/.docs/reference/server/routes.md +306 -0
  456. package/.docs/reference/storage/cloudflare-d1.md +218 -0
  457. package/.docs/reference/storage/cloudflare.md +88 -0
  458. package/.docs/reference/storage/composite.md +235 -0
  459. package/.docs/reference/storage/convex.md +161 -0
  460. package/.docs/reference/storage/dynamodb.md +282 -0
  461. package/.docs/reference/storage/lance.md +131 -0
  462. package/.docs/reference/storage/libsql.md +135 -0
  463. package/.docs/reference/storage/mongodb.md +262 -0
  464. package/.docs/reference/storage/mssql.md +157 -0
  465. package/.docs/reference/storage/overview.md +121 -0
  466. package/.docs/reference/storage/postgresql.md +526 -0
  467. package/.docs/reference/storage/upstash.md +160 -0
  468. package/.docs/reference/streaming/ChunkType.md +292 -0
  469. package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
  470. package/.docs/reference/streaming/agents/stream.md +221 -0
  471. package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
  472. package/.docs/reference/streaming/workflows/observeStream.md +42 -0
  473. package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
  474. package/.docs/reference/streaming/workflows/stream.md +88 -0
  475. package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
  476. package/.docs/reference/templates/overview.md +194 -0
  477. package/.docs/reference/tools/create-tool.md +237 -0
  478. package/.docs/reference/tools/document-chunker-tool.md +89 -0
  479. package/.docs/reference/tools/graph-rag-tool.md +182 -0
  480. package/.docs/reference/tools/mcp-client.md +954 -0
  481. package/.docs/reference/tools/mcp-server.md +1271 -0
  482. package/.docs/reference/tools/vector-query-tool.md +459 -0
  483. package/.docs/reference/vectors/astra.md +121 -0
  484. package/.docs/reference/vectors/chroma.md +264 -0
  485. package/.docs/reference/vectors/convex.md +300 -0
  486. package/.docs/reference/vectors/couchbase.md +226 -0
  487. package/.docs/reference/vectors/duckdb.md +318 -0
  488. package/.docs/reference/vectors/elasticsearch.md +189 -0
  489. package/.docs/reference/vectors/lance.md +220 -0
  490. package/.docs/reference/vectors/libsql.md +305 -0
  491. package/.docs/reference/vectors/mongodb.md +295 -0
  492. package/.docs/reference/vectors/opensearch.md +99 -0
  493. package/.docs/reference/vectors/pg.md +408 -0
  494. package/.docs/reference/vectors/pinecone.md +168 -0
  495. package/.docs/reference/vectors/qdrant.md +222 -0
  496. package/.docs/reference/vectors/s3vectors.md +277 -0
  497. package/.docs/reference/vectors/turbopuffer.md +157 -0
  498. package/.docs/reference/vectors/upstash.md +294 -0
  499. package/.docs/reference/vectors/vectorize.md +147 -0
  500. package/.docs/reference/voice/azure.md +148 -0
  501. package/.docs/reference/voice/cloudflare.md +83 -0
  502. package/.docs/reference/voice/composite-voice.md +121 -0
  503. package/.docs/reference/voice/deepgram.md +79 -0
  504. package/.docs/reference/voice/elevenlabs.md +98 -0
  505. package/.docs/reference/voice/google-gemini-live.md +378 -0
  506. package/.docs/reference/voice/google.md +228 -0
  507. package/.docs/reference/voice/mastra-voice.md +311 -0
  508. package/.docs/reference/voice/murf.md +122 -0
  509. package/.docs/reference/voice/openai-realtime.md +203 -0
  510. package/.docs/reference/voice/openai.md +88 -0
  511. package/.docs/reference/voice/playai.md +80 -0
  512. package/.docs/reference/voice/sarvam.md +126 -0
  513. package/.docs/reference/voice/speechify.md +75 -0
  514. package/.docs/reference/voice/voice.addInstructions.md +55 -0
  515. package/.docs/reference/voice/voice.addTools.md +67 -0
  516. package/.docs/reference/voice/voice.answer.md +54 -0
  517. package/.docs/reference/voice/voice.close.md +51 -0
  518. package/.docs/reference/voice/voice.connect.md +94 -0
  519. package/.docs/reference/voice/voice.events.md +37 -0
  520. package/.docs/reference/voice/voice.getSpeakers.md +129 -0
  521. package/.docs/reference/voice/voice.listen.md +164 -0
  522. package/.docs/reference/voice/voice.off.md +54 -0
  523. package/.docs/reference/voice/voice.on.md +111 -0
  524. package/.docs/reference/voice/voice.send.md +65 -0
  525. package/.docs/reference/voice/voice.speak.md +157 -0
  526. package/.docs/reference/voice/voice.updateConfig.md +60 -0
  527. package/.docs/reference/workflows/run-methods/cancel.md +86 -0
  528. package/.docs/reference/workflows/run-methods/restart.md +33 -0
  529. package/.docs/reference/workflows/run-methods/resume.md +59 -0
  530. package/.docs/reference/workflows/run-methods/start.md +58 -0
  531. package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
  532. package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
  533. package/.docs/reference/workflows/run.md +59 -0
  534. package/.docs/reference/workflows/step.md +119 -0
  535. package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
  536. package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
  537. package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
  538. package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
  539. package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
  540. package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
  541. package/.docs/reference/workflows/workflow-methods/map.md +93 -0
  542. package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
  543. package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
  544. package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
  545. package/.docs/reference/workflows/workflow-methods/then.md +21 -0
  546. package/.docs/reference/workflows/workflow.md +157 -0
  547. package/.docs/reference/workspace/e2b-sandbox.md +289 -0
  548. package/.docs/reference/workspace/filesystem.md +255 -0
  549. package/.docs/reference/workspace/gcs-filesystem.md +174 -0
  550. package/.docs/reference/workspace/local-filesystem.md +343 -0
  551. package/.docs/reference/workspace/local-sandbox.md +301 -0
  552. package/.docs/reference/workspace/s3-filesystem.md +175 -0
  553. package/.docs/reference/workspace/sandbox.md +87 -0
  554. package/.docs/reference/workspace/workspace-class.md +244 -0
  555. package/CHANGELOG.md +8 -0
  556. package/package.json +5 -5
@@ -0,0 +1,682 @@
1
+ # Inngest workflow
2
+
3
+ [Inngest](https://www.inngest.com/docs) is a developer platform for building and running background workflows, without managing infrastructure.
4
+
5
+ For a complete example with advanced flow control features, see the [Inngest workflow example](https://github.com/mastra-ai/mastra/tree/main/examples/inngest).
6
+
7
+ ## How Inngest works with Mastra
8
+
9
+ Inngest and Mastra integrate by aligning their workflow models: Inngest organizes logic into functions composed of steps, and Mastra workflows defined using `createWorkflow()` and `createStep()` map directly onto this paradigm. Each Mastra workflow becomes an Inngest function with a unique identifier, and each step within the workflow maps to an Inngest step.
10
+
11
+ The `serve()` function bridges the two systems by registering Mastra workflows as Inngest functions and setting up the necessary event handlers for execution and monitoring.
12
+
13
+ When an event triggers a workflow, Inngest executes it step by step, memoizing each step's result. This means if a workflow is retried or resumed, completed steps are skipped, ensuring efficient and reliable execution. Control flow primitives in Mastra, such as loops, conditionals, and nested workflows are seamlessly translated into the same Inngest's function/step model, preserving advanced workflow features like composition, branching, and suspension.
14
+
15
+ Real-time monitoring, suspend/resume, and step-level observability are enabled via Inngest's publish-subscribe system and dashboard. As each step executes, its state and output are tracked using Mastra storage and can be resumed as needed.
16
+
17
+ ## Setup
18
+
19
+ Install the required packages:
20
+
21
+ **npm**:
22
+
23
+ ```bash
24
+ npm install @mastra/inngest@latest inngest @inngest/realtime
25
+ ```
26
+
27
+ **pnpm**:
28
+
29
+ ```bash
30
+ pnpm add @mastra/inngest@latest inngest @inngest/realtime
31
+ ```
32
+
33
+ **Yarn**:
34
+
35
+ ```bash
36
+ yarn add @mastra/inngest@latest inngest @inngest/realtime
37
+ ```
38
+
39
+ **Bun**:
40
+
41
+ ```bash
42
+ bun add @mastra/inngest@latest inngest @inngest/realtime
43
+ ```
44
+
45
+ ## Building an Inngest workflow
46
+
47
+ This guide walks through creating a workflow with Inngest and Mastra, demonstrating a counter application that increments a value until it reaches 10.
48
+
49
+ ### Inngest initialization
50
+
51
+ Initialize the Inngest integration to obtain Mastra-compatible workflow helpers. The `createWorkflow()` and `createStep()` functions are used to create workflow and step objects that are compatible with Mastra and inngest.
52
+
53
+ In development:
54
+
55
+ ```ts
56
+ import { Inngest } from 'inngest'
57
+ import { realtimeMiddleware } from '@inngest/realtime/middleware'
58
+
59
+ export const inngest = new Inngest({
60
+ id: 'mastra',
61
+ baseUrl: 'http://localhost:8288',
62
+ isDev: true,
63
+ middleware: [realtimeMiddleware()],
64
+ })
65
+ ```
66
+
67
+ In production:
68
+
69
+ ```ts
70
+ import { Inngest } from 'inngest'
71
+ import { realtimeMiddleware } from '@inngest/realtime/middleware'
72
+
73
+ export const inngest = new Inngest({
74
+ id: 'mastra',
75
+ middleware: [realtimeMiddleware()],
76
+ })
77
+ ```
78
+
79
+ ### Creating steps
80
+
81
+ Define the individual steps that will compose your workflow:
82
+
83
+ ```ts
84
+ import { z } from 'zod'
85
+ import { inngest } from '../inngest'
86
+ import { init } from '@mastra/inngest'
87
+
88
+ // Initialize Inngest with Mastra, pointing to your local Inngest server
89
+ const { createWorkflow, createStep } = init(inngest)
90
+
91
+ // Step: Increment the counter value
92
+ const incrementStep = createStep({
93
+ id: 'increment',
94
+ inputSchema: z.object({
95
+ value: z.number(),
96
+ }),
97
+ outputSchema: z.object({
98
+ value: z.number(),
99
+ }),
100
+ execute: async ({ inputData }) => {
101
+ return { value: inputData.value + 1 }
102
+ },
103
+ })
104
+ ```
105
+
106
+ ### Creating the workflow
107
+
108
+ Compose the steps into a workflow using the `dountil` loop pattern. The `createWorkflow()` function creates a function on Inngest server that is invocable.
109
+
110
+ ```ts
111
+ // workflow that is registered as a function on inngest server
112
+ const workflow = createWorkflow({
113
+ id: 'increment-workflow',
114
+ inputSchema: z.object({
115
+ value: z.number(),
116
+ }),
117
+ outputSchema: z.object({
118
+ value: z.number(),
119
+ }),
120
+ }).then(incrementStep)
121
+
122
+ workflow.commit()
123
+
124
+ export { workflow as incrementWorkflow }
125
+ ```
126
+
127
+ ### Configuring the Mastra instance
128
+
129
+ Register the workflow with Mastra and configure the Inngest API endpoint:
130
+
131
+ ```ts
132
+ import { Mastra } from '@mastra/core'
133
+ import { serve } from '@mastra/inngest'
134
+ import { incrementWorkflow } from './workflows'
135
+ import { inngest } from './inngest'
136
+ import { PinoLogger } from '@mastra/loggers'
137
+
138
+ export const mastra = new Mastra({
139
+ workflows: { incrementWorkflow },
140
+ server: {
141
+ host: '0.0.0.0',
142
+ apiRoutes: [
143
+ {
144
+ path: '/api/inngest',
145
+ method: 'ALL',
146
+ createHandler: async ({ mastra }) => {
147
+ return serve({ mastra, inngest })
148
+ },
149
+ },
150
+ ],
151
+ },
152
+ logger: new PinoLogger({ name: 'Mastra', level: 'info' }),
153
+ })
154
+ ```
155
+
156
+ ## Running workflows
157
+
158
+ ### Running locally
159
+
160
+ 1. Run `npx mastra dev` to start the Mastra server locally on port 4111
161
+
162
+ 2. Start the Inngest Dev Server. In a new terminal, run:
163
+
164
+ ```bash
165
+ npx inngest-cli@latest dev -u http://localhost:4111/api/inngest
166
+ ```
167
+
168
+ > **Note:** The URL after `-u` tells the Inngest dev server where to find your Mastra `/api/inngest` endpoint
169
+
170
+ 3. Open the Inngest Dashboard at <http://localhost:8288> and go to the **Apps** section in the sidebar to verify your Mastra workflow is registered
171
+
172
+ 4. Invoke the workflow by going to **Functions**, selecting your workflow, and clicking **Invoke** with the following input:
173
+
174
+ ```json
175
+ {
176
+ "data": {
177
+ "inputData": {
178
+ "value": 5
179
+ }
180
+ }
181
+ }
182
+ ```
183
+
184
+ 5. Monitor the workflow execution in the **Runs** tab to see step-by-step execution progress
185
+
186
+ ### Running in production
187
+
188
+ Before you begin, make sure you have:
189
+
190
+ - Vercel account and Vercel CLI installed (`npm i -g vercel`)
191
+ - Inngest account
192
+ - Vercel token
193
+
194
+ 1. Set your Vercel token in your environment:
195
+
196
+ ```bash
197
+ export VERCEL_TOKEN=your_vercel_token
198
+ ```
199
+
200
+ 2. Add `VercelDeployer` to Mastra instance
201
+
202
+ ```ts
203
+ import { VercelDeployer } from '@mastra/deployer-vercel'
204
+
205
+ export const mastra = new Mastra({
206
+ deployer: new VercelDeployer({
207
+ teamSlug: 'your_team_slug',
208
+ projectName: 'your_project_name',
209
+ // you can get your vercel token from the vercel dashboard by clicking on the user icon in the top right corner
210
+ // and then clicking on "Account Settings" and then clicking on "Tokens" on the left sidebar.
211
+ token: process.env.VERCEL_TOKEN,
212
+ }),
213
+ })
214
+ ```
215
+
216
+ 3. Build the mastra instance
217
+
218
+ ```bash
219
+ npx mastra build
220
+ ```
221
+
222
+ 4. Deploy to Vercel
223
+
224
+ ```bash
225
+ cd .mastra/output
226
+ vercel login
227
+ vercel --prod
228
+ ```
229
+
230
+ 5. Sync with the [Inngest dashboard](https://app.inngest.com/env/production/apps) by clicking **Sync new app with Vercel** and following the instructions
231
+
232
+ 6. Invoke the workflow by going to **Functions**, selecting `workflow.increment-workflow`, clicking **All actions** > **Invoke**, and providing the following input:
233
+
234
+ ```json
235
+ {
236
+ "data": {
237
+ "inputData": {
238
+ "value": 5
239
+ }
240
+ }
241
+ }
242
+ ```
243
+
244
+ 7. Monitor execution in the **Runs** tab to see step-by-step progress
245
+
246
+ ## Adding custom Inngest functions
247
+
248
+ You can serve additional Inngest functions alongside your Mastra workflows by using the optional `functions` parameter in `serve()`.
249
+
250
+ ### Creating custom functions
251
+
252
+ First, create your custom Inngest functions:
253
+
254
+ ```ts
255
+ import { inngest } from '../inngest'
256
+
257
+ // Define custom Inngest functions
258
+ export const customEmailFunction = inngest.createFunction(
259
+ { id: 'send-welcome-email' },
260
+ { event: 'user/registered' },
261
+ async ({ event }) => {
262
+ // Custom email logic here
263
+ console.log(`Sending welcome email to ${event.data.email}`)
264
+ return { status: 'email_sent' }
265
+ },
266
+ )
267
+
268
+ export const customWebhookFunction = inngest.createFunction(
269
+ { id: 'process-webhook' },
270
+ { event: 'webhook/received' },
271
+ async ({ event }) => {
272
+ // Custom webhook processing
273
+ console.log(`Processing webhook: ${event.data.type}`)
274
+ return { processed: true }
275
+ },
276
+ )
277
+ ```
278
+
279
+ ### Serving custom functions with workflows
280
+
281
+ Update your Mastra configuration to import and include the custom functions. The highlighted lines show the additions:
282
+
283
+ ```ts
284
+ import { Mastra } from '@mastra/core'
285
+ import { serve } from '@mastra/inngest'
286
+ import { incrementWorkflow } from './workflows'
287
+ import { inngest } from './inngest'
288
+ import { customEmailFunction, customWebhookFunction } from './inngest/custom-functions'
289
+ import { PinoLogger } from '@mastra/loggers'
290
+
291
+ export const mastra = new Mastra({
292
+ workflows: { incrementWorkflow },
293
+ server: {
294
+ host: '0.0.0.0',
295
+ apiRoutes: [
296
+ {
297
+ path: '/api/inngest',
298
+ method: 'ALL',
299
+ createHandler: async ({ mastra }) => {
300
+ return serve({
301
+ mastra,
302
+ inngest,
303
+ functions: [customEmailFunction, customWebhookFunction],
304
+ })
305
+ },
306
+ },
307
+ ],
308
+ },
309
+ logger: new PinoLogger({ name: 'Mastra', level: 'info' }),
310
+ })
311
+ ```
312
+
313
+ ### Function registration
314
+
315
+ When you include custom functions:
316
+
317
+ 1. Mastra workflows are automatically converted to Inngest functions with IDs like `workflow.${workflowId}`
318
+ 2. Custom functions retain their specified IDs (e.g., `send-welcome-email`, `process-webhook`)
319
+ 3. All functions are served together on the same `/api/inngest` endpoint
320
+
321
+ This allows you to combine Mastra's workflow orchestration with your existing Inngest functions.
322
+
323
+ ## Using with other frameworks
324
+
325
+ The default `serve` function uses Hono internally. If you're using a different web framework like Express, Fastify, or Koa, use the `createServe` factory function with the appropriate Inngest adapter.
326
+
327
+ ### Express
328
+
329
+ ```ts
330
+ import express from 'express'
331
+ import { createServe } from '@mastra/inngest'
332
+ import { serve as expressAdapter } from 'inngest/express'
333
+ import { mastra, inngest } from './mastra'
334
+
335
+ const app = express()
336
+
337
+ // Body parsing middleware required for Inngest
338
+ app.use(express.json())
339
+
340
+ const handler = createServe(expressAdapter)({ mastra, inngest })
341
+ app.use('/api/inngest', handler)
342
+
343
+ app.listen(3000)
344
+ ```
345
+
346
+ ### Fastify
347
+
348
+ ```ts
349
+ import Fastify from 'fastify'
350
+ import { createServe } from '@mastra/inngest'
351
+ import { serve as fastifyAdapter } from 'inngest/fastify'
352
+ import { mastra, inngest } from './mastra'
353
+
354
+ const fastify = Fastify()
355
+
356
+ // JSON parsing is handled by Fastify's default content-type parser
357
+ const handler = createServe(fastifyAdapter)({ mastra, inngest })
358
+
359
+ fastify.route({
360
+ method: ['GET', 'POST', 'PUT'],
361
+ url: '/api/inngest',
362
+ handler,
363
+ })
364
+
365
+ fastify.listen({ port: 3000 })
366
+ ```
367
+
368
+ ### Koa
369
+
370
+ ```ts
371
+ import Koa from 'koa'
372
+ import Router from '@koa/router'
373
+ import bodyParser from 'koa-bodyparser'
374
+ import { createServe } from '@mastra/inngest'
375
+ import { serve as koaAdapter } from 'inngest/koa'
376
+ import { mastra, inngest } from './mastra'
377
+
378
+ const app = new Koa()
379
+ const router = new Router()
380
+
381
+ // Body parsing middleware required for Inngest
382
+ app.use(bodyParser())
383
+
384
+ const handler = createServe(koaAdapter)({ mastra, inngest })
385
+ router.all('/api/inngest', handler)
386
+
387
+ app.use(router.routes())
388
+ app.use(router.allowedMethods())
389
+
390
+ app.listen(3000)
391
+ ```
392
+
393
+ ### Next.js
394
+
395
+ ```ts
396
+ import { createServe } from '@mastra/inngest'
397
+ import { serve as nextAdapter } from 'inngest/next'
398
+ import { mastra, inngest } from '@/mastra'
399
+
400
+ const handler = createServe(nextAdapter)({ mastra, inngest })
401
+
402
+ export { handler as GET, handler as POST, handler as PUT }
403
+ ```
404
+
405
+ ### Available adapters
406
+
407
+ The `createServe` function works with any Inngest adapter. See the [Inngest serve documentation](https://www.inngest.com/docs/reference/serve) for a complete list of available adapters including AWS Lambda, Cloudflare Workers, and more.
408
+
409
+ ## Flow control
410
+
411
+ Inngest workflows support flow control features including concurrency limits, rate limiting, throttling, debouncing, and priority queuing. These options are configured in the `createWorkflow()` call and help manage workflow execution at scale.
412
+
413
+ ### Concurrency
414
+
415
+ Control how many workflow instances can run simultaneously:
416
+
417
+ ```ts
418
+ const workflow = createWorkflow({
419
+ id: 'user-processing-workflow',
420
+ inputSchema: z.object({ userId: z.string() }),
421
+ outputSchema: z.object({ result: z.string() }),
422
+ steps: [processUserStep],
423
+ // Limit to 10 concurrent executions, scoped by user ID
424
+ concurrency: {
425
+ limit: 10,
426
+ key: 'event.data.userId',
427
+ },
428
+ })
429
+ ```
430
+
431
+ ### Rate limiting
432
+
433
+ Limit the number of workflow executions within a time period:
434
+
435
+ ```ts
436
+ const workflow = createWorkflow({
437
+ id: 'api-sync-workflow',
438
+ inputSchema: z.object({ endpoint: z.string() }),
439
+ outputSchema: z.object({ status: z.string() }),
440
+ steps: [apiSyncStep],
441
+ // Maximum 1000 executions per hour
442
+ rateLimit: {
443
+ period: '1h',
444
+ limit: 1000,
445
+ },
446
+ })
447
+ ```
448
+
449
+ ### Throttling
450
+
451
+ Ensure minimum time between workflow executions:
452
+
453
+ ```ts
454
+ const workflow = createWorkflow({
455
+ id: 'email-notification-workflow',
456
+ inputSchema: z.object({ organizationId: z.string(), message: z.string() }),
457
+ outputSchema: z.object({ sent: z.boolean() }),
458
+ steps: [sendEmailStep],
459
+ // Only one execution per 10 seconds per organization
460
+ throttle: {
461
+ period: '10s',
462
+ limit: 1,
463
+ key: 'event.data.organizationId',
464
+ },
465
+ })
466
+ ```
467
+
468
+ ### Debouncing
469
+
470
+ Delay execution until no new events arrive within a time window:
471
+
472
+ ```ts
473
+ const workflow = createWorkflow({
474
+ id: 'search-index-workflow',
475
+ inputSchema: z.object({ documentId: z.string() }),
476
+ outputSchema: z.object({ indexed: z.boolean() }),
477
+ steps: [indexDocumentStep],
478
+ // Wait 5 seconds of no updates before indexing
479
+ debounce: {
480
+ period: '5s',
481
+ key: 'event.data.documentId',
482
+ },
483
+ })
484
+ ```
485
+
486
+ ### Priority
487
+
488
+ Set execution priority for workflows:
489
+
490
+ ```ts
491
+ const workflow = createWorkflow({
492
+ id: 'order-processing-workflow',
493
+ inputSchema: z.object({
494
+ orderId: z.string(),
495
+ priority: z.number().optional(),
496
+ }),
497
+ outputSchema: z.object({ processed: z.boolean() }),
498
+ steps: [processOrderStep],
499
+ // Higher priority orders execute first
500
+ priority: {
501
+ run: 'event.data.priority ?? 50',
502
+ },
503
+ })
504
+ ```
505
+
506
+ ### Combining flow control options
507
+
508
+ Multiple flow control options can be combined in a single workflow:
509
+
510
+ ```ts
511
+ const workflow = createWorkflow({
512
+ id: 'comprehensive-workflow',
513
+ inputSchema: z.object({
514
+ userId: z.string(),
515
+ organizationId: z.string(),
516
+ priority: z.number().optional(),
517
+ }),
518
+ outputSchema: z.object({ result: z.string() }),
519
+ steps: [comprehensiveStep],
520
+ concurrency: {
521
+ limit: 5,
522
+ key: 'event.data.userId',
523
+ },
524
+ rateLimit: {
525
+ period: '1m',
526
+ limit: 100,
527
+ },
528
+ throttle: {
529
+ period: '10s',
530
+ limit: 1,
531
+ key: 'event.data.organizationId',
532
+ },
533
+ priority: {
534
+ run: 'event.data.priority ?? 0',
535
+ },
536
+ })
537
+ ```
538
+
539
+ All flow control options are optional. If not specified, workflows run with Inngest's default behavior. For more information, see the [Inngest flow control documentation](https://www.inngest.com/docs/guides/flow-control).
540
+
541
+ ## Cron scheduling
542
+
543
+ Inngest workflows can be automatically triggered on a schedule using cron expressions. This allows you to run workflows at regular intervals, such as daily reports, hourly data syncs, or maintenance tasks.
544
+
545
+ ### Basic cron scheduling
546
+
547
+ Configure a workflow to run on a schedule by adding a `cron` property:
548
+
549
+ ```ts
550
+ const workflow = createWorkflow({
551
+ id: 'daily-report-workflow',
552
+ inputSchema: z.object({ reportType: z.string() }),
553
+ outputSchema: z.object({ generated: z.boolean() }),
554
+ steps: [generateReportStep],
555
+ // Run daily at midnight
556
+ cron: '0 0 * * *',
557
+ })
558
+ ```
559
+
560
+ ### Cron schedule format
561
+
562
+ The `cron` property accepts standard cron expressions in the format: `minute hour day month dayOfWeek`
563
+
564
+ - **minute**: 0-59
565
+ - **hour**: 0-23
566
+ - **day**: 1-31
567
+ - **month**: 1-12 or JAN-DEC
568
+ - **dayOfWeek**: 0-6 (Sunday = 0) or SUN-SAT
569
+
570
+ Common cron patterns:
571
+
572
+ ```ts
573
+ // Every 15 minutes
574
+ cron: '*/15 * * * *'
575
+
576
+ // Every hour at minute 0
577
+ cron: '0 * * * *'
578
+
579
+ // Every 6 hours
580
+ cron: '0 */6 * * *'
581
+
582
+ // Daily at midnight
583
+ cron: '0 0 * * *'
584
+
585
+ // Daily at 9 AM
586
+ cron: '0 9 * * *'
587
+
588
+ // Every weekday at 9 AM
589
+ cron: '0 9 * * 1-5'
590
+
591
+ // First day of every month at midnight
592
+ cron: '0 0 1 * *'
593
+
594
+ // Every Monday at 8 AM
595
+ cron: '0 8 * * 1'
596
+ ```
597
+
598
+ ### Providing input data for scheduled runs
599
+
600
+ You can provide static input data that will be used for each scheduled execution:
601
+
602
+ ```ts
603
+ const workflow = createWorkflow({
604
+ id: 'scheduled-data-sync',
605
+ inputSchema: z.object({
606
+ source: z.string(),
607
+ destination: z.string(),
608
+ }),
609
+ outputSchema: z.object({ synced: z.boolean() }),
610
+ steps: [syncDataStep],
611
+ cron: '0 */6 * * *', // Every 6 hours
612
+ // Input data provided to each scheduled run
613
+ inputData: {
614
+ source: 'production-db',
615
+ destination: 'analytics-warehouse',
616
+ },
617
+ })
618
+ ```
619
+
620
+ ### Providing initial state for scheduled runs
621
+
622
+ You can also set an initial state for scheduled workflow runs:
623
+
624
+ ```ts
625
+ const workflow = createWorkflow({
626
+ id: 'scheduled-aggregation',
627
+ inputSchema: z.object({ date: z.string() }),
628
+ outputSchema: z.object({ aggregated: z.boolean() }),
629
+ stateSchema: z.object({
630
+ processedCount: z.number(),
631
+ lastProcessedDate: z.string(),
632
+ }),
633
+ steps: [aggregateDataStep],
634
+ cron: '0 0 * * *', // Daily at midnight
635
+ inputData: {
636
+ date: new Date().toISOString().split('T')[0], // Today's date
637
+ },
638
+ initialState: {
639
+ processedCount: 0,
640
+ lastProcessedDate: '',
641
+ },
642
+ })
643
+ ```
644
+
645
+ ### Combining cron with flow control
646
+
647
+ Cron scheduling can be combined with flow control options:
648
+
649
+ ```ts
650
+ const workflow = createWorkflow({
651
+ id: 'scheduled-api-sync',
652
+ inputSchema: z.object({ endpoint: z.string() }),
653
+ outputSchema: z.object({ synced: z.boolean() }),
654
+ steps: [syncApiStep],
655
+ cron: '*/30 * * * *', // Every 30 minutes
656
+ inputData: {
657
+ endpoint: 'https://api.example.com/data',
658
+ },
659
+ // Limit concurrent executions even for scheduled runs
660
+ concurrency: {
661
+ limit: 5,
662
+ },
663
+ // Rate limit scheduled executions
664
+ rateLimit: {
665
+ period: '1h',
666
+ limit: 100,
667
+ },
668
+ })
669
+ ```
670
+
671
+ ### How cron functions work
672
+
673
+ When you configure a workflow with a `cron` property:
674
+
675
+ 1. A separate Inngest function is automatically created with the ID `workflow.${workflowId}.cron`
676
+ 2. This function is registered with Inngest and will trigger at the specified schedule
677
+ 3. Each scheduled execution creates a new workflow run with the provided `inputData` and `initialState`
678
+ 4. The cron function and the main workflow function are both served together when you call `serve()`
679
+
680
+ You can monitor scheduled executions in the Inngest dashboard under **Functions** and **Runs** sections. The cron function will appear as a separate function alongside your main workflow function.
681
+
682
+ For more information on cron scheduling, see the [Inngest cron documentation](https://www.inngest.com/docs/guides/scheduled-functions).