@mastra/mcp-docs-server 1.2.24-alpha.4 → 1.2.24-alpha.7

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.
@@ -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', {
@@ -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
  # Netlify
6
6
 
7
- Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 238 models through Mastra's model router.
7
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 242 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
 
@@ -172,14 +172,17 @@ ANTHROPIC_API_KEY=ant-...
172
172
  | `openrouter/mistralai/ministral-14b-2512` |
173
173
  | `openrouter/mistralai/ministral-3b-2512` |
174
174
  | `openrouter/mistralai/ministral-8b-2512` |
175
+ | `openrouter/mistralai/mistral-large-2407` |
175
176
  | `openrouter/mistralai/mistral-large-2512` |
176
177
  | `openrouter/mistralai/mistral-medium-3` |
177
178
  | `openrouter/mistralai/mistral-medium-3-5` |
178
179
  | `openrouter/mistralai/mistral-medium-3.1` |
179
180
  | `openrouter/mistralai/mistral-nemo` |
181
+ | `openrouter/mistralai/mistral-saba` |
180
182
  | `openrouter/mistralai/mistral-small-24b-instruct-2501` |
181
183
  | `openrouter/mistralai/mistral-small-2603` |
182
184
  | `openrouter/mistralai/mistral-small-3.2-24b-instruct` |
185
+ | `openrouter/mistralai/mixtral-8x22b-instruct` |
183
186
  | `openrouter/mistralai/voxtral-small-24b-2507` |
184
187
  | `openrouter/moonshotai/kimi-k2` |
185
188
  | `openrouter/moonshotai/kimi-k2-0905` |
@@ -197,6 +200,7 @@ ANTHROPIC_API_KEY=ant-...
197
200
  | `openrouter/nvidia/nemotron-3-nano-30b-a3b` |
198
201
  | `openrouter/nvidia/nemotron-3-super-120b-a12b` |
199
202
  | `openrouter/nvidia/nemotron-3-ultra-550b-a55b` |
203
+ | `openrouter/nvidia/nemotron-3.5-content-safety` |
200
204
  | `openrouter/nvidia/nemotron-3.5-lightning` |
201
205
  | `openrouter/openai/gpt-oss-120b` |
202
206
  | `openrouter/openai/gpt-oss-20b` |
@@ -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 359 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
10
10
 
@@ -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` |
@@ -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 7059 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 7071 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
  # ![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
  # ![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,7 +131,7 @@ 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 |
@@ -205,8 +206,8 @@ for await (const chunk of stream) {
205
206
  | `edenai/perplexityai/sonar-deep-research` | 128K | | | | | | $2 | $8 |
206
207
  | `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
207
208
  | `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
208
- | `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.18 | $0.53 |
209
- | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.58 | $2 |
209
+ | `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.35 | $1 |
210
+ | `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $3 |
210
211
  | `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
211
212
  | `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
212
213
  | `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
@@ -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
  # ![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 367 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
 
@@ -45,12 +45,12 @@ for await (const chunk of stream) {
45
45
  | `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.05 | $0.16 |
46
46
  | `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
47
47
  | `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
48
- | `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $3 | $13 |
48
+ | `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $3 | $14 |
49
49
  | `kilo/~openai/gpt-latest` | 1.1M | | | | | | $2 | $10 |
50
50
  | `kilo/~openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
51
51
  | `kilo/~x-ai/grok-latest` | 500K | | | | | | $2 | $6 |
52
52
  | `kilo/~z-ai/glm-flash-latest` | 1.0M | | | | | | $0.07 | $0.25 |
53
- | `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $1 | $4 |
53
+ | `kilo/~z-ai/glm-latest` | 262K | | | | | | $1 | $4 |
54
54
  | `kilo/aion-labs/aion-2.0` | 131K | | | | | | $0.80 | $2 |
55
55
  | `kilo/aion-labs/aion-3.0` | 131K | | | | | | $3 | $6 |
56
56
  | `kilo/aion-labs/aion-3.0-mini` | 131K | | | | | | $0.70 | $1 |
@@ -93,7 +93,7 @@ for await (const chunk of stream) {
93
93
  | `kilo/cohere/north-mini-code:free` | 256K | | | | | | — | — |
94
94
  | `kilo/deepseek/deepseek-chat` | 164K | | | | | | $0.32 | $0.89 |
95
95
  | `kilo/deepseek/deepseek-chat-v3-0324` | 164K | | | | | | $0.25 | $1 |
96
- | `kilo/deepseek/deepseek-chat-v3.1` | 164K | | | | | | $0.27 | $1 |
96
+ | `kilo/deepseek/deepseek-chat-v3.1` | 161K | | | | | | $0.27 | $1 |
97
97
  | `kilo/deepseek/deepseek-r1` | 64K | | | | | | $0.70 | $3 |
98
98
  | `kilo/deepseek/deepseek-r1-0528` | 164K | | | | | | $0.70 | $3 |
99
99
  | `kilo/deepseek/deepseek-r1-distill-llama-70b` | 8K | | | | | | $0.80 | $0.80 |
@@ -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 | | | | | | — | — |
@@ -368,7 +369,7 @@ for await (const chunk of stream) {
368
369
  | `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
369
370
  | `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
370
371
  | `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
371
- | `kilo/tencent/hy3` | 262K | | | | | | $0.08 | $0.33 |
372
+ | `kilo/tencent/hy3` | 262K | | | | | | $0.14 | $0.58 |
372
373
  | `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
373
374
  | `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.83 | $3 |
374
375
  | `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![LLM Gateway logo](https://models.dev/logos/llmgateway-providers.svg)LLM Gateway
6
6
 
7
- Access 365 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 367 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
 
@@ -226,8 +226,10 @@ for await (const chunk of stream) {
226
226
  | `llmgateway-providers/groq/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.75 |
227
227
  | `llmgateway-providers/groq/gpt-oss-20b` | 131K | | | | | | $0.10 | $0.50 |
228
228
  | `llmgateway-providers/inference.net/llama-3.2-11b-instruct` | 128K | | | | | | $0.07 | $0.33 |
229
+ | `llmgateway-providers/meta-contributor/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
229
230
  | `llmgateway-providers/meta/muse-spark-1.1` | 1.0M | | | | | | $1 | $4 |
230
231
  | `llmgateway-providers/meta/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
232
+ | `llmgateway-providers/meta/muse-spark-1.3` | 1.0M | | | | | | $1 | $4 |
231
233
  | `llmgateway-providers/minimax/minimax-m2` | 197K | | | | | | $0.20 | $1 |
232
234
  | `llmgateway-providers/minimax/minimax-m2.1` | 197K | | | | | | $0.27 | $1 |
233
235
  | `llmgateway-providers/minimax/minimax-m2.1-lightning` | 197K | | | | | | $0.12 | $0.48 |
@@ -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 182 DevPass (LLM Gateway) models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 184 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
 
@@ -172,6 +172,8 @@ for await (const chunk of stream) {
172
172
  | `llmgateway/mistral-small-2506` | 128K | | | | | | $0.10 | $0.30 |
173
173
  | `llmgateway/muse-spark-1.1` | 1.0M | | | | | | $1 | $4 |
174
174
  | `llmgateway/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
175
+ | `llmgateway/muse-spark-1.3` | 1.0M | | | | | | $1 | $4 |
176
+ | `llmgateway/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
175
177
  | `llmgateway/nemotron-3-ultra-550b` | 1.0M | | | | | | $0.50 | $2 |
176
178
  | `llmgateway/o1` | 200K | | | | | | $15 | $60 |
177
179
  | `llmgateway/o3` | 200K | | | | | | $2 | $8 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![NanoGPT logo](https://models.dev/logos/nano-gpt.svg)NanoGPT
6
6
 
7
- Access 594 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
7
+ Access 591 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
 
@@ -87,7 +87,7 @@ for await (const chunk of stream) {
87
87
  | `nano-gpt/azure-gpt-4o-mini` | 128K | | | | | | $0.15 | $0.60 |
88
88
  | `nano-gpt/azure-o1` | 200K | | | | | | $15 | $60 |
89
89
  | `nano-gpt/azure-o3-mini` | 200K | | | | | | $1 | $4 |
90
- | `nano-gpt/baseten/Kimi-K2-Instruct-FP4` | 128K | | | | | | $0.40 | $2 |
90
+ | `nano-gpt/baseten/Kimi-K2-Instruct-FP4` | 131K | | | | | | $0.40 | $2 |
91
91
  | `nano-gpt/brave` | 8K | | | | | | $5 | $5 |
92
92
  | `nano-gpt/brave-pro` | 8K | | | | | | $5 | $5 |
93
93
  | `nano-gpt/brave-research` | 16K | | | | | | $5 | $5 |
@@ -130,7 +130,7 @@ for await (const chunk of stream) {
130
130
  | `nano-gpt/crofai/greg-2-ultra` | 229K | | | | | | $3 | $10 |
131
131
  | `nano-gpt/deepclaude` | 128K | | | | | | $3 | $15 |
132
132
  | `nano-gpt/deepcogito/cogito-v1-preview-qwen-32B` | 128K | | | | | | $2 | $2 |
133
- | `nano-gpt/deepseek-ai/DeepSeek-R1-0528` | 128K | | | | | | $0.40 | $2 |
133
+ | `nano-gpt/deepseek-ai/DeepSeek-R1-0528` | 164K | | | | | | $0.40 | $2 |
134
134
  | `nano-gpt/deepseek-ai/DeepSeek-V3.1` | 128K | | | | | | $0.20 | $0.70 |
135
135
  | `nano-gpt/deepseek-ai/DeepSeek-V3.1-Terminus` | 128K | | | | | | $0.25 | $0.70 |
136
136
  | `nano-gpt/deepseek-ai/DeepSeek-V3.1-Terminus:thinking` | 128K | | | | | | $0.25 | $0.70 |
@@ -157,8 +157,7 @@ for await (const chunk of stream) {
157
157
  | `nano-gpt/deepseek/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $3 |
158
158
  | `nano-gpt/deepseek/deepseek-v4-pro-0813:thinking` | 1.0M | | | | | | $1 | $3 |
159
159
  | `nano-gpt/deepseek/deepseek-v4-pro:thinking` | 1.0M | | | | | | $1 | $2 |
160
- | `nano-gpt/Doctor-Shotgun/MS3.2-24B-Magnum-Diamond` | 16K | | | | | | $0.49 | $0.49 |
161
- | `nano-gpt/dots-studio/dots-3-note-preview` | 393K | | | | | | $0.10 | $0.20 |
160
+ | `nano-gpt/Doctor-Shotgun/MS3.2-24B-Magnum-Diamond` | 33K | | | | | | $0.49 | $0.49 |
162
161
  | `nano-gpt/doubao-1.5-pro-256k` | 256K | | | | | | $0.80 | $1 |
163
162
  | `nano-gpt/doubao-1.5-pro-32k` | 32K | | | | | | $0.13 | $0.33 |
164
163
  | `nano-gpt/doubao-1.5-vision-pro-32k` | 32K | | | | | | $0.46 | $1 |
@@ -174,8 +173,8 @@ for await (const chunk of stream) {
174
173
  | `nano-gpt/ernie-5.1` | 119K | | | | | | $0.75 | $3 |
175
174
  | `nano-gpt/ernie-5.1:thinking` | 119K | | | | | | $0.75 | $3 |
176
175
  | `nano-gpt/ernie-x1.1-preview` | 64K | | | | | | $0.15 | $0.60 |
177
- | `nano-gpt/EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0` | 16K | | | | | | $2 | $2 |
178
- | `nano-gpt/EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1` | 16K | | | | | | $2 | $2 |
176
+ | `nano-gpt/EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.0` | 33K | | | | | | $2 | $2 |
177
+ | `nano-gpt/EVA-UNIT-01/EVA-LLaMA-3.33-70B-v0.1` | 33K | | | | | | $2 | $2 |
179
178
  | `nano-gpt/EVA-UNIT-01/EVA-Qwen2.5-32B-v0.2` | 16K | | | | | | $0.80 | $0.80 |
180
179
  | `nano-gpt/EVA-UNIT-01/EVA-Qwen2.5-72B-v0.2` | 16K | | | | | | $0.80 | $0.80 |
181
180
  | `nano-gpt/exa-answer` | 4K | | | | | | $3 | $3 |
@@ -238,7 +237,6 @@ for await (const chunk of stream) {
238
237
  | `nano-gpt/glm-4.1v-thinking-flash` | 64K | | | | | | $0.30 | $0.30 |
239
238
  | `nano-gpt/glm-4.1v-thinking-flashx` | 64K | | | | | | $0.30 | $0.30 |
240
239
  | `nano-gpt/GLM-4.6-Derestricted-v5` | 131K | | | | | | $0.40 | $2 |
241
- | `nano-gpt/glm-z1-air` | 32K | | | | | | $0.07 | $0.07 |
242
240
  | `nano-gpt/glm-z1-airx` | 32K | | | | | | $0.70 | $0.70 |
243
241
  | `nano-gpt/google/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
244
242
  | `nano-gpt/google/gemini-3-flash-preview-thinking` | 1.0M | | | | | | $0.50 | $3 |
@@ -268,7 +266,7 @@ for await (const chunk of stream) {
268
266
  | `nano-gpt/holo3-35b-a3b:thinking` | 66K | | | | | | $0.25 | $2 |
269
267
  | `nano-gpt/huihui-ai/DeepSeek-R1-Distill-Llama-70B-abliterated` | 16K | | | | | | $0.70 | $0.70 |
270
268
  | `nano-gpt/huihui-ai/DeepSeek-R1-Distill-Qwen-32B-abliterated` | 16K | | | | | | $1 | $1 |
271
- | `nano-gpt/huihui-ai/Llama-3.3-70B-Instruct-abliterated` | 16K | | | | | | $0.70 | $0.70 |
269
+ | `nano-gpt/huihui-ai/Llama-3.3-70B-Instruct-abliterated` | 33K | | | | | | $0.70 | $0.70 |
272
270
  | `nano-gpt/huihui-ai/Qwen2.5-32B-Instruct-abliterated` | 33K | | | | | | $0.70 | $0.70 |
273
271
  | `nano-gpt/ibm-granite/granite-4.1-8b` | 131K | | | | | | $0.05 | $0.10 |
274
272
  | `nano-gpt/ibm-granite/granite-4.2-8b` | 131K | | | | | | $0.10 | $0.15 |
@@ -277,7 +275,7 @@ for await (const chunk of stream) {
277
275
  | `nano-gpt/inclusionai/ling-3.0-flash:thinking` | 262K | | | | | | $0.07 | $0.22 |
278
276
  | `nano-gpt/inflatebot/MN-12B-Mag-Mell-R1` | 16K | | | | | | $0.49 | $0.49 |
279
277
  | `nano-gpt/kimi-k2-instruct-fast` | 131K | | | | | | $0.40 | $2 |
280
- | `nano-gpt/LatitudeGames/Wayfarer-Large-70B-Llama-3.3` | 16K | | | | | | $0.70 | $0.70 |
278
+ | `nano-gpt/LatitudeGames/Wayfarer-Large-70B-Llama-3.3` | 33K | | | | | | $0.70 | $0.70 |
281
279
  | `nano-gpt/liquid/lfm-2.5-2.6b` | 128K | | | | | | $0.10 | $0.20 |
282
280
  | `nano-gpt/LLM360/K2-Think` | 128K | | | | | | $0.17 | $0.68 |
283
281
  | `nano-gpt/longcat-2.0` | 1.0M | | | | | | $0.75 | $3 |
@@ -285,7 +283,7 @@ for await (const chunk of stream) {
285
283
  | `nano-gpt/MarinaraSpaghetti/NemoMix-Unleashed-12B` | 33K | | | | | | $0.49 | $0.49 |
286
284
  | `nano-gpt/meganova-ai/manta-flash-1.0` | 16K | | | | | | $0.02 | $0.16 |
287
285
  | `nano-gpt/meganova-ai/manta-mini-1.0` | 8K | | | | | | $0.02 | $0.16 |
288
- | `nano-gpt/meganova-ai/manta-pro-1.0` | 33K | | | | | | $0.06 | $0.50 |
286
+ | `nano-gpt/meganova-ai/manta-pro-1.0` | 66K | | | | | | $0.06 | $0.50 |
289
287
  | `nano-gpt/mercury-2` | 128K | | | | | | $0.25 | $0.75 |
290
288
  | `nano-gpt/mercury-coder-small` | 33K | | | | | | $0.25 | $1 |
291
289
  | `nano-gpt/Meta-Llama-3-1-8B-Instruct-FP8` | 128K | | | | | | $0.02 | $0.03 |
@@ -330,14 +328,14 @@ for await (const chunk of stream) {
330
328
  | `nano-gpt/mistralai/mistral-medium-3` | 131K | | | | | | $0.40 | $2 |
331
329
  | `nano-gpt/mistralai/mistral-medium-3.1` | 131K | | | | | | $0.40 | $2 |
332
330
  | `nano-gpt/mistralai/Mistral-Nemo-Instruct-2407` | 16K | | | | | | $0.10 | $0.12 |
333
- | `nano-gpt/mistralai/mistral-saba` | 32K | | | | | | $0.20 | $0.59 |
331
+ | `nano-gpt/mistralai/mistral-saba` | 33K | | | | | | $0.20 | $0.59 |
334
332
  | `nano-gpt/mistralai/mistral-small-4-119b-2603` | 262K | | | | | | $0.40 | $1 |
335
333
  | `nano-gpt/mistralai/mistral-small-4-119b-2603:thinking` | 262K | | | | | | $0.40 | $1 |
336
334
  | `nano-gpt/mistralai/mixtral-8x22b-instruct-v0.1` | 66K | | | | | | $2 | $6 |
337
335
  | `nano-gpt/mlabonne/NeuralDaredevil-8B-abliterated` | 8K | | | | | | $0.44 | $0.44 |
338
336
  | `nano-gpt/moonshotai/kimi-k2-instruct` | 256K | | | | | | $0.40 | $2 |
339
337
  | `nano-gpt/moonshotai/kimi-k2-instruct-0711` | 128K | | | | | | $0.40 | $2 |
340
- | `nano-gpt/moonshotai/Kimi-K2-Instruct-0905` | 256K | | | | | | $0.40 | $2 |
338
+ | `nano-gpt/moonshotai/Kimi-K2-Instruct-0905` | 262K | | | | | | $0.40 | $2 |
341
339
  | `nano-gpt/moonshotai/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
342
340
  | `nano-gpt/moonshotai/kimi-k2.5` | 256K | | | | | | $0.30 | $2 |
343
341
  | `nano-gpt/moonshotai/kimi-k2.5:thinking` | 256K | | | | | | $0.30 | $2 |
@@ -356,15 +354,14 @@ for await (const chunk of stream) {
356
354
  | `nano-gpt/NeverSleep/Lumimaid-v0.2-70B` | 16K | | | | | | $1 | $2 |
357
355
  | `nano-gpt/nex-agi/nex-n2-mini` | 262K | | | | | | $0.03 | $0.10 |
358
356
  | `nano-gpt/nex-agi/nex-n2-pro` | 262K | | | | | | $0.50 | $3 |
359
- | `nano-gpt/nothingiisreal/L3.1-70B-Celeste-V0.1-BF16` | 16K | | | | | | $0.49 | $0.49 |
357
+ | `nano-gpt/nothingiisreal/L3.1-70B-Celeste-V0.1-BF16` | 33K | | | | | | $0.49 | $0.49 |
360
358
  | `nano-gpt/NousResearch/hermes-3-llama-3.1-70b` | 66K | | | | | | $0.41 | $0.41 |
361
359
  | `nano-gpt/NousResearch/hermes-4-405b` | 128K | | | | | | $0.30 | $1 |
362
360
  | `nano-gpt/NousResearch/hermes-4-405b:thinking` | 128K | | | | | | $0.30 | $1 |
363
- | `nano-gpt/NousResearch/hermes-4-70b` | 128K | | | | | | $0.20 | $0.40 |
364
361
  | `nano-gpt/NousResearch/Hermes-4-70B:thinking` | 128K | | | | | | $0.20 | $0.40 |
365
362
  | `nano-gpt/nvidia/Llama-3.1-Nemotron-70B-Instruct-HF` | 16K | | | | | | $0.36 | $0.41 |
366
363
  | `nano-gpt/nvidia/Llama-3.3-Nemotron-Super-49B-v1` | 128K | | | | | | $0.15 | $0.15 |
367
- | `nano-gpt/nvidia/nemotron-3-nano-30b-a3b` | 256K | | | | | | $0.17 | $0.68 |
364
+ | `nano-gpt/nvidia/nemotron-3-nano-30b-a3b` | 262K | | | | | | $0.17 | $0.68 |
368
365
  | `nano-gpt/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning` | 256K | | | | | | $0.10 | $0.42 |
369
366
  | `nano-gpt/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.05 | $0.25 |
370
367
  | `nano-gpt/nvidia/nemotron-3-super-120b-a12b:thinking` | 262K | | | | | | $0.05 | $0.25 |
@@ -423,7 +420,7 @@ for await (const chunk of stream) {
423
420
  | `nano-gpt/ornith-ai/ornith-1.5-9b:thinking` | 262K | | | | | | $0.10 | $0.20 |
424
421
  | `nano-gpt/pamanseau/OpenReasoning-Nemotron-32B` | 33K | | | | | | $0.10 | $0.40 |
425
422
  | `nano-gpt/perceptron/perceptron-mk1` | 33K | | | | | | $0.15 | $2 |
426
- | `nano-gpt/perplexity-academic-researcher` | 127K | | | | | | $2 | $8 |
423
+ | `nano-gpt/perplexity-academic-researcher` | 128K | | | | | | $2 | $8 |
427
424
  | `nano-gpt/phi-4-mini-instruct` | 128K | | | | | | $0.17 | $0.68 |
428
425
  | `nano-gpt/phi-4-multimodal-instruct` | 128K | | | | | | $0.07 | $0.11 |
429
426
  | `nano-gpt/pokee-isaac` | 10.0M | | | | | | $0.15 | $1 |
@@ -438,9 +435,9 @@ for await (const chunk of stream) {
438
435
  | `nano-gpt/qwen/qwen-2.5-72b-instruct` | 131K | | | | | | $0.36 | $0.41 |
439
436
  | `nano-gpt/qwen/Qwen2.5-Coder-32B-Instruct` | 32K | | | | | | $0.20 | $0.20 |
440
437
  | `nano-gpt/qwen/qwen3-14b` | 41K | | | | | | $0.08 | $0.24 |
441
- | `nano-gpt/qwen/qwen3-235b-a22b` | 41K | | | | | | $0.30 | $0.50 |
442
- | `nano-gpt/qwen/Qwen3-235B-A22B-Instruct-2507` | 256K | | | | | | $0.13 | $0.50 |
443
- | `nano-gpt/qwen/Qwen3-235B-A22B-Thinking-2507` | 256K | | | | | | $0.30 | $0.50 |
438
+ | `nano-gpt/qwen/qwen3-235b-a22b` | 262K | | | | | | $0.30 | $0.50 |
439
+ | `nano-gpt/qwen/Qwen3-235B-A22B-Instruct-2507` | 262K | | | | | | $0.13 | $0.50 |
440
+ | `nano-gpt/qwen/Qwen3-235B-A22B-Thinking-2507` | 131K | | | | | | $0.30 | $0.50 |
444
441
  | `nano-gpt/qwen/qwen3-30b-a3b` | 41K | | | | | | $0.10 | $0.30 |
445
442
  | `nano-gpt/qwen/qwen3-32b` | 41K | | | | | | $0.10 | $0.30 |
446
443
  | `nano-gpt/qwen/Qwen3-8B` | 41K | | | | | | $0.47 | $0.47 |
@@ -449,9 +446,9 @@ for await (const chunk of stream) {
449
446
  | `nano-gpt/qwen/qwen3-coder-next` | 262K | | | | | | $0.20 | $2 |
450
447
  | `nano-gpt/qwen/qwen3-coder-plus` | 128K | | | | | | $1 | $5 |
451
448
  | `nano-gpt/qwen/qwen3-max` | 256K | | | | | | $1 | $6 |
452
- | `nano-gpt/qwen/Qwen3-Next-80B-A3B-Instruct` | 256K | | | | | | $0.15 | $0.65 |
449
+ | `nano-gpt/qwen/Qwen3-Next-80B-A3B-Instruct` | 262K | | | | | | $0.15 | $0.65 |
453
450
  | `nano-gpt/qwen/qwen3-next-80b-a3b-thinking` | 256K | | | | | | $0.15 | $0.65 |
454
- | `nano-gpt/qwen/Qwen3-VL-235B-A22B-Instruct` | 128K | | | | | | $0.30 | $1 |
451
+ | `nano-gpt/qwen/Qwen3-VL-235B-A22B-Instruct` | 131K | | | | | | $0.30 | $1 |
455
452
  | `nano-gpt/qwen/qwen3.5-397b-a17b` | 258K | | | | | | $0.60 | $4 |
456
453
  | `nano-gpt/qwen/qwen3.5-397b-a17b-thinking` | 258K | | | | | | $0.60 | $4 |
457
454
  | `nano-gpt/qwen/qwen3.5-9b` | 256K | | | | | | $0.05 | $0.15 |
@@ -499,31 +496,30 @@ for await (const chunk of stream) {
499
496
  | `nano-gpt/qwen3.8-27b:thinking` | 262K | | | | | | $0.15 | $0.70 |
500
497
  | `nano-gpt/qwen3.8-max` | 991K | | | | | | $2 | $6 |
501
498
  | `nano-gpt/qwen3.8-max:thinking` | 991K | | | | | | $2 | $6 |
502
- | `nano-gpt/ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0` | 16K | | | | | | $0.50 | $0.50 |
499
+ | `nano-gpt/ReadyArt/MS3.2-The-Omega-Directive-24B-Unslop-v2.0` | 33K | | | | | | $0.50 | $0.50 |
503
500
  | `nano-gpt/sakana/fugu-ultra` | 1.0M | | | | | | $5 | $32 |
504
501
  | `nano-gpt/sakana/fugu-ultra-v1.1` | 1.0M | | | | | | $5 | $32 |
505
502
  | `nano-gpt/Salesforce/Llama-xLAM-2-70b-fc-r` | 128K | | | | | | $3 | $3 |
506
503
  | `nano-gpt/Sao10K/L3-8B-Stheno-v3.2` | 16K | | | | | | $0.20 | $0.20 |
507
504
  | `nano-gpt/Sao10K/L3.1-70B-Euryale-v2.2` | 20K | | | | | | $0.31 | $0.36 |
508
- | `nano-gpt/Sao10K/L3.1-70B-Hanami-x1` | 16K | | | | | | $0.49 | $0.49 |
505
+ | `nano-gpt/Sao10K/L3.1-70B-Hanami-x1` | 33K | | | | | | $0.49 | $0.49 |
509
506
  | `nano-gpt/Sao10K/L3.3-70B-Euryale-v2.3` | 20K | | | | | | $0.49 | $0.49 |
510
507
  | `nano-gpt/sarvam-105b` | 131K | | | | | | $0.04 | $0.18 |
511
508
  | `nano-gpt/shisa-ai/shisa-v2-llama3.3-70b` | 128K | | | | | | $0.50 | $0.50 |
512
509
  | `nano-gpt/shisa-ai/shisa-v2.1-llama3.3-70b` | 33K | | | | | | $0.50 | $0.50 |
513
510
  | `nano-gpt/sonar` | 127K | | | | | | $1 | $1 |
514
- | `nano-gpt/sonar-deep-research` | 60K | | | | | | $3 | $14 |
511
+ | `nano-gpt/sonar-deep-research` | 128K | | | | | | $3 | $14 |
515
512
  | `nano-gpt/sonar-pro` | 200K | | | | | | $3 | $15 |
516
- | `nano-gpt/sonar-reasoning-pro` | 127K | | | | | | $2 | $8 |
513
+ | `nano-gpt/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
517
514
  | `nano-gpt/soob3123/amoral-gemma3-27B-v2` | 33K | | | | | | $0.30 | $0.30 |
518
- | `nano-gpt/soob3123/GrayLine-Qwen3-8B` | 16K | | | | | | $0.30 | $0.30 |
515
+ | `nano-gpt/soob3123/GrayLine-Qwen3-8B` | 33K | | | | | | $0.30 | $0.30 |
519
516
  | `nano-gpt/soob3123/Veiled-Calla-12B` | 33K | | | | | | $0.30 | $0.30 |
520
- | `nano-gpt/Steelskull/L3.3-Cu-Mai-R1-70b` | 16K | | | | | | $0.49 | $0.49 |
521
- | `nano-gpt/Steelskull/L3.3-Electra-R1-70b` | 16K | | | | | | $0.70 | $0.70 |
522
- | `nano-gpt/Steelskull/L3.3-MS-Evayale-70B` | 16K | | | | | | $0.49 | $0.49 |
523
- | `nano-gpt/Steelskull/L3.3-MS-Nevoria-70b` | 16K | | | | | | $0.49 | $0.49 |
524
- | `nano-gpt/Steelskull/L3.3-Nevoria-R1-70b` | 16K | | | | | | $0.49 | $0.49 |
525
- | `nano-gpt/stepfun-ai/step-3.5-flash` | 256K | | | | | | $0.10 | $0.30 |
526
- | `nano-gpt/stepfun-ai/step-3.5-flash-2603` | 256K | | | | | | $0.10 | $0.30 |
517
+ | `nano-gpt/Steelskull/L3.3-Cu-Mai-R1-70b` | 33K | | | | | | $0.49 | $0.49 |
518
+ | `nano-gpt/Steelskull/L3.3-Electra-R1-70b` | 33K | | | | | | $0.70 | $0.70 |
519
+ | `nano-gpt/Steelskull/L3.3-MS-Nevoria-70b` | 33K | | | | | | $0.49 | $0.49 |
520
+ | `nano-gpt/Steelskull/L3.3-Nevoria-R1-70b` | 33K | | | | | | $0.49 | $0.49 |
521
+ | `nano-gpt/stepfun-ai/step-3.5-flash` | 262K | | | | | | $0.10 | $0.30 |
522
+ | `nano-gpt/stepfun-ai/step-3.5-flash-2603` | 262K | | | | | | $0.10 | $0.30 |
527
523
  | `nano-gpt/stepfun/step-3.7-flash:thinking` | 262K | | | | | | $0.20 | $1 |
528
524
  | `nano-gpt/TEE/deepseek-v3.2` | 164K | | | | | | $0.50 | $1 |
529
525
  | `nano-gpt/TEE/deepseek-v4-flash` | 1.0M | | | | | | $0.20 | $0.40 |
@@ -545,6 +541,7 @@ for await (const chunk of stream) {
545
541
  | `nano-gpt/TEE/llama3-3-70b` | 128K | | | | | | $2 | $3 |
546
542
  | `nano-gpt/TEE/muse-glimmer-30b` | 131K | | | | | | $0.35 | $2 |
547
543
  | `nano-gpt/TEE/qwen2.5-vl-72b-instruct` | 66K | | | | | | $0.70 | $0.70 |
544
+ | `nano-gpt/TEE/qwen3-8b` | 41K | | | | | | $0.11 | $0.45 |
548
545
  | `nano-gpt/TEE/qwen3.5-27b` | 262K | | | | | | $0.30 | $2 |
549
546
  | `nano-gpt/TEE/qwen3.5-397b-a17b` | 262K | | | | | | $0.55 | $4 |
550
547
  | `nano-gpt/TEE/qwen3.6-27b` | 262K | | | | | | $0.32 | $3 |
@@ -555,13 +552,13 @@ for await (const chunk of stream) {
555
552
  | `nano-gpt/tencent/hy4-preview` | 1.0M | | | | | | $0.83 | $3 |
556
553
  | `nano-gpt/TheDrummer/Anubis-70B-v1` | 66K | | | | | | $0.31 | $0.31 |
557
554
  | `nano-gpt/TheDrummer/Anubis-70B-v1.1` | 131K | | | | | | $0.31 | $0.31 |
558
- | `nano-gpt/TheDrummer/Cydonia-24B-v2` | 16K | | | | | | $0.10 | $0.12 |
559
- | `nano-gpt/TheDrummer/Cydonia-24B-v4` | 16K | | | | | | $0.20 | $0.24 |
555
+ | `nano-gpt/TheDrummer/Cydonia-24B-v2` | 33K | | | | | | $0.10 | $0.12 |
556
+ | `nano-gpt/TheDrummer/Cydonia-24B-v4` | 33K | | | | | | $0.20 | $0.24 |
560
557
  | `nano-gpt/TheDrummer/Cydonia-24B-v4.1` | 131K | | | | | | $0.35 | $0.55 |
561
558
  | `nano-gpt/TheDrummer/Cydonia-24B-v4.3` | 33K | | | | | | $0.12 | $0.15 |
562
559
  | `nano-gpt/TheDrummer/Magidonia-24B-v4.3` | 33K | | | | | | $0.10 | $0.12 |
563
560
  | `nano-gpt/TheDrummer/Rocinante-12B-v1.1` | 16K | | | | | | $0.41 | $0.59 |
564
- | `nano-gpt/TheDrummer/skyfall-36b-v2` | 32K | | | | | | $0.55 | $0.80 |
561
+ | `nano-gpt/TheDrummer/skyfall-36b-v2` | 33K | | | | | | $0.55 | $0.80 |
565
562
  | `nano-gpt/TheDrummer/UnslopNemo-12B-v4.1` | 8K | | | | | | $0.49 | $0.49 |
566
563
  | `nano-gpt/thinkingmachines/inkling` | 1.0M | | | | | | $1 | $4 |
567
564
  | `nano-gpt/thinkingmachines/Inkling-Small` | 524K | | | | | | $0.50 | $1 |
@@ -572,10 +569,10 @@ for await (const chunk of stream) {
572
569
  | `nano-gpt/THUDM/GLM-Z1-9B-0414` | 32K | | | | | | $0.20 | $0.20 |
573
570
  | `nano-gpt/undi95/remm-slerp-l2-13b` | 6K | | | | | | $0.80 | $1 |
574
571
  | `nano-gpt/universal-summarizer` | 33K | | | | | | $30 | $30 |
575
- | `nano-gpt/unsloth/gemma-3-12b-it` | 128K | | | | | | $0.27 | $0.27 |
572
+ | `nano-gpt/unsloth/gemma-3-12b-it` | 131K | | | | | | $0.27 | $0.27 |
576
573
  | `nano-gpt/unsloth/gemma-3-27b-it` | 128K | | | | | | $0.30 | $0.30 |
577
574
  | `nano-gpt/unsloth/gemma-3-4b-it` | 128K | | | | | | $0.20 | $0.20 |
578
- | `nano-gpt/upstage/solar-pro-3` | 128K | | | | | | $0.15 | $0.60 |
575
+ | `nano-gpt/upstage/solar-pro-3` | 131K | | | | | | $0.15 | $0.60 |
579
576
  | `nano-gpt/upstage/solar-pro4` | 524K | | | | | | $0.03 | $0.12 |
580
577
  | `nano-gpt/upstage/solar-pro4:thinking` | 524K | | | | | | $0.03 | $0.12 |
581
578
  | `nano-gpt/venice-uncensored` | 128K | | | | | | $0.40 | $2 |
@@ -599,12 +596,12 @@ for await (const chunk of stream) {
599
596
  | `nano-gpt/z-ai/GLM-4.5-Air` | 128K | | | | | | $0.12 | $0.80 |
600
597
  | `nano-gpt/z-ai/GLM-4.5-Air:thinking` | 128K | | | | | | $0.12 | $0.80 |
601
598
  | `nano-gpt/z-ai/GLM-4.5:thinking` | 128K | | | | | | $0.30 | $1 |
602
- | `nano-gpt/z-ai/glm-4.5v` | 64K | | | | | | $0.60 | $2 |
603
- | `nano-gpt/z-ai/glm-4.5v:thinking` | 64K | | | | | | $0.60 | $2 |
599
+ | `nano-gpt/z-ai/glm-4.5v` | 66K | | | | | | $0.60 | $2 |
600
+ | `nano-gpt/z-ai/glm-4.5v:thinking` | 66K | | | | | | $0.60 | $2 |
604
601
  | `nano-gpt/z-ai/glm-4.6` | 200K | | | | | | $0.35 | $1 |
605
602
  | `nano-gpt/z-ai/glm-4.6-original` | 256K | | | | | | $0.35 | $1 |
606
- | `nano-gpt/z-ai/GLM-4.6-turbo` | 200K | | | | | | $1 | $3 |
607
- | `nano-gpt/z-ai/GLM-4.6-turbo:thinking` | 200K | | | | | | $1 | $3 |
603
+ | `nano-gpt/z-ai/GLM-4.6-turbo` | 205K | | | | | | $1 | $3 |
604
+ | `nano-gpt/z-ai/GLM-4.6-turbo:thinking` | 205K | | | | | | $1 | $3 |
608
605
  | `nano-gpt/z-ai/glm-4.6:thinking` | 200K | | | | | | $0.35 | $1 |
609
606
  | `nano-gpt/z-ai/glm-4.6v` | 128K | | | | | | $0.30 | $0.90 |
610
607
  | `nano-gpt/z-ai/glm-4.6v-original` | 128K | | | | | | $0.60 | $0.90 |
@@ -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.
@@ -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.4",
3
+ "version": "1.2.24-alpha.7",
4
4
  "description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -27,8 +27,8 @@
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",
31
- "@mastra/mcp": "^1.17.3"
30
+ "@mastra/mcp": "^1.17.3",
31
+ "@mastra/core": "1.65.0-alpha.3"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@hono/node-server": "^2.0.0",
@@ -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",
48
47
  "@internal/types-builder": "0.0.105",
49
- "@mastra/core": "1.65.0-alpha.2"
48
+ "@mastra/core": "1.65.0-alpha.3",
49
+ "@internal/lint": "0.0.130"
50
50
  },
51
51
  "homepage": "https://mastra.ai",
52
52
  "repository": {