@mastra/mcp-docs-server 1.2.23-alpha.10 → 1.2.23-alpha.13

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.
@@ -414,7 +414,7 @@ See [Realtime voice](#quickstart) for setup and concepts.
414
414
  The package has three entry points:
415
415
 
416
416
  - `@mastra/livekit`: server-side APIs, [`liveKitConnectionRoute()`](#livekitconnectionroute), [`dispatchVoiceSession()`](#dispatchvoicesession), [`pipeAgentReplyToWriter()`](#pipeagentreplytowriter), [`serializeSessionMetadata()`](#livekitsessionmetadata), and [`createEndCallTool()`](#createendcalltool). Import these from Mastra server code. This entry never loads the LiveKit agents runtime.
417
- - `@mastra/livekit/worker`: the worker runtime, [`createLiveKitWorker()`](#createlivekitworker), [`runLiveKitWorker()`](#runlivekitworker), [`chatContextToMessages()`](#chatcontexttomessages), and the session helpers [`speakGreeting()`](#speakgreeting), [`waitForAgentDoneSpeaking()`](#waitforagentdonespeaking), and [`runEndCall()`](#runendcall). Import it only from the worker entry file.
417
+ - `@mastra/livekit/worker`: the worker runtime, [`createLiveKitWorker()`](#createlivekitworker), [`runLiveKitWorker()`](#runlivekitworker), [`chatContextToMessages()`](#chatcontexttomessages), the per-session agent class [`MastraVoiceAgent`](#mastravoiceagent), and the session helpers [`speakGreeting()`](#speakgreeting), [`waitForAgentDoneSpeaking()`](#waitforagentdonespeaking), and [`runEndCall()`](#runendcall). Import it only from the worker entry file.
418
418
  - `@mastra/livekit/plugin`: the LLM-component plugin, [`MastraLLM`](#mastrallm) and [`createRemoteAgentReplyGenerator()`](#createremoteagentreplygenerator). Import it in workers that build their own `voice.AgentSession`. `createRemoteAgentReplyGenerator()` is also exported from `@mastra/livekit/worker` because it plugs into `createLiveKitWorker()`'s `generate` option. `MastraLLM` is plugin-only.
419
419
 
420
420
  ### `createLiveKitWorker()`
@@ -551,6 +551,56 @@ export default createLiveKitWorker({
551
551
 
552
552
  Returns: `VoiceTurnMessage[]`, where each entry is `{ role: 'system' | 'user' | 'assistant'; content: string; id?: string }`.
553
553
 
554
+ ### `MastraVoiceAgent`
555
+
556
+ The LiveKit `voice.Agent` subclass that [`createLiveKitWorker()`](#createlivekitworker) builds for every session. Replies come from a Mastra agent (or a custom `generate` source) through the agent's `llmNode`; LiveKit keeps the audio loop, turn detection, and barge-in. Construct it yourself when you own the `voice.AgentSession`, for example to test a Mastra-backed agent with `@livekit/agents`' `voice.testing` harness without speech-to-text, text-to-speech, or a live worker. `createMastraVoiceAgent(options)` is an equivalent factory.
557
+
558
+ ```typescript
559
+ import { initializeLogger, voice } from '@livekit/agents'
560
+ import { MastraVoiceAgent } from '@mastra/livekit/worker'
561
+ import { supportAgent } from './agents/support'
562
+
563
+ // Required outside a LiveKit worker: AgentSession needs the LiveKit logger initialized.
564
+ initializeLogger({ level: 'silent', pretty: false })
565
+
566
+ const session = new voice.AgentSession()
567
+ await session.start({ agent: new MastraVoiceAgent({ agent: supportAgent, memory: false }) })
568
+
569
+ // run() returns a RunResult, not a promise; wait() resolves when the turn completes.
570
+ const result = session.run({ userInput: 'What are your opening hours?' })
571
+ await result.wait()
572
+ result.expect.nextEvent().isMessage({ role: 'assistant' })
573
+ result.expect.noMoreEvents()
574
+ ```
575
+
576
+ The agent carries its own placeholder `llm.LLM` so LiveKit runs the reply pipeline; generation always goes through `llmNode`, so a `FakeLLM` in the session's `llm` slot is ignored and calling the placeholder's `chat()` throws. To stub the model in tests, give the Mastra agent a mock model or pass a custom `generate` function.
577
+
578
+ #### Options
579
+
580
+ Provide exactly one reply source: `agent` or `generate`.
581
+
582
+ **agent** (`Agent`): In-process Mastra agent. Tools and memory run inside it.
583
+
584
+ **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
+
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`)
587
+
588
+ **requestContext** (`RequestContext | Record<string, unknown>`): Request context entries forwarded to every generation.
589
+
590
+ **toolFeedback** (`(toolCall: VoiceToolCall) => string | undefined | void`): Return a short phrase to speak while a tool runs. Agent source only.
591
+
592
+ **onToolCall** (`(toolCall: VoiceToolCall) => void`): Called as each tool call starts, before its result is known. Keep it cheap and non-throwing. Agent source only.
593
+
594
+ **onTurnComplete** (`VoiceTurnCompleteHook`): Called once per turn after the reply finished streaming to text-to-speech. Fire-and-forget; errors are logged. Agent source only.
595
+
596
+ **greetingReminder** (`{ everyMs: number; text?: string }`): Periodic AI re-disclosure: once everyMs has elapsed, the next reply is prefixed with text (spoken at the turn boundary). The worker derives this from configuration.greeting.repeatEvery / repeatText.
597
+
598
+ **streamOptions** (`MastraStreamOptions`): Extra options merged into every agent.stream() call. Agent source only.
599
+
600
+ **instructions** (`string`): LiveKit agent instructions. Not used for reply generation; the Mastra agent applies its own.
601
+
602
+ **id / stt / vad / tts / turnHandling** (`voice.AgentOptions['id' | 'stt' | 'vad' | 'tts' | 'turnHandling']`): Passed through to the LiveKit voice.Agent constructor. Use them to set per-agent speech components or turn handling.
603
+
554
604
  ### `MastraLLM`
555
605
 
556
606
  A standard LiveKit LLM plugin (`llm.LLM`) backed by a Mastra agent. Use it when you build the `voice.AgentSession` yourself and want Mastra in the `llm` slot. [`createLiveKitWorker()`](#createlivekitworker) is the managed alternative. See [Use Mastra as the LLM component](#use-mastra-as-the-llm-component) for how to choose.
@@ -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 177 models through Mastra's model router.
7
+ Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 178 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
 
@@ -40,6 +40,7 @@ ANTHROPIC_API_KEY=ant-...
40
40
  | ------------------------------------------------ |
41
41
  | `anthropic/claude-3-7-sonnet-20250219` |
42
42
  | `anthropic/claude-fable-5` |
43
+ | `anthropic/claude-fable-5-1` |
43
44
  | `anthropic/claude-haiku-4-5-20251001` |
44
45
  | `anthropic/claude-opus-4-1-20250805` |
45
46
  | `anthropic/claude-opus-4-20250514` |
@@ -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 237 models through Mastra's model router.
7
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 236 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
 
@@ -253,7 +253,6 @@ ANTHROPIC_API_KEY=ant-...
253
253
  | `openrouter/thedrummer/unslopnemo-12b` |
254
254
  | `openrouter/thinkingmachines/inkling` |
255
255
  | `openrouter/thinkingmachines/inkling-small` |
256
- | `openrouter/thinkingmachines/inkling-small:free` |
257
256
  | `openrouter/undi95/remm-slerp-l2-13b` |
258
257
  | `openrouter/upstage/solar-pro4` |
259
258
  | `openrouter/x-ai/grok-4.20` |
@@ -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 352 models through Mastra's model router.
7
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 353 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
10
10
 
@@ -62,6 +62,7 @@ ANTHROPIC_API_KEY=ant-...
62
62
  | `anthracite-org/magnum-v4-72b` |
63
63
  | `anthropic/claude-3-haiku` |
64
64
  | `anthropic/claude-fable-5` |
65
+ | `anthropic/claude-fable-5.1` |
65
66
  | `anthropic/claude-haiku-4.5` |
66
67
  | `anthropic/claude-opus-4` |
67
68
  | `anthropic/claude-opus-4.1` |
@@ -88,6 +88,7 @@ ANTHROPIC_API_KEY=ant-...
88
88
  | `amazon/titan-embed-text-v2` |
89
89
  | `anthropic/claude-3-haiku` |
90
90
  | `anthropic/claude-fable-5` |
91
+ | `anthropic/claude-fable-5.1` |
91
92
  | `anthropic/claude-haiku-4.5` |
92
93
  | `anthropic/claude-opus-4` |
93
94
  | `anthropic/claude-opus-4.5` |
@@ -132,7 +133,6 @@ ANTHROPIC_API_KEY=ant-...
132
133
  | `cohere/rerank-v4-fast` |
133
134
  | `cohere/rerank-v4-pro` |
134
135
  | `deepseek/deepseek-r1` |
135
- | `deepseek/deepseek-v3` |
136
136
  | `deepseek/deepseek-v3.1` |
137
137
  | `deepseek/deepseek-v3.1-terminus` |
138
138
  | `deepseek/deepseek-v3.2` |
@@ -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 7025 models from 199 providers through a single API.
7
+ Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 7035 models from 199 providers through a single API.
8
8
 
9
9
  ## Features
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![DigitalOcean logo](https://models.dev/logos/digitalocean.svg)DigitalOcean
6
6
 
7
- Access 94 DigitalOcean models through Mastra's model router. Authentication is handled automatically using the `DIGITALOCEAN_ACCESS_TOKEN` environment variable.
7
+ Access 95 DigitalOcean models through Mastra's model router. Authentication is handled automatically using the `DIGITALOCEAN_ACCESS_TOKEN` environment variable.
8
8
 
9
9
  Learn more in the [DigitalOcean documentation](https://docs.digitalocean.com/products/gradient-ai-platform/details/models/).
10
10
 
@@ -46,6 +46,7 @@ for await (const chunk of stream) {
46
46
  | `digitalocean/anthropic-claude-4.6-sonnet` | 200K | | | | | | $3 | $15 |
47
47
  | `digitalocean/anthropic-claude-5-sonnet` | 1.0M | | | | | | $2 | $10 |
48
48
  | `digitalocean/anthropic-claude-fable-5` | 1.0M | | | | | | $10 | $50 |
49
+ | `digitalocean/anthropic-claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
49
50
  | `digitalocean/anthropic-claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
50
51
  | `digitalocean/anthropic-claude-opus-4` | 200K | | | | | | $15 | $75 |
51
52
  | `digitalocean/anthropic-claude-opus-4.5` | 200K | | | | | | $5 | $25 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Eden AI logo](https://models.dev/logos/edenai.svg)Eden AI
6
6
 
7
- Access 240 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
7
+ Access 243 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
 
@@ -43,6 +43,7 @@ for await (const chunk of stream) {
43
43
  | `edenai/amazon/zai.glm-4.7-flash` | 200K | | | | | | $0.07 | $0.40 |
44
44
  | `edenai/amazon/zai.glm-4.7-flash@us` | 200K | | | | | | $0.07 | $0.40 |
45
45
  | `edenai/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
46
+ | `edenai/anthropic/claude-fable-5-1` | 1.0M | | | | | | $10 | $50 |
46
47
  | `edenai/anthropic/claude-fable-latest` | 1.0M | | | | | | $10 | $50 |
47
48
  | `edenai/anthropic/claude-opus-4-5` | 200K | | | | | | $5 | $25 |
48
49
  | `edenai/anthropic/claude-opus-4-5-20251101` | 200K | | | | | | $5 | $25 |
@@ -71,6 +72,8 @@ for await (const chunk of stream) {
71
72
  | `edenai/cohere/command-r-08-2024` | 128K | | | | | | $0.15 | $0.60 |
72
73
  | `edenai/cohere/command-r-plus-08-2024` | 128K | | | | | | $3 | $10 |
73
74
  | `edenai/cohere/command-r7b-12-2024` | 132K | | | | | | $0.04 | $0.15 |
75
+ | `edenai/databricks/databricks-deepseek-v4-flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
76
+ | `edenai/databricks/databricks-deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
74
77
  | `edenai/databricks/databricks-gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
75
78
  | `edenai/databricks/databricks-gpt-oss-120b@eu` | 131K | | | | | | $0.15 | $0.60 |
76
79
  | `edenai/databricks/databricks-gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
@@ -127,8 +130,8 @@ for await (const chunk of stream) {
127
130
  | `edenai/google/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
128
131
  | `edenai/google/gemini-3.5-flash-lite` | 1.0M | | | | | | $0.30 | $3 |
129
132
  | `edenai/google/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
130
- | `edenai/google/gemini-3.7-flash` | 1.0M | | | | | | $2 | $8 |
131
- | `edenai/google/gemini-flash-latest` | 1.0M | | | | | | $2 | $8 |
133
+ | `edenai/google/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
134
+ | `edenai/google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
132
135
  | `edenai/google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
133
136
  | `edenai/groq/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
134
137
  | `edenai/groq/openai/gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
@@ -256,10 +259,10 @@ for await (const chunk of stream) {
256
259
  | `edenai/vertex/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
257
260
  | `edenai/vertex/gemini-3.6-flash@eu` | 1.0M | | | | | | $0.75 | $4 |
258
261
  | `edenai/vertex/gemini-3.6-flash@us` | 1.0M | | | | | | $0.75 | $4 |
259
- | `edenai/vertex/gemini-3.7-flash` | 1.0M | | | | | | $2 | $8 |
260
- | `edenai/vertex/gemini-3.7-flash@eu` | 1.0M | | | | | | $2 | $8 |
261
- | `edenai/vertex/gemini-3.7-flash@us` | 1.0M | | | | | | $2 | $8 |
262
- | `edenai/vertex/gemini-flash-latest` | 1.0M | | | | | | $2 | $8 |
262
+ | `edenai/vertex/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
263
+ | `edenai/vertex/gemini-3.7-flash@eu` | 1.0M | | | | | | $0.75 | $4 |
264
+ | `edenai/vertex/gemini-3.7-flash@us` | 1.0M | | | | | | $0.75 | $4 |
265
+ | `edenai/vertex/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
263
266
  | `edenai/vertex/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
264
267
  | `edenai/xai/grok-4.20-0309-non-reasoning` | 1.0M | | | | | | $1 | $3 |
265
268
  | `edenai/xai/grok-4.20-0309-reasoning` | 1.0M | | | | | | $1 | $3 |
@@ -38,7 +38,7 @@ for await (const chunk of stream) {
38
38
 
39
39
  | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
40
40
  | ----------------------------------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
41
- | `fireworks-ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
41
+ | `fireworks-ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.22 | $0.66 |
42
42
  | `fireworks-ai/accounts/fireworks/models/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
43
43
  | `fireworks-ai/accounts/fireworks/models/glm-5p2` | 1.0M | | | | | | $1 | $4 |
44
44
  | `fireworks-ai/accounts/fireworks/models/glm-5p3` | 1.0M | | | | | | $1 | $4 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Kilo Gateway logo](https://models.dev/logos/kilo.svg)Kilo Gateway
6
6
 
7
- Access 361 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
7
+ Access 362 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
 
@@ -62,6 +62,7 @@ for await (const chunk of stream) {
62
62
  | `kilo/anthracite-org/magnum-v4-72b` | 33K | | | | | | $3 | $5 |
63
63
  | `kilo/anthropic/claude-3-haiku` | 200K | | | | | | $0.25 | $1 |
64
64
  | `kilo/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
65
+ | `kilo/anthropic/claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
65
66
  | `kilo/anthropic/claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
66
67
  | `kilo/anthropic/claude-opus-4` | 200K | | | | | | $15 | $75 |
67
68
  | `kilo/anthropic/claude-opus-4.1` | 200K | | | | | | $15 | $75 |
@@ -338,7 +339,7 @@ for await (const chunk of stream) {
338
339
  | `kilo/qwen/qwen3.7-flash` | 1.0M | | | | | | $0.03 | $0.13 |
339
340
  | `kilo/qwen/qwen3.7-max` | 1.0M | | | | | | $1 | $4 |
340
341
  | `kilo/qwen/qwen3.7-plus` | 1.0M | | | | | | $0.32 | $1 |
341
- | `kilo/qwen/qwen3.8-2.4t-a95b` | 1.0M | | | | | | $2 | $6 |
342
+ | `kilo/qwen/qwen3.8-2.4t-a95b` | 262K | | | | | | $2 | $6 |
342
343
  | `kilo/qwen/qwen3.8-27b` | 1.0M | | | | | | $0.42 | $3 |
343
344
  | `kilo/qwen/qwen3.8-flash` | 1.0M | | | | | | $0.15 | $0.47 |
344
345
  | `kilo/qwen/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![LLM Gateway logo](https://models.dev/logos/llmgateway-providers.svg)LLM Gateway
6
6
 
7
- Access 360 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 361 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
 
@@ -65,6 +65,7 @@ for await (const chunk of stream) {
65
65
  | `llmgateway-providers/alibaba/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
66
66
  | `llmgateway-providers/alibaba/qwen35-397b-a17b` | 262K | | | | | | $0.60 | $4 |
67
67
  | `llmgateway-providers/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
68
+ | `llmgateway-providers/anthropic/claude-fable-5-1` | 1.0M | | | | | | $10 | $50 |
68
69
  | `llmgateway-providers/anthropic/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
69
70
  | `llmgateway-providers/anthropic/claude-haiku-4-5-20251001` | 200K | | | | | | $1 | $5 |
70
71
  | `llmgateway-providers/anthropic/claude-opus-4-5-20251101` | 200K | | | | | | $5 | $25 |
@@ -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 180 DevPass (LLM Gateway) models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
7
+ Access 181 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
 
@@ -40,6 +40,7 @@ for await (const chunk of stream) {
40
40
  | ---------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
41
41
  | `llmgateway/auto` | 128K | | | | | | — | — |
42
42
  | `llmgateway/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
43
+ | `llmgateway/claude-fable-5-1` | 1.0M | | | | | | $10 | $50 |
43
44
  | `llmgateway/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
44
45
  | `llmgateway/claude-haiku-4-5-20251001` | 200K | | | | | | $1 | $5 |
45
46
  | `llmgateway/claude-opus-4-1-20250805` | 200K | | | | | | $15 | $75 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![NanoGPT logo](https://models.dev/logos/nano-gpt.svg)NanoGPT
6
6
 
7
- Access 609 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
7
+ Access 610 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
 
@@ -56,6 +56,7 @@ for await (const chunk of stream) {
56
56
  | `nano-gpt/anthracite-org/magnum-v2-72b` | 16K | | | | | | $2 | $3 |
57
57
  | `nano-gpt/anthracite-org/magnum-v4-72b` | 16K | | | | | | $2 | $3 |
58
58
  | `nano-gpt/anthropic/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
59
+ | `nano-gpt/anthropic/claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
59
60
  | `nano-gpt/anthropic/claude-fable-latest` | 1.0M | | | | | | $10 | $50 |
60
61
  | `nano-gpt/anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
61
62
  | `nano-gpt/anthropic/claude-opus-4.6` | 1.0M | | | | | | $5 | $25 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![OpenCode Zen logo](https://models.dev/logos/opencode.svg)OpenCode Zen
6
6
 
7
- Access 95 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
7
+ Access 94 OpenCode Zen 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 Zen documentation](https://opencode.ai/docs/zen).
10
10
 
@@ -40,7 +40,6 @@ for await (const chunk of stream) {
40
40
  | ------------------------------------------ | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
41
41
  | `opencode/big-pickle` | 200K | | | | | | — | — |
42
42
  | `opencode/claude-fable-5` | 1.0M | | | | | | $10 | $50 |
43
- | `opencode/claude-fable-5-1` | 1.0M | | | | | | $10 | $50 |
44
43
  | `opencode/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
45
44
  | `opencode/claude-opus-4-5` | 200K | | | | | | $5 | $25 |
46
45
  | `opencode/claude-opus-4-6` | 1.0M | | | | | | $5 | $25 |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![Requesty logo](https://models.dev/logos/requesty.svg)Requesty
6
6
 
7
- Access 140 Requesty models through Mastra's model router. Authentication is handled automatically using the `REQUESTY_API_KEY` environment variable.
7
+ Access 142 Requesty models through Mastra's model router. Authentication is handled automatically using the `REQUESTY_API_KEY` environment variable.
8
8
 
9
9
  Learn more in the [Requesty documentation](https://requesty.ai/solution/llm-routing/models).
10
10
 
@@ -69,7 +69,9 @@ for await (const chunk of stream) {
69
69
  | `requesty/devstral-latest` | 256K | | | | | | $0.44 | $2 |
70
70
  | `requesty/devstral-latest@eu` | 256K | | | | | | $0.44 | $2 |
71
71
  | `requesty/fugu-ultra` | 1.0M | | | | | | $5 | $30 |
72
+ | `requesty/gemini-2.5-flash-lite@eu` | 1.0M | | | | | | $0.10 | $0.40 |
72
73
  | `requesty/gemini-2.5-flash@eu` | 1.0M | | | | | | $0.30 | $3 |
74
+ | `requesty/gemini-2.5-pro@eu` | 1.0M | | | | | | $1 | $10 |
73
75
  | `requesty/gemini-3-pro-image` | 1.0M | | | | | | $2 | $12 |
74
76
  | `requesty/gemini-3.1-flash-image` | 131K | | | | | | $0.50 | $2 |
75
77
  | `requesty/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
@@ -106,7 +106,7 @@ const agent = new Agent({
106
106
 
107
107
  **textFormat** (`'markdown' | 'plain'`): Dialect for the agent's final reply text. 'markdown' (the default) posts replies as markdown: adapters with native markdown rendering (Slack) render it directly, others convert it to their platform format. 'plain' posts replies as literal plain text, restoring the pre-markdown behavior for agents prompted to emit a platform dialect such as Slack mrkdwn. Applies to final reply text only; tool cards, error messages, and tripwire notices are unaffected. Native streaming is always markdown regardless of this setting. (Default: `'markdown'`)
108
108
 
109
- **toolDisplay** (`'cards' | 'text' | 'timeline' | 'grouped' | 'hidden' | ToolDisplayFn`): How tool calls are rendered in the channel. "cards" posts per-tool running/result cards as rich Block Kit. "text" posts the same lifecycle as plain text (no Block Kit). "timeline" and "grouped" stream tool state as inline task\_update chunks (requires streaming: true; Slack only today — other adapters may render a placeholder). "hidden" executes tools silently. Pass a function to render tool events yourself; return { kind: "post", message } for a discrete post/edit, { kind: "stream", chunk } to push into the streaming widget, or undefined to skip rendering that event. Add openIfEmpty: false to a stream result when its chunk should only apply to an active streaming session. Approve/deny prompts always render as a separate card regardless of mode. (Default: `'cards' ('grouped' for Slack)`)
109
+ **toolDisplay** (`'cards' | 'text' | 'timeline' | 'grouped' | 'hidden' | ToolDisplayFn`): How tool calls are rendered in the channel. "cards" posts per-tool running/result cards as rich Block Kit. "text" posts the same lifecycle as plain text (no Block Kit). "timeline" and "grouped" stream tool state as inline task\_update chunks (requires streaming: true; Slack only today — other adapters may render a placeholder). "hidden" executes tools silently. Pass a function to render tool events yourself; return { kind: "post", message } for a discrete post/edit, { kind: "stream", chunk } to push into the streaming widget, or undefined to skip rendering that event. Add openIfEmpty: false to a stream result when its chunk should only apply to an active streaming session. Approve/deny prompts render as a separate built-in card in every string mode; a toolDisplay function receives the approval event and may replace the card by returning { kind: "post", message }. (Default: `'cards' ('grouped' for Slack)`)
110
110
 
111
111
  **typingStatus** (`boolean | ((chunk: AgentChunkType, ctx: TypingStatusContext) => string | false | null | undefined | void)`): Control the platform typing indicator. true uses built-in defaults (is typing… on text, is calling {tool}… on tool-call, is waiting for approval… on tool-call-approval). false suppresses typing entirely — useful when a live streaming widget (e.g. toolDisplay: "grouped" in Slack) already conveys progress. Pass a function to set custom status copy per chunk; return a string to set the status, or false/null/undefined to leave it unchanged. Compose with defaultTypingStatus (exported from @mastra/core/channels) to fall back to defaults for chunks you don't handle. (Default: `true`)
112
112
 
@@ -139,7 +139,7 @@ toolDisplay: event => {
139
139
  }
140
140
  ```
141
141
 
142
- Approve/deny prompts (`requireApproval`) always render as a separate card regardless of mode, because inline task entries can't carry interactive buttons.
142
+ Approve/deny prompts (`requireApproval`) render as a separate built-in card in every string mode, because inline task entries can't carry interactive buttons. With a `toolDisplay` function, the `approval` event is passed to your function in both streaming and static modes; return a non-blank `{ kind: 'post', message }` to replace the built-in card with your own message (for example, a localized one). Returning `undefined`, a blank message, or `{ kind: 'stream' }` falls back to the built-in card so the approval stays actionable.
143
143
 
144
144
  ```typescript
145
145
  import { Agent } from '@mastra/core/agent'
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/mcp-docs-server",
3
- "version": "1.2.23-alpha.10",
3
+ "version": "1.2.23-alpha.13",
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.64.0-alpha.4",
31
- "@mastra/mcp": "^1.17.3-alpha.0"
30
+ "@mastra/mcp": "^1.17.3-alpha.1",
31
+ "@mastra/core": "1.64.0-alpha.6"
32
32
  },
33
33
  "devDependencies": {
34
34
  "@hono/node-server": "^2.0.0",
@@ -45,8 +45,8 @@
45
45
  "typescript": "^7.0.2",
46
46
  "vitest": "4.1.10",
47
47
  "@internal/lint": "0.0.129",
48
- "@mastra/core": "1.64.0-alpha.4",
49
- "@internal/types-builder": "0.0.104"
48
+ "@internal/types-builder": "0.0.104",
49
+ "@mastra/core": "1.64.0-alpha.6"
50
50
  },
51
51
  "homepage": "https://mastra.ai",
52
52
  "repository": {