@mastra/mcp-docs-server 1.1.35-alpha.21 → 1.1.35-alpha.26

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.
@@ -1,6 +1,6 @@
1
1
  # ![Nvidia logo](https://models.dev/logos/nvidia.svg)Nvidia
2
2
 
3
- Access 82 Nvidia models through Mastra's model router. Authentication is handled automatically using the `NVIDIA_API_KEY` environment variable.
3
+ Access 92 Nvidia models through Mastra's model router. Authentication is handled automatically using the `NVIDIA_API_KEY` environment variable.
4
4
 
5
5
  Learn more in the [Nvidia documentation](https://docs.api.nvidia.com/nim/).
6
6
 
@@ -15,7 +15,7 @@ const agent = new Agent({
15
15
  id: "my-agent",
16
16
  name: "My Agent",
17
17
  instructions: "You are a helpful assistant",
18
- model: "nvidia/black-forest-labs/flux.1-dev"
18
+ model: "nvidia/abacusai/dracarys-llama-3_1-70b-instruct"
19
19
  });
20
20
 
21
21
  // Generate a response
@@ -34,88 +34,98 @@ for await (const chunk of stream) {
34
34
 
35
35
  | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
36
36
  | ------------------------------------------------------ | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
37
+ | `nvidia/abacusai/dracarys-llama-3_1-70b-instruct` | 128K | | | | | | — | — |
38
+ | `nvidia/baai/bge-m3` | 8K | | | | | | — | — |
39
+ | `nvidia/black-forest-labs/flux_1-kontext-dev` | 41K | | | | | | — | — |
40
+ | `nvidia/black-forest-labs/flux_1-schnell` | 77 | | | | | | — | — |
41
+ | `nvidia/black-forest-labs/flux_2-klein-4b` | 41K | | | | | | — | — |
37
42
  | `nvidia/black-forest-labs/flux.1-dev` | 4K | | | | | | — | — |
38
- | `nvidia/deepseek-ai/deepseek-coder-6.7b-instruct` | 128K | | | | | | — | — |
39
- | `nvidia/deepseek-ai/deepseek-r1` | 128K | | | | | | — | — |
40
- | `nvidia/deepseek-ai/deepseek-r1-0528` | 128K | | | | | | — | — |
41
- | `nvidia/deepseek-ai/deepseek-v3.1` | 128K | | | | | | — | — |
43
+ | `nvidia/bytedance/seed-oss-36b-instruct` | 262K | | | | | | — | — |
42
44
  | `nvidia/deepseek-ai/deepseek-v3.1-terminus` | 128K | | | | | | — | — |
43
45
  | `nvidia/deepseek-ai/deepseek-v3.2` | 164K | | | | | | — | — |
44
46
  | `nvidia/deepseek-ai/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
45
47
  | `nvidia/deepseek-ai/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
46
- | `nvidia/google/codegemma-1.1-7b` | 128K | | | | | | — | — |
47
- | `nvidia/google/codegemma-7b` | 128K | | | | | | — | — |
48
- | `nvidia/google/gemma-2-27b-it` | 128K | | | | | | — | — |
49
48
  | `nvidia/google/gemma-2-2b-it` | 128K | | | | | | — | — |
50
- | `nvidia/google/gemma-3-12b-it` | 128K | | | | | | — | — |
51
- | `nvidia/google/gemma-3-1b-it` | 128K | | | | | | — | — |
52
49
  | `nvidia/google/gemma-3-27b-it` | 131K | | | | | | — | — |
53
50
  | `nvidia/google/gemma-3n-e2b-it` | 128K | | | | | | — | — |
54
51
  | `nvidia/google/gemma-3n-e4b-it` | 128K | | | | | | — | — |
55
52
  | `nvidia/google/gemma-4-31b-it` | 256K | | | | | | — | — |
56
- | `nvidia/meta/codellama-70b` | 128K | | | | | | — | — |
57
- | `nvidia/meta/llama-3.1-405b-instruct` | 128K | | | | | | — | — |
53
+ | `nvidia/google/google-paligemma` | 128K | | | | | | — | — |
54
+ | `nvidia/meta/esm2-650m` | 128K | | | | | | — | — |
55
+ | `nvidia/meta/esmfold` | 128K | | | | | | — | — |
58
56
  | `nvidia/meta/llama-3.1-70b-instruct` | 128K | | | | | | — | — |
57
+ | `nvidia/meta/llama-3.1-8b-instruct` | 16K | | | | | | — | — |
59
58
  | `nvidia/meta/llama-3.2-11b-vision-instruct` | 128K | | | | | | — | — |
60
59
  | `nvidia/meta/llama-3.2-1b-instruct` | 128K | | | | | | — | — |
60
+ | `nvidia/meta/llama-3.2-3b-instruct` | 33K | | | | | | — | — |
61
+ | `nvidia/meta/llama-3.2-90b-vision-instruct` | 128K | | | | | | — | — |
61
62
  | `nvidia/meta/llama-3.3-70b-instruct` | 128K | | | | | | — | — |
62
63
  | `nvidia/meta/llama-4-maverick-17b-128e-instruct` | 128K | | | | | | — | — |
63
- | `nvidia/meta/llama-4-scout-17b-16e-instruct` | 128K | | | | | | — | — |
64
- | `nvidia/meta/llama3-70b-instruct` | 128K | | | | | | — | — |
65
- | `nvidia/meta/llama3-8b-instruct` | 128K | | | | | | — | — |
66
- | `nvidia/microsoft/phi-3-medium-128k-instruct` | 128K | | | | | | — | — |
67
- | `nvidia/microsoft/phi-3-medium-4k-instruct` | 4K | | | | | | — | — |
68
- | `nvidia/microsoft/phi-3-small-128k-instruct` | 128K | | | | | | — | — |
69
- | `nvidia/microsoft/phi-3-small-8k-instruct` | 8K | | | | | | — | — |
70
- | `nvidia/microsoft/phi-3-vision-128k-instruct` | 128K | | | | | | — | — |
71
- | `nvidia/microsoft/phi-3.5-moe-instruct` | 128K | | | | | | — | — |
72
- | `nvidia/microsoft/phi-3.5-vision-instruct` | 128K | | | | | | — | — |
64
+ | `nvidia/meta/llama-guard-4-12b` | 128K | | | | | | — | — |
73
65
  | `nvidia/microsoft/phi-4-mini-instruct` | 131K | | | | | | — | — |
74
- | `nvidia/minimaxai/minimax-m2.1` | 205K | | | | | | — | — |
66
+ | `nvidia/microsoft/phi-4-multimodal-instruct` | 128K | | | | | | — | — |
75
67
  | `nvidia/minimaxai/minimax-m2.5` | 205K | | | | | | — | — |
76
68
  | `nvidia/minimaxai/minimax-m2.7` | 205K | | | | | | — | — |
77
- | `nvidia/mistralai/codestral-22b-instruct-v0.1` | 128K | | | | | | — | — |
78
69
  | `nvidia/mistralai/devstral-2-123b-instruct-2512` | 262K | | | | | | — | — |
79
- | `nvidia/mistralai/mamba-codestral-7b-v0.1` | 128K | | | | | | — | — |
80
- | `nvidia/mistralai/ministral-14b-instruct-2512` | 262K | | | | | | — | — |
81
- | `nvidia/mistralai/mistral-large-2-instruct` | 128K | | | | | | — | — |
70
+ | `nvidia/mistralai/magistral-small-2506` | 33K | | | | | | — | — |
71
+ | `nvidia/mistralai/mistral-7b-instruct-v03` | 66K | | | | | | — | — |
82
72
  | `nvidia/mistralai/mistral-large-3-675b-instruct-2512` | 262K | | | | | | — | — |
83
- | `nvidia/mistralai/mistral-medium-3.5-128b` | 262K | | | | | | — | — |
84
- | `nvidia/mistralai/mistral-small-3.1-24b-instruct-2503` | 128K | | | | | | — | — |
73
+ | `nvidia/mistralai/mistral-medium-3-instruct` | 131K | | | | | | — | — |
74
+ | `nvidia/mistralai/mistral-nemotron` | 128K | | | | | | — | — |
75
+ | `nvidia/mistralai/mistral-small-4-119b-2603` | 128K | | | | | | — | — |
76
+ | `nvidia/mistralai/mixtral-8x22b-instruct` | 66K | | | | | | — | — |
77
+ | `nvidia/mistralai/mixtral-8x7b-instruct` | 33K | | | | | | — | — |
85
78
  | `nvidia/moonshotai/kimi-k2-instruct` | 128K | | | | | | — | — |
86
79
  | `nvidia/moonshotai/kimi-k2-instruct-0905` | 262K | | | | | | — | — |
87
80
  | `nvidia/moonshotai/kimi-k2-thinking` | 262K | | | | | | — | — |
88
- | `nvidia/moonshotai/kimi-k2.5` | 262K | | | | | | — | — |
89
81
  | `nvidia/moonshotai/kimi-k2.6` | 262K | | | | | | — | — |
90
- | `nvidia/nvidia/cosmos-nemotron-34b` | 131K | | | | | | — | — |
91
- | `nvidia/nvidia/llama-3.1-nemotron-51b-instruct` | 128K | | | | | | — | — |
92
- | `nvidia/nvidia/llama-3.1-nemotron-70b-instruct` | 128K | | | | | | — | — |
93
- | `nvidia/nvidia/llama-3.1-nemotron-ultra-253b-v1` | 131K | | | | | | — | — |
94
- | `nvidia/nvidia/llama-3.3-nemotron-super-49b-v1` | 128K | | | | | | — | — |
95
- | `nvidia/nvidia/llama-3.3-nemotron-super-49b-v1.5` | 128K | | | | | | — | — |
96
- | `nvidia/nvidia/llama-embed-nemotron-8b` | 33K | | | | | | — | — |
97
- | `nvidia/nvidia/llama3-chatqa-1.5-70b` | 128K | | | | | | — | — |
98
- | `nvidia/nvidia/nemoretriever-ocr-v1` | | | | | | | — | — |
82
+ | `nvidia/nvidia/active-speaker-detection` | | | | | | | — | — |
83
+ | `nvidia/nvidia/bevformer` | 128K | | | | | | — | — |
84
+ | `nvidia/nvidia/cosmos-predict1-5b` | | | | | | | — | — |
85
+ | `nvidia/nvidia/cosmos-transfer1-7b` | | | | | | | — | — |
86
+ | `nvidia/nvidia/cosmos-transfer2_5-2b` | | | | | | | — | — |
87
+ | `nvidia/nvidia/gliner-pii` | 128K | | | | | | — | — |
88
+ | `nvidia/nvidia/llama-3_1-nemotron-safety-guard-8b-v3` | 128K | | | | | | — | — |
89
+ | `nvidia/nvidia/llama-3_2-nemoretriever-300m-embed-v1` | 33K | | | | | | — | — |
90
+ | `nvidia/nvidia/llama-3_3-nemotron-super-49b-v1` | 131K | | | | | | — | — |
91
+ | `nvidia/nvidia/llama-3_3-nemotron-super-49b-v1_5` | 131K | | | | | | — | — |
92
+ | `nvidia/nvidia/llama-nemotron-embed-vl-1b-v2` | 33K | | | | | | — | — |
93
+ | `nvidia/nvidia/llama-nemotron-rerank-vl-1b-v2` | 128K | | | | | | — | — |
94
+ | `nvidia/nvidia/magpie-tts-zeroshot` | — | | | | | | — | — |
95
+ | `nvidia/nvidia/nemotron-3-content-safety` | 128K | | | | | | — | — |
99
96
  | `nvidia/nvidia/nemotron-3-nano-30b-a3b` | 131K | | | | | | — | — |
100
97
  | `nvidia/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning` | 256K | | | | | | — | — |
101
98
  | `nvidia/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.20 | $0.80 |
102
- | `nvidia/nvidia/nemotron-4-340b-instruct` | 128K | | | | | | — | — |
99
+ | `nvidia/nvidia/nemotron-content-safety-reasoning-4b` | 128K | | | | | | — | — |
100
+ | `nvidia/nvidia/nemotron-mini-4b-instruct` | 128K | | | | | | — | — |
101
+ | `nvidia/nvidia/nemotron-voicechat` | 128K | | | | | | — | — |
102
+ | `nvidia/nvidia/nv-embed-v1` | 33K | | | | | | — | — |
103
+ | `nvidia/nvidia/nv-embedcode-7b-v1` | 33K | | | | | | — | — |
103
104
  | `nvidia/nvidia/nvidia-nemotron-nano-9b-v2` | 131K | | | | | | — | — |
104
- | `nvidia/nvidia/parakeet-tdt-0.6b-v2` | | | | | | | — | — |
105
+ | `nvidia/nvidia/rerank-qa-mistral-4b` | 128K | | | | | | — | — |
106
+ | `nvidia/nvidia/riva-translate-4b-instruct-v1_1` | 128K | | | | | | — | — |
107
+ | `nvidia/nvidia/sparsedrive` | 128K | | | | | | — | — |
108
+ | `nvidia/nvidia/streampetr` | 128K | | | | | | — | — |
109
+ | `nvidia/nvidia/studiovoice` | 128K | | | | | | — | — |
110
+ | `nvidia/nvidia/synthetic-video-detector` | — | | | | | | — | — |
111
+ | `nvidia/nvidia/usdcode` | 128K | | | | | | — | — |
112
+ | `nvidia/nvidia/usdvalidate` | — | | | | | | — | — |
105
113
  | `nvidia/openai/gpt-oss-120b` | 128K | | | | | | — | — |
114
+ | `nvidia/openai/gpt-oss-20b` | 131K | | | | | | — | — |
106
115
  | `nvidia/openai/whisper-large-v3` | — | | | | | | — | — |
116
+ | `nvidia/qwen/qwen-image` | — | | | | | | — | — |
117
+ | `nvidia/qwen/qwen-image-edit` | — | | | | | | — | — |
107
118
  | `nvidia/qwen/qwen2.5-coder-32b-instruct` | 128K | | | | | | — | — |
108
- | `nvidia/qwen/qwen2.5-coder-7b-instruct` | 128K | | | | | | — | — |
109
- | `nvidia/qwen/qwen3-235b-a22b` | 131K | | | | | | — | — |
110
119
  | `nvidia/qwen/qwen3-coder-480b-a35b-instruct` | 262K | | | | | | — | — |
111
120
  | `nvidia/qwen/qwen3-next-80b-a3b-instruct` | 262K | | | | | | — | — |
112
121
  | `nvidia/qwen/qwen3-next-80b-a3b-thinking` | 262K | | | | | | — | — |
122
+ | `nvidia/qwen/qwen3.5-122b-a10b` | 262K | | | | | | — | — |
113
123
  | `nvidia/qwen/qwen3.5-397b-a17b` | 262K | | | | | | — | — |
114
- | `nvidia/qwen/qwq-32b` | 128K | | | | | | — | — |
124
+ | `nvidia/sarvamai/sarvam-m` | 128K | | | | | | — | — |
115
125
  | `nvidia/stepfun-ai/step-3.5-flash` | 256K | | | | | | — | — |
126
+ | `nvidia/upstage/solar-10_7b-instruct` | 128K | | | | | | — | — |
116
127
  | `nvidia/z-ai/glm-5.1` | 131K | | | | | | — | — |
117
128
  | `nvidia/z-ai/glm4.7` | 205K | | | | | | — | — |
118
- | `nvidia/z-ai/glm5` | 203K | | | | | | — | — |
119
129
 
120
130
  ## Advanced configuration
121
131
 
@@ -127,7 +137,7 @@ const agent = new Agent({
127
137
  name: "custom-agent",
128
138
  model: {
129
139
  url: "https://integrate.api.nvidia.com/v1",
130
- id: "nvidia/black-forest-labs/flux.1-dev",
140
+ id: "nvidia/abacusai/dracarys-llama-3_1-70b-instruct",
131
141
  apiKey: process.env.NVIDIA_API_KEY,
132
142
  headers: {
133
143
  "X-Custom-Header": "value"
@@ -145,8 +155,8 @@ const agent = new Agent({
145
155
  model: ({ requestContext }) => {
146
156
  const useAdvanced = requestContext.task === "complex";
147
157
  return useAdvanced
148
- ? "nvidia/z-ai/glm5"
149
- : "nvidia/black-forest-labs/flux.1-dev";
158
+ ? "nvidia/z-ai/glm4.7"
159
+ : "nvidia/abacusai/dracarys-llama-3_1-70b-instruct";
150
160
  }
151
161
  });
152
162
  ```
@@ -55,7 +55,7 @@ for await (const chunk of stream) {
55
55
  | `ollama-cloud/kimi-k2-thinking` | 262K | | | | | | — | — |
56
56
  | `ollama-cloud/kimi-k2:1t` | 262K | | | | | | — | — |
57
57
  | `ollama-cloud/kimi-k2.5` | 262K | | | | | | — | — |
58
- | `ollama-cloud/kimi-k2.6:cloud` | 262K | | | | | | — | — |
58
+ | `ollama-cloud/kimi-k2.6` | 262K | | | | | | — | — |
59
59
  | `ollama-cloud/minimax-m2` | 205K | | | | | | — | — |
60
60
  | `ollama-cloud/minimax-m2.1` | 205K | | | | | | — | — |
61
61
  | `ollama-cloud/minimax-m2.5` | 205K | | | | | | — | — |
@@ -1,6 +1,6 @@
1
1
  # ![OpenCode Zen logo](https://models.dev/logos/opencode.svg)OpenCode Zen
2
2
 
3
- Access 39 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
3
+ Access 40 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
4
4
 
5
5
  Learn more in the [OpenCode Zen documentation](https://opencode.ai/docs/zen).
6
6
 
@@ -32,47 +32,48 @@ for await (const chunk of stream) {
32
32
 
33
33
  ## Models
34
34
 
35
- | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
36
- | -------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
37
- | `opencode/big-pickle` | 200K | | | | | | — | — |
38
- | `opencode/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
39
- | `opencode/claude-opus-4-1` | 200K | | | | | | $15 | $75 |
40
- | `opencode/claude-opus-4-5` | 200K | | | | | | $5 | $25 |
41
- | `opencode/claude-opus-4-6` | 1.0M | | | | | | $5 | $25 |
42
- | `opencode/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
43
- | `opencode/claude-sonnet-4` | 1.0M | | | | | | $3 | $15 |
44
- | `opencode/claude-sonnet-4-5` | 1.0M | | | | | | $3 | $15 |
45
- | `opencode/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
46
- | `opencode/gemini-3-flash` | 1.0M | | | | | | $0.50 | $3 |
47
- | `opencode/gemini-3.1-pro` | 1.0M | | | | | | $2 | $12 |
48
- | `opencode/glm-5` | 205K | | | | | | $1 | $3 |
49
- | `opencode/glm-5.1` | 205K | | | | | | $1 | $4 |
50
- | `opencode/gpt-5` | 400K | | | | | | $1 | $9 |
51
- | `opencode/gpt-5-codex` | 400K | | | | | | $1 | $9 |
52
- | `opencode/gpt-5-nano` | 400K | | | | | | $0.05 | $0.40 |
53
- | `opencode/gpt-5.1` | 400K | | | | | | $1 | $9 |
54
- | `opencode/gpt-5.1-codex` | 400K | | | | | | $1 | $9 |
55
- | `opencode/gpt-5.1-codex-max` | 400K | | | | | | $1 | $10 |
56
- | `opencode/gpt-5.1-codex-mini` | 400K | | | | | | $0.25 | $2 |
57
- | `opencode/gpt-5.2` | 400K | | | | | | $2 | $14 |
58
- | `opencode/gpt-5.2-codex` | 400K | | | | | | $2 | $14 |
59
- | `opencode/gpt-5.3-codex` | 400K | | | | | | $2 | $14 |
60
- | `opencode/gpt-5.3-codex-spark` | 128K | | | | | | $2 | $14 |
61
- | `opencode/gpt-5.4` | 1.1M | | | | | | $3 | $15 |
62
- | `opencode/gpt-5.4-mini` | 400K | | | | | | $0.75 | $5 |
63
- | `opencode/gpt-5.4-nano` | 400K | | | | | | $0.20 | $1 |
64
- | `opencode/gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
65
- | `opencode/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
66
- | `opencode/gpt-5.5-pro` | 1.1M | | | | | | $30 | $180 |
67
- | `opencode/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
68
- | `opencode/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
69
- | `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
70
- | `opencode/minimax-m2.5-free` | 205K | | | | | | | |
71
- | `opencode/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
72
- | `opencode/nemotron-3-super-free` | 205K | | | | | | | |
73
- | `opencode/qwen3.5-plus` | 262K | | | | | | $0.20 | $1 |
74
- | `opencode/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
75
- | `opencode/ring-2.6-1t-free` | 262K | | | | | | | |
35
+ | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
36
+ | --------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
37
+ | `opencode/big-pickle` | 200K | | | | | | — | — |
38
+ | `opencode/claude-haiku-4-5` | 200K | | | | | | $1 | $5 |
39
+ | `opencode/claude-opus-4-1` | 200K | | | | | | $15 | $75 |
40
+ | `opencode/claude-opus-4-5` | 200K | | | | | | $5 | $25 |
41
+ | `opencode/claude-opus-4-6` | 1.0M | | | | | | $5 | $25 |
42
+ | `opencode/claude-opus-4-7` | 1.0M | | | | | | $5 | $25 |
43
+ | `opencode/claude-sonnet-4` | 1.0M | | | | | | $3 | $15 |
44
+ | `opencode/claude-sonnet-4-5` | 1.0M | | | | | | $3 | $15 |
45
+ | `opencode/claude-sonnet-4-6` | 1.0M | | | | | | $3 | $15 |
46
+ | `opencode/deepseek-v4-flash-free` | 1.0M | | | | | | | |
47
+ | `opencode/gemini-3-flash` | 1.0M | | | | | | $0.50 | $3 |
48
+ | `opencode/gemini-3.1-pro` | 1.0M | | | | | | $2 | $12 |
49
+ | `opencode/glm-5` | 205K | | | | | | $1 | $3 |
50
+ | `opencode/glm-5.1` | 205K | | | | | | $1 | $4 |
51
+ | `opencode/gpt-5` | 400K | | | | | | $1 | $9 |
52
+ | `opencode/gpt-5-codex` | 400K | | | | | | $1 | $9 |
53
+ | `opencode/gpt-5-nano` | 400K | | | | | | $0.05 | $0.40 |
54
+ | `opencode/gpt-5.1` | 400K | | | | | | $1 | $9 |
55
+ | `opencode/gpt-5.1-codex` | 400K | | | | | | $1 | $9 |
56
+ | `opencode/gpt-5.1-codex-max` | 400K | | | | | | $1 | $10 |
57
+ | `opencode/gpt-5.1-codex-mini` | 400K | | | | | | $0.25 | $2 |
58
+ | `opencode/gpt-5.2` | 400K | | | | | | $2 | $14 |
59
+ | `opencode/gpt-5.2-codex` | 400K | | | | | | $2 | $14 |
60
+ | `opencode/gpt-5.3-codex` | 400K | | | | | | $2 | $14 |
61
+ | `opencode/gpt-5.3-codex-spark` | 128K | | | | | | $2 | $14 |
62
+ | `opencode/gpt-5.4` | 1.1M | | | | | | $3 | $15 |
63
+ | `opencode/gpt-5.4-mini` | 400K | | | | | | $0.75 | $5 |
64
+ | `opencode/gpt-5.4-nano` | 400K | | | | | | $0.20 | $1 |
65
+ | `opencode/gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
66
+ | `opencode/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
67
+ | `opencode/gpt-5.5-pro` | 1.1M | | | | | | $30 | $180 |
68
+ | `opencode/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
69
+ | `opencode/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
70
+ | `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
71
+ | `opencode/minimax-m2.5-free` | 205K | | | | | | | |
72
+ | `opencode/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
73
+ | `opencode/nemotron-3-super-free` | 205K | | | | | | | |
74
+ | `opencode/qwen3.5-plus` | 262K | | | | | | $0.20 | $1 |
75
+ | `opencode/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
76
+ | `opencode/ring-2.6-1t-free` | 262K | | | | | | — | — |
76
77
 
77
78
  ## Advanced configuration
78
79
 
@@ -0,0 +1,72 @@
1
+ # ![Sarvam AI logo](https://models.dev/logos/sarvam.svg)Sarvam AI
2
+
3
+ Access 2 Sarvam AI models through Mastra's model router. Authentication is handled automatically using the `SARVAM_API_KEY` environment variable.
4
+
5
+ Learn more in the [Sarvam AI documentation](https://docs.sarvam.ai).
6
+
7
+ ```bash
8
+ SARVAM_API_KEY=your-api-key
9
+ ```
10
+
11
+ ```typescript
12
+ import { Agent } from "@mastra/core/agent";
13
+
14
+ const agent = new Agent({
15
+ id: "my-agent",
16
+ name: "My Agent",
17
+ instructions: "You are a helpful assistant",
18
+ model: "sarvam/sarvam-105b"
19
+ });
20
+
21
+ // Generate a response
22
+ const response = await agent.generate("Hello!");
23
+
24
+ // Stream a response
25
+ const stream = await agent.stream("Tell me a story");
26
+ for await (const chunk of stream) {
27
+ console.log(chunk);
28
+ }
29
+ ```
30
+
31
+ > **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Sarvam AI documentation](https://docs.sarvam.ai) for details.
32
+
33
+ ## Models
34
+
35
+ | Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
36
+ | -------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
37
+ | `sarvam/sarvam-105b` | 131K | | | | | | — | — |
38
+ | `sarvam/sarvam-30b` | 66K | | | | | | — | — |
39
+
40
+ ## Advanced configuration
41
+
42
+ ### Custom headers
43
+
44
+ ```typescript
45
+ const agent = new Agent({
46
+ id: "custom-agent",
47
+ name: "custom-agent",
48
+ model: {
49
+ url: "https://api.sarvam.ai/v1",
50
+ id: "sarvam/sarvam-105b",
51
+ apiKey: process.env.SARVAM_API_KEY,
52
+ headers: {
53
+ "X-Custom-Header": "value"
54
+ }
55
+ }
56
+ });
57
+ ```
58
+
59
+ ### Dynamic model selection
60
+
61
+ ```typescript
62
+ const agent = new Agent({
63
+ id: "dynamic-agent",
64
+ name: "Dynamic Agent",
65
+ model: ({ requestContext }) => {
66
+ const useAdvanced = requestContext.task === "complex";
67
+ return useAdvanced
68
+ ? "sarvam/sarvam-30b"
69
+ : "sarvam/sarvam-105b";
70
+ }
71
+ });
72
+ ```
@@ -26,6 +26,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
26
26
  - [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai)
27
27
  - [Cortecs](https://mastra.ai/models/providers/cortecs)
28
28
  - [D.Run (China)](https://mastra.ai/models/providers/drun)
29
+ - [Databricks](https://mastra.ai/models/providers/databricks)
29
30
  - [Deep Infra](https://mastra.ai/models/providers/deepinfra)
30
31
  - [DigitalOcean](https://mastra.ai/models/providers/digitalocean)
31
32
  - [DInference](https://mastra.ai/models/providers/dinference)
@@ -80,6 +81,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
80
81
  - [Qiniu](https://mastra.ai/models/providers/qiniu-ai)
81
82
  - [Regolo AI](https://mastra.ai/models/providers/regolo-ai)
82
83
  - [Requesty](https://mastra.ai/models/providers/requesty)
84
+ - [Sarvam AI](https://mastra.ai/models/providers/sarvam)
83
85
  - [Scaleway](https://mastra.ai/models/providers/scaleway)
84
86
  - [SiliconFlow](https://mastra.ai/models/providers/siliconflow)
85
87
  - [SiliconFlow (China)](https://mastra.ai/models/providers/siliconflow-cn)
@@ -94,6 +94,89 @@ export const agent = new Agent({
94
94
  })
95
95
  ```
96
96
 
97
+ ## Thread signals
98
+
99
+ Use Agent signals to send real-time context into a memory thread. Signals are useful when a user adds input while an agent is already streaming, or when another process needs to add structured context to the thread.
100
+
101
+ A `user-message` signal represents user input. When the target thread is running, Mastra delivers the signal into the active agent loop. When the thread is idle, Mastra starts a stream with the signal as the first input by default.
102
+
103
+ ```typescript
104
+ const subscription = await agent.subscribeToThread({
105
+ resourceId: 'user-123',
106
+ threadId: 'thread-abc',
107
+ })
108
+
109
+ void (async () => {
110
+ for await (const chunk of subscription.stream) {
111
+ console.log(chunk)
112
+ }
113
+ })()
114
+
115
+ agent.sendSignal(
116
+ { type: 'user-message', contents: 'Use the latest customer note too.' },
117
+ {
118
+ resourceId: 'user-123',
119
+ threadId: 'thread-abc',
120
+ ifIdle: {
121
+ streamOptions: {
122
+ maxSteps: 3,
123
+ },
124
+ },
125
+ },
126
+ )
127
+ ```
128
+
129
+ Use a custom signal type for contextual messages that should reach the model as XML-wrapped context instead of normal user input:
130
+
131
+ ```typescript
132
+ agent.sendSignal(
133
+ {
134
+ type: 'system-reminder',
135
+ contents: 'Continue from the previous tool result.',
136
+ attributes: { reminderType: 'tool-result' },
137
+ },
138
+ { resourceId: 'user-123', threadId: 'thread-abc' },
139
+ )
140
+ ```
141
+
142
+ ### `sendSignal(signal, options)`
143
+
144
+ Sends a signal to an active run or memory thread.
145
+
146
+ **signal** (`{ type: 'user-message'; contents: MessageListInput } | { type: string; contents: string }`): \`user-message\` signals are treated as user input. Other signal types are converted to XML context before the next model call.
147
+
148
+ **options.runId** (`string`): Run ID to target directly. Use this when you already know the active run ID.
149
+
150
+ **options.resourceId** (`string`): Resource ID for the memory thread. Required with \`threadId\` for thread-targeted signals.
151
+
152
+ **options.threadId** (`string`): Thread ID to target. Required with \`resourceId\` for thread-targeted signals.
153
+
154
+ **options.ifActive.behavior** (`'deliver' | 'persist' | 'discard'`): Controls what happens when the target thread is active. Defaults to \`deliver\`.
155
+
156
+ **options.ifIdle.behavior** (`'wake' | 'persist' | 'discard'`): Controls what happens when the target thread is idle. Defaults to \`wake\`.
157
+
158
+ **options.ifIdle.streamOptions** (`AgentExecutionOptions`): Options for the stream that starts when \`ifIdle.behavior\` is \`wake\`. Mastra uses the top-level \`resourceId\` and \`threadId\` for memory context.
159
+
160
+ Returns `{ accepted: true, runId: string, signal: CreatedAgentSignal, persisted?: Promise<void> }`. `persisted` is only present for `persist` behavior and resolves when Mastra finishes writing the signal to memory.
161
+
162
+ ### `subscribeToThread(options)`
163
+
164
+ Subscribes to raw stream chunks for a memory thread. Use this before calling `sendSignal()` when you need to render stream output, observe signal echoes, or abort the active run.
165
+
166
+ **options.resourceId** (`string`): Resource ID for the memory thread.
167
+
168
+ **options.threadId** (`string`): Thread ID to subscribe to.
169
+
170
+ Returns an `AgentThreadSubscription` object with these members:
171
+
172
+ **stream** (`AsyncIterable<AgentChunkType>`): Raw agent stream chunks for the subscribed thread.
173
+
174
+ **activeRunId** (`() => string | null`): Returns the active run ID for the thread, or \`null\` when no run is active.
175
+
176
+ **abort** (`() => boolean`): Aborts the active run for the thread. Returns \`true\` when a run was aborted.
177
+
178
+ **unsubscribe** (`() => void`): Stops the subscription without aborting the active run.
179
+
97
180
  ## Constructor parameters
98
181
 
99
182
  **id** (`string`): Unique identifier for the agent. Defaults to \`name\` if not provided.
@@ -44,22 +44,25 @@ then interact with elements using their refs (e.g., @e5).`,
44
44
 
45
45
  **screencast** (`ScreencastOptions`): Configuration for streaming browser frames to Studio.
46
46
 
47
+ **excludeTools** (`BrowserToolName[]`): Tool names to exclude from the browser toolset. Use this to disable specific tools for models that do not support certain capabilities, such as vision.
48
+
47
49
  ## Tools
48
50
 
49
- `AgentBrowser` provides 15 deterministic tools for browser automation. All tools that interact with elements use refs from the accessibility tree snapshot.
51
+ `AgentBrowser` provides 16 deterministic tools for browser automation. All tools that interact with elements use refs from the accessibility tree snapshot.
50
52
 
51
53
  ### Core tools
52
54
 
53
- | Tool | Description |
54
- | ------------------ | ------------------------------------------------- |
55
- | `browser_goto` | Navigate to a URL |
56
- | `browser_snapshot` | Get accessibility tree snapshot with element refs |
57
- | `browser_click` | Click an element by ref |
58
- | `browser_type` | Type text into an element |
59
- | `browser_press` | Press keyboard keys |
60
- | `browser_select` | Select option from dropdown |
61
- | `browser_scroll` | Scroll the page or element |
62
- | `browser_close` | Close the browser |
55
+ | Tool | Description |
56
+ | -------------------- | ------------------------------------------------------------------------------------- |
57
+ | `browser_goto` | Navigate to a URL |
58
+ | `browser_snapshot` | Get accessibility tree snapshot with element refs |
59
+ | `browser_click` | Click an element by ref |
60
+ | `browser_type` | Type text into an element |
61
+ | `browser_press` | Press keyboard keys |
62
+ | `browser_select` | Select option from dropdown |
63
+ | `browser_scroll` | Scroll the page or element |
64
+ | `browser_screenshot` | Capture a screenshot as PNG (viewport by default; set `fullPage: true` for full page) |
65
+ | `browser_close` | Close the browser |
63
66
 
64
67
  ### Extended tools
65
68
 
@@ -73,6 +76,14 @@ then interact with elements using their refs (e.g., @e5).`,
73
76
  | `browser_drag` | Drag and drop elements |
74
77
  | `browser_evaluate` | Execute JavaScript in the page (escape hatch) |
75
78
 
79
+ To exclude specific tools, pass `excludeTools` in the constructor:
80
+
81
+ ```typescript
82
+ const browser = new AgentBrowser({
83
+ excludeTools: ['browser_screenshot'],
84
+ })
85
+ ```
86
+
76
87
  ## Tool reference
77
88
 
78
89
  ### `browser_goto`
@@ -339,6 +350,21 @@ Execute JavaScript in the page context. Use as an escape hatch when other tools
339
350
  | `script` | `string` | JavaScript to execute (required) |
340
351
  | `returnValue` | `boolean` | Whether to return the result (optional) |
341
352
 
353
+ ### `browser_screenshot`
354
+
355
+ Capture a screenshot of the current page as PNG (viewport by default; set `fullPage: true` for full-page capture). Returns image content that vision-capable models can interpret directly. Use `browser_snapshot` when you only need text or structured data.
356
+
357
+ ```text
358
+ // Viewport only (default)
359
+
360
+ // Full scrollable page
361
+ { "fullPage": true }
362
+ ```
363
+
364
+ | Parameter | Type | Description |
365
+ | ---------- | --------- | ---------------------------------------------------------------------------------------- |
366
+ | `fullPage` | `boolean` | Capture the full scrollable page instead of just the viewport (optional, default: false) |
367
+
342
368
  ### `browser_close`
343
369
 
344
370
  Close the browser and clean up resources.