@mastra/mcp-docs-server 1.2.24-alpha.5 → 1.2.24-alpha.9

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 (31) hide show
  1. package/.docs/docs/channels.md +23 -0
  2. package/.docs/docs/subagents.md +1 -1
  3. package/.docs/integrations/databases/clickhouse.md +6 -0
  4. package/.docs/integrations/voice/livekit.md +88 -9
  5. package/.docs/models/gateways/merge-gateway.md +2 -1
  6. package/.docs/models/gateways/netlify.md +3 -2
  7. package/.docs/models/gateways/openrouter.md +5 -2
  8. package/.docs/models/gateways/vercel.md +5 -1
  9. package/.docs/models/index.md +1 -1
  10. package/.docs/models/providers/baseten.md +2 -1
  11. package/.docs/models/providers/cline-pass.md +2 -1
  12. package/.docs/models/providers/cortecs.md +3 -5
  13. package/.docs/models/providers/crossmodel.md +3 -2
  14. package/.docs/models/providers/crusoe.md +7 -4
  15. package/.docs/models/providers/edenai.md +8 -7
  16. package/.docs/models/providers/fireworks-ai.md +2 -1
  17. package/.docs/models/providers/hyper.md +3 -3
  18. package/.docs/models/providers/kilo.md +8 -5
  19. package/.docs/models/providers/llmgateway-providers.md +7 -2
  20. package/.docs/models/providers/llmgateway.md +4 -2
  21. package/.docs/models/providers/nano-gpt.md +8 -7
  22. package/.docs/models/providers/openai.md +2 -1
  23. package/.docs/models/providers/opencode-go.md +2 -1
  24. package/.docs/models/providers/scnet-token-plan.md +4 -1
  25. package/.docs/models/providers/wandb.md +3 -2
  26. package/.docs/models/providers/xai.md +3 -3
  27. package/.docs/reference/client-js/mastra-client.md +3 -1
  28. package/.docs/reference/client-js/observability.md +14 -0
  29. package/.docs/reference/observability/tracing/interfaces.md +16 -0
  30. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +2 -1
  31. package/package.json +4 -4
@@ -156,6 +156,29 @@ When the agent calls this tool, users see a card with the tool name, arguments,
156
156
 
157
157
  Set `toolDisplay: 'text'` on an adapter to render tool calls as plain text instead of interactive cards. In `'hidden'` mode, `autoResumeSuspendedTools` can resume data-bearing `suspend()` flows when a later user message arrives on the same thread. This requires memory. Hidden mode only suppresses approval buttons. It doesn't turn a message into consent. Tools that require approval remain suspended until an explicit approval or decline is submitted through a UI or API action.
158
158
 
159
+ ### Custom action handling
160
+
161
+ Use `handlers.onAction` to handle button clicks and select changes from cards you post yourself. The handler is called with the Chat SDK action event and the default handler, plus the same `ctx` the other channel handlers receive. Values you set on `ctx.requestContext` before delegating carry through to the resumed tool call. The default handler processes the built-in Approve and Deny buttons and ignores every other action ID, so call it for events you don't handle to keep tool approval working:
162
+
163
+ ```typescript
164
+ channels: {
165
+ adapters: {
166
+ slack: createSlackAdapter(),
167
+ },
168
+ handlers: {
169
+ onAction: async (event, defaultHandler, ctx) => {
170
+ if (event.actionId === 'retry') {
171
+ await event.thread?.post('Retrying...')
172
+ return
173
+ }
174
+ await defaultHandler()
175
+ },
176
+ },
177
+ },
178
+ ```
179
+
180
+ Setting `onAction: false` disables action handling entirely, including the built-in tool approval buttons. To register more Chat SDK handlers after the channels start, use `agent.channels.sdk`.
181
+
159
182
  ## Reply formatting
160
183
 
161
184
  Agent replies post as markdown by default. Platforms with native markdown rendering, such as Slack, render bold text, links, and tables directly. Other platforms convert the markdown to their own format. Agents write standard markdown and it renders correctly everywhere, matching how the same reply renders in Studio.
@@ -138,7 +138,7 @@ Called after a delegation finishes. Use it to inspect results or provide feedbac
138
138
  - Return `{ feedback: '...' }`: Add feedback that gets saved to the parent agent's memory and is visible to subsequent iterations
139
139
  - Return `{ resultText: '...' }`: Replace the tool result text the parent model sees for this delegation, within the current run
140
140
 
141
- Set `resultText` when the subagent's own result would give the parent a misleading signal. For example, empty text from a subagent stopped on a tool-calls step looks like a successful but empty delegation to the parent model. Unlike `feedback` on the next turn, `resultText` affects the parent's reasoning immediately.
141
+ Set `resultText` when the subagent's own result would give the parent a misleading signal. For example, empty text from a subagent stopped on a tool-calls step looks like a successful but empty delegation to the parent model. You can also replace the error text from a failed delegation with a more useful message. This doesn't recover the delegation. The parent still receives a failed tool result. Unlike `feedback` on the next turn, `resultText` affects the parent's reasoning immediately.
142
142
 
143
143
  ```typescript
144
144
  const stream = await parentAgent.stream('Research AI trends', {
@@ -87,6 +87,12 @@ export const mastra = new Mastra({
87
87
 
88
88
  `MastraStorageExporter` automatically selects the `insert-only` strategy when ClickHouse is the observability backend, which gives the highest write throughput. See [tracing strategies](https://mastra.ai/docs/observability/integrations/exporters/mastra-storage) for details.
89
89
 
90
+ Trace deletion cascades to spans, trace roots and branches, metrics, logs, scores, and feedback linked by trace ID. Signals without a trace ID are preserved. Mastra records the deletion predicate, then waits for ClickHouse lightweight delete masks to be applied. Normal reads no longer return the rows matched by that operation when the call resolves.
91
+
92
+ Lightweight deletion is a hide-only operation that marks rows with ClickHouse's `_row_exists` mask. Physical removal depends on merges and deployment-configured retention TTLs. `ObservabilityStorageClickhouseVNext` applies retention only when you provide a `RetentionConfig`; Mastra OSS doesn't configure a default retention TTL.
93
+
94
+ Deletion requests aren't purged automatically in Mastra OSS. Automatic retirement will be introduced with future database-agnostic retention configuration.
95
+
90
96
  ### Observability with the legacy domain
91
97
 
92
98
  `ObservabilityStorageClickhouse` is the original observability adapter and remains supported for projects that haven't migrated to the vNext schema. The configuration shape is the same as the vNext class.
@@ -162,7 +162,7 @@ export default createLiveKitWorker({
162
162
  - `turnDetection: 'multilingual'`: Runs LiveKit's semantic end-of-turn model locally on CPU. It reads the live transcript to avoid cutting users off mid-thought. Use `'vad'` or `'stt'` for silence-based endpointing instead.
163
163
  - `endpointing`: Bounds how long the agent waits after the user stops speaking.
164
164
  - `interruption`: Controls barge-in. When the user speaks over the agent, LiveKit stops playback and cancels the in-flight Mastra stream, so token generation stops too.
165
- - `preemptiveGeneration`: Starts the Mastra agent's reply while the user is still finishing, hiding time-to-first-token. The worker disables it by default: each preemptive attempt runs the Mastra agent on an interim transcript, and every run persists the user message, which duplicates messages in the thread. Re-enable it with `preemptiveGeneration: { enabled: true }` if latency matters more than exact thread history.
165
+ - `preemptiveGeneration`: Starts the Mastra agent's reply while the user is still finishing, hiding time-to-first-token. The worker disables it by default: each preemptive attempt runs the Mastra agent on an interim transcript, and a run that LiveKit later discards has already persisted a partial user message and a partial, never-spoken reply to the thread. Re-enable it with `preemptiveGeneration: { enabled: true }` if latency matters more than exact thread history, or keep both by running turns read-only; see [preemptive generation with memory](#preemptive-generation-with-memory).
166
166
 
167
167
  See the [LiveKit turn detection docs](https://docs.livekit.io/agents/logic/turns/) for all options.
168
168
 
@@ -217,6 +217,83 @@ Each turn sends only the new user input; Mastra Memory supplies history, semanti
217
217
 
218
218
  When a user interrupts the agent, the in-flight generation aborts and nothing from that turn is persisted at that moment. LiveKit keeps the part the user actually heard in its transcript, and on the next turn the worker re-sends that heard-only fragment so the thread backfills to match the call. A user who hangs up right after interrupting leaves that final fragment unrecorded. See [interrupted turns](#interrupted-turns) for the details and a reconciliation recipe.
219
219
 
220
+ #### Preemptive generation with memory
221
+
222
+ LiveKit's preemptive generation calls the Mastra agent on interim transcripts and discards runs whose transcript changed. The plugin can't tell a speculative run from a real turn, so with `memory` set every run persists, including discarded ones. To keep preemptive generation on without corrupting the thread, pass `options: { readOnly: true }` in the memory mapping. The agent still reads history, semantic recall, and working memory from the thread but writes nothing, so speculative runs leave no trace. Persistence of committed turns then belongs to you: save them from LiveKit's `ConversationItemAdded` event, which fires only for items the session committed. Messages keep LiveKit's ids, so saves stay idempotent across retries.
223
+
224
+ ```typescript
225
+ import { voice } from '@livekit/agents'
226
+ import { createLiveKitWorker } from '@mastra/livekit/worker'
227
+ import { mastra } from './index'
228
+
229
+ export default createLiveKitWorker({
230
+ mastra,
231
+ agent: 'support',
232
+ memory: ({ metadata, roomName }) => ({
233
+ thread: metadata.threadId ?? roomName,
234
+ resource: metadata.resourceId ?? roomName,
235
+ options: { readOnly: true },
236
+ }),
237
+ turnHandling: { preemptiveGeneration: { enabled: true } },
238
+ onSessionStart: async ({ session, ctx, agent }) => {
239
+ const mapping = agent.memory
240
+ const memory = await mastra.getAgent('support').getMemory()
241
+ if (!mapping || !memory) return
242
+
243
+ let shuttingDown = false
244
+ const maxRetries = 5
245
+ const retryTimers = new Set<ReturnType<typeof setTimeout>>()
246
+ ctx.addShutdownCallback(async () => {
247
+ shuttingDown = true
248
+ for (const timer of retryTimers) clearTimeout(timer)
249
+ retryTimers.clear()
250
+ })
251
+
252
+ session.on(voice.AgentSessionEventTypes.ConversationItemAdded, ({ item }) => {
253
+ if (item.type !== 'message' || (item.role !== 'user' && item.role !== 'assistant')) return
254
+
255
+ const persist = async (attempt = 0): Promise<void> => {
256
+ try {
257
+ await memory.saveMessages({
258
+ messages: [
259
+ {
260
+ id: item.id,
261
+ threadId: mapping.thread,
262
+ resourceId: mapping.resource ?? mapping.thread,
263
+ role: item.role,
264
+ content: {
265
+ format: 2,
266
+ parts: [{ type: 'text', text: item.textContent ?? '' }],
267
+ },
268
+ type: 'text',
269
+ createdAt: new Date(),
270
+ },
271
+ ],
272
+ })
273
+ } catch (error) {
274
+ if (shuttingDown) return
275
+ if (attempt >= maxRetries) {
276
+ console.error(`Failed to persist committed voice item ${item.id}; giving up`, error)
277
+ return
278
+ }
279
+ console.error(`Failed to persist committed voice item ${item.id}; retrying`, error)
280
+ const delay = Math.min(1_000 * 2 ** attempt, 30_000)
281
+ const timer = setTimeout(() => {
282
+ retryTimers.delete(timer)
283
+ void persist(attempt + 1)
284
+ }, delay)
285
+ retryTimers.add(timer)
286
+ }
287
+ }
288
+
289
+ void persist()
290
+ })
291
+ },
292
+ })
293
+ ```
294
+
295
+ The same `options` field works on `MastraVoiceAgent` and `MastraLLM`; on the remote transport it's forwarded in the request body as `memory.options`.
296
+
220
297
  ### Speak while tools run
221
298
 
222
299
  Voice conversations can't go silent while a slow tool runs. Use `toolFeedback` to speak a short phrase when the Mastra agent starts a tool call:
@@ -299,7 +376,8 @@ export default defineAgent({
299
376
  stt: 'deepgram/nova-3',
300
377
  tts: 'cartesia/sonic-3',
301
378
  vad: await silero.VAD.load(),
302
- // Required with `memory`: LiveKit enables preemptive generation by default.
379
+ // Required with `memory` unless memory.options.readOnly is set: LiveKit enables
380
+ // preemptive generation by default.
303
381
  turnHandling: { preemptiveGeneration: { enabled: false } },
304
382
  })
305
383
 
@@ -330,7 +408,7 @@ Both paths share the same reply pipeline underneath; choose by who should own th
330
408
 
331
409
  Tools stay on the Mastra agent and execute on the server. LiveKit-side tools passed to the session are ignored. Tool activity reaches the worker through `toolFeedback` (spoken filler), `onToolCall` (fires as each tool call starts), and `onTurnComplete` (fires after each reply with the text, tool calls, and token usage). Agent-initiated hang-up takes a few lines: pair `onToolCall` with [`runEndCall()`](#runendcall).
332
410
 
333
- > **Warning:** Don't combine the `memory` option with LiveKit's `preemptiveGeneration`, which LiveKit enables by default in sessions you build yourself. A speculative turn that completes before LiveKit discards it persists a user message and a never-spoken reply to the thread. Set `turnHandling: { preemptiveGeneration: { enabled: false } }`, or run without `memory` and pass the full transcript each turn.
411
+ > **Warning:** Don't combine the `memory` option with LiveKit's `preemptiveGeneration`, which LiveKit enables by default in sessions you build yourself. A speculative turn persists a partial user message and a partial, never-spoken reply to the thread before LiveKit discards it. Set `turnHandling: { preemptiveGeneration: { enabled: false } }`, run without `memory` and pass the full transcript each turn, or set `memory.options.readOnly` and persist committed turns yourself; see [preemptive generation with memory](#preemptive-generation-with-memory).
334
412
 
335
413
  `MastraLLM` also accepts an in-process Mastra `agent` instance, session ownership without a second deployment, or a custom `generate` function. The remote transport is available standalone as [`createRemoteAgentReplyGenerator()`](#createremoteagentreplygenerator), which also plugs into `createLiveKitWorker`'s `generate` option to run the batteries-included worker against a remote server.
336
414
 
@@ -463,11 +541,11 @@ if (process.argv[1] === fileURLToPath(import.meta.url)) {
463
541
 
464
542
  **turnDetection** (`'multilingual' | 'english' | TurnDetectionMode`): End-of-turn detection. 'multilingual' and 'english' load LiveKit's semantic turn detector from @livekit/agents-plugin-livekit. Other values such as 'vad', 'stt', or 'manual' pass through.
465
543
 
466
- **turnHandling** (`Partial<TurnHandlingOptions>`): Turn handling tuning: endpointing delays, interruption sensitivity, preemptive generation. The worker disables preemptiveGeneration unless set here — each preemptive attempt re-runs the Mastra agent and persists a duplicate user message.
544
+ **turnHandling** (`Partial<TurnHandlingOptions>`): Turn handling tuning: endpointing delays, interruption sensitivity, preemptive generation. The worker disables preemptiveGeneration unless set here — each preemptive attempt re-runs the Mastra agent and persists partial user and assistant messages unless memory.options.readOnly is set.
467
545
 
468
546
  **sessionOptions** (`Partial<AgentSessionOptions>`): Extra LiveKit AgentSession options merged over what this helper builds.
469
547
 
470
- **memory** (`false | ((args) => { thread, resource } | false)`): Memory mapping. Defaults to { thread: metadata.threadId ?? room name, resource: metadata.resourceId ?? thread } when the resolved agent has memory configured. Pass false to disable, or a function to customize.
548
+ **memory** (`false | ((args) => { thread, resource, options? } | false)`): Memory mapping. Defaults to { thread: metadata.threadId ?? room name, resource: metadata.resourceId ?? thread } when the resolved agent has memory configured. Pass false to disable, or a function to customize. options is forwarded to the agent as per-call memory config; { readOnly: true } keeps speculative turns off the thread.
471
549
 
472
550
  **toolFeedback** (`(toolCall) => string | undefined`): Called when the Mastra agent starts a tool call mid-reply. Return a short phrase to speak while the tool runs.
473
551
 
@@ -583,7 +661,7 @@ Provide exactly one reply source: `agent` or `generate`.
583
661
 
584
662
  **generate** (`VoiceReplyGenerator`): Custom reply source, for example from createRemoteAgentReplyGenerator(). A generate source owns its own hooks; toolFeedback, onToolCall, onTurnComplete, and streamOptions only apply to the agent source.
585
663
 
586
- **memory** (`MastraVoiceAgentMemory | false`): Conversation persistence as { thread, resource? }. When set, only messages new since the agent last spoke are sent each turn and Mastra Memory supplies history. When false, the full in-session LiveKit context is sent every turn. (Default: `false`)
664
+ **memory** (`MastraVoiceAgentMemory | false`): Conversation persistence as { thread, resource?, options? }. When set, only messages new since the agent last spoke are sent each turn and Mastra Memory supplies history. options is forwarded to the agent as per-call memory config, e.g. { readOnly: true }. When false, the full in-session LiveKit context is sent every turn. (Default: `false`)
587
665
 
588
666
  **requestContext** (`RequestContext | Record<string, unknown>`): Request context entries forwarded to every generation.
589
667
 
@@ -618,7 +696,8 @@ const session = new voice.AgentSession({
618
696
  }),
619
697
  stt: 'deepgram/nova-3',
620
698
  tts: 'cartesia/sonic-3',
621
- // Required with `memory`: LiveKit enables preemptive generation by default.
699
+ // Required with `memory` unless memory.options.readOnly is set: LiveKit enables
700
+ // preemptive generation by default.
622
701
  turnHandling: { preemptiveGeneration: { enabled: false } },
623
702
  })
624
703
  ```
@@ -635,7 +714,7 @@ Provide exactly one reply source: `remote`, `agent`, or `generate`.
635
714
 
636
715
  **generate** (`VoiceReplyGenerator`): Custom reply source. A generate source owns its own hooks; toolFeedback, onToolCall, and onTurnComplete below only apply to the remote and agent sources.
637
716
 
638
- **memory** (`{ thread: string; resource?: string } | false`): Conversation persistence, resolved per call (for example from the SIP caller identity). When set, only messages new since the agent last spoke are sent each turn and Mastra Memory supplies history. When omitted, the full LiveKit chat context is sent every turn. (Default: `false`)
717
+ **memory** (`{ thread: string; resource?: string; options?: MemoryConfig } | false`): Conversation persistence, resolved per call (for example from the SIP caller identity). When set, only messages new since the agent last spoke are sent each turn and Mastra Memory supplies history. options is forwarded in the request body as memory.options, e.g. { readOnly: true }. When omitted, the full LiveKit chat context is sent every turn. (Default: `false`)
639
718
 
640
719
  **requestContext** (`RequestContext | Record<string, unknown>`): Request context forwarded to generation (tenant, dialed number, and so on).
641
720
 
@@ -645,7 +724,7 @@ Provide exactly one reply source: `remote`, `agent`, or `generate`.
645
724
 
646
725
  **onTurnComplete** (`(ctx: VoiceTurnCompleteContext) => void | Promise<void>`): Called once per turn after the reply finished streaming, off the audio path and not awaited. The context carries the produced reply: text, toolCalls, interrupted, and usage.
647
726
 
648
- > **Warning:** Don't combine `memory` with the session's `preemptiveGeneration` option, which LiveKit enables by default in sessions you build yourself. A speculative turn that completes before LiveKit discards it persists a user message and a never-spoken reply to the thread. Set `turnHandling: { preemptiveGeneration: { enabled: false } }` on the session. Stateless mode (no `memory`) works with preemptive generation.
727
+ > **Warning:** Don't combine `memory` with the session's `preemptiveGeneration` option, which LiveKit enables by default in sessions you build yourself. A speculative turn persists a partial user message and a partial, never-spoken reply to the thread before LiveKit discards it. Set `turnHandling: { preemptiveGeneration: { enabled: false } }` on the session, or set `memory.options.readOnly` and persist committed turns yourself; see [preemptive generation with memory](#preemptive-generation-with-memory). Stateless mode (no `memory`) works with preemptive generation.
649
728
 
650
729
  #### Tools run on the Mastra agent
651
730
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Merge Gateway logo](https://models.dev/logos/merge-gateway.svg)Merge Gateway
6
6
 
7
- Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 179 models through Mastra's model router.
7
+ Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 180 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [Merge Gateway documentation](https://docs.merge.dev/merge-gateway).
10
10
 
@@ -154,6 +154,7 @@ ANTHROPIC_API_KEY=ant-...
154
154
  | `openai/gpt-5.6-luna` |
155
155
  | `openai/gpt-5.6-sol` |
156
156
  | `openai/gpt-5.6-terra` |
157
+ | `openai/gpt-6-astra` |
157
158
  | `openai/gpt-oss-120b` |
158
159
  | `openai/gpt-oss-20b` |
159
160
  | `openai/gpt-oss-safeguard-120b` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # Netlify
6
6
 
7
- Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 242 models through Mastra's model router.
7
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 243 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
10
10
 
@@ -105,6 +105,7 @@ ANTHROPIC_API_KEY=ant-...
105
105
  | `openai/gpt-5.6-luna` |
106
106
  | `openai/gpt-5.6-sol` |
107
107
  | `openai/gpt-5.6-terra` |
108
+ | `openai/gpt-6-astra` |
108
109
  | `openai/o3` |
109
110
  | `openai/o3-mini` |
110
111
  | `openai/o4-mini` |
@@ -144,13 +145,13 @@ ANTHROPIC_API_KEY=ant-...
144
145
  | `openrouter/google/gemma-4-26b-a4b-it` |
145
146
  | `openrouter/google/gemma-4-31b-it` |
146
147
  | `openrouter/gryphe/mythomax-l2-13b` |
147
- | `openrouter/ibm-granite/granite-4.1-8b` |
148
148
  | `openrouter/ibm-granite/granite-4.2-8b` |
149
149
  | `openrouter/inception/mercury-2` |
150
150
  | `openrouter/inception/mercury-2.5-preview` |
151
151
  | `openrouter/inclusionai/ling-3.0-flash` |
152
152
  | `openrouter/inclusionai/ling-3.0-flash-fin` |
153
153
  | `openrouter/inclusionai/ling-3.0-flash-fin:free` |
154
+ | `openrouter/inclusionai/ling-3.0-flash-sante:free` |
154
155
  | `openrouter/mancer/weaver` |
155
156
  | `openrouter/meta-llama/llama-3.1-70b-instruct` |
156
157
  | `openrouter/meta-llama/llama-3.1-8b-instruct` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![OpenRouter logo](https://models.dev/logos/openrouter.svg)OpenRouter
6
6
 
7
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 358 models through Mastra's model router.
7
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 361 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
10
10
 
@@ -139,13 +139,13 @@ ANTHROPIC_API_KEY=ant-...
139
139
  | `google/lyria-3-pro-preview` |
140
140
  | `gryphe/mythomax-l2-13b` |
141
141
  | `ibm-granite/granite-4.0-h-micro` |
142
- | `ibm-granite/granite-4.1-8b` |
143
142
  | `ibm-granite/granite-4.2-8b` |
144
143
  | `inception/mercury-2` |
145
144
  | `inception/mercury-2.5-preview` |
146
145
  | `inclusionai/ling-3.0-flash` |
147
146
  | `inclusionai/ling-3.0-flash-fin` |
148
147
  | `inclusionai/ling-3.0-flash-fin:free` |
148
+ | `inclusionai/ling-3.0-flash-sante:free` |
149
149
  | `kwaipilot/kat-coder-pro-v2` |
150
150
  | `kwaipilot/kat-coder-pro-v2.5` |
151
151
  | `liquid/lfm-2.5-2.6b:free` |
@@ -217,6 +217,7 @@ ANTHROPIC_API_KEY=ant-...
217
217
  | `nvidia/nemotron-3-super-120b-a12b:free` |
218
218
  | `nvidia/nemotron-3-ultra-550b-a55b` |
219
219
  | `nvidia/nemotron-3-ultra-550b-a55b:free` |
220
+ | `nvidia/nemotron-3.5-content-safety` |
220
221
  | `nvidia/nemotron-3.5-content-safety:free` |
221
222
  | `nvidia/nemotron-3.5-lightning` |
222
223
  | `nvidia/nemotron-3.5-lightning:free` |
@@ -264,6 +265,8 @@ ANTHROPIC_API_KEY=ant-...
264
265
  | `openai/gpt-5.6-sol-pro` |
265
266
  | `openai/gpt-5.6-terra` |
266
267
  | `openai/gpt-5.6-terra-pro` |
268
+ | `openai/gpt-6-astra` |
269
+ | `openai/gpt-6-astra-pro` |
267
270
  | `openai/gpt-audio` |
268
271
  | `openai/gpt-audio-mini` |
269
272
  | `openai/gpt-chat-latest` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Vercel logo](https://models.dev/logos/vercel.svg)Vercel
6
6
 
7
- Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 369 models through Mastra's model router.
7
+ Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 373 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
10
10
 
@@ -186,6 +186,8 @@ ANTHROPIC_API_KEY=ant-...
186
186
  | `inclusionai/ling-3.0-flash` |
187
187
  | `inclusionai/ling-3.0-flash-fin` |
188
188
  | `inclusionai/ling-3.0-flash-fin-free` |
189
+ | `inclusionai/ling-3.0-flash-sante` |
190
+ | `inclusionai/ling-3.0-flash-sante-free` |
189
191
  | `interfaze/interfaze-beta` |
190
192
  | `klingai/kling-v2.5-turbo-i2v` |
191
193
  | `klingai/kling-v2.5-turbo-t2v` |
@@ -300,6 +302,8 @@ ANTHROPIC_API_KEY=ant-...
300
302
  | `openai/gpt-5.6-sol-fast` |
301
303
  | `openai/gpt-5.6-terra` |
302
304
  | `openai/gpt-5.6-terra-fast` |
305
+ | `openai/gpt-6-astra` |
306
+ | `openai/gpt-6-astra-fast` |
303
307
  | `openai/gpt-image-1` |
304
308
  | `openai/gpt-image-1-mini` |
305
309
  | `openai/gpt-image-1.5` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # Model Providers
6
6
 
7
- Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 7064 models from 200 providers through a single API.
7
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 7096 models from 200 providers through a single API.
8
8
 
9
9
  ## Features
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Baseten logo](https://models.dev/logos/baseten.svg)Baseten
6
6
 
7
- Access 21 Baseten models through Mastra's model router. Authentication is handled automatically using the `BASETEN_API_KEY` environment variable.
7
+ Access 22 Baseten models through Mastra's model router. Authentication is handled automatically using the `BASETEN_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Baseten documentation](https://docs.baseten.co).
10
10
 
@@ -56,6 +56,7 @@ for await (const chunk of stream) {
56
56
  | `baseten/zai-org/GLM-5.2` | 1.0M | | | | | | $1 | $4 |
57
57
  | `baseten/zai-org/GLM-5.2-Fast` | 1.0M | | | | | | $2 | $7 |
58
58
  | `baseten/zai-org/GLM-5.3` | 1.0M | | | | | | $1 | $4 |
59
+ | `baseten/zai-org/GLM-5.3-Fast` | 1.0M | | | | | | $2 | $7 |
59
60
  | `baseten/zai-org/GLM-5.3-Flash` | 1.0M | | | | | | $0.15 | $0.50 |
60
61
 
61
62
  Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![ClinePass logo](https://models.dev/logos/cline-pass.svg)ClinePass
6
6
 
7
- Access 13 ClinePass models through Mastra's model router. Authentication is handled automatically using the `CLINE_API_KEY` environment variable.
7
+ Access 14 ClinePass models through Mastra's model router. Authentication is handled automatically using the `CLINE_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [ClinePass documentation](https://docs.cline.bot/getting-started/clinepass).
10
10
 
@@ -42,6 +42,7 @@ for await (const chunk of stream) {
42
42
  | `cline-pass/cline-pass/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
43
43
  | `cline-pass/cline-pass/glm-5.2` | 1.0M | | | | | | $1 | $4 |
44
44
  | `cline-pass/cline-pass/glm-5.3` | 1.0M | | | | | | $1 | $4 |
45
+ | `cline-pass/cline-pass/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
45
46
  | `cline-pass/cline-pass/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
46
47
  | `cline-pass/cline-pass/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
47
48
  | `cline-pass/cline-pass/kimi-k3` | 1.0M | | | | | | $3 | $15 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Cortecs logo](https://models.dev/logos/cortecs.svg)Cortecs
6
6
 
7
- Access 111 Cortecs models through Mastra's model router. Authentication is handled automatically using the `CORTECS_API_KEY` environment variable.
7
+ Access 109 Cortecs models through Mastra's model router. Authentication is handled automatically using the `CORTECS_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Cortecs documentation](https://cortecs.ai).
10
10
 
@@ -67,7 +67,6 @@ for await (const chunk of stream) {
67
67
  | `cortecs/gemma-3-27b-it` | 131K | | | | | | $0.10 | $0.30 |
68
68
  | `cortecs/gemma-4-26b-a4b-it` | 262K | | | | | | $0.11 | $0.56 |
69
69
  | `cortecs/gemma-4-31b-it` | 262K | | | | | | $0.22 | $0.39 |
70
- | `cortecs/glm-4.7` | 203K | | | | | | $0.78 | $3 |
71
70
  | `cortecs/glm-4.7-flash` | 203K | | | | | | $0.08 | $0.48 |
72
71
  | `cortecs/glm-5` | 203K | | | | | | $0.99 | $3 |
73
72
  | `cortecs/glm-5-turbo` | 203K | | | | | | $1 | $4 |
@@ -93,7 +92,6 @@ for await (const chunk of stream) {
93
92
  | `cortecs/gpt-oss-20b` | 131K | | | | | | $0.04 | $0.17 |
94
93
  | `cortecs/gpt-oss-safeguard-120b` | 128K | | | | | | $0.18 | $0.70 |
95
94
  | `cortecs/hermes-4-405b` | 128K | | | | | | $1.00 | $3 |
96
- | `cortecs/hermes-4-70b` | 128K | | | | | | $0.13 | $0.40 |
97
95
  | `cortecs/kimi-k2.5` | 262K | | | | | | $0.49 | $3 |
98
96
  | `cortecs/kimi-k2.6` | 262K | | | | | | $0.77 | $3 |
99
97
  | `cortecs/kimi-k2.7-code` | 262K | | | | | | $0.75 | $4 |
@@ -130,10 +128,10 @@ for await (const chunk of stream) {
130
128
  | `cortecs/nvidia-nemotron-3-nano-omni` | 300K | | | | | | $0.06 | $0.24 |
131
129
  | `cortecs/pixtral-12b-2409` | 128K | | | | | | $0.22 | $0.22 |
132
130
  | `cortecs/pixtral-large-2502` | 128K | | | | | | $2 | $6 |
133
- | `cortecs/qwen2.5-vl-72b-instruct` | 32K | | | | | | $0.25 | $0.75 |
131
+ | `cortecs/qwen2.5-vl-72b-instruct` | 32K | | | | | | $1 | $1 |
134
132
  | `cortecs/qwen3-235b-a22b-instruct-2507` | 262K | | | | | | $0.07 | $0.46 |
135
133
  | `cortecs/qwen3-30b-a3b-instruct-2507` | 262K | | | | | | $0.10 | $0.30 |
136
- | `cortecs/qwen3-32b` | 40K | | | | | | $0.10 | $0.30 |
134
+ | `cortecs/qwen3-32b` | 32K | | | | | | $0.09 | $0.31 |
137
135
  | `cortecs/qwen3-coder-30b-a3b-instruct` | 262K | | | | | | $0.07 | $0.24 |
138
136
  | `cortecs/qwen3-coder-next` | 256K | | | | | | $0.17 | $0.89 |
139
137
  | `cortecs/qwen3-next-80b-a3b-thinking` | 128K | | | | | | $0.15 | $1 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![CrossModel logo](https://models.dev/logos/crossmodel.svg)CrossModel
6
6
 
7
- Access 57 CrossModel models through Mastra's model router. Authentication is handled automatically using the `CROSSMODEL_API_KEY` environment variable.
7
+ Access 58 CrossModel models through Mastra's model router. Authentication is handled automatically using the `CROSSMODEL_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [CrossModel documentation](https://www.crossmodel.ai/docs).
10
10
 
@@ -56,8 +56,9 @@ for await (const chunk of stream) {
56
56
  | `crossmodel/gemini/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
57
57
  | `crossmodel/gemini/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
58
58
  | `crossmodel/gemini/gemini-3.5-flash-lite` | 1.0M | | | | | | $0.30 | $3 |
59
- | `crossmodel/gemini/gemini-3.6-flash` | 1.0M | | | | | | $2 | $8 |
59
+ | `crossmodel/gemini/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
60
60
  | `crossmodel/gemini/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
61
+ | `crossmodel/gemini/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
61
62
  | `crossmodel/minimax/minimax-m2.7` | 205K | | | | | | $0.33 | $1 |
62
63
  | `crossmodel/minimax/minimax-m3` | 1.0M | | | | | | $0.33 | $1 |
63
64
  | `crossmodel/moonshot/kimi-k2.5` | 262K | | | | | | $0.62 | $3 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Crusoe logo](https://models.dev/logos/crusoe.svg)Crusoe
6
6
 
7
- Access 8 Crusoe models through Mastra's model router. Authentication is handled automatically using the `CRUSOE_API_KEY` environment variable.
7
+ Access 11 Crusoe models through Mastra's model router. Authentication is handled automatically using the `CRUSOE_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Crusoe documentation](https://docs.crusoecloud.com/managed-inference/overview).
10
10
 
@@ -19,7 +19,7 @@ const agent = new Agent({
19
19
  id: "my-agent",
20
20
  name: "My Agent",
21
21
  instructions: "You are a helpful assistant",
22
- model: "crusoe/deepseek-ai/DeepSeek-V3-0324"
22
+ model: "crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507"
23
23
  });
24
24
 
25
25
  // Generate a response
@@ -43,7 +43,10 @@ for await (const chunk of stream) {
43
43
  | `crusoe/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.25 | $0.75 |
44
44
  | `crusoe/moonshotai/Kimi-K2.6` | 262K | | | | | | $0.70 | $4 |
45
45
  | `crusoe/nvidia/Nemotron-3-Nano-Omni-Reasoning-30B-A3B` | 256K | | | | | | $0.30 | $2 |
46
+ | `crusoe/nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B` | 262K | | | | | | $0.05 | $0.20 |
47
+ | `crusoe/nvidia/NVIDIA-Nemotron-3-Super-120B-A12B` | 262K | | | | | | $0.30 | $2 |
46
48
  | `crusoe/openai/gpt-oss-120b` | 131K | | | | | | $0.05 | $0.20 |
49
+ | `crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507` | 262K | | | | | | $0.22 | $0.80 |
47
50
  | `crusoe/zai/GLM-5.1` | 200K | | | | | | $1 | $4 |
48
51
  | `crusoe/zai/GLM-5.2` | 1.0M | | | | | | $1 | $4 |
49
52
 
@@ -59,7 +62,7 @@ const agent = new Agent({
59
62
  name: "custom-agent",
60
63
  model: {
61
64
  url: "https://api.inference.crusoecloud.com/v1",
62
- id: "crusoe/deepseek-ai/DeepSeek-V3-0324",
65
+ id: "crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507",
63
66
  apiKey: process.env.CRUSOE_API_KEY,
64
67
  headers: {
65
68
  "X-Custom-Header": "value"
@@ -78,7 +81,7 @@ const agent = new Agent({
78
81
  const useAdvanced = requestContext.task === "complex";
79
82
  return useAdvanced
80
83
  ? "crusoe/zai/GLM-5.2"
81
- : "crusoe/deepseek-ai/DeepSeek-V3-0324";
84
+ : "crusoe/Qwen/Qwen3-235B-A22B-Instruct-2507";
82
85
  }
83
86
  });
84
87
  ```
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Eden AI logo](https://models.dev/logos/edenai.svg)Eden AI
6
6
 
7
- Access 246 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
7
+ Access 247 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Eden AI documentation](https://docs.edenai.co).
10
10
 
@@ -107,6 +107,7 @@ for await (const chunk of stream) {
107
107
  | `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $4 |
108
108
  | `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.22 | $0.66 |
109
109
  | `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
110
+ | `edenai/fireworks_ai/accounts/fireworks/models/inkling` | 1.0M | | | | | | $1 | $4 |
110
111
  | `edenai/fireworks_ai/accounts/fireworks/models/muse-glimmer-30b` | 131K | | | | | | $0.35 | $2 |
111
112
  | `edenai/fireworks_ai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
112
113
  | `edenai/flexai/deepseek-v4-flash-0731` | 786K | | | | | | $0.03 | $0.10 |
@@ -130,13 +131,13 @@ for await (const chunk of stream) {
130
131
  | `edenai/google/gemini-3.5-flash-lite` | 1.0M | | | | | | $0.30 | $3 |
131
132
  | `edenai/google/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
132
133
  | `edenai/google/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
133
- | `edenai/google/gemini-3.8-flash` | 1.0M | | | | | | $2 | $8 |
134
+ | `edenai/google/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
134
135
  | `edenai/google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
135
136
  | `edenai/google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
136
137
  | `edenai/groq/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
137
138
  | `edenai/groq/openai/gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
138
- | `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.75 | $0.75 |
139
- | `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.75 |
139
+ | `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.76 | $0.76 |
140
+ | `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.76 |
140
141
  | `edenai/minimax/MiniMax-M2` | 205K | | | | | | $0.30 | $1 |
141
142
  | `edenai/minimax/MiniMax-M2.1` | 205K | | | | | | $0.30 | $1 |
142
143
  | `edenai/minimax/MiniMax-M2.5` | 205K | | | | | | $0.30 | $1 |
@@ -262,9 +263,9 @@ for await (const chunk of stream) {
262
263
  | `edenai/vertex/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
263
264
  | `edenai/vertex/gemini-3.7-flash@eu` | 1.0M | | | | | | $0.75 | $4 |
264
265
  | `edenai/vertex/gemini-3.7-flash@us` | 1.0M | | | | | | $0.75 | $4 |
265
- | `edenai/vertex/gemini-3.8-flash` | 1.0M | | | | | | $2 | $8 |
266
- | `edenai/vertex/gemini-3.8-flash@eu` | 1.0M | | | | | | $2 | $8 |
267
- | `edenai/vertex/gemini-3.8-flash@us` | 1.0M | | | | | | $2 | $8 |
266
+ | `edenai/vertex/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
267
+ | `edenai/vertex/gemini-3.8-flash@eu` | 1.0M | | | | | | $0.75 | $4 |
268
+ | `edenai/vertex/gemini-3.8-flash@us` | 1.0M | | | | | | $0.75 | $4 |
268
269
  | `edenai/vertex/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
269
270
  | `edenai/vertex/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
270
271
  | `edenai/xai/grok-4.20-0309-non-reasoning` | 1.0M | | | | | | $1 | $3 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Fireworks AI logo](https://models.dev/logos/fireworks-ai.svg)Fireworks AI
6
6
 
7
- Access 19 Fireworks AI models through Mastra's model router. Authentication is handled automatically using the `FIREWORKS_API_KEY` environment variable.
7
+ Access 20 Fireworks AI models through Mastra's model router. Authentication is handled automatically using the `FIREWORKS_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Fireworks AI documentation](https://fireworks.ai/docs/).
10
10
 
@@ -54,6 +54,7 @@ for await (const chunk of stream) {
54
54
  | `fireworks-ai/accounts/fireworks/models/nemotron-3-ultra-nvfp4` | 262K | | | | | | $0.60 | $2 |
55
55
  | `fireworks-ai/accounts/fireworks/models/nemotron-lightning-3p5-30b-a3b` | 262K | | | | | | $0.05 | $0.20 |
56
56
  | `fireworks-ai/accounts/fireworks/models/qwen3p7-plus` | 262K | | | | | | $0.40 | $2 |
57
+ | `fireworks-ai/accounts/fireworks/models/qwen3p8-2p4t-a95b` | 262K | | | | | | $2 | $6 |
57
58
  | `fireworks-ai/accounts/fireworks/models/qwen3p8-max` | 262K | | | | | | $2 | $6 |
58
59
  | `fireworks-ai/accounts/fireworks/routers/glm-5p2-fast` | 1.0M | | | | | | $2 | $7 |
59
60
  | `fireworks-ai/accounts/fireworks/routers/kimi-k3-fast` | 1.0M | | | | | | $5 | $23 |
@@ -43,20 +43,20 @@ for await (const chunk of stream) {
43
43
  | `hyper/deepseek-v4-pro` | 1.0M | | | | | | $2 | $5 |
44
44
  | `hyper/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
45
45
  | `hyper/gemma-4-26b-a4b-it` | 256K | | | | | | $0.11 | $0.37 |
46
- | `hyper/glm-5` | 203K | | | | | | $0.93 | $3 |
46
+ | `hyper/glm-5` | 203K | | | | | | $0.86 | $3 |
47
47
  | `hyper/glm-5.1` | 203K | | | | | | $1 | $4 |
48
48
  | `hyper/glm-5.2` | 1.0M | | | | | | $2 | $5 |
49
49
  | `hyper/glm-5.3` | 1.0M | | | | | | $2 | $5 |
50
50
  | `hyper/glm-5.3-flash` | 1.0M | | | | | | $0.16 | $0.54 |
51
51
  | `hyper/gpt-oss-120b` | 128K | | | | | | $0.19 | $0.70 |
52
52
  | `hyper/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
53
- | `hyper/kimi-k2.5` | 262K | | | | | | $0.53 | $3 |
53
+ | `hyper/kimi-k2.5` | 262K | | | | | | $0.51 | $3 |
54
54
  | `hyper/kimi-k2.6` | 262K | | | | | | $1 | $4 |
55
55
  | `hyper/kimi-k2.7-code` | 262K | | | | | | $1 | $4 |
56
56
  | `hyper/kimi-k3` | 1.0M | | | | | | $3 | $16 |
57
57
  | `hyper/llama-3.3-70b-instruct` | 128K | | | | | | $0.61 | $1 |
58
58
  | `hyper/llama-4-maverick-17b-128e-instruct-fp8` | 430K | | | | | | $0.27 | $0.90 |
59
- | `hyper/minimax-m2.7` | 262K | | | | | | $0.42 | $2 |
59
+ | `hyper/minimax-m2.7` | 262K | | | | | | $0.48 | $2 |
60
60
  | `hyper/minimax-m3` | 512K | | | | | | $0.33 | $1 |
61
61
  | `hyper/qwen3-coder-480b-a35b-instruct-int4-mixed-ar` | 106K | | | | | | $0.45 | $2 |
62
62
  | `hyper/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.12 | $1 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Kilo Gateway logo](https://models.dev/logos/kilo.svg)Kilo Gateway
6
6
 
7
- Access 366 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
7
+ Access 369 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Kilo Gateway documentation](https://kilo.ai).
10
10
 
@@ -42,7 +42,7 @@ for await (const chunk of stream) {
42
42
  | `kilo/~anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
43
43
  | `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $5 | $25 |
44
44
  | `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
45
- | `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.05 | $0.16 |
45
+ | `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.05 | $0.10 |
46
46
  | `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
47
47
  | `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
48
48
  | `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $3 | $14 |
@@ -137,13 +137,13 @@ for await (const chunk of stream) {
137
137
  | `kilo/google/lyria-3-pro-preview` | 1.0M | | | | | | — | — |
138
138
  | `kilo/gryphe/mythomax-l2-13b` | 4K | | | | | | $0.06 | $0.06 |
139
139
  | `kilo/ibm-granite/granite-4.0-h-micro` | 131K | | | | | | $0.02 | $0.11 |
140
- | `kilo/ibm-granite/granite-4.1-8b` | 131K | | | | | | $0.05 | $0.10 |
141
140
  | `kilo/ibm-granite/granite-4.2-8b` | 131K | | | | | | $0.06 | $0.25 |
142
141
  | `kilo/inception/mercury-2` | 128K | | | | | | $0.25 | $0.75 |
143
142
  | `kilo/inception/mercury-2.5-preview` | 260K | | | | | | $0.20 | $0.75 |
144
143
  | `kilo/inclusionai/ling-3.0-flash` | 262K | | | | | | $0.06 | $0.18 |
145
144
  | `kilo/inclusionai/ling-3.0-flash-fin` | 262K | | | | | | $0.06 | $0.18 |
146
145
  | `kilo/inclusionai/ling-3.0-flash-fin:free` | 262K | | | | | | — | — |
146
+ | `kilo/inclusionai/ling-3.0-flash-sante:free` | 262K | | | | | | — | — |
147
147
  | `kilo/kilo-auto/balanced` | 1.0M | | | | | | $0.33 | $2 |
148
148
  | `kilo/kilo-auto/efficient` | 1.0M | | | | | | $0.33 | $2 |
149
149
  | `kilo/kilo-auto/free` | 256K | | | | | | — | — |
@@ -218,8 +218,9 @@ for await (const chunk of stream) {
218
218
  | `kilo/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` | 256K | | | | | | — | — |
219
219
  | `kilo/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.09 | $0.40 |
220
220
  | `kilo/nvidia/nemotron-3-super-120b-a12b:free` | 262K | | | | | | — | — |
221
- | `kilo/nvidia/nemotron-3-ultra-550b-a55b` | 203K | | | | | | $0.50 | $2 |
221
+ | `kilo/nvidia/nemotron-3-ultra-550b-a55b` | 256K | | | | | | $0.50 | $2 |
222
222
  | `kilo/nvidia/nemotron-3-ultra-550b-a55b:free` | 1.0M | | | | | | — | — |
223
+ | `kilo/nvidia/nemotron-3.5-content-safety` | 131K | | | | | | $0.20 | $0.20 |
223
224
  | `kilo/nvidia/nemotron-3.5-content-safety:free` | 128K | | | | | | — | — |
224
225
  | `kilo/nvidia/nemotron-3.5-lightning` | 262K | | | | | | $0.08 | $0.20 |
225
226
  | `kilo/nvidia/nemotron-3.5-lightning:free` | 1.0M | | | | | | — | — |
@@ -268,6 +269,8 @@ for await (const chunk of stream) {
268
269
  | `kilo/openai/gpt-5.6-sol-pro` | 1.1M | | | | | | $4 | $20 |
269
270
  | `kilo/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
270
271
  | `kilo/openai/gpt-5.6-terra-pro` | 1.1M | | | | | | $2 | $12 |
272
+ | `kilo/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
273
+ | `kilo/openai/gpt-6-astra-pro` | 1.1M | | | | | | $10 | $50 |
271
274
  | `kilo/openai/gpt-audio` | 128K | | | | | | $3 | $10 |
272
275
  | `kilo/openai/gpt-audio-mini` | 128K | | | | | | $0.60 | $2 |
273
276
  | `kilo/openai/gpt-chat-latest` | 400K | | | | | | $5 | $30 |
@@ -302,7 +305,7 @@ for await (const chunk of stream) {
302
305
  | `kilo/qwen/qwen-plus` | 1.0M | | | | | | $0.26 | $0.78 |
303
306
  | `kilo/qwen/qwen-plus-2025-07-28` | 1.0M | | | | | | $0.26 | $0.78 |
304
307
  | `kilo/qwen/qwen2.5-vl-72b-instruct` | 128K | | | | | | $0.80 | $1 |
305
- | `kilo/qwen/qwen3-14b` | 41K | | | | | | $0.23 | $0.91 |
308
+ | `kilo/qwen/qwen3-14b` | 131K | | | | | | $0.23 | $0.91 |
306
309
  | `kilo/qwen/qwen3-235b-a22b` | 131K | | | | | | $0.46 | $2 |
307
310
  | `kilo/qwen/qwen3-235b-a22b-2507` | 262K | | | | | | $0.15 | $0.60 |
308
311
  | `kilo/qwen/qwen3-235b-a22b-thinking-2507` | 131K | | | | | | $0.23 | $2 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![LLM Gateway logo](https://models.dev/logos/llmgateway-providers.svg)LLM Gateway
6
6
 
7
- Access 367 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 372 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
10
10
 
@@ -164,7 +164,8 @@ for await (const chunk of stream) {
164
164
  | `llmgateway-providers/cerebras/gpt-oss-120b` | 131K | | | | | | $0.35 | $0.75 |
165
165
  | `llmgateway-providers/cerebras/llama-3.3-70b-instruct` | 128K | | | | | | $0.85 | $1 |
166
166
  | `llmgateway-providers/cerebras/qwen3-235b-a22b-instruct-2507` | 262K | | | | | | $0.60 | $1 |
167
- | `llmgateway-providers/consensusprotocol/deepseek-v4-flash` | 524K | | | | | | $0.13 | $0.27 |
167
+ | `llmgateway-providers/consensusprotocol/deepseek-v4-flash` | 524K | | | | | | $0.08 | $0.16 |
168
+ | `llmgateway-providers/consensusprotocol/glm-5.3-flash` | 1.0M | | | | | | $0.10 | $0.25 |
168
169
  | `llmgateway-providers/consensusprotocol/gpt-oss-20b` | 66K | | | | | | $0.04 | $0.19 |
169
170
  | `llmgateway-providers/consensusprotocol/Qwen3.8-27B` | 33K | | | | | | $0.41 | $3 |
170
171
  | `llmgateway-providers/deepinfra/deepseek-v3.2` | 160K | | | | | | $0.26 | $0.38 |
@@ -211,6 +212,7 @@ for await (const chunk of stream) {
211
212
  | `llmgateway-providers/google-ai-studio/gemini-3.5-flash-lite` | 1.0M | | | | | | $0.30 | $3 |
212
213
  | `llmgateway-providers/google-ai-studio/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
213
214
  | `llmgateway-providers/google-ai-studio/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
215
+ | `llmgateway-providers/google-ai-studio/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
214
216
  | `llmgateway-providers/google-ai-studio/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
215
217
  | `llmgateway-providers/google-vertex/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
216
218
  | `llmgateway-providers/google-vertex/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
@@ -226,6 +228,7 @@ for await (const chunk of stream) {
226
228
  | `llmgateway-providers/groq/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.75 |
227
229
  | `llmgateway-providers/groq/gpt-oss-20b` | 131K | | | | | | $0.10 | $0.50 |
228
230
  | `llmgateway-providers/inference.net/llama-3.2-11b-instruct` | 128K | | | | | | $0.07 | $0.33 |
231
+ | `llmgateway-providers/meta-contributor/muse-spark-1.2-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
229
232
  | `llmgateway-providers/meta-contributor/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
230
233
  | `llmgateway-providers/meta/muse-spark-1.1` | 1.0M | | | | | | $1 | $4 |
231
234
  | `llmgateway-providers/meta/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
@@ -265,6 +268,7 @@ for await (const chunk of stream) {
265
268
  | `llmgateway-providers/novita/glm-5.1` | 205K | | | | | | $1 | $4 |
266
269
  | `llmgateway-providers/novita/glm-5.2` | 1.0M | | | | | | $1 | $4 |
267
270
  | `llmgateway-providers/novita/glm-5.3` | 1.0M | | | | | | $1 | $4 |
271
+ | `llmgateway-providers/novita/glm-5.3-flash` | 1.0M | | | | | | $0.07 | $0.25 |
268
272
  | `llmgateway-providers/novita/hy3` | 262K | | | | | | $0.14 | $0.58 |
269
273
  | `llmgateway-providers/novita/kimi-k2` | 131K | | | | | | $0.57 | $2 |
270
274
  | `llmgateway-providers/novita/kimi-k2.6` | 262K | | | | | | $0.80 | $3 |
@@ -324,6 +328,7 @@ for await (const chunk of stream) {
324
328
  | `llmgateway-providers/openai/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
325
329
  | `llmgateway-providers/openai/gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
326
330
  | `llmgateway-providers/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
331
+ | `llmgateway-providers/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
327
332
  | `llmgateway-providers/openai/o1` | 200K | | | | | | $15 | $60 |
328
333
  | `llmgateway-providers/openai/o3` | 200K | | | | | | $2 | $8 |
329
334
  | `llmgateway-providers/openai/o3-mini` | 200K | | | | | | $1 | $4 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![DevPass (LLM Gateway) logo](https://models.dev/logos/llmgateway.svg)DevPass (LLM Gateway)
6
6
 
7
- Access 184 DevPass (LLM Gateway) models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 186 DevPass (LLM Gateway) models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [DevPass (LLM Gateway) documentation](https://llmgateway.io/docs).
10
10
 
@@ -92,7 +92,7 @@ for await (const chunk of stream) {
92
92
  | `llmgateway/glm-5.2` | 1.0M | | | | | | $0.55 | $2 |
93
93
  | `llmgateway/glm-5.2-fast` | 1.0M | | | | | | $2 | $6 |
94
94
  | `llmgateway/glm-5.3` | 1.0M | | | | | | $1 | $4 |
95
- | `llmgateway/glm-5.3-flash` | 1.0M | | | | | | $0.13 | $0.40 |
95
+ | `llmgateway/glm-5.3-flash` | 1.0M | | | | | | $0.07 | $0.25 |
96
96
  | `llmgateway/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
97
97
  | `llmgateway/gpt-4` | 8K | | | | | | $30 | $60 |
98
98
  | `llmgateway/gpt-4-turbo` | 128K | | | | | | $10 | $30 |
@@ -123,6 +123,7 @@ for await (const chunk of stream) {
123
123
  | `llmgateway/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
124
124
  | `llmgateway/gpt-5.6-sol` | 1.1M | | | | | | $5 | $30 |
125
125
  | `llmgateway/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
126
+ | `llmgateway/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
126
127
  | `llmgateway/gpt-oss-120b` | 131K | | | | | | $0.03 | $0.14 |
127
128
  | `llmgateway/gpt-oss-20b` | 131K | | | | | | $0.04 | $0.19 |
128
129
  | `llmgateway/grok-4` | 256K | | | | | | $3 | $15 |
@@ -172,6 +173,7 @@ for await (const chunk of stream) {
172
173
  | `llmgateway/mistral-small-2506` | 128K | | | | | | $0.10 | $0.30 |
173
174
  | `llmgateway/muse-spark-1.1` | 1.0M | | | | | | $1 | $4 |
174
175
  | `llmgateway/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
176
+ | `llmgateway/muse-spark-1.2-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
175
177
  | `llmgateway/muse-spark-1.3` | 1.0M | | | | | | $1 | $4 |
176
178
  | `llmgateway/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
177
179
  | `llmgateway/nemotron-3-ultra-550b` | 1.0M | | | | | | $0.50 | $2 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![NanoGPT logo](https://models.dev/logos/nano-gpt.svg)NanoGPT
6
6
 
7
- Access 591 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
7
+ Access 592 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [NanoGPT documentation](https://docs.nano-gpt.com).
10
10
 
@@ -268,7 +268,6 @@ for await (const chunk of stream) {
268
268
  | `nano-gpt/huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated` | 16K | | | | | | $1 | $1 |
269
269
  | `nano-gpt/huihui-ai/Llama-3.3-70B-Instruct-abliterated` | 33K | | | | | | $0.70 | $0.70 |
270
270
  | `nano-gpt/huihui-ai/Qwen2.5-32B-Instruct-abliterated` | 33K | | | | | | $0.70 | $0.70 |
271
- | `nano-gpt/ibm-granite/granite-4.1-8b` | 131K | | | | | | $0.05 | $0.10 |
272
271
  | `nano-gpt/ibm-granite/granite-4.2-8b` | 131K | | | | | | $0.10 | $0.15 |
273
272
  | `nano-gpt/inception/mercury-2.5-preview` | 260K | | | | | | $0.04 | $0.15 |
274
273
  | `nano-gpt/inclusionai/ling-3.0-flash` | 262K | | | | | | $0.07 | $0.22 |
@@ -400,6 +399,8 @@ for await (const chunk of stream) {
400
399
  | `nano-gpt/openai/gpt-5.6-sol-pro` | 1.1M | | | | | | $2 | $10 |
401
400
  | `nano-gpt/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
402
401
  | `nano-gpt/openai/gpt-5.6-terra-pro` | 1.1M | | | | | | $2 | $12 |
402
+ | `nano-gpt/openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
403
+ | `nano-gpt/openai/gpt-6-astra-pro` | 1.1M | | | | | | $10 | $50 |
403
404
  | `nano-gpt/openai/gpt-chat-latest` | 1.1M | | | | | | $2 | $10 |
404
405
  | `nano-gpt/openai/gpt-latest` | 1.1M | | | | | | $2 | $10 |
405
406
  | `nano-gpt/openai/gpt-oss-120b` | 128K | | | | | | $0.35 | $0.75 |
@@ -418,7 +419,7 @@ for await (const chunk of stream) {
418
419
  | `nano-gpt/ornith-ai/ornith-1.5-35b-a3b:thinking` | 262K | | | | | | $0.10 | $0.40 |
419
420
  | `nano-gpt/ornith-ai/ornith-1.5-9b` | 262K | | | | | | $0.10 | $0.20 |
420
421
  | `nano-gpt/ornith-ai/ornith-1.5-9b:thinking` | 262K | | | | | | $0.10 | $0.20 |
421
- | `nano-gpt/pamanseau/OpenReasoning-Nemotron-32B` | 131K | | | | | | $0.10 | $0.40 |
422
+ | `nano-gpt/pamanseau/OpenReasoning-Nemotron-32B` | 33K | | | | | | $0.10 | $0.40 |
422
423
  | `nano-gpt/perceptron/perceptron-mk1` | 33K | | | | | | $0.15 | $2 |
423
424
  | `nano-gpt/perplexity-academic-researcher` | 128K | | | | | | $2 | $8 |
424
425
  | `nano-gpt/phi-4-mini-instruct` | 128K | | | | | | $0.17 | $0.68 |
@@ -435,7 +436,7 @@ for await (const chunk of stream) {
435
436
  | `nano-gpt/qwen/qwen-2.5-72b-instruct` | 131K | | | | | | $0.36 | $0.41 |
436
437
  | `nano-gpt/qwen/Qwen2.5-Coder-32B-Instruct` | 32K | | | | | | $0.20 | $0.20 |
437
438
  | `nano-gpt/qwen/qwen3-14b` | 41K | | | | | | $0.08 | $0.24 |
438
- | `nano-gpt/qwen/qwen3-235b-a22b` | 41K | | | | | | $0.30 | $0.50 |
439
+ | `nano-gpt/qwen/qwen3-235b-a22b` | 262K | | | | | | $0.30 | $0.50 |
439
440
  | `nano-gpt/qwen/Qwen3-235B-A22B-Instruct-2507` | 262K | | | | | | $0.13 | $0.50 |
440
441
  | `nano-gpt/qwen/Qwen3-235B-A22B-Thinking-2507` | 131K | | | | | | $0.30 | $0.50 |
441
442
  | `nano-gpt/qwen/qwen3-30b-a3b` | 41K | | | | | | $0.10 | $0.30 |
@@ -464,7 +465,7 @@ for await (const chunk of stream) {
464
465
  | `nano-gpt/qwen/qwen3.8-27b-obliterated:thinking` | 262K | | | | | | $0.25 | $2 |
465
466
  | `nano-gpt/qwen/qwen3.8-27b-uncensored` | 262K | | | | | | $0.25 | $2 |
466
467
  | `nano-gpt/qwen/qwen3.8-27b-uncensored:thinking` | 262K | | | | | | $0.25 | $2 |
467
- | `nano-gpt/qwen25-vl-72b-instruct` | 128K | | | | | | $0.70 | $0.70 |
468
+ | `nano-gpt/qwen25-vl-72b-instruct` | 32K | | | | | | $0.70 | $0.70 |
468
469
  | `nano-gpt/qwen3-30b-a3b-instruct-2507` | 256K | | | | | | $0.20 | $0.50 |
469
470
  | `nano-gpt/qwen3-coder-30b-a3b-instruct` | 128K | | | | | | $0.10 | $0.40 |
470
471
  | `nano-gpt/qwen3-max-2026-01-23` | 256K | | | | | | $1 | $6 |
@@ -516,7 +517,6 @@ for await (const chunk of stream) {
516
517
  | `nano-gpt/soob3123/Veiled-Calla-12B` | 33K | | | | | | $0.30 | $0.30 |
517
518
  | `nano-gpt/Steelskull/L3.3-Cu-Mai-R1-70b` | 33K | | | | | | $0.49 | $0.49 |
518
519
  | `nano-gpt/Steelskull/L3.3-Electra-R1-70b` | 33K | | | | | | $0.70 | $0.70 |
519
- | `nano-gpt/Steelskull/L3.3-MS-Evayale-70B` | 16K | | | | | | $0.49 | $0.49 |
520
520
  | `nano-gpt/Steelskull/L3.3-MS-Nevoria-70b` | 33K | | | | | | $0.49 | $0.49 |
521
521
  | `nano-gpt/Steelskull/L3.3-Nevoria-R1-70b` | 33K | | | | | | $0.49 | $0.49 |
522
522
  | `nano-gpt/stepfun-ai/step-3.5-flash` | 262K | | | | | | $0.10 | $0.30 |
@@ -542,6 +542,7 @@ for await (const chunk of stream) {
542
542
  | `nano-gpt/TEE/llama3-3-70b` | 128K | | | | | | $2 | $3 |
543
543
  | `nano-gpt/TEE/muse-glimmer-30b` | 131K | | | | | | $0.35 | $2 |
544
544
  | `nano-gpt/TEE/qwen2.5-vl-72b-instruct` | 66K | | | | | | $0.70 | $0.70 |
545
+ | `nano-gpt/TEE/qwen3-8b` | 41K | | | | | | $0.11 | $0.45 |
545
546
  | `nano-gpt/TEE/qwen3.5-27b` | 262K | | | | | | $0.30 | $2 |
546
547
  | `nano-gpt/TEE/qwen3.5-397b-a17b` | 262K | | | | | | $0.55 | $4 |
547
548
  | `nano-gpt/TEE/qwen3.6-27b` | 262K | | | | | | $0.32 | $3 |
@@ -559,7 +560,7 @@ for await (const chunk of stream) {
559
560
  | `nano-gpt/TheDrummer/Magidonia-24B-v4.3` | 33K | | | | | | $0.10 | $0.12 |
560
561
  | `nano-gpt/TheDrummer/Rocinante-12B-v1.1` | 16K | | | | | | $0.41 | $0.59 |
561
562
  | `nano-gpt/TheDrummer/skyfall-36b-v2` | 33K | | | | | | $0.55 | $0.80 |
562
- | `nano-gpt/TheDrummer/UnslopNemo-12B-v4.1` | 33K | | | | | | $0.49 | $0.49 |
563
+ | `nano-gpt/TheDrummer/UnslopNemo-12B-v4.1` | 8K | | | | | | $0.49 | $0.49 |
563
564
  | `nano-gpt/thinkingmachines/inkling` | 1.0M | | | | | | $1 | $4 |
564
565
  | `nano-gpt/thinkingmachines/Inkling-Small` | 524K | | | | | | $0.50 | $1 |
565
566
  | `nano-gpt/thinkingmachines/Inkling-Small:thinking` | 524K | | | | | | $0.50 | $1 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![OpenAI logo](https://models.dev/logos/openai.svg)OpenAI
6
6
 
7
- Access 47 OpenAI models through Mastra's model router. Authentication is handled automatically using the `OPENAI_API_KEY` environment variable.
7
+ Access 48 OpenAI models through Mastra's model router. Authentication is handled automatically using the `OPENAI_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [OpenAI documentation](https://platform.openai.com/docs/models).
10
10
 
@@ -62,6 +62,7 @@ for await (const chunk of stream) {
62
62
  | `openai/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
63
63
  | `openai/gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
64
64
  | `openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
65
+ | `openai/gpt-6-astra` | 1.1M | | | | | | $10 | $50 |
65
66
  | `openai/gpt-image-1-mini` | — | | | | | | — | — |
66
67
  | `openai/gpt-image-1.5` | — | | | | | | — | — |
67
68
  | `openai/gpt-image-2` | — | | | | | | $5 | $30 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![OpenCode Go logo](https://models.dev/logos/opencode-go.svg)OpenCode Go
6
6
 
7
- Access 34 OpenCode Go models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
7
+ Access 35 OpenCode Go models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [OpenCode Go documentation](https://opencode.ai/docs/zen).
10
10
 
@@ -59,6 +59,7 @@ for await (const chunk of stream) {
59
59
  | `opencode-go/minimax-m3` | 1.0M | | | | | | $0.30 | $1 |
60
60
  | `opencode-go/muse-spark-1.2-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
61
61
  | `opencode-go/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
62
+ | `opencode-go/omen-alpha` | 500K | | | | | | $0.20 | $0.66 |
62
63
  | `opencode-go/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
63
64
  | `opencode-go/qwen3.7-max` | 1.0M | | | | | | $3 | $8 |
64
65
  | `opencode-go/qwen3.7-plus` | 1.0M | | | | | | $0.40 | $2 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![SCNet Token Plan logo](https://models.dev/logos/scnet-token-plan.svg)SCNet Token Plan
6
6
 
7
- Access 17 SCNet Token Plan models through Mastra's model router. Authentication is handled automatically using the `SCNET_API_KEY` environment variable.
7
+ Access 20 SCNet Token Plan models through Mastra's model router. Authentication is handled automatically using the `SCNET_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [SCNet Token Plan documentation](https://www.scnet.cn/ac/openapi/doc/2.0/moduleapi/plans/token-plan.html).
10
10
 
@@ -46,6 +46,8 @@ for await (const chunk of stream) {
46
46
  | `scnet-token-plan/GLM-5` | 205K | | | | | | — | — |
47
47
  | `scnet-token-plan/GLM-5.1` | 200K | | | | | | — | — |
48
48
  | `scnet-token-plan/GLM-5.2` | 1.0M | | | | | | — | — |
49
+ | `scnet-token-plan/GLM-5.3` | 1.0M | | | | | | — | — |
50
+ | `scnet-token-plan/GLM-5.3-Flash` | 1.0M | | | | | | — | — |
49
51
  | `scnet-token-plan/Kimi-K2.5` | 262K | | | | | | — | — |
50
52
  | `scnet-token-plan/Kimi-K2.6` | 262K | | | | | | — | — |
51
53
  | `scnet-token-plan/Kimi-K2.7-Code` | 262K | | | | | | — | — |
@@ -54,6 +56,7 @@ for await (const chunk of stream) {
54
56
  | `scnet-token-plan/MiniMax-M2.5` | 205K | | | | | | — | — |
55
57
  | `scnet-token-plan/MiniMax-M2.7` | 205K | | | | | | — | — |
56
58
  | `scnet-token-plan/MiniMax-M3` | 1.0M | | | | | | — | — |
59
+ | `scnet-token-plan/Qwen3.8-Flash` | 1.0M | | | | | | — | — |
57
60
  | `scnet-token-plan/Qwen3.8-Max` | 1.0M | | | | | | — | — |
58
61
 
59
62
  Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Weights & Biases logo](https://models.dev/logos/wandb.svg)Weights & Biases
6
6
 
7
- Access 26 Weights & Biases models through Mastra's model router. Authentication is handled automatically using the `WANDB_API_KEY` environment variable.
7
+ Access 27 Weights & Biases models through Mastra's model router. Authentication is handled automatically using the `WANDB_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Weights & Biases documentation](https://docs.wandb.ai).
10
10
 
@@ -64,6 +64,7 @@ for await (const chunk of stream) {
64
64
  | `wandb/Qwen/Qwen3.6-35B-A3B` | 262K | | | | | | $0.25 | $1 |
65
65
  | `wandb/Qwen/Qwen3.8-27B` | 262K | | | | | | $0.40 | $3 |
66
66
  | `wandb/zai-org/GLM-5.2` | 1.0M | | | | | | $0.76 | $2 |
67
+ | `wandb/zai-org/GLM-5.3-Flash` | 1.0M | | | | | | $0.15 | $0.50 |
67
68
 
68
69
  Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
69
70
 
@@ -95,7 +96,7 @@ const agent = new Agent({
95
96
  model: ({ requestContext }) => {
96
97
  const useAdvanced = requestContext.task === "complex";
97
98
  return useAdvanced
98
- ? "wandb/zai-org/GLM-5.2"
99
+ ? "wandb/zai-org/GLM-5.3-Flash"
99
100
  : "wandb/JetBrains/Mellum2-12B-A2.5B-Instruct";
100
101
  }
101
102
  });
@@ -43,9 +43,9 @@ for await (const chunk of stream) {
43
43
  | `xai/grok-4.5` | 500K | | | | | | $2 | $6 |
44
44
  | `xai/grok-4.6` | 500K | | | | | | $2 | $6 |
45
45
  | `xai/grok-build-0.1` | 256K | | | | | | $1 | $2 |
46
- | `xai/grok-imagine-image` | 8K | | | | | | — | — |
47
- | `xai/grok-imagine-image-2.0` | 8K | | | | | | — | — |
48
- | `xai/grok-imagine-image-quality` | 8K | | | | | | — | — |
46
+ | `xai/grok-imagine-image` | 16K | | | | | | — | — |
47
+ | `xai/grok-imagine-image-2.0` | 64K | | | | | | — | — |
48
+ | `xai/grok-imagine-image-quality` | 16K | | | | | | — | — |
49
49
  | `xai/grok-imagine-video` | 1K | | | | | | — | — |
50
50
  | `xai/grok-imagine-video-1.5` | 1K | | | | | | — | — |
51
51
 
@@ -99,4 +99,6 @@ You can also pass `requestContext` as a `Record<string, any>`.
99
99
 
100
100
  **getTrace(traceId)** (`Promise<TraceRecord>`): Retrieves a specific trace by ID, including all its spans and details.
101
101
 
102
- **getTraces(params)** (`Promise<GetTracesResponse>`): Retrieves paginated list of trace root spans with optional filtering. Use getTrace() to get complete traces with all spans.
102
+ **getTraces(params)** (`Promise<GetTracesResponse>`): Retrieves paginated list of trace root spans with optional filtering. Use getTrace() to get complete traces with all spans.
103
+
104
+ **deleteTraces(params)** (`Promise<{ success: true }>`): Deletes traces by ID and cascades deletion to their trace-linked observability signals.
@@ -93,6 +93,20 @@ The API limits predicate depth, nodes, related clauses, set members, literal byt
93
93
 
94
94
  See [Advanced trace queries](https://mastra.ai/reference/observability/tracing/trace-query) for the complete limits, request fields, predicates, grouping, cursor pagination, response shapes, and errors.
95
95
 
96
+ ## Deleting traces
97
+
98
+ Delete traces and their associated spans, metrics, logs, scores, and feedback:
99
+
100
+ ```typescript
101
+ const result = await mastraClient.deleteTraces({
102
+ traceIds: ['trace-1', 'trace-2'],
103
+ })
104
+
105
+ console.log(result.success)
106
+ ```
107
+
108
+ Each request accepts up to 1,000 trace IDs. Signals that aren't linked to a trace are preserved. Deletion also includes traces created by experiments.
109
+
96
110
  ## Scoring traces
97
111
 
98
112
  Score specific traces using registered scorers for evaluation:
@@ -35,6 +35,22 @@ interface ObservabilityInstance {
35
35
  }
36
36
  ```
37
37
 
38
+ ### `BatchDeleteTracesArgs`
39
+
40
+ Arguments for `ObservabilityStorage.batchDeleteTraces()`. The method deletes matching traces and spans, then cascades to metrics, logs, scores, and feedback linked by trace ID. Signals without a trace ID are preserved.
41
+
42
+ ```typescript
43
+ interface BatchDeleteTracesArgs {
44
+ traceIds: string[]
45
+ organizationId?: string
46
+ resourceId?: string
47
+ }
48
+ ```
49
+
50
+ When `organizationId` or `resourceId` is provided, only records matching the scope are deleted. Storage adapters that don't support tenant-scoped trace deletion throw an error rather than applying an unscoped delete.
51
+
52
+ For ClickHouse vNext, the method records the complete predicate and waits for lightweight delete masks to be applied. Normal reads no longer return the rows matched by that operation when the call resolves. Lightweight deletion is hide-only through ClickHouse's `_row_exists` mask. Physical removal depends on merges and deployment-configured retention TTLs, which Mastra OSS doesn't configure by default. Deletion requests aren't purged automatically in Mastra OSS. Automatic retirement will be introduced with future database-agnostic retention configuration.
53
+
38
54
  ### `SpanTypeMap`
39
55
 
40
56
  Mapping of span types to their corresponding attribute interfaces.
@@ -145,6 +145,7 @@ When a matched field contains an object or array, the filter traverses that valu
145
145
  - `input`
146
146
  - `output`
147
147
  - `errorInfo`
148
+ - `requestContext`
148
149
 
149
150
  Within each field, the processor:
150
151
 
@@ -183,7 +184,7 @@ export function redactSpan(span: AnySpan): AnySpan {
183
184
  }
184
185
  ```
185
186
 
186
- **span** (`AnySpan`): Span whose attributes, metadata, input, output, and error information are filtered.
187
+ **span** (`AnySpan`): Span whose attributes, metadata, input, output, error information, and request context are filtered.
187
188
 
188
189
  Returns: `AnySpan`
189
190
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/mcp-docs-server",
3
- "version": "1.2.24-alpha.5",
3
+ "version": "1.2.24-alpha.9",
4
4
  "description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,7 +27,7 @@
27
27
  "jsdom": "^26.1.0",
28
28
  "local-pkg": "^1.1.2",
29
29
  "zod": "^4.4.3",
30
- "@mastra/core": "1.65.0-alpha.2",
30
+ "@mastra/core": "1.65.0-alpha.4",
31
31
  "@mastra/mcp": "^1.17.3"
32
32
  },
33
33
  "devDependencies": {
@@ -44,9 +44,9 @@
44
44
  "tsx": "^4.23.1",
45
45
  "typescript": "^7.0.2",
46
46
  "vitest": "4.1.10",
47
+ "@internal/lint": "0.0.130",
47
48
  "@internal/types-builder": "0.0.105",
48
- "@mastra/core": "1.65.0-alpha.2",
49
- "@internal/lint": "0.0.130"
49
+ "@mastra/core": "1.65.0-alpha.4"
50
50
  },
51
51
  "homepage": "https://mastra.ai",
52
52
  "repository": {