@mastra/mcp-docs-server 1.2.17-alpha.19 → 1.2.17-alpha.21

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 (39) hide show
  1. package/.docs/docs/storage.md +1 -0
  2. package/.docs/docs/workflows/control-flow.md +0 -4
  3. package/.docs/docs/workflows/human-in-the-loop.md +0 -4
  4. package/.docs/docs/workflows/suspend-and-resume.md +0 -4
  5. package/.docs/integrations/frameworks/astro.md +5 -1
  6. package/.docs/integrations/frameworks/next-js.md +5 -1
  7. package/.docs/integrations/frameworks/vite-react.md +5 -1
  8. package/.docs/integrations/sandboxes/railway.md +11 -0
  9. package/.docs/integrations.md +2 -0
  10. package/.docs/models/environment-variables.md +2 -2
  11. package/.docs/models/gateways/merge-gateway.md +212 -0
  12. package/.docs/models/gateways/openrouter.md +4 -1
  13. package/.docs/models/gateways/vercel.md +2 -1
  14. package/.docs/models/gateways.md +1 -0
  15. package/.docs/models/index.md +1 -1
  16. package/.docs/models/providers/ambient.md +2 -2
  17. package/.docs/models/providers/chutes.md +1 -1
  18. package/.docs/models/providers/edenai.md +5 -5
  19. package/.docs/models/providers/hetzner.md +6 -8
  20. package/.docs/models/providers/hyper.md +5 -5
  21. package/.docs/models/providers/kilo.md +5 -3
  22. package/.docs/models/providers/llmgateway.md +3 -3
  23. package/.docs/models/providers/scx-ai.md +76 -0
  24. package/.docs/models/providers/wandb.md +2 -1
  25. package/.docs/models/providers.md +1 -2
  26. package/.docs/reference/ai-sdk/chat-route.md +1 -1
  27. package/.docs/reference/ai-sdk/handle-chat-stream.md +1 -1
  28. package/.docs/reference/ai-sdk/handle-network-stream.md +1 -1
  29. package/.docs/reference/ai-sdk/handle-workflow-stream.md +1 -1
  30. package/.docs/reference/ai-sdk/network-route.md +1 -1
  31. package/.docs/reference/ai-sdk/to-ai-sdk-messages.md +1 -1
  32. package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +1 -1
  33. package/.docs/reference/ai-sdk/workflow-route.md +1 -1
  34. package/.docs/reference/editor/tool-provider.md +107 -0
  35. package/.docs/reference/rag/retrieval.md +26 -18
  36. package/.docs/reference/workspace/platform-sandbox.md +11 -0
  37. package/CHANGELOG.md +14 -0
  38. package/package.json +5 -5
  39. package/.docs/models/providers/merge-gateway.md +0 -268
@@ -200,6 +200,7 @@ Each provider page includes installation instructions, configuration parameters,
200
200
  - [Google Cloud Spanner](https://mastra.ai/integrations/databases/spanner)
201
201
  - [LanceDB](https://mastra.ai/integrations/databases/lancedb)
202
202
  - [libSQL](https://mastra.ai/integrations/databases/libsql)
203
+ - [Mastra](https://mastra.ai/docs/mastra-platform/database)
203
204
  - [MongoDB](https://mastra.ai/integrations/databases/mongodb)
204
205
  - [MSSQL](https://mastra.ai/integrations/databases/mssql)
205
206
  - [Neon Postgres](https://mastra.ai/integrations/databases/neon)
@@ -17,8 +17,6 @@ Each step connects to the next in the workflow through defined schemas that keep
17
17
 
18
18
  Use `.then()` to run steps in order, allowing each step to access the result of the step before it.
19
19
 
20
- ![Chaining steps with .then()](/assets/images/workflows-control-flow-then-bde5e0fbefe5c64c19a8c3471c0e8439.jpg)
21
-
22
20
  ```typescript
23
21
  const step1 = createStep({
24
22
  inputSchema: z.object({
@@ -55,8 +53,6 @@ export const testWorkflow = createWorkflow({
55
53
 
56
54
  Use `.parallel()` to run steps simultaneously. All parallel steps must complete before the workflow continues to the next step. Each step's `id` is used when defining a following step's `inputSchema` and becomes the key on the `inputData` object used to access the previous step's values. The outputs of parallel steps can then be referenced or combined by a following step.
57
55
 
58
- ![Concurrent steps with .parallel()](/assets/images/workflows-control-flow-parallel-8e7fe60f1c4daa510431b37c973f6f8d.jpg)
59
-
60
56
  ```typescript
61
57
  const step1 = createStep({
62
58
  id: 'step-1',
@@ -8,8 +8,6 @@ Some workflows need to pause for human input before continuing. When a workflow
8
8
 
9
9
  Human-in-the-loop (HITL) input works much like [pausing a workflow](https://mastra.ai/docs/workflows/suspend-and-resume) using `suspend()`. The key difference is that when human input is required, you can return `suspend()` with a payload that provides context or guidance to the user on how to continue.
10
10
 
11
- ![Pausing a workflow with suspend()](/assets/images/workflows-suspend-4540783670f918109ac35beaf4db914b.jpg)
12
-
13
11
  ```typescript
14
12
  import { createWorkflow, createStep } from '@mastra/core/workflows'
15
13
  import { z } from 'zod'
@@ -93,8 +91,6 @@ The data returned by the step can include a reason and help the user understand
93
91
 
94
92
  As with [restarting a workflow](https://mastra.ai/docs/workflows/suspend-and-resume), use `resume()` with `resumeData` to continue a workflow after receiving input from a human. The workflow resumes from the step where it was paused.
95
93
 
96
- ![Restarting a workflow with resume()](/assets/images/workflows-resume-1e54b4d0c753ff79571f6d6b05109a60.jpg)
97
-
98
94
  ```typescript
99
95
  const workflow = mastra.getWorkflow('testWorkflow')
100
96
  const run = await workflow.createRun()
@@ -11,8 +11,6 @@ Use `suspend()` to pause workflow execution at a specific step. You can define a
11
11
  - If the condition isn’t met, the workflow pauses and returns `suspend()`.
12
12
  - If the condition is met, the workflow continues with the remaining logic in the step.
13
13
 
14
- ![Pausing a workflow with suspend()](/assets/images/workflows-suspend-4540783670f918109ac35beaf4db914b.jpg)
15
-
16
14
  ```typescript
17
15
  const step1 = createStep({
18
16
  id: 'step-1',
@@ -56,8 +54,6 @@ export const testWorkflow = createWorkflow({
56
54
 
57
55
  Use `resume()` to restart a suspended workflow from the step where it paused. Pass `resumeData` matching the step's `resumeSchema` to satisfy the suspend condition and continue execution.
58
56
 
59
- ![Restarting a workflow with resume()](/assets/images/workflows-resume-1e54b4d0c753ff79571f6d6b05109a60.jpg)
60
-
61
57
  ```typescript
62
58
  import { step1 } from './workflows/test-workflow'
63
59
 
@@ -153,7 +153,7 @@ yarn add @mastra/ai-sdk@latest @ai-sdk/react ai
153
153
  bun add @mastra/ai-sdk@latest @ai-sdk/react ai
154
154
  ```
155
155
 
156
- Next, initialize AI Elements. When prompted, choose the default options:
156
+ Next, initialize AI Elements. When prompted to select a component library, choose **Radix UI**, then accept the defaults for the remaining prompts:
157
157
 
158
158
  **npm**:
159
159
 
@@ -179,6 +179,10 @@ yarn dlx ai-elements@latest
179
179
  bun x ai-elements@latest
180
180
  ```
181
181
 
182
+ > **Note:** The `ai-elements` command runs `shadcn add` against the AI Elements registry, which currently publishes Radix UI components only. Installing them into a Base UI project produces TypeScript errors, tracked in [vercel/ai-elements#383](https://github.com/vercel/ai-elements/issues/383).
183
+ >
184
+ > The component library prompt only appears when your project has no `components.json`. If you already have one, check that its `style` is a Radix option, such as `new-york` or a `radix-*` style, and not a `base-*` style, before running the command.
185
+
182
186
  This downloads the entire AI Elements UI component library into a `@/components/ai-elements` folder.
183
187
 
184
188
  ## Create a chat route
@@ -121,7 +121,7 @@ yarn add @mastra/ai-sdk@latest @ai-sdk/react ai
121
121
  bun add @mastra/ai-sdk@latest @ai-sdk/react ai
122
122
  ```
123
123
 
124
- Next, initialize AI Elements. When prompted, choose the default options:
124
+ Next, initialize AI Elements. When prompted to select a component library, choose **Radix UI**, then accept the defaults for the remaining prompts:
125
125
 
126
126
  **npm**:
127
127
 
@@ -147,6 +147,10 @@ yarn dlx ai-elements@latest
147
147
  bun x ai-elements@latest
148
148
  ```
149
149
 
150
+ > **Note:** The `ai-elements` command runs `shadcn add` against the AI Elements registry, which currently publishes Radix UI components only. Installing them into a Base UI project produces TypeScript errors, tracked in [vercel/ai-elements#383](https://github.com/vercel/ai-elements/issues/383).
151
+ >
152
+ > The component library prompt only appears when your project has no `components.json`. If you already have one, check that its `style` is a Radix option, such as `new-york` or a `radix-*` style, and not a `base-*` style, before running the command.
153
+
150
154
  This downloads the entire AI Elements UI component library into a `@/components/ai-elements` folder.
151
155
 
152
156
  ## Create a chat route
@@ -196,7 +196,7 @@ yarn add @mastra/ai-sdk@latest @ai-sdk/react ai
196
196
  bun add @mastra/ai-sdk@latest @ai-sdk/react ai
197
197
  ```
198
198
 
199
- Next, initialize AI Elements. When prompted, choose the default options:
199
+ Next, initialize AI Elements. When prompted to select a component library, choose **Radix UI**, then accept the defaults for the remaining prompts:
200
200
 
201
201
  **npm**:
202
202
 
@@ -222,6 +222,10 @@ yarn dlx ai-elements@latest
222
222
  bun x ai-elements@latest
223
223
  ```
224
224
 
225
+ > **Note:** The `ai-elements` command runs `shadcn add` against the AI Elements registry, which currently publishes Radix UI components only. Installing them into a Base UI project produces TypeScript errors, tracked in [vercel/ai-elements#383](https://github.com/vercel/ai-elements/issues/383).
226
+ >
227
+ > The component library prompt only appears when your project has no `components.json`. If you already have one, check that its `style` is a Radix option, such as `new-york` or a `radix-*` style, and not a `base-*` style, before running the command.
228
+
225
229
  This downloads the entire AI Elements UI component library into a `@/components/ai-elements` folder.
226
230
 
227
231
  ## Create a chat route
@@ -141,6 +141,15 @@ const sandbox = new RailwaySandbox({
141
141
 
142
142
  `RailwaySandbox` refreshes the checkpoint shortly before the idle timeout. Recovery restores the latest successful checkpoint. It doesn't restore running processes or filesystem writes made after the last checkpoint.
143
143
 
144
+ Set `seedCheckpointName` to provide a boot-only fallback when `checkpointName` doesn't exist yet. Railway restores `checkpointName` first when both checkpoints exist. Later snapshots write only to `checkpointName`, so each sandbox keeps an independent recovery history.
145
+
146
+ ```typescript
147
+ const sandbox = new RailwaySandbox({
148
+ checkpointName: 'project-session-42',
149
+ seedCheckpointName: 'project-base',
150
+ })
151
+ ```
152
+
144
153
  Call `snapshot()` after a filesystem update to capture the configured checkpoint immediately. It resolves without capturing when `checkpointName` isn't configured or the sandbox isn't running.
145
154
 
146
155
  ```typescript
@@ -202,6 +211,8 @@ const result = await sandbox.executeCommand('cat', ['/tmp/state.txt'])
202
211
 
203
212
  **checkpointName** (`string`): Named Railway checkpoint used to seed new sandboxes and preserve the filesystem before idle teardown. Use a unique stable name for each independent filesystem.
204
213
 
214
+ **seedCheckpointName** (`string`): Boot-only fallback checkpoint used when checkpointName has no stored state. Later snapshots continue writing to checkpointName.
215
+
205
216
  **idleTimeoutMinutes** (`number`): How long the sandbox can sit idle (no exec interaction) before Railway destroys it automatically. The valid range and default depend on your Railway plan.
206
217
 
207
218
  **networkIsolation** (`'ISOLATED' | 'PRIVATE'`): Network access mode. 'ISOLATED' allows outbound internet only; 'PRIVATE' joins the environment's private network. (Default: `'ISOLATED'`)
@@ -55,6 +55,7 @@
55
55
  - [Laminar](https://mastra.ai/integrations/observability/laminar)
56
56
  - [Langfuse](https://mastra.ai/integrations/observability/langfuse)
57
57
  - [LangSmith](https://mastra.ai/integrations/observability/langsmith)
58
+ - [Mastra](https://mastra.ai/docs/mastra-platform/observability)
58
59
  - [OpenTelemetry](https://mastra.ai/integrations/observability/opentelemetry)
59
60
  - [PostHog](https://mastra.ai/integrations/observability/posthog)
60
61
  - [Sentry](https://mastra.ai/integrations/observability/sentry)
@@ -71,6 +72,7 @@
71
72
  - [Google Cloud Spanner](https://mastra.ai/integrations/databases/spanner)
72
73
  - [LanceDB](https://mastra.ai/integrations/databases/lancedb)
73
74
  - [libSQL](https://mastra.ai/integrations/databases/libsql)
75
+ - [Mastra](https://mastra.ai/docs/mastra-platform/database)
74
76
  - [MongoDB](https://mastra.ai/integrations/databases/mongodb)
75
77
  - [MSSQL](https://mastra.ai/integrations/databases/mssql)
76
78
  - [Neon Postgres](https://mastra.ai/integrations/databases/neon)
@@ -90,7 +90,6 @@ List of required environment variables for each model provider and gateway suppo
90
90
  | [LucidQuery](https://mastra.ai/models/providers/lucidquery) | `lucidquery/*` | `LUCIDQUERY_API_KEY` |
91
91
  | [Lynkr](https://mastra.ai/models/providers/lynkr) | `lynkr/*` | `LYNKR_API_KEY` |
92
92
  | [Meganova](https://mastra.ai/models/providers/meganova) | `meganova/*` | `MEGANOVA_API_KEY` |
93
- | [Merge Gateway](https://mastra.ai/models/providers/merge-gateway) | `merge-gateway/*` | `MERGE_GATEWAY_API_KEY` |
94
93
  | [Meta](https://mastra.ai/models/providers/meta) | `meta/*` | `META_MODEL_API_KEY` |
95
94
  | [MiniMax (minimax.io)](https://mastra.ai/models/providers/minimax) | `minimax/*` | `MINIMAX_API_KEY` |
96
95
  | [MiniMax (minimaxi.com)](https://mastra.ai/models/providers/minimax-cn) | `minimax-cn/*` | `MINIMAX_API_KEY` |
@@ -136,7 +135,7 @@ List of required environment variables for each model provider and gateway suppo
136
135
  | [Sarvam AI](https://mastra.ai/models/providers/sarvam) | `sarvam/*` | `SARVAM_API_KEY` |
137
136
  | [Scaleway](https://mastra.ai/models/providers/scaleway) | `scaleway/*` | `SCALEWAY_API_KEY` |
138
137
  | [SCNet Token Plan](https://mastra.ai/models/providers/scnet-token-plan) | `scnet-token-plan/*` | `SCNET_API_KEY` |
139
- | [SCX.ai](https://mastra.ai/models/providers/scx) | `scx/*` | `SCX_API_KEY` |
138
+ | [SCX.ai](https://mastra.ai/models/providers/scx-ai) | `scx-ai/*` | `SCX_API_KEY` |
140
139
  | [SiliconFlow](https://mastra.ai/models/providers/siliconflow) | `siliconflow/*` | `SILICONFLOW_API_KEY` |
141
140
  | [SiliconFlow (China)](https://mastra.ai/models/providers/siliconflow-cn) | `siliconflow-cn/*` | `SILICONFLOW_CN_API_KEY` |
142
141
  | [Snowflake Cortex](https://mastra.ai/models/providers/snowflake-cortex) | `snowflake-cortex/*` | `SNOWFLAKE_ACCOUNT`, `SNOWFLAKE_CORTEX_PAT` |
@@ -180,6 +179,7 @@ List of required environment variables for each model provider and gateway suppo
180
179
  | [Zhipu AI Coding Plan](https://mastra.ai/models/providers/zhipuai-coding-plan) | `zhipuai-coding-plan/*` | `ZHIPU_API_KEY` |
181
180
  | [Azure OpenAI](https://mastra.ai/models/gateways/azure-openai) (Gateway) | `azure-openai/*` | `AZURE_API_KEY`, `AZURE_TENANT_ID`, `AZURE_CLIENT_ID`, `AZURE_CLIENT_SECRET`, `AZURE_SUBSCRIPTION_ID` |
182
181
  | [Mastra](https://mastra.ai/models/gateways/mastra) (Gateway) | `mastra/*` | `MASTRA_GATEWAY_API_KEY` |
182
+ | [Merge Gateway](https://mastra.ai/models/gateways/merge-gateway) (Gateway) | `merge-gateway/*` | `MERGE_GATEWAY_API_KEY` |
183
183
  | [Neon](https://mastra.ai/models/gateways/neon) (Gateway) | `neon/*` | `NEON_AI_GATEWAY_BASE_URL`, `NEON_AI_GATEWAY_TOKEN` |
184
184
  | [Netlify](https://mastra.ai/models/gateways/netlify) (Gateway) | `netlify/*` | `NETLIFY_TOKEN`, `NETLIFY_SITE_ID` |
185
185
  | [OpenRouter](https://mastra.ai/models/gateways/openrouter) (Gateway) | `openrouter/*` | `OPENROUTER_API_KEY` |
@@ -0,0 +1,212 @@
1
+ > Discover all available pages from the documentation index: https://mastra.ai/llms.txt
2
+
3
+ # ![Merge Gateway logo](https://models.dev/logos/merge-gateway.svg)Merge Gateway
4
+
5
+ Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 174 models through Mastra's model router.
6
+
7
+ Learn more in the [Merge Gateway documentation](https://docs.merge.dev/merge-gateway).
8
+
9
+ ## Usage
10
+
11
+ ```typescript
12
+ import { Agent } from "@mastra/core/agent";
13
+
14
+ const agent = new Agent({
15
+ id: "my-agent",
16
+ name: "My Agent",
17
+ instructions: "You are a helpful assistant",
18
+ model: "merge-gateway/anthropic/claude-3-7-sonnet-20250219"
19
+ });
20
+ ```
21
+
22
+ > **Note:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Merge Gateway documentation](https://docs.merge.dev/merge-gateway) for details.
23
+
24
+ ## Configuration
25
+
26
+ ```bash
27
+ # Use gateway API key
28
+ MERGE_GATEWAY_API_KEY=your-gateway-key
29
+
30
+ # Or use provider API keys directly
31
+ OPENAI_API_KEY=sk-...
32
+ ANTHROPIC_API_KEY=ant-...
33
+ ```
34
+
35
+ ## Available models
36
+
37
+ | Model |
38
+ | ------------------------------------------------ |
39
+ | `anthropic/claude-3-7-sonnet-20250219` |
40
+ | `anthropic/claude-fable-5` |
41
+ | `anthropic/claude-haiku-4-5-20251001` |
42
+ | `anthropic/claude-opus-4-1-20250805` |
43
+ | `anthropic/claude-opus-4-20250514` |
44
+ | `anthropic/claude-opus-4-5-20251101` |
45
+ | `anthropic/claude-opus-4-6` |
46
+ | `anthropic/claude-opus-4-7` |
47
+ | `anthropic/claude-opus-4-8` |
48
+ | `anthropic/claude-opus-5` |
49
+ | `anthropic/claude-sonnet-4-20250514` |
50
+ | `anthropic/claude-sonnet-4-5-20250929` |
51
+ | `anthropic/claude-sonnet-4-6` |
52
+ | `anthropic/claude-sonnet-5` |
53
+ | `bytedance/dola-seed-2.0-code` |
54
+ | `bytedance/dola-seed-2.0-code-preview` |
55
+ | `bytedance/dola-seed-2.0-lite` |
56
+ | `bytedance/dola-seed-2.0-mini` |
57
+ | `bytedance/dola-seed-2.0-pro` |
58
+ | `cohere/command-a-03-2025` |
59
+ | `cohere/command-r-08-2024` |
60
+ | `cohere/command-r-plus-08-2024` |
61
+ | `cohere/command-r7b-12-2024` |
62
+ | `deepseek/deepseek-r1` |
63
+ | `deepseek/deepseek-v3` |
64
+ | `deepseek/deepseek-v3.1` |
65
+ | `deepseek/deepseek-v3.2` |
66
+ | `deepseek/deepseek-v4-flash` |
67
+ | `deepseek/deepseek-v4-flash-0731` |
68
+ | `deepseek/deepseek-v4-pro` |
69
+ | `deepseek/deepseek-v4-pro-0813` |
70
+ | `google/gemini-2.5-computer-use-preview-10-2025` |
71
+ | `google/gemini-2.5-flash` |
72
+ | `google/gemini-2.5-flash-image` |
73
+ | `google/gemini-2.5-flash-lite` |
74
+ | `google/gemini-2.5-pro` |
75
+ | `google/gemini-3-flash-preview` |
76
+ | `google/gemini-3-pro-image` |
77
+ | `google/gemini-3-pro-preview` |
78
+ | `google/gemini-3.1-flash-image` |
79
+ | `google/gemini-3.1-flash-lite` |
80
+ | `google/gemini-3.1-flash-lite-preview` |
81
+ | `google/gemini-3.1-pro-preview` |
82
+ | `google/gemini-3.1-pro-preview-customtools` |
83
+ | `google/gemini-3.5-flash` |
84
+ | `google/gemini-3.5-flash-lite` |
85
+ | `google/gemini-3.6-flash` |
86
+ | `google/gemini-3.7-flash` |
87
+ | `google/gemini-embedding-001` |
88
+ | `google/gemini-flash-latest` |
89
+ | `google/gemini-flash-lite-latest` |
90
+ | `google/gemma-4-26b-a4b-it` |
91
+ | `google/gemma-4-31b-it` |
92
+ | `meta/llama-3.1-8b-instruct` |
93
+ | `meta/llama-3.3-70b-instruct` |
94
+ | `meta/muse-spark-1.1` |
95
+ | `meta/muse-spark-1.2` |
96
+ | `minimax/minimax-m2` |
97
+ | `minimax/minimax-m2.1` |
98
+ | `minimax/minimax-m2.5` |
99
+ | `minimax/minimax-m2.5-highspeed` |
100
+ | `minimax/minimax-m2.7` |
101
+ | `minimax/minimax-m2.7-highspeed` |
102
+ | `minimax/minimax-m3` |
103
+ | `mistral/codestral-latest` |
104
+ | `mistral/devstral-2512` |
105
+ | `mistral/devstral-medium-2507` |
106
+ | `mistral/devstral-medium-latest` |
107
+ | `mistral/devstral-small-2507` |
108
+ | `mistral/magistral-medium-latest` |
109
+ | `mistral/mistral-large-2411` |
110
+ | `mistral/mistral-large-2512` |
111
+ | `mistral/mistral-large-latest` |
112
+ | `mistral/mistral-medium-2505` |
113
+ | `mistral/mistral-medium-latest` |
114
+ | `mistral/mistral-small-latest` |
115
+ | `mistral/pixtral-large-latest` |
116
+ | `moonshot/kimi-k2.5` |
117
+ | `moonshot/kimi-k2.6` |
118
+ | `moonshot/kimi-k2.7-code` |
119
+ | `moonshot/kimi-k2.7-code-highspeed` |
120
+ | `moonshot/kimi-k3` |
121
+ | `moonshotai/kimi-k2-thinking` |
122
+ | `nvidia/nemotron-3.5-lightning-30b-a3b` |
123
+ | `nvidia/nemotron-nano-9b-v2` |
124
+ | `openai/gpt-3.5-turbo` |
125
+ | `openai/gpt-4` |
126
+ | `openai/gpt-4-turbo` |
127
+ | `openai/gpt-4.1` |
128
+ | `openai/gpt-4.1-mini` |
129
+ | `openai/gpt-4.1-nano` |
130
+ | `openai/gpt-4o` |
131
+ | `openai/gpt-4o-2024-05-13` |
132
+ | `openai/gpt-4o-2024-08-06` |
133
+ | `openai/gpt-4o-2024-11-20` |
134
+ | `openai/gpt-4o-mini` |
135
+ | `openai/gpt-5` |
136
+ | `openai/gpt-5-chat-latest` |
137
+ | `openai/gpt-5-mini` |
138
+ | `openai/gpt-5-nano` |
139
+ | `openai/gpt-5.1` |
140
+ | `openai/gpt-5.1-chat-latest` |
141
+ | `openai/gpt-5.2` |
142
+ | `openai/gpt-5.2-chat-latest` |
143
+ | `openai/gpt-5.3-chat-latest` |
144
+ | `openai/gpt-5.4` |
145
+ | `openai/gpt-5.4-mini` |
146
+ | `openai/gpt-5.4-nano` |
147
+ | `openai/gpt-5.5` |
148
+ | `openai/gpt-5.6-luna` |
149
+ | `openai/gpt-5.6-sol` |
150
+ | `openai/gpt-5.6-terra` |
151
+ | `openai/gpt-oss-120b` |
152
+ | `openai/gpt-oss-20b` |
153
+ | `openai/gpt-oss-safeguard-120b` |
154
+ | `openai/o1` |
155
+ | `openai/o3` |
156
+ | `openai/o3-mini` |
157
+ | `openai/o4-mini` |
158
+ | `qwen/qwen-flash` |
159
+ | `qwen/qwen-plus` |
160
+ | `qwen/qwen3-235b-a22b` |
161
+ | `qwen/qwen3-235b-a22b-instruct-2507` |
162
+ | `qwen/qwen3-30b-a3b` |
163
+ | `qwen/qwen3-32b` |
164
+ | `qwen/qwen3-coder-480b-a35b-instruct` |
165
+ | `qwen/qwen3-coder-flash` |
166
+ | `qwen/qwen3-coder-next` |
167
+ | `qwen/qwen3-coder-plus` |
168
+ | `qwen/qwen3-max` |
169
+ | `qwen/qwen3-next-80b-a3b-instruct` |
170
+ | `qwen/qwen3-next-80b-a3b-thinking` |
171
+ | `qwen/qwen3-vl-235b-a22b-instruct` |
172
+ | `qwen/qwen3-vl-235b-a22b-thinking` |
173
+ | `qwen/qwen3-vl-plus` |
174
+ | `qwen/qwen3.5-122b-a10b` |
175
+ | `qwen/qwen3.5-27b` |
176
+ | `qwen/qwen3.5-35b-a3b` |
177
+ | `qwen/qwen3.5-397b-a17b` |
178
+ | `qwen/qwen3.5-9b` |
179
+ | `qwen/qwen3.5-flash` |
180
+ | `qwen/qwen3.5-plus` |
181
+ | `qwen/qwen3.6-27b` |
182
+ | `qwen/qwen3.6-35b-a3b` |
183
+ | `qwen/qwen3.6-flash` |
184
+ | `qwen/qwen3.6-max-preview` |
185
+ | `qwen/qwen3.6-plus` |
186
+ | `qwen/qwen3.7-max` |
187
+ | `qwen/qwen3.7-plus` |
188
+ | `qwen/qwen3.8-2.4t-a95b` |
189
+ | `qwen/qwen3.8-max` |
190
+ | `sakana/fugu-ultra` |
191
+ | `sakana/sakana-namazu` |
192
+ | `thinkingmachines/inkling` |
193
+ | `writer/palmyra-x4` |
194
+ | `writer/palmyra-x5` |
195
+ | `xai/grok-4.20-0309-non-reasoning` |
196
+ | `xai/grok-4.20-0309-reasoning` |
197
+ | `xai/grok-4.3` |
198
+ | `xai/grok-4.5` |
199
+ | `xai/grok-4.6` |
200
+ | `xai/grok-build-0.1` |
201
+ | `zai/glm-4.5` |
202
+ | `zai/glm-4.5-air` |
203
+ | `zai/glm-4.5v` |
204
+ | `zai/glm-4.6` |
205
+ | `zai/glm-4.7` |
206
+ | `zai/glm-4.7-flash` |
207
+ | `zai/glm-4.7-flashx` |
208
+ | `zai/glm-5` |
209
+ | `zai/glm-5-turbo` |
210
+ | `zai/glm-5.1` |
211
+ | `zai/glm-5.2` |
212
+ | `zai/glm-5.3` |
@@ -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 350 models through Mastra's model router.
5
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 353 models through Mastra's model router.
6
6
 
7
7
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
8
8
 
@@ -149,6 +149,7 @@ ANTHROPIC_API_KEY=ant-...
149
149
  | `kwaipilot/kat-coder-air-v2.5` |
150
150
  | `kwaipilot/kat-coder-pro-v2` |
151
151
  | `kwaipilot/kat-coder-pro-v2.5` |
152
+ | `liquid/lfm-2.5-2.6b:free` |
152
153
  | `mancer/weaver` |
153
154
  | `meituan/longcat-2.0` |
154
155
  | `meta-llama/llama-3.1-70b-instruct` |
@@ -385,4 +386,6 @@ ANTHROPIC_API_KEY=ant-...
385
386
  | `z-ai/glm-5-turbo` |
386
387
  | `z-ai/glm-5.1` |
387
388
  | `z-ai/glm-5.2` |
389
+ | `z-ai/glm-5.2:free` |
390
+ | `z-ai/glm-5.3` |
388
391
  | `z-ai/glm-5v-turbo` |
@@ -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 347 models through Mastra's model router.
5
+ Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 348 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
 
@@ -382,4 +382,5 @@ ANTHROPIC_API_KEY=ant-...
382
382
  | `zai/glm-5.1` |
383
383
  | `zai/glm-5.2` |
384
384
  | `zai/glm-5.2-fast` |
385
+ | `zai/glm-5.3` |
385
386
  | `zai/glm-5v-turbo` |
@@ -12,6 +12,7 @@ Create custom gateways for private LLM deployments or specialized provider integ
12
12
 
13
13
  - [Azure OpenAI](https://mastra.ai/models/gateways/azure-openai)
14
14
  - [Mastra](https://mastra.ai/models/gateways/mastra)
15
+ - [Merge Gateway](https://mastra.ai/models/gateways/merge-gateway)
15
16
  - [Neon](https://mastra.ai/models/gateways/neon)
16
17
  - [Netlify](https://mastra.ai/models/gateways/netlify)
17
18
  - [OpenRouter](https://mastra.ai/models/gateways/openrouter)
@@ -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 6097 models from 178 providers through a single API.
5
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 6106 models from 178 providers through a single API.
6
6
 
7
7
  ## Features
8
8
 
@@ -36,14 +36,14 @@ for await (const chunk of stream) {
36
36
 
37
37
  | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
38
38
  | ----------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
39
- | `ambient/ambient/large` | 203K | | | | | | $1 | $4 |
39
+ | `ambient/ambient/large` | 203K | | | | | | $0.60 | $2 |
40
40
  | `ambient/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
41
41
  | `ambient/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
42
42
  | `ambient/moonshotai/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
43
43
  | `ambient/moonshotai/kimi-k2.7-code` | 262K | | | | | | $0.69 | $3 |
44
44
  | `ambient/stepfun/step-3.7-flash` | 262K | | | | | | $0.19 | $1 |
45
45
  | `ambient/xiaomi/mimo-v2.5` | 1.0M | | | | | | $0.40 | $2 |
46
- | `ambient/z-ai/glm-5.2` | 203K | | | | | | $1 | $4 |
46
+ | `ambient/z-ai/glm-5.2` | 203K | | | | | | $0.60 | $2 |
47
47
  | `ambient/zai-org/GLM-5.1-FP8` | 203K | | | | | | $1 | $4 |
48
48
  | `ambient/zai-org/GLM-5.2-FP8` | 203K | | | | | | $1 | $4 |
49
49
 
@@ -46,7 +46,7 @@ for await (const chunk of stream) {
46
46
  | `chutes/Qwen/Qwen3-32B-TEE` | 41K | | | | | | $0.10 | $0.42 |
47
47
  | `chutes/Qwen/Qwen3.5-397B-A17B-TEE` | 262K | | | | | | $0.45 | $3 |
48
48
  | `chutes/Qwen/Qwen3.6-27B-TEE` | 262K | | | | | | $0.30 | $2 |
49
- | `chutes/Qwen/Qwen3.8-27B-TEE` | 262K | | | | | | $0.40 | $3 |
49
+ | `chutes/Qwen/Qwen3.8-27B-TEE` | 262K | | | | | | $0.45 | $3 |
50
50
  | `chutes/unsloth/Mistral-Nemo-Instruct-2407-TEE` | 131K | | | | | | $0.02 | $0.10 |
51
51
  | `chutes/zai-org/GLM-5.1-TEE` | 203K | | | | | | $0.98 | $3 |
52
52
  | `chutes/zai-org/GLM-5.2-TEE` | 1.0M | | | | | | $1 | $4 |
@@ -100,8 +100,8 @@ for await (const chunk of stream) {
100
100
  | `edenai/deepinfra/zai-org/GLM-4.7-Flash` | 203K | | | | | | $0.06 | $0.40 |
101
101
  | `edenai/deepseek/deepseek-chat` | 131K | | | | | | $0.28 | $0.42 |
102
102
  | `edenai/deepseek/deepseek-reasoner` | 131K | | | | | | $0.28 | $0.42 |
103
- | `edenai/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.22 | $0.66 |
104
- | `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.66 | $2 |
103
+ | `edenai/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.44 | $1 |
104
+ | `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $4 |
105
105
  | `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
106
106
  | `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
107
107
  | `edenai/fireworks_ai/accounts/fireworks/models/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
@@ -158,7 +158,7 @@ for await (const chunk of stream) {
158
158
  | `edenai/moonshot/kimi-k3` | 1.0M | | | | | | $3 | $15 |
159
159
  | `edenai/nebius/meta-llama/Llama-3.3-70B-Instruct` | 131K | | | | | | $0.13 | $0.40 |
160
160
  | `edenai/nebius/nvidia/nemotron-3-super-120b-a12b` | 8K | | | | | | $0.30 | $0.90 |
161
- | `edenai/nebius/nvidia/Nemotron-3-Ultra-550b-a55b` | 8K | | | | | | $1 | $3 |
161
+ | `edenai/nebius/nvidia/Nemotron-3-Ultra-550b-a55b` | 1.0M | | | | | | $1 | $3 |
162
162
  | `edenai/nebius/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
163
163
  | `edenai/openai/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
164
164
  | `edenai/openai/gpt-4` | 8K | | | | | | $30 | $60 |
@@ -203,7 +203,7 @@ for await (const chunk of stream) {
203
203
  | `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
204
204
  | `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
205
205
  | `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.20 | $0.40 |
206
- | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
206
+ | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.66 | $2 |
207
207
  | `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
208
208
  | `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
209
209
  | `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
@@ -222,7 +222,7 @@ for await (const chunk of stream) {
222
222
  | `edenai/qwen/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
223
223
  | `edenai/qwen/qwq-plus` | 131K | | | | | | $0.80 | $2 |
224
224
  | `edenai/scaleway/deepseek-v4-flash-0731` | 256K | | | | | | $0.46 | $0.93 |
225
- | `edenai/scaleway/gpt-oss-120b` | 128K | | | | | | $0.17 | $0.70 |
225
+ | `edenai/scaleway/gpt-oss-120b` | 128K | | | | | | $0.17 | $0.69 |
226
226
  | `edenai/scaleway/llama-3.3-70b-instruct` | 128K | | | | | | $1 | $1 |
227
227
  | `edenai/tensorx/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.25 | $0.30 |
228
228
  | `edenai/tensorx/moonshotai/kimi-k2.5` | 262K | | | | | | $0.50 | $3 |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # ![Hetzner logo](https://models.dev/logos/hetzner.svg)Hetzner
4
4
 
5
- Access 4 Hetzner models through Mastra's model router. Authentication is handled automatically using the `HETZNER_API_KEY` environment variable.
5
+ Access 2 Hetzner models through Mastra's model router. Authentication is handled automatically using the `HETZNER_API_KEY` environment variable.
6
6
 
7
7
  Learn more in the [Hetzner documentation](https://experiments.hetzner.com).
8
8
 
@@ -17,7 +17,7 @@ const agent = new Agent({
17
17
  id: "my-agent",
18
18
  name: "My Agent",
19
19
  instructions: "You are a helpful assistant",
20
- model: "hetzner/DeepSeek-V4-Flash-0731"
20
+ model: "hetzner/Qwen/Qwen3.6-35B-A3B-FP8"
21
21
  });
22
22
 
23
23
  // Generate a response
@@ -36,10 +36,8 @@ for await (const chunk of stream) {
36
36
 
37
37
  | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
38
38
  | ---------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
39
- | `hetzner/DeepSeek-V4-Flash-0731` | 512K | | | | | | — | — |
40
- | `hetzner/GLM-5.2-NVFP4` | 512K | | | | | | — | — |
41
- | `hetzner/Kimi-K2.7-Code` | 262K | | | | | | — | — |
42
39
  | `hetzner/Qwen/Qwen3.6-35B-A3B-FP8` | 262K | | | | | | — | — |
40
+ | `hetzner/Qwen3.8-27B` | 262K | | | | | | — | — |
43
41
 
44
42
  ## Advanced configuration
45
43
 
@@ -51,7 +49,7 @@ const agent = new Agent({
51
49
  name: "custom-agent",
52
50
  model: {
53
51
  url: "https://inference.hetzner.com/api/v1",
54
- id: "hetzner/DeepSeek-V4-Flash-0731",
52
+ id: "hetzner/Qwen/Qwen3.6-35B-A3B-FP8",
55
53
  apiKey: process.env.HETZNER_API_KEY,
56
54
  headers: {
57
55
  "X-Custom-Header": "value"
@@ -69,8 +67,8 @@ const agent = new Agent({
69
67
  model: ({ requestContext }) => {
70
68
  const useAdvanced = requestContext.task === "complex";
71
69
  return useAdvanced
72
- ? "hetzner/Qwen/Qwen3.6-35B-A3B-FP8"
73
- : "hetzner/DeepSeek-V4-Flash-0731";
70
+ ? "hetzner/Qwen3.8-27B"
71
+ : "hetzner/Qwen/Qwen3.6-35B-A3B-FP8";
74
72
  }
75
73
  });
76
74
  ```
@@ -41,17 +41,17 @@ for await (const chunk of stream) {
41
41
  | `hyper/deepseek-v4-pro` | 1.0M | | | | | | $2 | $5 |
42
42
  | `hyper/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
43
43
  | `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.12 | $0.42 |
44
- | `hyper/glm-5` | 203K | | | | | | $0.80 | $3 |
45
- | `hyper/glm-5.1` | 203K | | | | | | $2 | $5 |
44
+ | `hyper/glm-5` | 203K | | | | | | $0.84 | $3 |
45
+ | `hyper/glm-5.1` | 203K | | | | | | $1 | $4 |
46
46
  | `hyper/glm-5.2` | 1.0M | | | | | | $1 | $4 |
47
47
  | `hyper/gpt-oss-120b` | 131K | | | | | | $0.16 | $0.65 |
48
- | `hyper/kimi-k2.5` | 262K | | | | | | $0.51 | $3 |
48
+ | `hyper/kimi-k2.5` | 262K | | | | | | $0.57 | $3 |
49
49
  | `hyper/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
50
50
  | `hyper/kimi-k2.7-code` | 256K | | | | | | $0.95 | $4 |
51
51
  | `hyper/kimi-k3` | 1.0M | | | | | | $3 | $15 |
52
- | `hyper/llama-3.3-70b-instruct` | 128K | | | | | | $0.60 | $0.74 |
52
+ | `hyper/llama-3.3-70b-instruct` | 128K | | | | | | $0.64 | $0.77 |
53
53
  | `hyper/llama-4-maverick-17b-128e-instruct-fp8` | 430K | | | | | | $0.27 | $0.90 |
54
- | `hyper/minimax-m2.7` | 262K | | | | | | $0.41 | $2 |
54
+ | `hyper/minimax-m2.7` | 262K | | | | | | $0.47 | $2 |
55
55
  | `hyper/minimax-m3` | 512K | | | | | | $0.33 | $1 |
56
56
  | `hyper/qwen3-coder-480b-a35b-instruct-int4-mixed-ar` | 106K | | | | | | $0.45 | $2 |
57
57
  | `hyper/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.12 | $1 |