@mastra/mcp-docs-server 1.2.19-alpha.4 → 1.2.19-alpha.6
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.
- package/.docs/docs/observability/integrations/exporters/mastra-storage.md +11 -8
- package/.docs/integrations/sandboxes/e2b.md +2 -0
- package/.docs/integrations/tools/parallel.md +240 -0
- package/.docs/integrations.md +1 -0
- package/.docs/models/gateways/netlify.md +2 -1
- package/.docs/models/gateways/openrouter.md +1 -1
- package/.docs/models/gateways/vercel.md +2 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/crof.md +3 -8
- package/.docs/models/providers/edenai.md +9 -8
- package/.docs/models/providers/kilo.md +7 -6
- package/.docs/models/providers/llmgateway-providers.md +5 -3
- package/.docs/models/providers/llmgateway.md +1 -3
- package/.docs/models/providers/nano-gpt.md +3 -2
- package/.docs/models/providers/nvidia.md +3 -1
- package/.docs/models/providers/ofox.md +2 -1
- package/.docs/reference/ai-sdk/handle-chat-stream.md +11 -0
- package/.docs/reference/ai-sdk/with-sse-heartbeat.md +47 -0
- package/.docs/reference/index.md +1 -0
- package/.docs/reference/streaming/ChunkType.md +29 -1
- package/CHANGELOG.md +8 -0
- package/package.json +4 -4
|
@@ -116,14 +116,17 @@ If you set the strategy to `'auto'`, the `MastraStorageExporter` automatically s
|
|
|
116
116
|
|
|
117
117
|
### Providers with Observability Support
|
|
118
118
|
|
|
119
|
-
| Storage Provider
|
|
120
|
-
|
|
|
121
|
-
| **[ClickHouse](https://mastra.ai/integrations/databases/clickhouse)**
|
|
122
|
-
| **[
|
|
123
|
-
| **[
|
|
124
|
-
| **[
|
|
125
|
-
| **[
|
|
126
|
-
| **[
|
|
119
|
+
| Storage Provider | Preferred Strategy | Supported Strategies | Recommended Use |
|
|
120
|
+
| ----------------------------------------------------------------------------- | ------------------ | ------------------------------- | ------------------------------------- |
|
|
121
|
+
| **[ClickHouse](https://mastra.ai/integrations/databases/clickhouse)** | insert-only | insert-only | Production (high-volume) |
|
|
122
|
+
| **[PostgresStore](https://mastra.ai/integrations/databases/postgresql)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
123
|
+
| **[PostgresStoreVNext](https://mastra.ai/integrations/databases/postgresql)** | insert-only | insert-only | Production (high-volume) |
|
|
124
|
+
| **[MSSQL](https://mastra.ai/integrations/databases/mssql)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
125
|
+
| **[MongoDB](https://mastra.ai/integrations/databases/mongodb)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
126
|
+
| **[OracleDB](https://mastra.ai/integrations/databases/oracledb)** | batch-with-updates | batch-with-updates, insert-only | Production (low volume) |
|
|
127
|
+
| **[libSQL](https://mastra.ai/integrations/databases/libsql)** | batch-with-updates | batch-with-updates, insert-only | Default storage, good for development |
|
|
128
|
+
|
|
129
|
+
> **Note:** Under `insert-only`, only completed spans are persisted, and span start and update events are ignored. A trace therefore becomes visible in Studio only after its root span ends, and filtering traces by `status: 'running'` returns no results. `PostgresStoreVNext` supports `insert-only` exclusively, so an explicit `realtime` or `batch-with-updates` strategy falls back to `insert-only`.
|
|
127
130
|
|
|
128
131
|
### Providers without Observability Support
|
|
129
132
|
|
|
@@ -60,6 +60,8 @@ const agent = new Agent({
|
|
|
60
60
|
|
|
61
61
|
**timeout** (`number`): Execution timeout in milliseconds (Default: `300000 (5 minutes)`)
|
|
62
62
|
|
|
63
|
+
**lifecycle** (`SandboxLifecycle`): Controls what happens when the sandbox timeout is reached. Defaults to pausing the sandbox so the next start resumes it. Pass { onTimeout: 'kill' } to destroy idle sandboxes instead, which suits stateless workspaces whose data is persisted outside the sandbox. An explicit stop() always pauses, regardless of this setting. (Default: `{ onTimeout: 'pause' }`)
|
|
64
|
+
|
|
63
65
|
**template** (`string | TemplateBuilder | function`): Sandbox template specification. Can be a template ID string, a TemplateBuilder, or a function that customizes the default template.
|
|
64
66
|
|
|
65
67
|
**env** (`Record<string, string>`): Environment variables to set in the sandbox
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
|
+
|
|
3
|
+
# Parallel
|
|
4
|
+
|
|
5
|
+
The `@mastra/parallel` package exposes [Parallel Search](https://docs.parallel.ai/search/search-quickstart) and [Extract](https://docs.parallel.ai/search/extract-quickstart) as Mastra-compatible tools. Each factory returns a tool created with [`createTool()`](https://mastra.ai/reference/tools/create-tool) and a typed Zod input and output schema.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
**npm**:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @mastra/parallel parallel-web zod
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**pnpm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @mastra/parallel parallel-web zod
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Yarn**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn add @mastra/parallel parallel-web zod
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Bun**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun add @mastra/parallel parallel-web zod
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Set `PARALLEL_API_KEY` in your environment. You can also pass an API key directly to any factory.
|
|
34
|
+
|
|
35
|
+
## Quick start
|
|
36
|
+
|
|
37
|
+
Use `createParallelTools()` to create both tools with shared client configuration:
|
|
38
|
+
|
|
39
|
+
```typescript
|
|
40
|
+
import { createParallelTools } from '@mastra/parallel'
|
|
41
|
+
|
|
42
|
+
export const parallelTools = createParallelTools()
|
|
43
|
+
// Or pass an explicit API key:
|
|
44
|
+
// export const parallelTools = createParallelTools({ apiKey: 'parallel-api-key' })
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
The returned object contains `parallelSearch` and `parallelExtract`.
|
|
48
|
+
|
|
49
|
+
Create either tool separately when an agent doesn't need both:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { createParallelExtractTool, createParallelSearchTool } from '@mastra/parallel'
|
|
53
|
+
|
|
54
|
+
export const searchTool = createParallelSearchTool()
|
|
55
|
+
export const extractTool = createParallelExtractTool({ apiKey: 'parallel-api-key' })
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The client isn't initialized until the tool executes. A missing API key therefore fails at execution time with a configuration error.
|
|
59
|
+
|
|
60
|
+
## Configuration
|
|
61
|
+
|
|
62
|
+
All factories accept `ParallelClientOptions`, an alias of `ClientOptions` from the official `parallel-web` client:
|
|
63
|
+
|
|
64
|
+
**apiKey** (`string`): Parallel API key. Falls back to the PARALLEL\_API\_KEY environment variable.
|
|
65
|
+
|
|
66
|
+
**baseURL** (`string`): Override the Parallel API base URL. The client also reads PARALLEL\_BASE\_URL.
|
|
67
|
+
|
|
68
|
+
**timeout** (`number`): Timeout in milliseconds for one request attempt.
|
|
69
|
+
|
|
70
|
+
**fetch** (`Fetch`): Custom fetch implementation.
|
|
71
|
+
|
|
72
|
+
**fetchOptions** (`RequestInit`): Additional options passed to each fetch call.
|
|
73
|
+
|
|
74
|
+
**maxRetries** (`number`): Maximum retries for temporary failures. (Default: `2`)
|
|
75
|
+
|
|
76
|
+
**defaultHeaders** (`HeadersLike`): Headers included with every request.
|
|
77
|
+
|
|
78
|
+
**defaultQuery** (`Record<string, string | undefined>`): Query parameters included with every request.
|
|
79
|
+
|
|
80
|
+
**logLevel** (`LogLevel`): Client log level. Falls back to PARALLEL\_LOG, then warn.
|
|
81
|
+
|
|
82
|
+
**logger** (`Logger`): Client logger implementation.
|
|
83
|
+
|
|
84
|
+
The package also exports `getParallelClient()` for applications that need the configured official client directly.
|
|
85
|
+
|
|
86
|
+
## `createParallelSearchTool()`
|
|
87
|
+
|
|
88
|
+
Creates the `parallel-search` tool. Search returns ranked URLs and excerpts focused on the supplied queries and objective.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
import { createParallelSearchTool } from '@mastra/parallel'
|
|
92
|
+
|
|
93
|
+
const searchTool = createParallelSearchTool()
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Search input
|
|
97
|
+
|
|
98
|
+
**searchQueries** (`string[]`): One or more concise keyword queries. Parallel recommends 2-3 queries of 3-6 words each.
|
|
99
|
+
|
|
100
|
+
**objective** (`string`): Self-contained description of the goal driving the search.
|
|
101
|
+
|
|
102
|
+
**mode** (`'turbo' | 'fast' | 'basic' | 'advanced'`): Search mode. (Default: `'advanced'`)
|
|
103
|
+
|
|
104
|
+
**clientModel** (`string`): Model that will consume the results. Parallel uses it to tailor response defaults.
|
|
105
|
+
|
|
106
|
+
**maxResults** (`number`): Maximum number of results to return.
|
|
107
|
+
|
|
108
|
+
**excerptMaxCharsPerResult** (`number`): Maximum excerpt characters for each result.
|
|
109
|
+
|
|
110
|
+
**maxCharsTotal** (`number`): Maximum excerpt characters across all results.
|
|
111
|
+
|
|
112
|
+
**location** (`string`): ISO 3166-1 alpha-2 country code for geo-targeted results.
|
|
113
|
+
|
|
114
|
+
**includeDomains** (`string[]`): Only return results from these domains. Include and exclude lists can contain at most 200 domains combined.
|
|
115
|
+
|
|
116
|
+
**excludeDomains** (`string[]`): Exclude results from these domains. Include and exclude lists can contain at most 200 domains combined.
|
|
117
|
+
|
|
118
|
+
**afterDate** (`string`): Only return content published on or after this YYYY-MM-DD date.
|
|
119
|
+
|
|
120
|
+
**fetchPolicy** (`FetchPolicy`): Controls live fetching and cached-content fallback.
|
|
121
|
+
|
|
122
|
+
**fetchPolicy.maxAgeSeconds** (`number`): Maximum cached-content age before a live fetch. The minimum is 600 seconds.
|
|
123
|
+
|
|
124
|
+
**fetchPolicy.timeoutSeconds** (`number`): Timeout for a live fetch.
|
|
125
|
+
|
|
126
|
+
**fetchPolicy.disableCacheFallback** (`boolean`): Return an error instead of older cached content when a live fetch fails.
|
|
127
|
+
|
|
128
|
+
**sessionId** (`string`): Session identifier shared across related Search and Extract calls.
|
|
129
|
+
|
|
130
|
+
### Search output
|
|
131
|
+
|
|
132
|
+
Search returns `searchId`, `sessionId`, and `results`. Optional `usage` and `warnings` arrays preserve metadata from Parallel.
|
|
133
|
+
|
|
134
|
+
**searchId** (`string`): Parallel Search request ID.
|
|
135
|
+
|
|
136
|
+
**sessionId** (`string`): Session ID returned by Parallel.
|
|
137
|
+
|
|
138
|
+
**results** (`SearchResult[]`): Results ordered by decreasing relevance.
|
|
139
|
+
|
|
140
|
+
**results.url** (`string`): Result URL.
|
|
141
|
+
|
|
142
|
+
**results.title** (`string`): Page title.
|
|
143
|
+
|
|
144
|
+
**results.publishDate** (`string`): Page publication date.
|
|
145
|
+
|
|
146
|
+
**results.excerpts** (`string[]`): Relevant Markdown excerpts.
|
|
147
|
+
|
|
148
|
+
**usage** (`UsageItem[]`): SKU names and counts for the request.
|
|
149
|
+
|
|
150
|
+
**warnings** (`Warning[]`): Validation or request warnings from Parallel.
|
|
151
|
+
|
|
152
|
+
## `createParallelExtractTool()`
|
|
153
|
+
|
|
154
|
+
Creates the `parallel-extract` tool. Extract returns relevant excerpts or full content for up to 20 public URLs and reports per-URL failures separately.
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
import { createParallelExtractTool } from '@mastra/parallel'
|
|
158
|
+
|
|
159
|
+
const extractTool = createParallelExtractTool()
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Extract input
|
|
163
|
+
|
|
164
|
+
**urls** (`string[]`): One to 20 URLs to extract.
|
|
165
|
+
|
|
166
|
+
**objective** (`string`): Information to focus on while extracting.
|
|
167
|
+
|
|
168
|
+
**searchQueries** (`string[]`): Keyword queries used with the objective to focus excerpts.
|
|
169
|
+
|
|
170
|
+
**clientModel** (`string`): Model that will consume the results. Parallel uses it to tailor response defaults.
|
|
171
|
+
|
|
172
|
+
**excerptMaxCharsPerResult** (`number`): Maximum excerpt characters for each URL.
|
|
173
|
+
|
|
174
|
+
**fullContent** (`boolean | number`): Return full page content. Pass a number to cap characters for each URL.
|
|
175
|
+
|
|
176
|
+
**maxCharsTotal** (`number`): Maximum excerpt characters across all results.
|
|
177
|
+
|
|
178
|
+
**fetchPolicy** (`FetchPolicy`): Controls live fetching and cached-content fallback.
|
|
179
|
+
|
|
180
|
+
**fetchPolicy.maxAgeSeconds** (`number`): Maximum cached-content age before a live fetch. The minimum is 600 seconds.
|
|
181
|
+
|
|
182
|
+
**fetchPolicy.timeoutSeconds** (`number`): Timeout for a live fetch.
|
|
183
|
+
|
|
184
|
+
**fetchPolicy.disableCacheFallback** (`boolean`): Return an error instead of older cached content when a live fetch fails.
|
|
185
|
+
|
|
186
|
+
**sessionId** (`string`): Session identifier shared across related Search and Extract calls.
|
|
187
|
+
|
|
188
|
+
### Extract output
|
|
189
|
+
|
|
190
|
+
**extractId** (`string`): Parallel Extract request ID.
|
|
191
|
+
|
|
192
|
+
**sessionId** (`string`): Session ID returned by Parallel.
|
|
193
|
+
|
|
194
|
+
**results** (`ExtractResult[]`): Successful URL results.
|
|
195
|
+
|
|
196
|
+
**results.url** (`string`): Extracted URL.
|
|
197
|
+
|
|
198
|
+
**results.title** (`string`): Page title.
|
|
199
|
+
|
|
200
|
+
**results.publishDate** (`string`): Page publication date.
|
|
201
|
+
|
|
202
|
+
**results.excerpts** (`string[]`): Relevant Markdown excerpts.
|
|
203
|
+
|
|
204
|
+
**results.fullContent** (`string`): Full Markdown content when requested.
|
|
205
|
+
|
|
206
|
+
**errors** (`ExtractError[]`): Requested URLs that weren't returned as results.
|
|
207
|
+
|
|
208
|
+
**errors.url** (`string`): URL that failed.
|
|
209
|
+
|
|
210
|
+
**errors.errorType** (`string`): Parallel error type.
|
|
211
|
+
|
|
212
|
+
**errors.httpStatusCode** (`number`): HTTP status code when available.
|
|
213
|
+
|
|
214
|
+
**errors.content** (`string`): Response content when available.
|
|
215
|
+
|
|
216
|
+
**usage** (`UsageItem[]`): SKU names and counts for the request.
|
|
217
|
+
|
|
218
|
+
**warnings** (`Warning[]`): Validation or request warnings from Parallel.
|
|
219
|
+
|
|
220
|
+
## Use the tools with an agent
|
|
221
|
+
|
|
222
|
+
```typescript
|
|
223
|
+
import { Agent } from '@mastra/core/agent'
|
|
224
|
+
import { createParallelTools } from '@mastra/parallel'
|
|
225
|
+
|
|
226
|
+
export const researchAgent = new Agent({
|
|
227
|
+
id: 'research-agent',
|
|
228
|
+
name: 'Research Agent',
|
|
229
|
+
model: 'anthropic/claude-sonnet-4-6',
|
|
230
|
+
instructions:
|
|
231
|
+
'Search the web for current sources, then extract relevant content from the best pages.',
|
|
232
|
+
tools: createParallelTools(),
|
|
233
|
+
})
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Related
|
|
237
|
+
|
|
238
|
+
- [Parallel Search documentation](https://docs.parallel.ai/search/search-quickstart)
|
|
239
|
+
- [Parallel Extract documentation](https://docs.parallel.ai/search/extract-quickstart)
|
|
240
|
+
- [`createTool()` reference](https://mastra.ai/reference/tools/create-tool)
|
package/.docs/integrations.md
CHANGED
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
|
|
102
102
|
- [Bright Data](https://mastra.ai/integrations/tools/brightdata)
|
|
103
103
|
- [Firecrawl](https://mastra.ai/integrations/tools/firecrawl)
|
|
104
|
+
- [Parallel](https://mastra.ai/integrations/tools/parallel)
|
|
104
105
|
- [Perplexity](https://mastra.ai/integrations/tools/perplexity)
|
|
105
106
|
- [Tavily](https://mastra.ai/integrations/tools/tavily)
|
|
106
107
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Netlify
|
|
4
4
|
|
|
5
|
-
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access
|
|
5
|
+
Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 228 models through Mastra's model router.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
|
|
8
8
|
|
|
@@ -238,6 +238,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
238
238
|
| `openrouter/stepfun/step-3.7-flash` |
|
|
239
239
|
| `openrouter/tencent/hy-mt2-1.8b` |
|
|
240
240
|
| `openrouter/tencent/hy-mt2-30b-a3b` |
|
|
241
|
+
| `openrouter/tencent/hy-mt2-7b` |
|
|
241
242
|
| `openrouter/tencent/hy3` |
|
|
242
243
|
| `openrouter/thedrummer/cydonia-24b-v4.1` |
|
|
243
244
|
| `openrouter/thedrummer/rocinante-12b` |
|
|
@@ -269,7 +269,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
269
269
|
| `openai/gpt-chat-latest` |
|
|
270
270
|
| `openai/gpt-oss-120b` |
|
|
271
271
|
| `openai/gpt-oss-20b` |
|
|
272
|
-
| `openai/gpt-oss-20b:free` |
|
|
273
272
|
| `openai/gpt-oss-safeguard-20b` |
|
|
274
273
|
| `openai/o1` |
|
|
275
274
|
| `openai/o1-pro` |
|
|
@@ -360,6 +359,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
360
359
|
| `tencent/hunyuan-a13b-instruct` |
|
|
361
360
|
| `tencent/hy-mt2-1.8b` |
|
|
362
361
|
| `tencent/hy-mt2-30b-a3b` |
|
|
362
|
+
| `tencent/hy-mt2-7b` |
|
|
363
363
|
| `tencent/hy3` |
|
|
364
364
|
| `tencent/hy3-preview` |
|
|
365
365
|
| `thedrummer/cydonia-24b-v4.1` |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Vercel
|
|
4
4
|
|
|
5
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
5
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 352 models through Mastra's model router.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
8
8
|
|
|
@@ -235,6 +235,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
235
235
|
| `nvidia/nemotron-3-super-120b-a12b` |
|
|
236
236
|
| `nvidia/nemotron-3-ultra-550b-a55b` |
|
|
237
237
|
| `nvidia/nemotron-3.5-lightning` |
|
|
238
|
+
| `nvidia/nemotron-3.5-lightning-free` |
|
|
238
239
|
| `nvidia/nemotron-nano-12b-v2-vl` |
|
|
239
240
|
| `nvidia/nemotron-nano-9b-v2` |
|
|
240
241
|
| `openai/gpt-3.5-turbo` |
|
package/.docs/models/index.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Model Providers
|
|
4
4
|
|
|
5
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
5
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 6770 models from 180 providers through a single API.
|
|
6
6
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# CrofAI
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 21 CrofAI models through Mastra's model router. Authentication is handled automatically using the `CROF_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [CrofAI documentation](https://crof.ai/docs).
|
|
8
8
|
|
|
@@ -42,26 +42,21 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `crof/deepseek-v4-pro` | 1.0M | | | | | | $0.35 | $0.80 |
|
|
43
43
|
| `crof/deepseek-v4-pro-lightning` | 1.0M | | | | | | $0.80 | $2 |
|
|
44
44
|
| `crof/gemma-4-31b-it` | 262K | | | | | | $0.10 | $0.30 |
|
|
45
|
-
| `crof/glm-4.7` | 203K | | | | | | $0.25 | $1 |
|
|
46
|
-
| `crof/glm-4.7-flash` | 203K | | | | | | $0.04 | $0.30 |
|
|
47
|
-
| `crof/glm-5` | 203K | | | | | | $0.48 | $2 |
|
|
48
45
|
| `crof/glm-5.1` | 203K | | | | | | $0.45 | $2 |
|
|
49
46
|
| `crof/glm-5.2` | 1.0M | | | | | | $0.30 | $1 |
|
|
50
47
|
| `crof/greg-1-mini` | 229K | | | | | | $0.07 | $0.15 |
|
|
51
48
|
| `crof/greg-2-super` | 229K | | | | | | $2 | $5 |
|
|
52
49
|
| `crof/greg-2-ultra` | 229K | | | | | | $3 | $10 |
|
|
53
50
|
| `crof/greg-rp` | 229K | | | | | | $0.10 | $0.30 |
|
|
54
|
-
| `crof/kimi-k2.5` | 262K | | | | | | $0.35 | $2 |
|
|
55
|
-
| `crof/kimi-k2.5-lightning` | 131K | | | | | | $1 | $3 |
|
|
56
51
|
| `crof/kimi-k2.6` | 262K | | | | | | $0.50 | $2 |
|
|
57
52
|
| `crof/kimi-k2.7-code` | 262K | | | | | | $0.55 | $2 |
|
|
58
53
|
| `crof/kimi-k3` | 1.0M | | | | | | $2 | $8 |
|
|
59
54
|
| `crof/kimi-k3-eco` | 1.0M | | | | | | $1 | $4 |
|
|
60
55
|
| `crof/mimo-v2.5-pro` | 1.0M | | | | | | $0.40 | $0.80 |
|
|
61
|
-
| `crof/minimax-m2.5` | 205K | | | | | | $0.11 | $0.95 |
|
|
62
56
|
| `crof/qwen3.5-397b-a17b` | 262K | | | | | | $0.35 | $2 |
|
|
63
57
|
| `crof/qwen3.5-9b` | 262K | | | | | | $0.04 | $0.15 |
|
|
64
58
|
| `crof/qwen3.6-27b` | 262K | | | | | | $0.20 | $2 |
|
|
59
|
+
| `crof/qwen3.8-27b` | 262K | | | | | | $0.25 | $2 |
|
|
65
60
|
|
|
66
61
|
## Advanced configuration
|
|
67
62
|
|
|
@@ -91,7 +86,7 @@ const agent = new Agent({
|
|
|
91
86
|
model: ({ requestContext }) => {
|
|
92
87
|
const useAdvanced = requestContext.task === "complex";
|
|
93
88
|
return useAdvanced
|
|
94
|
-
? "crof/qwen3.
|
|
89
|
+
? "crof/qwen3.8-27b"
|
|
95
90
|
: "crof/deepseek-v3.2";
|
|
96
91
|
}
|
|
97
92
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Eden AI
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 234 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Eden AI documentation](https://docs.edenai.co).
|
|
8
8
|
|
|
@@ -97,10 +97,10 @@ for await (const chunk of stream) {
|
|
|
97
97
|
| `edenai/deepinfra/zai-org/GLM-4.7-Flash` | 203K | | | | | | $0.06 | $0.40 |
|
|
98
98
|
| `edenai/deepseek/deepseek-chat` | 131K | | | | | | $0.28 | $0.42 |
|
|
99
99
|
| `edenai/deepseek/deepseek-reasoner` | 131K | | | | | | $0.28 | $0.42 |
|
|
100
|
-
| `edenai/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.
|
|
100
|
+
| `edenai/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.44 | $1 |
|
|
101
101
|
| `edenai/deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.22 | $0.66 |
|
|
102
|
-
| `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $
|
|
103
|
-
| `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.
|
|
102
|
+
| `edenai/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $4 |
|
|
103
|
+
| `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.22 | $0.66 |
|
|
104
104
|
| `edenai/fireworks_ai/accounts/fireworks/models/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
|
|
105
105
|
| `edenai/fireworks_ai/accounts/fireworks/models/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
106
106
|
| `edenai/fireworks_ai/accounts/fireworks/models/gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
|
|
@@ -154,6 +154,7 @@ for await (const chunk of stream) {
|
|
|
154
154
|
| `edenai/moonshot/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
155
155
|
| `edenai/moonshot/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
156
156
|
| `edenai/moonshot/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
157
|
+
| `edenai/nebius/deepseek-ai/DeepSeek-V4-Flash-0731` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
157
158
|
| `edenai/nebius/meta-llama/Llama-3.3-70B-Instruct` | 131K | | | | | | $0.13 | $0.40 |
|
|
158
159
|
| `edenai/nebius/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.30 | $0.90 |
|
|
159
160
|
| `edenai/nebius/nvidia/Nemotron-3-Ultra-550b-a55b` | 1.0M | | | | | | $1 | $3 |
|
|
@@ -183,9 +184,9 @@ for await (const chunk of stream) {
|
|
|
183
184
|
| `edenai/openai/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
|
|
184
185
|
| `edenai/openai/gpt-5.5-pro` | 1.1M | | | | | | $30 | $180 |
|
|
185
186
|
| `edenai/openai/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
|
|
186
|
-
| `edenai/openai/gpt-5.6-sol` | 1.1M | | | | | | $
|
|
187
|
+
| `edenai/openai/gpt-5.6-sol` | 1.1M | | | | | | $4 | $20 |
|
|
187
188
|
| `edenai/openai/gpt-5.6-terra` | 1.1M | | | | | | $2 | $12 |
|
|
188
|
-
| `edenai/openai/gpt-latest` | 1.1M | | | | | | $
|
|
189
|
+
| `edenai/openai/gpt-latest` | 1.1M | | | | | | $4 | $20 |
|
|
189
190
|
| `edenai/openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
|
|
190
191
|
| `edenai/openai/gpt-pro-latest` | 1.1M | | | | | | $30 | $180 |
|
|
191
192
|
| `edenai/openai/o1` | 200K | | | | | | $15 | $60 |
|
|
@@ -200,8 +201,8 @@ for await (const chunk of stream) {
|
|
|
200
201
|
| `edenai/perplexityai/sonar-deep-research` | 128K | | | | | | $2 | $8 |
|
|
201
202
|
| `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
|
|
202
203
|
| `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
|
|
203
|
-
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.
|
|
204
|
-
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.
|
|
204
|
+
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.18 | $0.53 |
|
|
205
|
+
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.63 | $2 |
|
|
205
206
|
| `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
|
|
206
207
|
| `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
|
|
207
208
|
| `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Kilo Gateway
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 367 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Kilo Gateway documentation](https://kilo.ai).
|
|
8
8
|
|
|
@@ -40,7 +40,7 @@ for await (const chunk of stream) {
|
|
|
40
40
|
| `kilo/~anthropic/claude-haiku-latest` | 200K | | | | | | $1 | $5 |
|
|
41
41
|
| `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $5 | $25 |
|
|
42
42
|
| `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
43
|
-
| `kilo/~deepseek/deepseek-v4-flash-latest` |
|
|
43
|
+
| `kilo/~deepseek/deepseek-v4-flash-latest` | 262K | | | | | | $0.06 | $0.13 |
|
|
44
44
|
| `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.38 | $2 |
|
|
45
45
|
| `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
46
46
|
| `kilo/~moonshotai/kimi-latest` | 975K | | | | | | $3 | $13 |
|
|
@@ -94,7 +94,7 @@ for await (const chunk of stream) {
|
|
|
94
94
|
| `kilo/cohere/north-mini-code:free` | 256K | | | | | | — | — |
|
|
95
95
|
| `kilo/deepseek/deepseek-chat` | 128K | | | | | | $0.40 | $1 |
|
|
96
96
|
| `kilo/deepseek/deepseek-chat-v3-0324` | 164K | | | | | | $0.27 | $1 |
|
|
97
|
-
| `kilo/deepseek/deepseek-chat-v3.1` |
|
|
97
|
+
| `kilo/deepseek/deepseek-chat-v3.1` | 161K | | | | | | $0.27 | $1 |
|
|
98
98
|
| `kilo/deepseek/deepseek-r1` | 64K | | | | | | $0.70 | $3 |
|
|
99
99
|
| `kilo/deepseek/deepseek-r1-0528` | 164K | | | | | | $0.70 | $3 |
|
|
100
100
|
| `kilo/deepseek/deepseek-r1-distill-llama-70b` | 8K | | | | | | $0.80 | $0.80 |
|
|
@@ -102,7 +102,7 @@ for await (const chunk of stream) {
|
|
|
102
102
|
| `kilo/deepseek/deepseek-v3.2` | 164K | | | | | | $0.27 | $0.40 |
|
|
103
103
|
| `kilo/deepseek/deepseek-v3.2-exp` | 164K | | | | | | $0.27 | $0.41 |
|
|
104
104
|
| `kilo/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
105
|
-
| `kilo/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.
|
|
105
|
+
| `kilo/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.44 | $1 |
|
|
106
106
|
| `kilo/deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.22 | $0.66 |
|
|
107
107
|
| `kilo/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $2 | $3 |
|
|
108
108
|
| `kilo/deepseek/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $4 |
|
|
@@ -175,7 +175,7 @@ for await (const chunk of stream) {
|
|
|
175
175
|
| `kilo/minimax/minimax-m2` | 205K | | | | | | $0.30 | $1 |
|
|
176
176
|
| `kilo/minimax/minimax-m2-her` | 66K | | | | | | $0.30 | $1 |
|
|
177
177
|
| `kilo/minimax/minimax-m2.1` | 205K | | | | | | $0.30 | $1 |
|
|
178
|
-
| `kilo/minimax/minimax-m2.5` |
|
|
178
|
+
| `kilo/minimax/minimax-m2.5` | 200K | | | | | | $0.30 | $1 |
|
|
179
179
|
| `kilo/minimax/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
|
|
180
180
|
| `kilo/minimax/minimax-m3` | 524K | | | | | | $0.30 | $1 |
|
|
181
181
|
| `kilo/mistralai/codestral-2508` | 256K | | | | | | $0.30 | $0.90 |
|
|
@@ -343,7 +343,7 @@ for await (const chunk of stream) {
|
|
|
343
343
|
| `kilo/qwen/qwen3.7-max` | 1.0M | | | | | | $1 | $4 |
|
|
344
344
|
| `kilo/qwen/qwen3.7-plus` | 1.0M | | | | | | $0.32 | $1 |
|
|
345
345
|
| `kilo/qwen/qwen3.8-2.4t-a95b` | 1.0M | | | | | | $2 | $6 |
|
|
346
|
-
| `kilo/qwen/qwen3.8-27b` | 262K | | | | | | $0.
|
|
346
|
+
| `kilo/qwen/qwen3.8-27b` | 262K | | | | | | $0.50 | $3 |
|
|
347
347
|
| `kilo/qwen/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
348
348
|
| `kilo/rekaai/reka-edge` | 16K | | | | | | $0.10 | $0.10 |
|
|
349
349
|
| `kilo/rekaai/reka-flash-3` | 66K | | | | | | $0.10 | $0.20 |
|
|
@@ -366,6 +366,7 @@ for await (const chunk of stream) {
|
|
|
366
366
|
| `kilo/tencent/hunyuan-a13b-instruct` | 131K | | | | | | $0.14 | $0.57 |
|
|
367
367
|
| `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
|
|
368
368
|
| `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
|
|
369
|
+
| `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
|
|
369
370
|
| `kilo/tencent/hy3` | 262K | | | | | | $0.13 | $0.53 |
|
|
370
371
|
| `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
|
|
371
372
|
| `kilo/tencent/hy3:free` | 262K | | | | | | — | — |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# LLM Gateway
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 371 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
|
|
8
8
|
|
|
@@ -162,6 +162,8 @@ for await (const chunk of stream) {
|
|
|
162
162
|
| `llmgateway-providers/deepinfra/hy3` | 262K | | | | | | $0.14 | $0.58 |
|
|
163
163
|
| `llmgateway-providers/deepinfra/kimi-k2.5` | 256K | | | | | | $0.45 | $2 |
|
|
164
164
|
| `llmgateway-providers/deepinfra/ling-3.0-flash` | 262K | | | | | | $0.06 | $0.18 |
|
|
165
|
+
| `llmgateway-providers/deepinfra/mimo-v2.5` | 262K | | | | | | $0.40 | $2 |
|
|
166
|
+
| `llmgateway-providers/deepinfra/mimo-v2.5-pro` | 1.0M | | | | | | $1 | $3 |
|
|
165
167
|
| `llmgateway-providers/deepinfra/nemotron-3-ultra-550b` | 262K | | | | | | $0.50 | $2 |
|
|
166
168
|
| `llmgateway-providers/deepinfra/qwen3-vl-235b-a22b-instruct` | 262K | | | | | | $0.20 | $0.88 |
|
|
167
169
|
| `llmgateway-providers/deepinfra/qwen3-vl-30b-a3b-instruct` | 262K | | | | | | $0.15 | $0.60 |
|
|
@@ -283,6 +285,8 @@ for await (const chunk of stream) {
|
|
|
283
285
|
| `llmgateway-providers/novita/llama-3.3-70b-instruct` | 131K | | | | | | $0.14 | $0.40 |
|
|
284
286
|
| `llmgateway-providers/novita/llama-4-maverick-17b-instruct` | 1.0M | | | | | | $0.27 | $0.85 |
|
|
285
287
|
| `llmgateway-providers/novita/llama-4-scout-17b-instruct` | 131K | | | | | | $0.18 | $0.59 |
|
|
288
|
+
| `llmgateway-providers/novita/mimo-v2.5` | 1.0M | | | | | | $0.17 | $0.34 |
|
|
289
|
+
| `llmgateway-providers/novita/mimo-v2.5-pro` | 1.0M | | | | | | $0.52 | $1 |
|
|
286
290
|
| `llmgateway-providers/novita/minimax-m2.1` | 205K | | | | | | $0.30 | $1 |
|
|
287
291
|
| `llmgateway-providers/novita/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
288
292
|
| `llmgateway-providers/novita/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -308,9 +312,7 @@ for await (const chunk of stream) {
|
|
|
308
312
|
| `llmgateway-providers/openai/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
309
313
|
| `llmgateway-providers/openai/gpt-4o` | 128K | | | | | | $3 | $10 |
|
|
310
314
|
| `llmgateway-providers/openai/gpt-4o-mini` | 128K | | | | | | $0.15 | $0.60 |
|
|
311
|
-
| `llmgateway-providers/openai/gpt-4o-mini-search-preview` | 128K | | | | | | $0.15 | $0.60 |
|
|
312
315
|
| `llmgateway-providers/openai/gpt-4o-mini-transcribe` | 16K | | | | | | $1 | $5 |
|
|
313
|
-
| `llmgateway-providers/openai/gpt-4o-search-preview` | 128K | | | | | | $3 | $10 |
|
|
314
316
|
| `llmgateway-providers/openai/gpt-4o-transcribe` | 16K | | | | | | $3 | $10 |
|
|
315
317
|
| `llmgateway-providers/openai/gpt-5` | 400K | | | | | | $1 | $10 |
|
|
316
318
|
| `llmgateway-providers/openai/gpt-5-mini` | 400K | | | | | | $0.25 | $2 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# DevPass (LLM Gateway)
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 187 DevPass (LLM Gateway) models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [DevPass (LLM Gateway) documentation](https://llmgateway.io/docs).
|
|
8
8
|
|
|
@@ -97,9 +97,7 @@ for await (const chunk of stream) {
|
|
|
97
97
|
| `llmgateway/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
98
98
|
| `llmgateway/gpt-4o` | 128K | | | | | | $3 | $10 |
|
|
99
99
|
| `llmgateway/gpt-4o-mini` | 128K | | | | | | $0.15 | $0.60 |
|
|
100
|
-
| `llmgateway/gpt-4o-mini-search-preview` | 128K | | | | | | $0.15 | $0.60 |
|
|
101
100
|
| `llmgateway/gpt-4o-mini-transcribe` | 16K | | | | | | $1 | $5 |
|
|
102
|
-
| `llmgateway/gpt-4o-search-preview` | 128K | | | | | | $3 | $10 |
|
|
103
101
|
| `llmgateway/gpt-4o-transcribe` | 16K | | | | | | $3 | $10 |
|
|
104
102
|
| `llmgateway/gpt-5` | 400K | | | | | | $1 | $10 |
|
|
105
103
|
| `llmgateway/gpt-5-mini` | 400K | | | | | | $0.25 | $2 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# NanoGPT
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 600 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [NanoGPT documentation](https://docs.nano-gpt.com).
|
|
8
8
|
|
|
@@ -245,6 +245,7 @@ for await (const chunk of stream) {
|
|
|
245
245
|
| `nano-gpt/google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
246
246
|
| `nano-gpt/google/gemma-4-26b-a4b-it` | 262K | | | | | | $0.08 | $0.33 |
|
|
247
247
|
| `nano-gpt/google/gemma-4-26b-a4b-it:thinking` | 262K | | | | | | $0.13 | $0.40 |
|
|
248
|
+
| `nano-gpt/google/gemma-4-26b-a4b-uncensored` | 131K | | | | | | $0.08 | $0.33 |
|
|
248
249
|
| `nano-gpt/google/gemma-4-31b-it` | 262K | | | | | | $0.08 | $0.33 |
|
|
249
250
|
| `nano-gpt/google/gemma-4-31b-it:thinking` | 262K | | | | | | $0.10 | $0.35 |
|
|
250
251
|
| `nano-gpt/Gryphe/MythoMax-L2-13b` | 4K | | | | | | $0.10 | $0.10 |
|
|
@@ -581,7 +582,7 @@ for await (const chunk of stream) {
|
|
|
581
582
|
| `nano-gpt/upstage/solar-pro-3` | 128K | | | | | | $0.15 | $0.60 |
|
|
582
583
|
| `nano-gpt/upstage/solar-pro4` | 524K | | | | | | $0.03 | $0.12 |
|
|
583
584
|
| `nano-gpt/upstage/solar-pro4:thinking` | 524K | | | | | | $0.03 | $0.12 |
|
|
584
|
-
| `nano-gpt/venice-uncensored` | 128K | | | | | | $0.40 | $
|
|
585
|
+
| `nano-gpt/venice-uncensored` | 128K | | | | | | $0.40 | $2 |
|
|
585
586
|
| `nano-gpt/VongolaChouko/Starcannon-Unleashed-12B-v1.0` | 16K | | | | | | $0.49 | $0.49 |
|
|
586
587
|
| `nano-gpt/x-ai/grok-4.20` | 2.0M | | | | | | $2 | $6 |
|
|
587
588
|
| `nano-gpt/x-ai/grok-4.20-multi-agent` | 2.0M | | | | | | $2 | $6 |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Nvidia
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 102 Nvidia models through Mastra's model router. Authentication is handled automatically using the `NVIDIA_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Nvidia documentation](https://docs.api.nvidia.com/nim/).
|
|
8
8
|
|
|
@@ -44,6 +44,7 @@ for await (const chunk of stream) {
|
|
|
44
44
|
| `nvidia/black-forest-labs/flux.1-dev` | 4K | | | | | | — | — |
|
|
45
45
|
| `nvidia/bytedance/seed-oss-36b-instruct` | 262K | | | | | | — | — |
|
|
46
46
|
| `nvidia/deepseek-ai/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
47
|
+
| `nvidia/deepseek-ai/deepseek-v4-flash-0731` | 1.0M | | | | | | — | — |
|
|
47
48
|
| `nvidia/deepseek-ai/deepseek-v4-pro` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
48
49
|
| `nvidia/google/gemma-2-2b-it` | 128K | | | | | | — | — |
|
|
49
50
|
| `nvidia/google/gemma-3-12b-it` | 131K | | | | | | — | — |
|
|
@@ -78,6 +79,7 @@ for await (const chunk of stream) {
|
|
|
78
79
|
| `nvidia/mistralai/mistral-small-4-119b-2603` | 128K | | | | | | — | — |
|
|
79
80
|
| `nvidia/mistralai/mixtral-8x22b-instruct` | 66K | | | | | | — | — |
|
|
80
81
|
| `nvidia/mistralai/mixtral-8x7b-instruct` | 33K | | | | | | — | — |
|
|
82
|
+
| `nvidia/moonshotai/kimi-k3` | 1.0M | | | | | | — | — |
|
|
81
83
|
| `nvidia/nvidia/active-speaker-detection` | — | | | | | | — | — |
|
|
82
84
|
| `nvidia/nvidia/bevformer` | 128K | | | | | | — | — |
|
|
83
85
|
| `nvidia/nvidia/cosmos-predict1-5b` | — | | | | | | — | — |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Ofox
|
|
4
4
|
|
|
5
|
-
Access
|
|
5
|
+
Access 111 Ofox models through Mastra's model router. Authentication is handled automatically using the `OFOX_API_KEY` environment variable.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Ofox documentation](https://ofox.ai/docs).
|
|
8
8
|
|
|
@@ -71,6 +71,7 @@ for await (const chunk of stream) {
|
|
|
71
71
|
| `ofox/bailian/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
72
72
|
| `ofox/deepseek/deepseek-v3.2` | 128K | | | | | | $0.29 | $0.43 |
|
|
73
73
|
| `ofox/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.44 | $1 |
|
|
74
|
+
| `ofox/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.44 | $1 |
|
|
74
75
|
| `ofox/deepseek/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.44 | $1 |
|
|
75
76
|
| `ofox/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $4 |
|
|
76
77
|
| `ofox/deepseek/deepseek-v4-pro-0423` | 1.0M | | | | | | $1 | $4 |
|
|
@@ -49,6 +49,17 @@ export async function POST(req: Request) {
|
|
|
49
49
|
}
|
|
50
50
|
```
|
|
51
51
|
|
|
52
|
+
## Keeping connections alive
|
|
53
|
+
|
|
54
|
+
Proxies and load balancers often close a connection that sends no bytes for a while, which drops the response during long reasoning bursts or slow tool calls. Wrap the encoded response with [`withSseHeartbeat()`](https://mastra.ai/reference/ai-sdk/with-sse-heartbeat) to emit periodic SSE comments while the stream is idle:
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { handleChatStream, withSseHeartbeat } from '@mastra/ai-sdk'
|
|
58
|
+
import { createUIMessageStreamResponse } from 'ai'
|
|
59
|
+
|
|
60
|
+
return withSseHeartbeat(createUIMessageStreamResponse({ stream }), 15000)
|
|
61
|
+
```
|
|
62
|
+
|
|
52
63
|
## Parameters
|
|
53
64
|
|
|
54
65
|
**version** (`'v5' | 'v6' | 'v7'`): Selects the AI SDK stream contract to emit. Omit it or pass 'v5' for the existing default behavior. Pass 'v6' when your app is typed against AI SDK v6 response helpers. Pass 'v7' when your app is typed against AI SDK v7. (Default: `'v5'`)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
> Discover all available pages from the documentation index: https://mastra.ai/llms.txt
|
|
2
|
+
|
|
3
|
+
# withSseHeartbeat()
|
|
4
|
+
|
|
5
|
+
Wraps a server-sent events `Response` so it emits periodic `: heartbeat` comments while the underlying stream is idle. Proxies and load balancers often close connections that send no bytes for a while, which drops responses during long reasoning bursts or slow tool calls.
|
|
6
|
+
|
|
7
|
+
Use this when you build the response yourself with [`handleChatStream()`](https://mastra.ai/reference/ai-sdk/handle-chat-stream), [`handleWorkflowStream()`](https://mastra.ai/reference/ai-sdk/handle-workflow-stream), or [`handleNetworkStream()`](https://mastra.ai/reference/ai-sdk/handle-network-stream). [`chatRoute()`](https://mastra.ai/reference/ai-sdk/chat-route) applies the same wrapper internally through its `heartbeatMs` option.
|
|
8
|
+
|
|
9
|
+
## Usage example
|
|
10
|
+
|
|
11
|
+
Next.js App Router example:
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { handleChatStream, withSseHeartbeat } from '@mastra/ai-sdk'
|
|
15
|
+
import { createUIMessageStreamResponse } from 'ai'
|
|
16
|
+
import { mastra } from '@/src/mastra'
|
|
17
|
+
|
|
18
|
+
export async function POST(req: Request) {
|
|
19
|
+
const params = await req.json()
|
|
20
|
+
const stream = await handleChatStream({
|
|
21
|
+
mastra,
|
|
22
|
+
agentId: 'weatherAgent',
|
|
23
|
+
version: 'v7',
|
|
24
|
+
params,
|
|
25
|
+
})
|
|
26
|
+
return withSseHeartbeat(createUIMessageStreamResponse({ stream }), 15000)
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Wrap the response after it has been encoded. `handleChatStream()` returns a stream of UI message chunks, and heartbeats are raw SSE comments that only exist once those chunks are serialized to the wire format.
|
|
31
|
+
|
|
32
|
+
## Parameters
|
|
33
|
+
|
|
34
|
+
**response** (`Response`): The server-sent events response to wrap. Status, status text, and headers are preserved.
|
|
35
|
+
|
|
36
|
+
**heartbeatMs** (`number`): Interval in milliseconds between heartbeats. Omit it or pass a value of 0 or less to disable heartbeats.
|
|
37
|
+
|
|
38
|
+
## Returns
|
|
39
|
+
|
|
40
|
+
A `Response` that streams the source body with heartbeat comments inserted during idle periods. The input response is returned unchanged when `heartbeatMs` is omitted, is `0` or less, or the response has no body.
|
|
41
|
+
|
|
42
|
+
## Behavior
|
|
43
|
+
|
|
44
|
+
- Heartbeats are only inserted between complete SSE frames, so a partially delivered frame is never split.
|
|
45
|
+
- Source data, stream completion, and stream errors always take priority over a due heartbeat.
|
|
46
|
+
- Canceling the wrapped response cancels the source stream and clears the pending heartbeat timer.
|
|
47
|
+
- A `RangeError` is thrown when heartbeats are enabled with a value that can't be scheduled with a timer, meaning a non-finite number or a value greater than `2147483647`. Use `assertValidHeartbeatMs()` to apply the same check to user-supplied configuration before you start streaming.
|
package/.docs/reference/index.md
CHANGED
|
@@ -45,6 +45,7 @@ The Reference section provides documentation of Mastra's API, including paramete
|
|
|
45
45
|
- [toAISdkV4Messages()](https://mastra.ai/reference/ai-sdk/to-ai-sdk-v4-messages)
|
|
46
46
|
- [toAISdkV5Messages()](https://mastra.ai/reference/ai-sdk/to-ai-sdk-v5-messages)
|
|
47
47
|
- [withMastra()](https://mastra.ai/reference/ai-sdk/with-mastra)
|
|
48
|
+
- [withSseHeartbeat()](https://mastra.ai/reference/ai-sdk/with-sse-heartbeat)
|
|
48
49
|
- [workflowRoute()](https://mastra.ai/reference/ai-sdk/workflow-route)
|
|
49
50
|
- [workflowSnapshotToStream()](https://mastra.ai/reference/ai-sdk/workflow-snapshot-to-stream)
|
|
50
51
|
- [Auth0](https://mastra.ai/reference/auth/auth0)
|
|
@@ -272,8 +272,36 @@ Contains file data.
|
|
|
272
272
|
|
|
273
273
|
**payload.providerMetadata** (`SharedV2ProviderMetadata`): Provider-specific metadata
|
|
274
274
|
|
|
275
|
+
### reasoning-file
|
|
276
|
+
|
|
277
|
+
Contains a file generated by the model as part of its reasoning. Emitted by providers on the AI SDK v7 specification.
|
|
278
|
+
|
|
279
|
+
**type** (`"reasoning-file"`): Chunk type identifier
|
|
280
|
+
|
|
281
|
+
**payload** (`ReasoningFilePayload`): Reasoning file data
|
|
282
|
+
|
|
283
|
+
**payload.data** (`string | Uint8Array`): The file data
|
|
284
|
+
|
|
285
|
+
**payload.base64** (`string`): Base64 encoded data if applicable
|
|
286
|
+
|
|
287
|
+
**payload.mimeType** (`string`): MIME type of the file
|
|
288
|
+
|
|
289
|
+
**payload.providerMetadata** (`SharedV2ProviderMetadata`): Provider-specific metadata
|
|
290
|
+
|
|
275
291
|
## Control chunks
|
|
276
292
|
|
|
293
|
+
### custom
|
|
294
|
+
|
|
295
|
+
Contains a provider-specific content block that doesn't map to any other standardized chunk type. Emitted by providers on the AI SDK v7 specification.
|
|
296
|
+
|
|
297
|
+
**type** (`"custom"`): Chunk type identifier
|
|
298
|
+
|
|
299
|
+
**payload** (`CustomPayload`): Custom provider content
|
|
300
|
+
|
|
301
|
+
**payload.kind** (`string`): The kind of custom content, in the format {provider}.{provider-type}
|
|
302
|
+
|
|
303
|
+
**payload.providerMetadata** (`SharedV2ProviderMetadata`): Provider-specific metadata
|
|
304
|
+
|
|
277
305
|
### start
|
|
278
306
|
|
|
279
307
|
Signals the start of streaming.
|
|
@@ -324,7 +352,7 @@ Signals the completion of a processing step.
|
|
|
324
352
|
|
|
325
353
|
### raw
|
|
326
354
|
|
|
327
|
-
Contains raw data from the provider.
|
|
355
|
+
Contains raw data from the provider. Content types Mastra doesn't recognize are also emitted as `raw` chunks rather than being discarded. Raw chunks only appear when `includeRawChunks` is enabled.
|
|
328
356
|
|
|
329
357
|
**type** (`"raw"`): Chunk type identifier
|
|
330
358
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# @mastra/mcp-docs-server
|
|
2
2
|
|
|
3
|
+
## 1.2.19-alpha.5
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`2c85f42`](https://github.com/mastra-ai/mastra/commit/2c85f428e04ccd63ea31a7ec80b5b327afdad555), [`11bbeb9`](https://github.com/mastra-ai/mastra/commit/11bbeb9b108ef2264e05acefc6dafb9cbb342921), [`1a485f3`](https://github.com/mastra-ai/mastra/commit/1a485f3538f5ec64d58bd8b5e1e99de0c695c87b), [`0d37487`](https://github.com/mastra-ai/mastra/commit/0d37487d9f349388a3f1cef6a536cf9dcc4b6273), [`8661d7d`](https://github.com/mastra-ai/mastra/commit/8661d7d7179f0a024456aabdd8679bcecd09ac28), [`575e343`](https://github.com/mastra-ai/mastra/commit/575e343900451021d96110916497d334af7bc252), [`cacb839`](https://github.com/mastra-ai/mastra/commit/cacb8392d9e74189b56d857290b0615f98a2683d), [`b47b26e`](https://github.com/mastra-ai/mastra/commit/b47b26e6fe95cb8a3482be2c5e52de157fe59d0b), [`0d37487`](https://github.com/mastra-ai/mastra/commit/0d37487d9f349388a3f1cef6a536cf9dcc4b6273), [`c46eb09`](https://github.com/mastra-ai/mastra/commit/c46eb09ce4987509af57a0ac582c61241a6dd2f1), [`30ed33e`](https://github.com/mastra-ai/mastra/commit/30ed33ee14084a26019aba15fceadda6d6ddefaf), [`91ad69d`](https://github.com/mastra-ai/mastra/commit/91ad69d64994c89199b0c55399e64ed91c61df2f), [`c4e2364`](https://github.com/mastra-ai/mastra/commit/c4e2364742bc37beebfa995db2d42efce6cfc7b8), [`8dc408d`](https://github.com/mastra-ai/mastra/commit/8dc408d34438f9e13297f792c11a5cfd6cf952e1), [`c92def1`](https://github.com/mastra-ai/mastra/commit/c92def10a13c822972c96f0a4ca6ffc1f4258aed), [`c5eaec5`](https://github.com/mastra-ai/mastra/commit/c5eaec5a860d80d0e3805e67db0414b87ac8cbed), [`e66b2ba`](https://github.com/mastra-ai/mastra/commit/e66b2ba100db63eaeab6e21e1ea34b113f2ec781)]:
|
|
8
|
+
- @mastra/core@1.62.0-alpha.3
|
|
9
|
+
- @mastra/mcp@1.17.2-alpha.0
|
|
10
|
+
|
|
3
11
|
## 1.2.19-alpha.4
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.2.19-alpha.
|
|
3
|
+
"version": "1.2.19-alpha.6",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -28,8 +28,8 @@
|
|
|
28
28
|
"jsdom": "^26.1.0",
|
|
29
29
|
"local-pkg": "^1.1.2",
|
|
30
30
|
"zod": "^4.4.3",
|
|
31
|
-
"@mastra/
|
|
32
|
-
"@mastra/
|
|
31
|
+
"@mastra/mcp": "^1.17.2-alpha.0",
|
|
32
|
+
"@mastra/core": "1.62.0-alpha.3"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@hono/node-server": "^2.0.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"vitest": "4.1.10",
|
|
48
48
|
"@internal/lint": "0.0.125",
|
|
49
49
|
"@internal/types-builder": "0.0.100",
|
|
50
|
-
"@mastra/core": "1.62.0-alpha.
|
|
50
|
+
"@mastra/core": "1.62.0-alpha.3"
|
|
51
51
|
},
|
|
52
52
|
"homepage": "https://mastra.ai",
|
|
53
53
|
"repository": {
|