@mastra/mcp-docs-server 1.2.12-alpha.0 → 1.2.12-alpha.3

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 (257) hide show
  1. package/.docs/docs/agent-builder/access-control.md +3 -3
  2. package/.docs/docs/agent-builder/browser.md +1 -1
  3. package/.docs/docs/agent-builder/channels.md +1 -1
  4. package/.docs/docs/agent-builder/configuration.md +3 -3
  5. package/.docs/docs/agent-builder/deploying.md +2 -2
  6. package/.docs/docs/agent-builder/integrations.md +8 -8
  7. package/.docs/docs/agent-builder/memory.md +2 -2
  8. package/.docs/docs/agent-builder/overview.md +1 -1
  9. package/.docs/docs/agent-controller/channels.md +8 -6
  10. package/.docs/docs/agent-controller/modes.md +6 -6
  11. package/.docs/docs/agent-controller/overview.md +13 -9
  12. package/.docs/docs/agent-controller/session.md +27 -9
  13. package/.docs/docs/agent-controller/subagents.md +9 -6
  14. package/.docs/docs/agent-controller/threads-and-state.md +12 -8
  15. package/.docs/docs/agent-controller/tool-approvals.md +7 -3
  16. package/.docs/docs/agents/a2a.md +4 -2
  17. package/.docs/docs/agents/acp.md +5 -5
  18. package/.docs/docs/agents/agent-approval.md +13 -11
  19. package/.docs/docs/agents/code-mode.md +29 -6
  20. package/.docs/docs/agents/guardrails.md +8 -8
  21. package/.docs/docs/agents/networks.md +2 -2
  22. package/.docs/docs/agents/overview.md +9 -7
  23. package/.docs/docs/agents/processors.md +15 -15
  24. package/.docs/docs/agents/skills.md +6 -6
  25. package/.docs/docs/agents/structured-output.md +6 -6
  26. package/.docs/docs/agents/supervisor-agents.md +19 -13
  27. package/.docs/docs/agents/using-tools.md +25 -23
  28. package/.docs/docs/browser/agent-browser.md +4 -4
  29. package/.docs/docs/browser/browser-viewer.md +2 -2
  30. package/.docs/docs/browser/firecrawl.md +1 -1
  31. package/.docs/docs/browser/overview.md +2 -2
  32. package/.docs/docs/browser/recording.md +1 -1
  33. package/.docs/docs/browser/stagehand.md +7 -7
  34. package/.docs/docs/capabilities/channels/discord.md +1 -1
  35. package/.docs/docs/capabilities/channels/other-adapters.md +1 -1
  36. package/.docs/docs/capabilities/channels/overview.md +9 -5
  37. package/.docs/docs/capabilities/channels/slack.md +2 -2
  38. package/.docs/docs/capabilities/channels/teams.md +1 -1
  39. package/.docs/docs/capabilities/channels/telegram.md +1 -1
  40. package/.docs/docs/capabilities/channels/whatsapp.md +1 -1
  41. package/.docs/docs/deployment/mastra-server.md +1 -1
  42. package/.docs/docs/deployment/overview.md +6 -2
  43. package/.docs/docs/deployment/sandbox.md +3 -1
  44. package/.docs/docs/deployment/workers.md +137 -0
  45. package/.docs/docs/editor/overview.md +37 -31
  46. package/.docs/docs/editor/prompts.md +8 -4
  47. package/.docs/docs/editor/tools.md +3 -3
  48. package/.docs/docs/evals/built-in-scorers.md +4 -4
  49. package/.docs/docs/evals/custom-scorers.md +5 -5
  50. package/.docs/docs/evals/datasets/running-experiments.md +7 -7
  51. package/.docs/docs/evals/evals-with-memory.md +4 -4
  52. package/.docs/docs/evals/gates-and-verdicts.md +4 -4
  53. package/.docs/docs/evals/multi-turn.md +12 -12
  54. package/.docs/docs/evals/overview.md +6 -4
  55. package/.docs/docs/evals/quick-checks.md +2 -2
  56. package/.docs/docs/getting-started/build-with-ai.md +6 -4
  57. package/.docs/docs/getting-started/file-based-agents.md +6 -4
  58. package/.docs/docs/getting-started/manual-install.md +1 -1
  59. package/.docs/docs/index.md +9 -90
  60. package/.docs/docs/long-running-agents/background-tasks.md +10 -10
  61. package/.docs/docs/long-running-agents/durable-agents.md +46 -5
  62. package/.docs/docs/long-running-agents/goals.md +15 -11
  63. package/.docs/docs/long-running-agents/schedules.md +3 -3
  64. package/.docs/docs/long-running-agents/signal-providers.md +8 -6
  65. package/.docs/docs/long-running-agents/signals.md +9 -5
  66. package/.docs/docs/mastra-platform/configuration.md +3 -3
  67. package/.docs/docs/mastra-platform/database.md +8 -8
  68. package/.docs/docs/mastra-platform/deploy.md +8 -4
  69. package/.docs/docs/mastra-platform/environments.md +8 -4
  70. package/.docs/docs/mastra-platform/github.md +3 -1
  71. package/.docs/docs/mastra-platform/server.md +1 -1
  72. package/.docs/docs/mastra-platform/studio.md +2 -2
  73. package/.docs/docs/mastra-platform/workspace.md +6 -6
  74. package/.docs/docs/mcp/mcp-apps.md +1 -1
  75. package/.docs/docs/mcp/overview.md +9 -9
  76. package/.docs/docs/memory/memory-processors.md +10 -10
  77. package/.docs/docs/memory/message-history.md +11 -5
  78. package/.docs/docs/memory/multi-user-threads.md +6 -6
  79. package/.docs/docs/memory/observational-memory.md +27 -25
  80. package/.docs/docs/memory/overview.md +10 -10
  81. package/.docs/docs/memory/semantic-recall.md +3 -3
  82. package/.docs/docs/memory/working-memory.md +8 -8
  83. package/.docs/docs/observability/integrations/bridges/datadog.md +6 -6
  84. package/.docs/docs/observability/integrations/bridges/otel.md +5 -5
  85. package/.docs/docs/observability/integrations/exporters/datadog.md +1 -1
  86. package/.docs/docs/observability/integrations/exporters/laminar.md +1 -1
  87. package/.docs/docs/observability/integrations/exporters/langfuse.md +3 -3
  88. package/.docs/docs/observability/integrations/exporters/langsmith.md +4 -4
  89. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +1 -1
  90. package/.docs/docs/observability/integrations/exporters/mastra-storage.md +1 -1
  91. package/.docs/docs/observability/integrations/exporters/otel.md +26 -4
  92. package/.docs/docs/observability/integrations/exporters/sentry.md +1 -1
  93. package/.docs/docs/observability/integrations/overview.md +1 -1
  94. package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +1 -1
  95. package/.docs/docs/observability/logging.md +1 -1
  96. package/.docs/docs/observability/metrics/overview.md +1 -1
  97. package/.docs/docs/observability/metrics/querying.md +8 -8
  98. package/.docs/docs/observability/overview.md +4 -4
  99. package/.docs/docs/observability/tracing/overview.md +18 -12
  100. package/.docs/docs/rag/chunking-and-embedding.md +1 -1
  101. package/.docs/docs/rag/graph-rag.md +7 -7
  102. package/.docs/docs/rag/overview.md +2 -2
  103. package/.docs/docs/rag/retrieval.md +18 -18
  104. package/.docs/docs/rag/vector-databases.md +2 -2
  105. package/.docs/docs/server/auth/composite-auth.md +2 -2
  106. package/.docs/docs/server/auth/fga.md +6 -6
  107. package/.docs/docs/server/auth/firebase.md +2 -2
  108. package/.docs/docs/server/auth/simple-auth.md +1 -1
  109. package/.docs/docs/server/auth/workers.md +133 -0
  110. package/.docs/docs/server/custom-adapters.md +4 -4
  111. package/.docs/docs/server/mastra-client.md +3 -3
  112. package/.docs/docs/server/mastra-server.md +2 -2
  113. package/.docs/docs/server/middleware.md +1 -1
  114. package/.docs/docs/server/pubsub.md +7 -4
  115. package/.docs/docs/server/request-context.md +11 -11
  116. package/.docs/docs/server/server-adapters.md +2 -2
  117. package/.docs/docs/storage/overview.md +2 -2
  118. package/.docs/docs/studio/auth.md +5 -5
  119. package/.docs/docs/studio/deployment.md +1 -1
  120. package/.docs/docs/studio/observability.md +2 -2
  121. package/.docs/docs/studio/overview.md +11 -9
  122. package/.docs/docs/voice/overview.md +26 -26
  123. package/.docs/docs/voice/realtime-voice.md +8 -8
  124. package/.docs/docs/voice/speech-to-speech.md +9 -9
  125. package/.docs/docs/voice/speech-to-text.md +3 -3
  126. package/.docs/docs/voice/text-to-speech.md +6 -6
  127. package/.docs/docs/what-is-mastra.md +161 -0
  128. package/.docs/docs/workflows/agents-and-tools.md +3 -3
  129. package/.docs/docs/workflows/control-flow.md +10 -8
  130. package/.docs/docs/workflows/error-handling.md +2 -2
  131. package/.docs/docs/workflows/overview.md +7 -6
  132. package/.docs/docs/workflows/scheduled-workflows.md +12 -12
  133. package/.docs/docs/workflows/snapshots.md +3 -3
  134. package/.docs/docs/workflows/suspend-and-resume.md +1 -1
  135. package/.docs/docs/workflows/time-travel.md +3 -1
  136. package/.docs/docs/workflows/workflow-state.md +1 -1
  137. package/.docs/docs/workspace/filesystem.md +10 -10
  138. package/.docs/docs/workspace/lsp.md +1 -1
  139. package/.docs/docs/workspace/overview.md +12 -12
  140. package/.docs/docs/workspace/sandbox.md +9 -7
  141. package/.docs/docs/workspace/search.md +3 -3
  142. package/.docs/docs/workspace/skills.md +7 -7
  143. package/.docs/guides/build-your-ui/ai-sdk-ui.md +1 -1
  144. package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +1 -1
  145. package/.docs/guides/build-your-ui/openui.md +1 -1
  146. package/.docs/guides/concepts/streaming.md +1 -1
  147. package/.docs/guides/deployment/kubernetes.md +1 -1
  148. package/.docs/guides/deployment/mastra-workers.md +232 -0
  149. package/.docs/guides/guide/ai-recruiter.md +1 -1
  150. package/.docs/guides/guide/chef-michel.md +1 -1
  151. package/.docs/guides/guide/code-review-bot.md +1 -1
  152. package/.docs/guides/guide/coding-agent.md +1 -1
  153. package/.docs/guides/guide/dev-assistant.md +1 -1
  154. package/.docs/guides/guide/docs-manager.md +1 -1
  155. package/.docs/guides/guide/firecrawl.md +1 -1
  156. package/.docs/guides/guide/github-actions-pr-description.md +1 -1
  157. package/.docs/guides/guide/research-assistant.md +1 -1
  158. package/.docs/guides/guide/research-coordinator.md +2 -2
  159. package/.docs/guides/guide/signal-provider.md +1 -1
  160. package/.docs/guides/guide/stock-agent.md +2 -2
  161. package/.docs/guides/guide/web-search.md +4 -4
  162. package/.docs/guides/guide/whatsapp-chat-bot.md +2 -2
  163. package/.docs/guides/migrations/agentnetwork.md +4 -4
  164. package/.docs/guides/migrations/upgrade-to-v1/agent.md +1 -1
  165. package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
  166. package/.docs/models/gateways/custom-gateways.md +3 -3
  167. package/.docs/models/gateways/openrouter.md +1 -3
  168. package/.docs/models/gateways/vercel.md +2 -1
  169. package/.docs/models/index.md +6 -6
  170. package/.docs/models/providers/baseten.md +1 -1
  171. package/.docs/models/providers/chutes.md +2 -1
  172. package/.docs/models/providers/crossmodel.md +2 -2
  173. package/.docs/models/providers/deepinfra.md +1 -1
  174. package/.docs/models/providers/hyper.md +3 -3
  175. package/.docs/models/providers/llmgateway.md +4 -3
  176. package/.docs/models/providers/wandb.md +2 -1
  177. package/.docs/reference/acp/acp-agent.md +1 -1
  178. package/.docs/reference/acp/create-acp-tool.md +1 -1
  179. package/.docs/reference/agents/agent.md +7 -7
  180. package/.docs/reference/agents/channels.md +26 -10
  181. package/.docs/reference/agents/durable-agent.md +51 -2
  182. package/.docs/reference/agents/generateLegacy.md +1 -1
  183. package/.docs/reference/agents/getLLM.md +2 -2
  184. package/.docs/reference/agents/getMetadata.md +2 -2
  185. package/.docs/reference/agents/inngest-agent.md +1 -1
  186. package/.docs/reference/agents/network.md +1 -1
  187. package/.docs/reference/browser/agent-browser.md +1 -1
  188. package/.docs/reference/browser/browser-viewer.md +1 -1
  189. package/.docs/reference/browser/firecrawl-browser.md +1 -1
  190. package/.docs/reference/browser/mastra-browser.md +1 -1
  191. package/.docs/reference/browser/stagehand-browser.md +4 -4
  192. package/.docs/reference/cli/mastra.md +132 -1
  193. package/.docs/reference/client-js/agents.md +17 -0
  194. package/.docs/reference/configuration.md +1 -1
  195. package/.docs/reference/core/getAgentById.md +1 -1
  196. package/.docs/reference/core/mastra-class.md +48 -1
  197. package/.docs/reference/core/mastra-model-gateway.md +1 -1
  198. package/.docs/reference/evals/answer-relevancy.md +1 -1
  199. package/.docs/reference/evals/answer-similarity.md +1 -1
  200. package/.docs/reference/evals/bias.md +1 -1
  201. package/.docs/reference/evals/context-precision.md +3 -3
  202. package/.docs/reference/evals/context-recall.md +3 -3
  203. package/.docs/reference/evals/context-relevance.md +11 -11
  204. package/.docs/reference/evals/faithfulness.md +1 -1
  205. package/.docs/reference/evals/hallucination.md +5 -5
  206. package/.docs/reference/evals/noise-sensitivity.md +10 -10
  207. package/.docs/reference/evals/prompt-alignment.md +15 -15
  208. package/.docs/reference/evals/rubric.md +1 -1
  209. package/.docs/reference/evals/tool-call-accuracy.md +3 -3
  210. package/.docs/reference/evals/toxicity.md +1 -1
  211. package/.docs/reference/file-based-agents/config.md +3 -3
  212. package/.docs/reference/file-based-agents/instructions.md +1 -1
  213. package/.docs/reference/file-based-agents/subagents.md +3 -3
  214. package/.docs/reference/index.md +2 -0
  215. package/.docs/reference/memory/memory-class.md +3 -3
  216. package/.docs/reference/memory/observational-memory.md +4 -4
  217. package/.docs/reference/observability/tracing/exporters/langfuse.md +1 -1
  218. package/.docs/reference/processors/batch-parts-processor.md +1 -1
  219. package/.docs/reference/processors/language-detector.md +1 -1
  220. package/.docs/reference/processors/message-history-processor.md +1 -1
  221. package/.docs/reference/processors/moderation-processor.md +2 -2
  222. package/.docs/reference/processors/pii-detector.md +2 -2
  223. package/.docs/reference/processors/processor-interface.md +1 -1
  224. package/.docs/reference/processors/prompt-injection-detector.md +1 -1
  225. package/.docs/reference/processors/semantic-recall-processor.md +1 -1
  226. package/.docs/reference/processors/skill-search-processor.md +1 -1
  227. package/.docs/reference/processors/system-prompt-scrubber.md +1 -1
  228. package/.docs/reference/processors/token-limiter-processor.md +3 -3
  229. package/.docs/reference/processors/tool-call-filter.md +2 -2
  230. package/.docs/reference/processors/tool-search-processor.md +2 -2
  231. package/.docs/reference/processors/unicode-normalizer.md +1 -1
  232. package/.docs/reference/processors/working-memory-processor.md +1 -1
  233. package/.docs/reference/rag/rerank.md +1 -1
  234. package/.docs/reference/server/routes.md +7 -7
  235. package/.docs/reference/signals/create-notification-inbox-tool.md +1 -1
  236. package/.docs/reference/storage/dsql.md +1 -1
  237. package/.docs/reference/storage/mongodb.md +1 -1
  238. package/.docs/reference/storage/postgresql.md +1 -1
  239. package/.docs/reference/storage/redis.md +1 -1
  240. package/.docs/reference/storage/upstash.md +1 -1
  241. package/.docs/reference/streaming/agents/stream.md +1 -1
  242. package/.docs/reference/tools/create-code-mode.md +3 -3
  243. package/.docs/reference/tools/isolated-vm-transport.md +74 -0
  244. package/.docs/reference/tools/mcp-client.md +2 -2
  245. package/.docs/reference/tools/mcp-server.md +1 -1
  246. package/.docs/reference/tools/vector-query-tool.md +1 -1
  247. package/.docs/reference/vectors/libsql.md +1 -1
  248. package/.docs/reference/vectors/mongodb.md +2 -2
  249. package/.docs/reference/vectors/pg.md +1 -1
  250. package/.docs/reference/vectors/upstash.md +1 -1
  251. package/.docs/reference/voice/voice.addInstructions.md +1 -1
  252. package/.docs/reference/workers/overview.md +85 -0
  253. package/.docs/reference/workspace/agentfs-filesystem.md +1 -1
  254. package/.docs/reference/workspace/local-filesystem.md +1 -1
  255. package/.docs/reference/workspace/local-sandbox.md +1 -1
  256. package/CHANGELOG.md +14 -0
  257. package/package.json +5 -5
@@ -32,7 +32,7 @@ export const weatherAgent = new Agent({
32
32
  id: 'weather-agent',
33
33
  name: 'Weather Agent',
34
34
  instructions: 'Use the weatherTool to fetch current weather data.',
35
- model: 'openai/gpt-5.5',
35
+ model: 'openai/gpt-5.6-sol',
36
36
  tools: { weatherTool },
37
37
  })
38
38
  ```
@@ -131,7 +131,7 @@ Embed Mastra in your Next.js API route and connect an OpenUI `<AgentInterface />
131
131
  name: 'OpenUI Agent',
132
132
  instructions: `You are a helpful assistant. Use tools when relevant.\n\n${systemPrompt}`,
133
133
  model: {
134
- id: 'openai/gpt-5.5',
134
+ id: 'openai/gpt-5.6-sol',
135
135
  apiKey: process.env.OPENAI_API_KEY,
136
136
  },
137
137
  tools: { getWeather },
@@ -207,7 +207,7 @@ export const testAgent = new Agent({
207
207
  id: 'test-agent',
208
208
  name: 'Test Agent',
209
209
  instructions: 'You are a weather agent.',
210
- model: 'openai/gpt-5.5',
210
+ model: 'openai/gpt-5.6-sol',
211
211
  tools: { testTool },
212
212
  })
213
213
  ```
@@ -99,7 +99,7 @@ const agent = new Agent({
99
99
  id: 'assistant',
100
100
  name: 'Assistant',
101
101
  instructions: 'You are a helpful assistant.',
102
- model: 'openai/gpt-5.5',
102
+ model: 'openai/gpt-5.6-sol',
103
103
  })
104
104
 
105
105
  export const durableAssistant = createDurableAgent({ agent })
@@ -0,0 +1,232 @@
1
+ > Discover all available pages from the documentation index: https://mastra.ai/llms.txt
2
+
3
+ # Deploy Mastra workers
4
+
5
+ Run [Mastra workers](https://mastra.ai/docs/deployment/workers) as separate processes so you can scale orchestration, scheduling, and background tasks independently from the API. This guide walks through a fully split deployment using Docker Compose.
6
+
7
+ > **Info:** This guide covers splitting workers into their own containers. If you only need workers to run in-process alongside the API, see [Workers](https://mastra.ai/docs/deployment/workers). No extra setup is required.
8
+
9
+ ## Before you begin
10
+
11
+ You'll need:
12
+
13
+ - A [Mastra application](https://mastra.ai/guides/getting-started/quickstart)
14
+ - [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/)
15
+ - A distributed PubSub backend: [Redis](https://redis.io/) for [`RedisStreamsPubSub`](https://mastra.ai/reference/pubsub/redis-streams), or a [Google Cloud](https://cloud.google.com/) project for [`GoogleCloudPubSub`](https://mastra.ai/reference/pubsub/google-cloud-pubsub)
16
+ - A shared database reachable from every container. See [supported storage backends](https://mastra.ai/reference/workers/overview) for the full list.
17
+
18
+ > **Warning:** The default in-memory PubSub can't deliver events across processes. You must configure a distributed PubSub backend before splitting workers into separate containers.
19
+
20
+ ## Configure shared infrastructure
21
+
22
+ Point the `Mastra` instance at a distributed PubSub backend and a shared database. Use environment variables so the same image runs in every container.
23
+
24
+ **Redis Streams + PostgreSQL**:
25
+
26
+ ```typescript
27
+ import { Mastra } from '@mastra/core/mastra'
28
+ import { RedisStreamsPubSub } from '@mastra/redis-streams'
29
+ import { PostgresStore } from '@mastra/pg'
30
+
31
+ export const mastra = new Mastra({
32
+ storage: new PostgresStore({
33
+ connectionString: process.env.DATABASE_URL!,
34
+ }),
35
+ pubsub: new RedisStreamsPubSub({
36
+ url: process.env.REDIS_URL!,
37
+ }),
38
+ })
39
+ ```
40
+
41
+ **Google Cloud Pub/Sub + LibSQL**:
42
+
43
+ ```typescript
44
+ import { Mastra } from '@mastra/core/mastra'
45
+ import { GoogleCloudPubSub } from '@mastra/google-cloud-pubsub'
46
+ import { LibSQLStore } from '@mastra/libsql'
47
+
48
+ export const mastra = new Mastra({
49
+ storage: new LibSQLStore({
50
+ url: process.env.DATABASE_URL!,
51
+ }),
52
+ pubsub: new GoogleCloudPubSub({
53
+ projectId: process.env.GCP_PROJECT_ID!,
54
+ }),
55
+ })
56
+ ```
57
+
58
+ Any [supported storage backend](https://mastra.ai/reference/workers/overview) works. Swap the storage adapter for your preferred database.
59
+
60
+ ## Deploy
61
+
62
+ 1. Build your Mastra application. The output runs in every container.
63
+
64
+ ```bash
65
+ mastra build
66
+ ```
67
+
68
+ This produces a self-contained `.mastra/output/` directory. See [Deploy a Mastra server](https://mastra.ai/docs/deployment/mastra-server) for details on the build output.
69
+
70
+ 2. Create a Dockerfile that copies the pre-built output and installs production dependencies:
71
+
72
+ ```dockerfile
73
+ FROM node:22-alpine
74
+
75
+ WORKDIR /app
76
+
77
+ COPY .mastra/output/package.json .mastra/output/.npmrc* ./
78
+ RUN npm install --omit=dev
79
+
80
+ COPY .mastra/output/ .
81
+
82
+ EXPOSE 4111
83
+ CMD ["node", "index.mjs"]
84
+ ```
85
+
86
+ 3. Create a `docker-compose.yml` that runs the fully split topology. The file defines six services: a database, a PubSub backend, the API server, and three workers. Each worker container runs the same image with a different `MASTRA_WORKERS` value to control which worker starts.
87
+
88
+ The API container sets `MASTRA_WORKERS: "false"` to disable all event processing. The orchestration worker sets `MASTRA_STEP_EXECUTION_URL` to point step execution requests at the API's internal URL. See [step execution URL](#step-execution-url) for details.
89
+
90
+ ```yaml
91
+ services:
92
+ postgres:
93
+ image: postgres:16-alpine
94
+ environment:
95
+ POSTGRES_USER: mastra
96
+ POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
97
+ POSTGRES_DB: mastra
98
+ ports:
99
+ - '5432:5432'
100
+ volumes:
101
+ - pgdata:/var/lib/postgresql/data
102
+ healthcheck:
103
+ test: ['CMD-SHELL', 'pg_isready -U mastra']
104
+ interval: 5s
105
+ timeout: 3s
106
+ retries: 5
107
+
108
+ redis:
109
+ image: redis:7-alpine
110
+ ports:
111
+ - '6379:6379'
112
+ healthcheck:
113
+ test: ['CMD', 'redis-cli', 'ping']
114
+ interval: 5s
115
+ timeout: 3s
116
+ retries: 5
117
+
118
+ api:
119
+ build: ./app
120
+ ports:
121
+ - '4111:4111'
122
+ environment:
123
+ DATABASE_URL: postgres://mastra:${POSTGRES_PASSWORD}@postgres:5432/mastra
124
+ REDIS_URL: redis://redis:6379
125
+ MASTRA_WORKERS: 'false'
126
+ depends_on:
127
+ postgres:
128
+ condition: service_healthy
129
+ redis:
130
+ condition: service_healthy
131
+ healthcheck:
132
+ test: ['CMD', 'wget', '-qO-', 'http://localhost:4111/api/agents']
133
+ interval: 5s
134
+ timeout: 3s
135
+ retries: 5
136
+
137
+ orchestration-worker:
138
+ build: ./app
139
+ environment:
140
+ DATABASE_URL: postgres://mastra:${POSTGRES_PASSWORD}@postgres:5432/mastra
141
+ REDIS_URL: redis://redis:6379
142
+ MASTRA_WORKERS: orchestration
143
+ MASTRA_STEP_EXECUTION_URL: http://api:4111/api
144
+ depends_on:
145
+ api:
146
+ condition: service_healthy
147
+
148
+ scheduler-worker:
149
+ build: ./app
150
+ environment:
151
+ DATABASE_URL: postgres://mastra:${POSTGRES_PASSWORD}@postgres:5432/mastra
152
+ REDIS_URL: redis://redis:6379
153
+ MASTRA_WORKERS: scheduler
154
+ depends_on:
155
+ api:
156
+ condition: service_healthy
157
+
158
+ background-task-worker:
159
+ build: ./app
160
+ environment:
161
+ DATABASE_URL: postgres://mastra:${POSTGRES_PASSWORD}@postgres:5432/mastra
162
+ REDIS_URL: redis://redis:6379
163
+ MASTRA_WORKERS: backgroundTasks
164
+ depends_on:
165
+ api:
166
+ condition: service_healthy
167
+
168
+ volumes:
169
+ pgdata:
170
+ ```
171
+
172
+ Create a `.env` file next to your `docker-compose.yml`:
173
+
174
+ ```bash
175
+ POSTGRES_PASSWORD=your-secure-password
176
+ ```
177
+
178
+ > **Note:** Remember to set any other environment variables your application needs (e.g., your [model provider](https://mastra.ai/models/providers) API key).
179
+
180
+ 4. Start the stack and verify the API responds:
181
+
182
+ ```bash
183
+ docker compose up -d
184
+ docker compose ps
185
+ curl http://localhost:4111/api/agents
186
+ ```
187
+
188
+ ## Step execution URL
189
+
190
+ In a fully split deployment, the orchestration worker runs in a separate container from the API. When it processes a workflow event, it delegates step execution to the API over HTTP.
191
+
192
+ Set `MASTRA_STEP_EXECUTION_URL` to the API's internal URL, including the `/api` prefix:
193
+
194
+ ```bash
195
+ MASTRA_STEP_EXECUTION_URL=http://api:4111/api
196
+ ```
197
+
198
+ The orchestration worker sends a `POST` request to `${MASTRA_STEP_EXECUTION_URL}/workflows/:workflowId/runs/:runId/steps/execute` for each step. The API resolves the workflow and executes the step locally.
199
+
200
+ Without this variable, the orchestration worker attempts to execute steps in-process. That works when the worker runs alongside the API, but fails in split deployments where the worker doesn't have access to the full Mastra runtime.
201
+
202
+ ## Scaling
203
+
204
+ The orchestration and background task workers are safe to scale horizontally. PubSub consumer groups distribute events across instances, so each event is processed once:
205
+
206
+ ```bash
207
+ docker compose up -d --scale orchestration-worker=3
208
+ docker compose up -d --scale background-task-worker=2
209
+ ```
210
+
211
+ The API can also scale horizontally behind a load balancer.
212
+
213
+ **Don't scale the scheduler worker.** Run exactly one instance. Multiple schedulers polling the same storage fire duplicate events for the same schedule.
214
+
215
+ ## Crash recovery
216
+
217
+ Workers recover from crashes because the distributed PubSub backend persists unacknowledged events:
218
+
219
+ - **Orchestration worker**: Pending events stay in the PubSub backend. When the worker restarts, it picks up where it left off.
220
+ - **Scheduler worker**: No events are missed permanently. The scheduler computes the next fire time from the current time on restart, not from where it left off.
221
+ - **API during step execution**: The orchestration worker's HTTP request fails. The event is nacked and redelivered on the next attempt.
222
+
223
+ > **Warning:** If the API crashes while a step is already executing (e.g., mid-sleep), that step's work is lost. The workflow run may remain stuck in a `running` state. Mastra doesn't yet have automatic timeout-based recovery for this scenario.
224
+
225
+ ## Related
226
+
227
+ - [Workers](https://mastra.ai/docs/deployment/workers): What workers are and when to use them
228
+ - [Worker authentication](https://mastra.ai/docs/server/auth/workers): Secure worker-to-API communication
229
+ - [Workers reference](https://mastra.ai/reference/workers/overview): Configuration details for all worker types
230
+ - [CLI reference](https://mastra.ai/reference/cli/mastra): `mastra worker build` and `mastra worker start`
231
+ - [PubSub](https://mastra.ai/docs/server/pubsub): Event delivery backends
232
+ - [Deploy a Mastra server](https://mastra.ai/docs/deployment/mastra-server): Build output and server configuration
@@ -49,7 +49,7 @@ Set up the Workflow, define steps to extract and classify candidate data, and th
49
49
  id: 'recruiter-agent',
50
50
  name: 'Recruiter Agent',
51
51
  instructions: `You are a recruiter.`,
52
- model: 'openai/gpt-5.5',
52
+ model: 'openai/gpt-5.6-sol',
53
53
  })
54
54
 
55
55
  const gatherCandidateInfo = createStep({
@@ -27,7 +27,7 @@ To create an agent in Mastra use the `Agent` class to define it and then registe
27
27
  instructions:
28
28
  'You are Michel, a practical and experienced home chef' +
29
29
  'You help people cook with whatever ingredients they have available.',
30
- model: 'openai/gpt-5.5',
30
+ model: 'openai/gpt-5.6-sol',
31
31
  })
32
32
  ```
33
33
 
@@ -124,7 +124,7 @@ When asked to review code:
124
124
  2. Follow the review process from the skill
125
125
  3. Check against the style guide in skill references
126
126
  4. Be constructive and specific with line numbers`,
127
- model: 'openai/gpt-5.5',
127
+ model: 'openai/gpt-5.6-sol',
128
128
  })
129
129
  ```
130
130
 
@@ -55,7 +55,7 @@ import { basename } from 'node:path'
55
55
  import { buildBasePrompt, createCodingAgent } from '@mastra/core/coding-agent'
56
56
 
57
57
  export const projectPath = process.cwd()
58
- const model = 'openai/gpt-5.5'
58
+ const model = 'openai/gpt-5.6-sol'
59
59
 
60
60
  const instructions = buildBasePrompt({
61
61
  projectPath,
@@ -197,7 +197,7 @@ When adding features:
197
197
  For every new feature: Write code → Write tests → Run tests → Update docs
198
198
 
199
199
  Always explain your reasoning and steps.`,
200
- model: 'openai/gpt-5.5',
200
+ model: 'openai/gpt-5.6-sol',
201
201
  })
202
202
  ```
203
203
 
@@ -105,7 +105,7 @@ When updating existing docs:
105
105
 
106
106
  Use kebab-case naming for files (getting-started.md).
107
107
  Always explain what you're creating and why.`,
108
- model: 'openai/gpt-5.5',
108
+ model: 'openai/gpt-5.6-sol',
109
109
  })
110
110
  ```
111
111
 
@@ -109,7 +109,7 @@ Create a tool file that exposes Firecrawl search and scrape to Mastra.
109
109
  id: 'web-agent',
110
110
  name: 'Web Agent',
111
111
  instructions: 'Use Firecrawl tools to search and scrape web pages, then summarize the results.',
112
- model: 'openai/gpt-5.5',
112
+ model: 'openai/gpt-5.6-sol',
113
113
  tools: { firecrawlSearch, firecrawlScrape },
114
114
  })
115
115
  ```
@@ -99,7 +99,7 @@ Output format:
99
99
 
100
100
  - [Same changes in Japanese]
101
101
  `,
102
- model: 'openai/gpt-5.5',
102
+ model: 'openai/gpt-5.6-sol',
103
103
  })
104
104
  ```
105
105
 
@@ -101,7 +101,7 @@ Let's define the agent's behavior, connect it to your Mastra project, and create
101
101
  and provide accurate, well-supported answers based on the retrieved content.
102
102
  Focus on the specific content available in the tool and acknowledge if you cannot find sufficient information to answer a question.
103
103
  Base your responses only on the content provided, not on general knowledge.`,
104
- model: 'openai/gpt-5.5',
104
+ model: 'openai/gpt-5.6-sol',
105
105
  tools: {
106
106
  vectorQueryTool,
107
107
  },
@@ -96,7 +96,7 @@ Success criteria:
96
96
  - Information is accurate and well-sourced
97
97
  - Final output is well-formatted and complete
98
98
  - If anything is missing or uncertain, continue gathering information`,
99
- model: 'openai/gpt-5.5',
99
+ model: 'openai/gpt-5.6-sol',
100
100
  agents: {
101
101
  researchAgent,
102
102
  writingAgent,
@@ -290,7 +290,7 @@ Success criteria:
290
290
  - Information is accurate and well-sourced
291
291
  - Final output is well-formatted and complete
292
292
  - If anything is missing or uncertain, continue gathering information`,
293
- model: 'openai/gpt-5.5',
293
+ model: 'openai/gpt-5.6-sol',
294
294
  agents: {
295
295
  researchAgent,
296
296
  writingAgent,
@@ -119,7 +119,7 @@ export const devAgent = new Agent({
119
119
  id: 'dev-agent',
120
120
  name: 'Dev Agent',
121
121
  instructions: 'Help the user triage CI build failures.',
122
- model: 'openai/gpt-5.5',
122
+ model: 'openai/gpt-5.6-sol',
123
123
  signals: [ciSignals],
124
124
  })
125
125
  ```
@@ -24,7 +24,7 @@ To create an agent in Mastra use the `Agent` class to define it and then registe
24
24
  name: 'Stock Agent',
25
25
  instructions:
26
26
  'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price.',
27
- model: 'openai/gpt-5.5',
27
+ model: 'openai/gpt-5.6-sol',
28
28
  })
29
29
  ```
30
30
 
@@ -83,7 +83,7 @@ The Stock Agent doesn't yet know anything about current stock prices. To change
83
83
  name: 'Stock Agent',
84
84
  instructions:
85
85
  'You are a helpful assistant that provides current stock prices. When asked about a stock, use the stock price tool to fetch the stock price.',
86
- model: 'openai/gpt-5.5',
86
+ model: 'openai/gpt-5.6-sol',
87
87
  tools: {
88
88
  stockPrices,
89
89
  },
@@ -130,7 +130,7 @@ Some LLM providers include built-in web search capabilities that can be used dir
130
130
  id: 'search-agent',
131
131
  name: 'Search Agent',
132
132
  instructions: 'You are a search agent that can search the web for information.',
133
- model: 'openai/gpt-5.5',
133
+ model: 'openai/gpt-5.6-sol',
134
134
  })
135
135
  ```
136
136
 
@@ -159,7 +159,7 @@ Some LLM providers include built-in web search capabilities that can be used dir
159
159
  id: 'search-agent',
160
160
  name: 'Search Agent',
161
161
  instructions: 'You are a search agent that can search the web for information.',
162
- model: 'openai/gpt-5.5',
162
+ model: 'openai/gpt-5.6-sol',
163
163
  tools: {
164
164
  webSearch: openai.tools.webSearch(),
165
165
  },
@@ -243,7 +243,7 @@ For more control over search behavior, you can integrate external search APIs as
243
243
  id: 'search-agent',
244
244
  name: 'Search Agent',
245
245
  instructions: 'You are a search agent that can search the web for information.',
246
- model: 'openai/gpt-5.5',
246
+ model: 'openai/gpt-5.6-sol',
247
247
  })
248
248
  ```
249
249
 
@@ -295,7 +295,7 @@ For more control over search behavior, you can integrate external search APIs as
295
295
  id: 'search-agent',
296
296
  name: 'Search Agent',
297
297
  instructions: 'You are a search agent that can search the web for information.',
298
- model: 'openai/gpt-5.5',
298
+ model: 'openai/gpt-5.6-sol',
299
299
  tools: {
300
300
  webSearch,
301
301
  },
@@ -119,7 +119,7 @@ export const chatAgent = new Agent({
119
119
 
120
120
  Always aim to be helpful while maintaining a friendly, approachable conversation style.
121
121
  `,
122
- model: 'openai/gpt-5.5',
122
+ model: 'openai/gpt-5.6-sol',
123
123
  memory: new Memory({
124
124
  storage: new LibSQLStore({
125
125
  id: 'agent-storage',
@@ -157,7 +157,7 @@ export const textMessageAgent = new Agent({
157
157
 
158
158
  Always return exactly 5-8 messages in the messages array.
159
159
  `,
160
- model: 'openai/gpt-5.5',
160
+ model: 'openai/gpt-5.6-sol',
161
161
  memory: new Memory({
162
162
  storage: new LibSQLStore({
163
163
  id: 'agent-storage',
@@ -29,7 +29,7 @@ const agent = new AgentNetwork({
29
29
  name: 'agent-network',
30
30
  agents: [agent1, agent2],
31
31
  tools: { tool1, tool2 },
32
- model: 'openai/gpt-5.5',
32
+ model: 'openai/gpt-5.6-sol',
33
33
  instructions: 'You are a network agent that can help users with a variety of tasks.',
34
34
  })
35
35
 
@@ -49,7 +49,7 @@ const agent = new Agent({
49
49
  name: 'agent-network',
50
50
  agents: { agent1, agent2 },
51
51
  tools: { tool1, tool2 },
52
- model: 'openai/gpt-5.5',
52
+ model: 'openai/gpt-5.6-sol',
53
53
  instructions: 'You are a network agent that can help users with a variety of tasks.',
54
54
  memory,
55
55
  })
@@ -70,7 +70,7 @@ const agent = new NewAgentNetwork({
70
70
  agents: { agent1, agent2 },
71
71
  workflows: { workflow1 },
72
72
  tools: { tool1, tool2 },
73
- model: 'openai/gpt-5.5',
73
+ model: 'openai/gpt-5.6-sol',
74
74
  instructions: 'You are a network agent that can help users with a variety of tasks.',
75
75
  })
76
76
 
@@ -91,7 +91,7 @@ const agent = new Agent({
91
91
  agents: { agent1, agent2 },
92
92
  workflows: { workflow1 },
93
93
  tools: { tool1, tool2 },
94
- model: 'openai/gpt-5.5',
94
+ model: 'openai/gpt-5.6-sol',
95
95
  instructions: 'You are a network agent that can help users with a variety of tasks.',
96
96
  memory,
97
97
  })
@@ -229,7 +229,7 @@ const agent = new Agent({
229
229
  + id: 'my-agent',
230
230
  name: 'My Agent',
231
231
  instructions: 'You are a helpful assistant',
232
- model: 'openai/gpt-5.5',
232
+ model: 'openai/gpt-5.6-sol',
233
233
  });
234
234
  ```
235
235
 
@@ -161,7 +161,7 @@ The following options are available in the standard `.stream()` and `generate()`
161
161
  name: z.string(),
162
162
  age: z.number(),
163
163
  }),
164
- model: 'openai/gpt-5.5', // Optional model override for structuring
164
+ model: 'openai/gpt-5.6-sol', // Optional model override for structuring
165
165
  errorStrategy: 'fallback',
166
166
  fallbackValue: { name: 'unknown', age: 0 },
167
167
  instructions: 'Extract user information', // Override default structuring instructions
@@ -299,7 +299,7 @@ The following options are available in the standard `.stream()` and `generate()`
299
299
  schema: z.object({
300
300
  summary: z.string(),
301
301
  }),
302
- model: 'openai/gpt-5.5',
302
+ model: 'openai/gpt-5.6-sol',
303
303
  },
304
304
  })
305
305
  ```
@@ -35,7 +35,7 @@ const myPrivateGateway: MastraModelGatewayInterface = {
35
35
  return {
36
36
  'my-provider': {
37
37
  name: 'My Provider',
38
- models: ['openai/gpt-5.5'],
38
+ models: ['openai/gpt-5.6-sol'],
39
39
  apiKeyEnvVar: 'MY_API_KEY',
40
40
  gateway: 'private',
41
41
  url: 'https://api.myprovider.com/v1',
@@ -81,7 +81,7 @@ class MyPrivateGateway extends MastraModelGateway {
81
81
  return {
82
82
  'my-provider': {
83
83
  name: 'My Provider',
84
- models: ['openai/gpt-5.5', 'anthropic/claude-sonnet-4-6'],
84
+ models: ['openai/gpt-5.6-sol', 'anthropic/claude-sonnet-4-6'],
85
85
  apiKeyEnvVar: 'MY_API_KEY',
86
86
  gateway: this.id,
87
87
  url: 'https://api.myprovider.com/v1',
@@ -192,7 +192,7 @@ const agent = new Agent({
192
192
  id: 'my-agent',
193
193
  name: 'My Agent',
194
194
  instructions: 'You are a helpful assistant',
195
- model: 'private/my-provider/openai/gpt-5.5', // Uses MyPrivateGateway
195
+ model: 'private/my-provider/openai/gpt-5.6-sol', // Uses MyPrivateGateway
196
196
  });
197
197
 
198
198
  mastra.addAgent(agent, 'myAgent');
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![OpenRouter logo](https://models.dev/logos/openrouter.svg)OpenRouter
4
4
 
5
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 340 models through Mastra's model router.
5
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 338 models through Mastra's model router.
6
6
 
7
7
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
8
8
 
@@ -282,8 +282,6 @@ ANTHROPIC_API_KEY=ant-...
282
282
  | `perplexity/sonar-pro` |
283
283
  | `perplexity/sonar-pro-search` |
284
284
  | `perplexity/sonar-reasoning-pro` |
285
- | `poolside/laguna-m.1` |
286
- | `poolside/laguna-m.1:free` |
287
285
  | `poolside/laguna-s-2.1` |
288
286
  | `poolside/laguna-s-2.1:free` |
289
287
  | `poolside/laguna-xs-2.1` |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![Vercel logo](https://models.dev/logos/vercel.svg)Vercel
4
4
 
5
- Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 306 models through Mastra's model router.
5
+ Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 307 models through Mastra's model router.
6
6
 
7
7
  Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
8
8
 
@@ -61,6 +61,7 @@ ANTHROPIC_API_KEY=ant-...
61
61
  | `alibaba/qwen3.5-plus` |
62
62
  | `alibaba/qwen3.6-27b` |
63
63
  | `alibaba/qwen3.6-plus` |
64
+ | `alibaba/qwen3.7-flash` |
64
65
  | `alibaba/qwen3.7-max` |
65
66
  | `alibaba/qwen3.7-plus` |
66
67
  | `alibaba/wan-v2.5-t2v-preview` |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Model Providers
4
4
 
5
- Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 5116 models from 163 providers through a single API.
5
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 5118 models from 163 providers through a single API.
6
6
 
7
7
  ## Features
8
8
 
@@ -29,7 +29,7 @@ const agent = new Agent({
29
29
  id: "my-agent",
30
30
  name: "My Agent",
31
31
  instructions: "You are a helpful assistant",
32
- model: "openai/gpt-5.5"
32
+ model: "openai/gpt-5.6-sol"
33
33
  })
34
34
  ```
35
35
 
@@ -110,7 +110,7 @@ const documentProcessor = new Agent({
110
110
  id: "document-processor",
111
111
  name: "Document Processor",
112
112
  instructions: "Extract and summarize key information from documents",
113
- model: "openai/gpt-5.5"
113
+ model: "openai/gpt-5.6-sol"
114
114
  })
115
115
 
116
116
  // Use a powerful reasoning model for complex analysis
@@ -160,7 +160,7 @@ const planner = new Agent({
160
160
  openai: { reasoningEffort: "low" }
161
161
  }
162
162
  },
163
- model: "openai/gpt-5.5",
163
+ model: "openai/gpt-5.6-sol",
164
164
  });
165
165
 
166
166
  const lowEffort =
@@ -187,7 +187,7 @@ const agent = new Agent({
187
187
  id: "custom-agent",
188
188
  name: "Custom Agent",
189
189
  model: {
190
- id: "openai/gpt-5.5",
190
+ id: "openai/gpt-5.6-sol",
191
191
  apiKey: process.env.OPENAI_API_KEY,
192
192
  headers: {
193
193
  "OpenAI-Organization": "org-abc123"
@@ -211,7 +211,7 @@ const agent = new Agent({
211
211
  instructions: 'You are a helpful assistant.',
212
212
  model: [
213
213
  {
214
- model: "openai/gpt-5.5",
214
+ model: "openai/gpt-5.6-sol",
215
215
  maxRetries: 3,
216
216
  },
217
217
  {
@@ -48,7 +48,7 @@ for await (const chunk of stream) {
48
48
  | `baseten/zai-org/GLM-4.7` | 200K | | | | | | $0.60 | $2 |
49
49
  | `baseten/zai-org/GLM-5` | 203K | | | | | | $0.95 | $3 |
50
50
  | `baseten/zai-org/GLM-5.1` | 203K | | | | | | $1 | $4 |
51
- | `baseten/zai-org/GLM-5.2` | 524K | | | | | | $1 | $4 |
51
+ | `baseten/zai-org/GLM-5.2` | 1.0M | | | | | | $1 | $4 |
52
52
  | `baseten/zai-org/GLM-5.2-Fast` | 524K | | | | | | $2 | $7 |
53
53
 
54
54
  ## Advanced configuration