@mastra/mcp-docs-server 1.2.19-alpha.3 → 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/evals/overview.md +33 -1
- 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/merge-gateway.md +2 -1
- package/.docs/models/gateways/netlify.md +1 -1
- package/.docs/models/gateways/openrouter.md +6 -3
- package/.docs/models/gateways/vercel.md +3 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/crof.md +3 -8
- package/.docs/models/providers/crossmodel.md +56 -55
- package/.docs/models/providers/deepseek.md +8 -7
- package/.docs/models/providers/digitalocean.md +1 -1
- package/.docs/models/providers/edenai.md +10 -8
- package/.docs/models/providers/hyper.md +3 -3
- package/.docs/models/providers/kilo.md +17 -12
- package/.docs/models/providers/llmgateway-providers.md +7 -3
- package/.docs/models/providers/llmgateway.md +1 -3
- package/.docs/models/providers/nano-gpt.md +5 -2
- package/.docs/models/providers/nvidia.md +3 -1
- package/.docs/models/providers/ofox.md +114 -110
- package/.docs/models/providers/opencode-go.md +25 -24
- package/.docs/models/providers/opencode.md +1 -1
- package/.docs/models/providers/scaleway.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/.docs/reference/workspace/workspace-class.md +13 -1
- package/CHANGELOG.md +15 -0
- package/package.json +5 -5
|
@@ -115,13 +115,45 @@ For the step-level `scorers` API, see the [Step class reference](https://mastra.
|
|
|
115
115
|
|
|
116
116
|
**Asynchronous execution**: Live evaluations run in the background without blocking your agent responses or workflow execution. Your AI systems remain responsive while live evaluations monitor them.
|
|
117
117
|
|
|
118
|
-
**Sampling control**: The `sampling.rate` parameter (0-1) controls what
|
|
118
|
+
**Sampling control**: The `sampling.rate` parameter (0-1) controls what fraction of outputs get scored:
|
|
119
119
|
|
|
120
120
|
- `1.0`: Score every single response (100%)
|
|
121
121
|
- `0.5`: Score half of all responses (50%)
|
|
122
122
|
- `0.1`: Score 10% of responses
|
|
123
123
|
- `0.0`: Disable scoring
|
|
124
124
|
|
|
125
|
+
Sampling is deterministic per trace: the decision is derived from the trace ID, not drawn at random. In practice:
|
|
126
|
+
|
|
127
|
+
- Scorers configured at the same rate score the same traces, so their scores are comparable on shared traffic.
|
|
128
|
+
- Re-running the same trace produces the same sampling decision, so sampled coverage is reproducible.
|
|
129
|
+
|
|
130
|
+
When a run has no trace (observability not configured), the decision is derived from the run ID instead. If [trace sampling](https://mastra.ai/docs/observability/tracing/overview) declined the trace, scorers skip that run entirely, so scores aren't created for traces that were never stored.
|
|
131
|
+
|
|
132
|
+
**Eligibility filters**: The optional `filter` parameter restricts which runs a scorer is eligible for, using a declarative predicate over the run's context. Filters are evaluated before sampling, so `sampling.rate` applies only to runs that match the filter:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
export const myAgent = new Agent({
|
|
136
|
+
// ...
|
|
137
|
+
scorers: {
|
|
138
|
+
relevancy: {
|
|
139
|
+
scorer: createAnswerRelevancyScorer({ model: 'openai/gpt-5-mini' }),
|
|
140
|
+
filter: {
|
|
141
|
+
op: 'eq',
|
|
142
|
+
left: { path: 'requestContext.plan' },
|
|
143
|
+
right: { literal: 'enterprise' },
|
|
144
|
+
},
|
|
145
|
+
sampling: { type: 'ratio', rate: 0.1 },
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
})
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
This scores 10% of enterprise-plan traffic and none of the rest. To score different segments at different rates, bind the same scorer twice with complementary filters.
|
|
152
|
+
|
|
153
|
+
Predicates can reference `requestContext.*`, `entity.*`, `entityType`, `source`, `threadId`, `resourceId`, and `projectId`. They support comparisons (`eq`, `ne`, `lt`, `lte`, `gt`, `gte`), membership (`in`, `notIn`), existence (`exists`, `notExists`), truthiness (`truthy`, `falsy`), and boolean composition (`and`, `or`, `not`). A filter that references an unknown root fails at agent construction rather than silently skipping scoring at runtime. Filters are plain JSON, so they're unaffected by durable agent state serialization.
|
|
154
|
+
|
|
155
|
+
Eligibility filters decide _whether a scorer runs_; to filter _which messages a scorer sees_ once it runs, use [`filterRun()`](https://mastra.ai/reference/evals/filter-run).
|
|
156
|
+
|
|
125
157
|
**Automatic storage**: All scoring results are automatically stored in the `mastra_scorers` table in your configured database, allowing you to analyze performance trends over time.
|
|
126
158
|
|
|
127
159
|
## Score persistence
|
|
@@ -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
|
# Merge Gateway
|
|
4
4
|
|
|
5
|
-
Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
5
|
+
Merge Gateway aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 175 models through Mastra's model router.
|
|
6
6
|
|
|
7
7
|
Learn more in the [Merge Gateway documentation](https://docs.merge.dev/merge-gateway).
|
|
8
8
|
|
|
@@ -66,6 +66,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
66
66
|
| `deepseek/deepseek-v4-flash` |
|
|
67
67
|
| `deepseek/deepseek-v4-flash-0731` |
|
|
68
68
|
| `deepseek/deepseek-v4-pro` |
|
|
69
|
+
| `deepseek/deepseek-v4-pro-0423` |
|
|
69
70
|
| `deepseek/deepseek-v4-pro-0813` |
|
|
70
71
|
| `google/gemini-2.5-computer-use-preview-10-2025` |
|
|
71
72
|
| `google/gemini-2.5-flash` |
|
|
@@ -120,7 +120,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
120
120
|
| `openrouter/bytedance-seed/seed-2.0-mini` |
|
|
121
121
|
| `openrouter/bytedance/ui-tars-1.5-7b` |
|
|
122
122
|
| `openrouter/cognitivecomputations/dolphin-mistral-24b-venice-edition` |
|
|
123
|
-
| `openrouter/deepcogito/cogito-v2.1-671b` |
|
|
124
123
|
| `openrouter/deepseek/deepseek-chat` |
|
|
125
124
|
| `openrouter/deepseek/deepseek-chat-v3-0324` |
|
|
126
125
|
| `openrouter/deepseek/deepseek-chat-v3.1` |
|
|
@@ -239,6 +238,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
239
238
|
| `openrouter/stepfun/step-3.7-flash` |
|
|
240
239
|
| `openrouter/tencent/hy-mt2-1.8b` |
|
|
241
240
|
| `openrouter/tencent/hy-mt2-30b-a3b` |
|
|
241
|
+
| `openrouter/tencent/hy-mt2-7b` |
|
|
242
242
|
| `openrouter/tencent/hy3` |
|
|
243
243
|
| `openrouter/thedrummer/cydonia-24b-v4.1` |
|
|
244
244
|
| `openrouter/thedrummer/rocinante-12b` |
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# OpenRouter
|
|
4
4
|
|
|
5
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
5
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 360 models through Mastra's model router.
|
|
6
6
|
|
|
7
7
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
8
8
|
|
|
@@ -92,7 +92,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
92
92
|
| `cohere/command-r-plus-08-2024` |
|
|
93
93
|
| `cohere/command-r7b-12-2024` |
|
|
94
94
|
| `cohere/north-mini-code:free` |
|
|
95
|
-
| `deepcogito/cogito-v2.1-671b` |
|
|
96
95
|
| `deepseek/deepseek-chat` |
|
|
97
96
|
| `deepseek/deepseek-chat-v3-0324` |
|
|
98
97
|
| `deepseek/deepseek-chat-v3.1` |
|
|
@@ -104,6 +103,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
104
103
|
| `deepseek/deepseek-v3.2-exp` |
|
|
105
104
|
| `deepseek/deepseek-v4-flash` |
|
|
106
105
|
| `deepseek/deepseek-v4-flash-0731` |
|
|
106
|
+
| `deepseek/deepseek-v4-flash-vision-exp` |
|
|
107
107
|
| `deepseek/deepseek-v4-pro` |
|
|
108
108
|
| `deepseek/deepseek-v4-pro-0813` |
|
|
109
109
|
| `dots-studio/dots-3-note-preview:free` |
|
|
@@ -163,6 +163,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
163
163
|
| `meta/muse-glimmer-30b` |
|
|
164
164
|
| `meta/muse-spark-1.1` |
|
|
165
165
|
| `meta/muse-spark-1.2` |
|
|
166
|
+
| `meta/muse-spark-1.2-contributor` |
|
|
166
167
|
| `microsoft/phi-4` |
|
|
167
168
|
| `microsoft/wizardlm-2-8x22b` |
|
|
168
169
|
| `minimax/minimax-01` |
|
|
@@ -268,7 +269,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
268
269
|
| `openai/gpt-chat-latest` |
|
|
269
270
|
| `openai/gpt-oss-120b` |
|
|
270
271
|
| `openai/gpt-oss-20b` |
|
|
271
|
-
| `openai/gpt-oss-20b:free` |
|
|
272
272
|
| `openai/gpt-oss-safeguard-20b` |
|
|
273
273
|
| `openai/o1` |
|
|
274
274
|
| `openai/o1-pro` |
|
|
@@ -359,6 +359,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
359
359
|
| `tencent/hunyuan-a13b-instruct` |
|
|
360
360
|
| `tencent/hy-mt2-1.8b` |
|
|
361
361
|
| `tencent/hy-mt2-30b-a3b` |
|
|
362
|
+
| `tencent/hy-mt2-7b` |
|
|
362
363
|
| `tencent/hy3` |
|
|
363
364
|
| `tencent/hy3-preview` |
|
|
364
365
|
| `thedrummer/cydonia-24b-v4.1` |
|
|
@@ -367,6 +368,8 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
367
368
|
| `thedrummer/unslopnemo-12b` |
|
|
368
369
|
| `thinkingmachines/inkling` |
|
|
369
370
|
| `thinkingmachines/inkling-small` |
|
|
371
|
+
| `thinkingmachines/inkling-small:free` |
|
|
372
|
+
| `thinkingmachines/inkling:free` |
|
|
370
373
|
| `undi95/remm-slerp-l2-13b` |
|
|
371
374
|
| `upstage/solar-pro-3` |
|
|
372
375
|
| `upstage/solar-pro4` |
|
|
@@ -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
|
|
|
@@ -133,6 +133,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
133
133
|
| `deepseek/deepseek-v3.2-thinking` |
|
|
134
134
|
| `deepseek/deepseek-v4-flash` |
|
|
135
135
|
| `deepseek/deepseek-v4-flash-0731` |
|
|
136
|
+
| `deepseek/deepseek-v4-flash-vision-exp` |
|
|
136
137
|
| `deepseek/deepseek-v4-pro` |
|
|
137
138
|
| `deepseek/deepseek-v4-pro-0813` |
|
|
138
139
|
| `fish-audio/s1` |
|
|
@@ -234,6 +235,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
234
235
|
| `nvidia/nemotron-3-super-120b-a12b` |
|
|
235
236
|
| `nvidia/nemotron-3-ultra-550b-a55b` |
|
|
236
237
|
| `nvidia/nemotron-3.5-lightning` |
|
|
238
|
+
| `nvidia/nemotron-3.5-lightning-free` |
|
|
237
239
|
| `nvidia/nemotron-nano-12b-v2-vl` |
|
|
238
240
|
| `nvidia/nemotron-nano-9b-v2` |
|
|
239
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
|
});
|