@mastra/mcp-docs-server 1.1.39 → 1.1.40-alpha.10
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/agents/acp.md +53 -0
- package/.docs/docs/agents/guardrails.md +2 -2
- package/.docs/docs/agents/processors.md +2 -2
- package/.docs/docs/agents/signals.md +38 -0
- package/.docs/docs/evals/datasets/running-experiments.md +1 -1
- package/.docs/docs/evals/overview.md +2 -2
- package/.docs/docs/mcp/mcp-apps.md +3 -3
- package/.docs/docs/memory/multi-user-threads.md +1 -1
- package/.docs/docs/memory/observational-memory.md +2 -2
- package/.docs/docs/memory/storage.md +1 -1
- package/.docs/docs/rag/retrieval.md +4 -1
- package/.docs/docs/workspace/filesystem.md +1 -1
- package/.docs/models/gateways/openrouter.md +3 -2
- package/.docs/models/gateways/vercel.md +5 -2
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/alibaba.md +2 -1
- package/.docs/models/providers/cloudflare-workers-ai.md +33 -14
- package/.docs/models/providers/crof.md +91 -0
- package/.docs/models/providers/inceptron.md +74 -0
- package/.docs/models/providers/llmgateway.md +7 -3
- package/.docs/models/providers/opencode.md +2 -2
- package/.docs/models/providers/scaleway.md +2 -1
- package/.docs/models/providers/stepfun-ai.md +72 -0
- package/.docs/models/providers/xai.md +10 -18
- package/.docs/models/providers.md +3 -0
- package/.docs/reference/browser/stagehand-browser.md +1 -1
- package/.docs/reference/client-js/agents.md +31 -0
- package/.docs/reference/evals/noise-sensitivity.md +1 -1
- package/.docs/reference/harness/harness-class.md +6 -3
- package/.docs/reference/memory/observational-memory.md +1 -1
- package/.docs/reference/observability/tracing/exporters/sentry.md +1 -0
- package/.docs/reference/observability/tracing/interfaces.md +13 -0
- package/.docs/reference/processors/cost-guard-processor.md +1 -1
- package/.docs/reference/processors/processor-interface.md +1 -1
- package/.docs/reference/processors/regex-filter-processor.md +1 -1
- package/.docs/reference/processors/skill-search-processor.md +1 -1
- package/.docs/reference/server/nestjs-adapter.md +1 -1
- package/.docs/reference/storage/dsql.md +1 -1
- package/.docs/reference/storage/redis.md +1 -1
- package/.docs/reference/workspace/google-drive-filesystem.md +1 -1
- package/CHANGELOG.md +35 -0
- package/package.json +3 -3
package/.docs/docs/agents/acp.md
CHANGED
|
@@ -142,6 +142,59 @@ If the ACP agent requests permission, the tool can suspend and resume through Ma
|
|
|
142
142
|
| `persistSession` | `boolean` | Keep the ACP process alive after execution. Defaults to `true`. |
|
|
143
143
|
| `onPermissionRequest` | `(request) => Promise<Response>` | Callback for ACP permission requests. Defaults to selecting the first option. |
|
|
144
144
|
| `workspace` | `Workspace` | Workspace used for ACP file reads and writes. |
|
|
145
|
+
| `model` | `string` | Model ID to select after session creation via the ACP `session/set_model` method. |
|
|
146
|
+
|
|
147
|
+
## Model selection
|
|
148
|
+
|
|
149
|
+
ACP agents may expose selectable models. Instead of setting an environment variable like `ANTHROPIC_MODEL`, you can pass a `model` ID directly in the configuration.
|
|
150
|
+
|
|
151
|
+
### Discover available models
|
|
152
|
+
|
|
153
|
+
Call `getAvailableModels()` to see which models the ACP agent supports. This starts the agent process and returns the model list from the session:
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
import { AcpAgent } from '@mastra/acp'
|
|
157
|
+
|
|
158
|
+
const codeAgent = new AcpAgent({
|
|
159
|
+
id: 'code-agent',
|
|
160
|
+
description: 'An ACP-compatible coding agent',
|
|
161
|
+
command: 'claude',
|
|
162
|
+
args: ['--acp'],
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
const models = await codeAgent.getAvailableModels()
|
|
166
|
+
// [{ modelId: 'claude-sonnet-4-20250514', name: 'Claude Sonnet' }, ...]
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Set the model
|
|
170
|
+
|
|
171
|
+
Pass the `model` option to select a model at connection time:
|
|
172
|
+
|
|
173
|
+
```typescript
|
|
174
|
+
import { AcpAgent } from '@mastra/acp'
|
|
175
|
+
|
|
176
|
+
export const codeAgent = new AcpAgent({
|
|
177
|
+
id: 'code-agent',
|
|
178
|
+
description: 'An ACP-compatible coding agent',
|
|
179
|
+
command: 'claude',
|
|
180
|
+
args: ['--acp'],
|
|
181
|
+
model: '__AI_SDK_ANTHROPIC_MODEL_SONNET__',
|
|
182
|
+
})
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
You can also change the model at runtime with `setModel()`:
|
|
186
|
+
|
|
187
|
+
```typescript
|
|
188
|
+
await codeAgent.setModel('__AI_SDK_ANTHROPIC_MODEL_SONNET__')
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
If the ACP agent advertises available models and your model ID doesn't match any of them, Mastra throws an error listing the valid options:
|
|
192
|
+
|
|
193
|
+
```text
|
|
194
|
+
Model "bad-model-id" is not available. Available models: claude-sonnet-4-20250514, claude-haiku-4-20250514
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
If the agent doesn't advertise a model list, the value is passed through without validation.
|
|
145
198
|
|
|
146
199
|
## Session lifecycle
|
|
147
200
|
|
|
@@ -246,7 +246,7 @@ costGuard.onViolation = ({ processorId, message, detail }) => {
|
|
|
246
246
|
|
|
247
247
|
// Log moderation violations
|
|
248
248
|
const moderation = new ModerationProcessor({
|
|
249
|
-
model: '
|
|
249
|
+
model: '__OPENAI_MODEL_NANO__',
|
|
250
250
|
strategy: 'block',
|
|
251
251
|
})
|
|
252
252
|
|
|
@@ -360,7 +360,7 @@ See [workflows as processors](https://mastra.ai/docs/agents/processors) for more
|
|
|
360
360
|
Guardrail processors don't need your primary model. Use a small, fast model for classification tasks:
|
|
361
361
|
|
|
362
362
|
```typescript
|
|
363
|
-
const GUARDRAIL_MODEL = '
|
|
363
|
+
const GUARDRAIL_MODEL = '__OPENAI_MODEL_NANO__'
|
|
364
364
|
|
|
365
365
|
new ModerationProcessor({ model: GUARDRAIL_MODEL })
|
|
366
366
|
new PIIDetector({ model: GUARDRAIL_MODEL })
|
|
@@ -97,9 +97,9 @@ const agent = new Agent({
|
|
|
97
97
|
instructions: '...',
|
|
98
98
|
inputProcessors: [
|
|
99
99
|
new TokenLimiter(4000),
|
|
100
|
-
new ModerationProcessor({ model: 'openai/gpt-
|
|
100
|
+
new ModerationProcessor({ model: 'openai/gpt-5-nano' }),
|
|
101
101
|
],
|
|
102
|
-
outputProcessors: [new ModerationProcessor({ model: 'openai/gpt-
|
|
102
|
+
outputProcessors: [new ModerationProcessor({ model: 'openai/gpt-5-nano' })],
|
|
103
103
|
errorProcessors: [new PrefillErrorHandler()],
|
|
104
104
|
})
|
|
105
105
|
```
|
|
@@ -141,6 +141,44 @@ The model receives the custom signal as context like this:
|
|
|
141
141
|
|
|
142
142
|
Use XML-safe signal type names and attribute names. Signal type names and attribute names can contain letters, numbers, underscores, periods, and hyphens. They must start with a letter or underscore.
|
|
143
143
|
|
|
144
|
+
## Delivery attributes
|
|
145
|
+
|
|
146
|
+
Use `ifActive.attributes` and `ifIdle.attributes` to tag a signal with context that depends on whether the agent is active or idle at delivery time. Mastra resolves the correct branch when the signal is accepted.
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
agent.sendSignal(
|
|
150
|
+
{
|
|
151
|
+
type: 'user-message',
|
|
152
|
+
contents: 'Also cover the edge cases.',
|
|
153
|
+
attributes: { source: 'chat' },
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
resourceId: 'user_123',
|
|
157
|
+
threadId: 'thread_456',
|
|
158
|
+
ifActive: { attributes: { delivery: 'while-active' } },
|
|
159
|
+
ifIdle: { attributes: { delivery: 'message' } },
|
|
160
|
+
},
|
|
161
|
+
)
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
When the agent is working, the model sees:
|
|
165
|
+
|
|
166
|
+
```xml
|
|
167
|
+
<user-message source="chat" delivery="while-active">Also cover the edge cases.</user-message>
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
When the agent is idle:
|
|
171
|
+
|
|
172
|
+
```xml
|
|
173
|
+
<user-message source="chat" delivery="message">Also cover the edge cases.</user-message>
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
Top-level `attributes` always apply. The selected branch's `attributes` are merged into them at delivery time. The `ifActive.attributes` branch merges when the signal is delivered to a running agent loop. The `ifIdle.attributes` branch merges when the signal wakes an idle thread. If the selected branch or its `attributes` field is `undefined`, no extra attributes are added.
|
|
177
|
+
|
|
178
|
+
Delivery attributes work with any signal type and can carry any key-value pairs. The `delivery` name shown above is not a special Mastra API field. It is a custom attribute name used for this example; you can use any attribute names that fit your application.
|
|
179
|
+
|
|
180
|
+
> **Note:** Visit [Agent.sendSignal() reference](https://mastra.ai/reference/agents/agent) for the full signal input and options types.
|
|
181
|
+
|
|
144
182
|
## Use the client SDK
|
|
145
183
|
|
|
146
184
|
The JavaScript client exposes the same thread signal APIs. Use `subscribeToThread()` before `sendSignal()` so the client can render the stream that wakes from, or receives, the signal.
|
|
@@ -104,7 +104,7 @@ const summary = await dataset.startExperiment({
|
|
|
104
104
|
```typescript
|
|
105
105
|
import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt'
|
|
106
106
|
|
|
107
|
-
const relevancy = createAnswerRelevancyScorer({ model: '
|
|
107
|
+
const relevancy = createAnswerRelevancyScorer({ model: '__OPENAI_MODEL_MINI__' })
|
|
108
108
|
|
|
109
109
|
const summary = await dataset.startExperiment({
|
|
110
110
|
name: 'with-scorer-instances',
|
|
@@ -57,11 +57,11 @@ import { createAnswerRelevancyScorer, createToxicityScorer } from '@mastra/evals
|
|
|
57
57
|
export const evaluatedAgent = new Agent({
|
|
58
58
|
scorers: {
|
|
59
59
|
relevancy: {
|
|
60
|
-
scorer: createAnswerRelevancyScorer({ model: '
|
|
60
|
+
scorer: createAnswerRelevancyScorer({ model: '__OPENAI_MODEL_MINI__' }),
|
|
61
61
|
sampling: { type: 'ratio', rate: 0.5 },
|
|
62
62
|
},
|
|
63
63
|
safety: {
|
|
64
|
-
scorer: createToxicityScorer({ model: '
|
|
64
|
+
scorer: createToxicityScorer({ model: '__OPENAI_MODEL_MINI__' }),
|
|
65
65
|
sampling: { type: 'ratio', rate: 1 },
|
|
66
66
|
},
|
|
67
67
|
},
|
|
@@ -93,7 +93,7 @@ export const myAgent = new Agent({
|
|
|
93
93
|
id: 'my-agent',
|
|
94
94
|
name: 'My Agent',
|
|
95
95
|
instructions: 'You have access to interactive UI tools.',
|
|
96
|
-
model: '
|
|
96
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
97
97
|
tools: { calculatorTool },
|
|
98
98
|
})
|
|
99
99
|
```
|
|
@@ -125,7 +125,7 @@ const mcpClient = new MCPClient({
|
|
|
125
125
|
const myAgent = new Agent({
|
|
126
126
|
id: 'my-agent',
|
|
127
127
|
name: 'My Agent',
|
|
128
|
-
model: '
|
|
128
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
129
129
|
tools: await mcpClient.listTools(),
|
|
130
130
|
})
|
|
131
131
|
|
|
@@ -270,7 +270,7 @@ const mcpClient = new MCPClient({
|
|
|
270
270
|
const myAgent = new Agent({
|
|
271
271
|
id: 'my-agent',
|
|
272
272
|
name: 'My Agent',
|
|
273
|
-
model: '
|
|
273
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
274
274
|
tools: await mcpClient.listTools(),
|
|
275
275
|
})
|
|
276
276
|
|
|
@@ -65,7 +65,7 @@ const memory = new Memory({
|
|
|
65
65
|
export const collabAgent = new Agent({
|
|
66
66
|
id: 'collab',
|
|
67
67
|
name: 'CollabAgent',
|
|
68
|
-
model: '
|
|
68
|
+
model: '__OPENAI_MODEL_MINI__',
|
|
69
69
|
memory,
|
|
70
70
|
instructions: `
|
|
71
71
|
You are a collaborative document assistant. Multiple users talk to you in the SAME thread.
|
|
@@ -316,7 +316,7 @@ const memory = new Memory({
|
|
|
316
316
|
// Faster, cheaper models for smaller inputs; stronger models for larger contexts
|
|
317
317
|
5_000: 'openrouter/mistralai/ministral-8b-2512',
|
|
318
318
|
20_000: 'openrouter/mistralai/mistral-small-2603',
|
|
319
|
-
40_000: 'openai/gpt-5
|
|
319
|
+
40_000: 'openai/gpt-5-mini',
|
|
320
320
|
1_000_000: 'google/gemini-3.1-flash-lite-preview',
|
|
321
321
|
},
|
|
322
322
|
}),
|
|
@@ -324,7 +324,7 @@ const memory = new Memory({
|
|
|
324
324
|
reflection: {
|
|
325
325
|
model: new ModelByInputTokens({
|
|
326
326
|
upTo: {
|
|
327
|
-
20_000: 'openai/gpt-5
|
|
327
|
+
20_000: 'openai/gpt-5-mini',
|
|
328
328
|
100_000: 'google/gemini-2.5-flash',
|
|
329
329
|
},
|
|
330
330
|
}),
|
|
@@ -472,7 +472,10 @@ const initialResults = await pgVector.query({
|
|
|
472
472
|
})
|
|
473
473
|
|
|
474
474
|
// Create a relevance scorer
|
|
475
|
-
const relevanceProvider = new MastraAgentRelevanceScorer(
|
|
475
|
+
const relevanceProvider = new MastraAgentRelevanceScorer(
|
|
476
|
+
'relevance-scorer',
|
|
477
|
+
'openai/gpt-5.4',
|
|
478
|
+
)
|
|
476
479
|
|
|
477
480
|
// Re-rank the results
|
|
478
481
|
const rerankedResults = await rerank({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenRouter
|
|
2
2
|
|
|
3
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
3
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 358 models through Mastra's model router.
|
|
4
4
|
|
|
5
5
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
6
6
|
|
|
@@ -72,7 +72,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
72
72
|
| `arcee-ai/coder-large` |
|
|
73
73
|
| `arcee-ai/maestro-reasoning` |
|
|
74
74
|
| `arcee-ai/spotlight` |
|
|
75
|
-
| `arcee-ai/trinity-large-preview` |
|
|
76
75
|
| `arcee-ai/trinity-large-thinking` |
|
|
77
76
|
| `arcee-ai/trinity-large-thinking:free` |
|
|
78
77
|
| `arcee-ai/trinity-mini` |
|
|
@@ -350,6 +349,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
350
349
|
| `qwen/qwen3.6-flash` |
|
|
351
350
|
| `qwen/qwen3.6-max-preview` |
|
|
352
351
|
| `qwen/qwen3.6-plus` |
|
|
352
|
+
| `qwen/qwen3.7-max` |
|
|
353
353
|
| `rekaai/reka-edge` |
|
|
354
354
|
| `rekaai/reka-flash-3` |
|
|
355
355
|
| `relace/relace-apply-3` |
|
|
@@ -373,6 +373,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
373
373
|
| `x-ai/grok-4.20` |
|
|
374
374
|
| `x-ai/grok-4.20-multi-agent` |
|
|
375
375
|
| `x-ai/grok-4.3` |
|
|
376
|
+
| `x-ai/grok-build-0.1` |
|
|
376
377
|
| `xiaomi/mimo-v2-flash` |
|
|
377
378
|
| `xiaomi/mimo-v2-omni` |
|
|
378
379
|
| `xiaomi/mimo-v2-pro` |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Vercel
|
|
2
2
|
|
|
3
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
3
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 243 models through Mastra's model router.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
6
6
|
|
|
@@ -59,6 +59,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
59
59
|
| `alibaba/qwen3.5-plus` |
|
|
60
60
|
| `alibaba/qwen3.6-27b` |
|
|
61
61
|
| `alibaba/qwen3.6-plus` |
|
|
62
|
+
| `alibaba/qwen3.7-max` |
|
|
62
63
|
| `amazon/nova-2-lite` |
|
|
63
64
|
| `amazon/nova-lite` |
|
|
64
65
|
| `amazon/nova-micro` |
|
|
@@ -116,6 +117,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
116
117
|
| `google/gemini-3.1-flash-lite` |
|
|
117
118
|
| `google/gemini-3.1-flash-lite-preview` |
|
|
118
119
|
| `google/gemini-3.1-pro-preview` |
|
|
120
|
+
| `google/gemini-3.5-flash` |
|
|
119
121
|
| `google/gemini-embedding-001` |
|
|
120
122
|
| `google/gemini-embedding-2` |
|
|
121
123
|
| `google/gemma-4-26b-a4b-it` |
|
|
@@ -163,6 +165,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
163
165
|
| `mistral/mistral-embed` |
|
|
164
166
|
| `mistral/mistral-large-3` |
|
|
165
167
|
| `mistral/mistral-medium` |
|
|
168
|
+
| `mistral/mistral-medium-3.5` |
|
|
166
169
|
| `mistral/mistral-nemo` |
|
|
167
170
|
| `mistral/mistral-small` |
|
|
168
171
|
| `mistral/mixtral-8x22b-instruct` |
|
|
@@ -244,7 +247,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
244
247
|
| `voyage/voyage-code-3` |
|
|
245
248
|
| `voyage/voyage-finance-2` |
|
|
246
249
|
| `voyage/voyage-law-2` |
|
|
247
|
-
| `xai/grok-2-vision` |
|
|
248
250
|
| `xai/grok-4-fast-reasoning` |
|
|
249
251
|
| `xai/grok-4.1-fast-non-reasoning` |
|
|
250
252
|
| `xai/grok-4.1-fast-reasoning` |
|
|
@@ -255,6 +257,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
255
257
|
| `xai/grok-4.20-reasoning` |
|
|
256
258
|
| `xai/grok-4.20-reasoning-beta` |
|
|
257
259
|
| `xai/grok-4.3` |
|
|
260
|
+
| `xai/grok-build-0.1` |
|
|
258
261
|
| `xai/grok-imagine-image` |
|
|
259
262
|
| `xai/grok-imagine-image-pro` |
|
|
260
263
|
| `xiaomi/mimo-v2-flash` |
|
package/.docs/models/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Model Providers
|
|
2
2
|
|
|
3
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
3
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 4243 models from 124 providers through a single API.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Alibaba
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 49 Alibaba models through Mastra's model router. Authentication is handled automatically using the `DASHSCOPE_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Alibaba documentation](https://www.alibabacloud.com/help/en/model-studio/models).
|
|
6
6
|
|
|
@@ -81,6 +81,7 @@ for await (const chunk of stream) {
|
|
|
81
81
|
| `alibaba/qwen3.6-35b-a3b` | 262K | | | | | | $0.25 | $1 |
|
|
82
82
|
| `alibaba/qwen3.6-max-preview` | 262K | | | | | | $1 | $8 |
|
|
83
83
|
| `alibaba/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
|
|
84
|
+
| `alibaba/qwen3.7-max` | 1.0M | | | | | | $3 | $8 |
|
|
84
85
|
| `alibaba/qwq-plus` | 131K | | | | | | $0.80 | $2 |
|
|
85
86
|
|
|
86
87
|
## Advanced configuration
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cloudflare Workers AI
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 27 Cloudflare Workers AI models through Mastra's model router. Authentication is handled automatically using the `CLOUDFLARE_API_KEY` environment variable. Configure `CLOUDFLARE_ACCOUNT_ID` as well.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Cloudflare Workers AI documentation](https://developers.cloudflare.com/workers-ai/models/).
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ const agent = new Agent({
|
|
|
16
16
|
id: "my-agent",
|
|
17
17
|
name: "My Agent",
|
|
18
18
|
instructions: "You are a helpful assistant",
|
|
19
|
-
model: "cloudflare-workers-ai/@cf/
|
|
19
|
+
model: "cloudflare-workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it"
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
// Generate a response
|
|
@@ -33,16 +33,35 @@ for await (const chunk of stream) {
|
|
|
33
33
|
|
|
34
34
|
## Models
|
|
35
35
|
|
|
36
|
-
| Model
|
|
37
|
-
|
|
|
38
|
-
| `cloudflare-workers-ai/@cf/
|
|
39
|
-
| `cloudflare-workers-ai/@cf/
|
|
40
|
-
| `cloudflare-workers-ai/@cf/
|
|
41
|
-
| `cloudflare-workers-ai/@cf/
|
|
42
|
-
| `cloudflare-workers-ai/@cf/
|
|
43
|
-
| `cloudflare-workers-ai/@cf/
|
|
44
|
-
| `cloudflare-workers-ai/@cf/
|
|
45
|
-
| `cloudflare-workers-ai/@cf/
|
|
36
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
37
|
+
| -------------------------------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
38
|
+
| `cloudflare-workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it` | 128K | | | | | | $0.35 | $0.56 |
|
|
39
|
+
| `cloudflare-workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b` | 80K | | | | | | $0.50 | $5 |
|
|
40
|
+
| `cloudflare-workers-ai/@cf/google/gemma-3-12b-it` | 80K | | | | | | $0.34 | $0.56 |
|
|
41
|
+
| `cloudflare-workers-ai/@cf/google/gemma-4-26b-a4b-it` | 256K | | | | | | $0.10 | $0.30 |
|
|
42
|
+
| `cloudflare-workers-ai/@cf/ibm-granite/granite-4.0-h-micro` | 131K | | | | | | $0.02 | $0.11 |
|
|
43
|
+
| `cloudflare-workers-ai/@cf/meta/llama-2-7b-chat-fp16` | 4K | | | | | | $0.56 | $7 |
|
|
44
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3-8b-instruct` | 8K | | | | | | $0.28 | $0.83 |
|
|
45
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3-8b-instruct-awq` | 8K | | | | | | $0.12 | $0.27 |
|
|
46
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.1-8b-instruct-awq` | 8K | | | | | | $0.12 | $0.27 |
|
|
47
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8` | 32K | | | | | | $0.15 | $0.29 |
|
|
48
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.2-11b-vision-instruct` | 128K | | | | | | $0.05 | $0.68 |
|
|
49
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.2-1b-instruct` | 60K | | | | | | $0.03 | $0.20 |
|
|
50
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.2-3b-instruct` | 80K | | | | | | $0.05 | $0.34 |
|
|
51
|
+
| `cloudflare-workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast` | 24K | | | | | | $0.29 | $2 |
|
|
52
|
+
| `cloudflare-workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct` | 131K | | | | | | $0.27 | $0.85 |
|
|
53
|
+
| `cloudflare-workers-ai/@cf/meta/llama-guard-3-8b` | 131K | | | | | | $0.48 | $0.03 |
|
|
54
|
+
| `cloudflare-workers-ai/@cf/mistral/mistral-7b-instruct-v0.1` | 3K | | | | | | $0.11 | $0.19 |
|
|
55
|
+
| `cloudflare-workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct` | 128K | | | | | | $0.35 | $0.56 |
|
|
56
|
+
| `cloudflare-workers-ai/@cf/moonshotai/kimi-k2.5` | 256K | | | | | | $0.60 | $3 |
|
|
57
|
+
| `cloudflare-workers-ai/@cf/moonshotai/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
58
|
+
| `cloudflare-workers-ai/@cf/nvidia/nemotron-3-120b-a12b` | 256K | | | | | | $0.50 | $2 |
|
|
59
|
+
| `cloudflare-workers-ai/@cf/openai/gpt-oss-120b` | 128K | | | | | | $0.35 | $0.75 |
|
|
60
|
+
| `cloudflare-workers-ai/@cf/openai/gpt-oss-20b` | 128K | | | | | | $0.20 | $0.30 |
|
|
61
|
+
| `cloudflare-workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct` | 33K | | | | | | $0.66 | $1 |
|
|
62
|
+
| `cloudflare-workers-ai/@cf/qwen/qwen3-30b-a3b-fp8` | 33K | | | | | | $0.05 | $0.34 |
|
|
63
|
+
| `cloudflare-workers-ai/@cf/qwen/qwq-32b` | 24K | | | | | | $0.66 | $1 |
|
|
64
|
+
| `cloudflare-workers-ai/@cf/zai-org/glm-4.7-flash` | 131K | | | | | | $0.06 | $0.40 |
|
|
46
65
|
|
|
47
66
|
## Advanced configuration
|
|
48
67
|
|
|
@@ -54,7 +73,7 @@ const agent = new Agent({
|
|
|
54
73
|
name: "custom-agent",
|
|
55
74
|
model: {
|
|
56
75
|
url: "https://api.cloudflare.com/client/v4/accounts/${CLOUDFLARE_ACCOUNT_ID}/ai/v1",
|
|
57
|
-
id: "cloudflare-workers-ai/@cf/
|
|
76
|
+
id: "cloudflare-workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it",
|
|
58
77
|
apiKey: process.env.CLOUDFLARE_API_KEY,
|
|
59
78
|
headers: {
|
|
60
79
|
"X-Custom-Header": "value"
|
|
@@ -73,7 +92,7 @@ const agent = new Agent({
|
|
|
73
92
|
const useAdvanced = requestContext.task === "complex";
|
|
74
93
|
return useAdvanced
|
|
75
94
|
? "cloudflare-workers-ai/@cf/zai-org/glm-4.7-flash"
|
|
76
|
-
: "cloudflare-workers-ai/@cf/
|
|
95
|
+
: "cloudflare-workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it";
|
|
77
96
|
}
|
|
78
97
|
});
|
|
79
98
|
```
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# CrofAI
|
|
2
|
+
|
|
3
|
+
Access 21 CrofAI models through Mastra's model router. Authentication is handled automatically using the `CROF_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [CrofAI documentation](https://crof.ai/docs).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
CROF_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: "crof/deepseek-v3.2"
|
|
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 [CrofAI documentation](https://crof.ai/docs) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| -------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `crof/deepseek-v3.2` | 164K | | | | | | $0.28 | $0.38 |
|
|
38
|
+
| `crof/deepseek-v4-flash` | 1.0M | | | | | | $0.12 | $0.21 |
|
|
39
|
+
| `crof/deepseek-v4-pro` | 1.0M | | | | | | $0.40 | $0.85 |
|
|
40
|
+
| `crof/deepseek-v4-pro-precision` | 1.0M | | | | | | $1 | $3 |
|
|
41
|
+
| `crof/gemma-4-31b-it` | 262K | | | | | | $0.10 | $0.30 |
|
|
42
|
+
| `crof/glm-4.7` | 203K | | | | | | $0.25 | $1 |
|
|
43
|
+
| `crof/glm-4.7-flash` | 200K | | | | | | $0.04 | $0.30 |
|
|
44
|
+
| `crof/glm-5` | 203K | | | | | | $0.48 | $2 |
|
|
45
|
+
| `crof/glm-5.1` | 203K | | | | | | $0.45 | $2 |
|
|
46
|
+
| `crof/glm-5.1-precision` | 203K | | | | | | $0.75 | $3 |
|
|
47
|
+
| `crof/greg` | 229K | | | | | | $0.10 | $0.20 |
|
|
48
|
+
| `crof/kimi-k2.5` | 262K | | | | | | $0.35 | $2 |
|
|
49
|
+
| `crof/kimi-k2.5-lightning` | 131K | | | | | | $1 | $3 |
|
|
50
|
+
| `crof/kimi-k2.6` | 262K | | | | | | $0.50 | $2 |
|
|
51
|
+
| `crof/kimi-k2.6-precision` | 262K | | | | | | $0.55 | $3 |
|
|
52
|
+
| `crof/mimo-v2.5-pro` | 1.0M | | | | | | $0.50 | $2 |
|
|
53
|
+
| `crof/mimo-v2.5-pro-precision` | 1.0M | | | | | | $0.80 | $3 |
|
|
54
|
+
| `crof/minimax-m2.5` | 205K | | | | | | $0.11 | $0.95 |
|
|
55
|
+
| `crof/qwen3.5-397b-a17b` | 262K | | | | | | $0.35 | $2 |
|
|
56
|
+
| `crof/qwen3.5-9b` | 262K | | | | | | $0.04 | $0.15 |
|
|
57
|
+
| `crof/qwen3.6-27b` | 262K | | | | | | $0.20 | $2 |
|
|
58
|
+
|
|
59
|
+
## Advanced configuration
|
|
60
|
+
|
|
61
|
+
### Custom headers
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const agent = new Agent({
|
|
65
|
+
id: "custom-agent",
|
|
66
|
+
name: "custom-agent",
|
|
67
|
+
model: {
|
|
68
|
+
url: "https://crof.ai/v1",
|
|
69
|
+
id: "crof/deepseek-v3.2",
|
|
70
|
+
apiKey: process.env.CROF_API_KEY,
|
|
71
|
+
headers: {
|
|
72
|
+
"X-Custom-Header": "value"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Dynamic model selection
|
|
79
|
+
|
|
80
|
+
```typescript
|
|
81
|
+
const agent = new Agent({
|
|
82
|
+
id: "dynamic-agent",
|
|
83
|
+
name: "Dynamic Agent",
|
|
84
|
+
model: ({ requestContext }) => {
|
|
85
|
+
const useAdvanced = requestContext.task === "complex";
|
|
86
|
+
return useAdvanced
|
|
87
|
+
? "crof/qwen3.6-27b"
|
|
88
|
+
: "crof/deepseek-v3.2";
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
```
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Inceptron
|
|
2
|
+
|
|
3
|
+
Access 4 Inceptron models through Mastra's model router. Authentication is handled automatically using the `INCEPTRON_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [Inceptron documentation](https://docs.inceptron.io).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
INCEPTRON_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: "inceptron/MiniMaxAI/MiniMax-M2.5"
|
|
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 [Inceptron documentation](https://docs.inceptron.io) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| --------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `inceptron/MiniMaxAI/MiniMax-M2.5` | 197K | | | | | | $0.24 | $0.90 |
|
|
38
|
+
| `inceptron/moonshotai/Kimi-K2.6` | 262K | | | | | | $0.78 | $4 |
|
|
39
|
+
| `inceptron/nvidia/llama-3.3-70b-instruct-fp8` | 131K | | | | | | $0.12 | $0.38 |
|
|
40
|
+
| `inceptron/zai-org/GLM-5.1-FP8` | 203K | | | | | | $1 | $4 |
|
|
41
|
+
|
|
42
|
+
## Advanced configuration
|
|
43
|
+
|
|
44
|
+
### Custom headers
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const agent = new Agent({
|
|
48
|
+
id: "custom-agent",
|
|
49
|
+
name: "custom-agent",
|
|
50
|
+
model: {
|
|
51
|
+
url: "https://api.inceptron.io/v1",
|
|
52
|
+
id: "inceptron/MiniMaxAI/MiniMax-M2.5",
|
|
53
|
+
apiKey: process.env.INCEPTRON_API_KEY,
|
|
54
|
+
headers: {
|
|
55
|
+
"X-Custom-Header": "value"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Dynamic model selection
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
const agent = new Agent({
|
|
65
|
+
id: "dynamic-agent",
|
|
66
|
+
name: "Dynamic Agent",
|
|
67
|
+
model: ({ requestContext }) => {
|
|
68
|
+
const useAdvanced = requestContext.task === "complex";
|
|
69
|
+
return useAdvanced
|
|
70
|
+
? "inceptron/zai-org/GLM-5.1-FP8"
|
|
71
|
+
: "inceptron/MiniMaxAI/MiniMax-M2.5";
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# LLM Gateway
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 187 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
|
|
6
6
|
|
|
@@ -68,6 +68,7 @@ for await (const chunk of stream) {
|
|
|
68
68
|
| `llmgateway/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
69
69
|
| `llmgateway/gemini-3.1-flash-lite-preview` | 1.0M | | | | | | $0.25 | $2 |
|
|
70
70
|
| `llmgateway/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
71
|
+
| `llmgateway/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
|
|
71
72
|
| `llmgateway/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
72
73
|
| `llmgateway/gemma-2-27b-it-together` | 8K | | | | | | $0.08 | $0.08 |
|
|
73
74
|
| `llmgateway/gemma-3-1b-it` | 1.0M | | | | | | $0.08 | $0.30 |
|
|
@@ -122,8 +123,10 @@ for await (const chunk of stream) {
|
|
|
122
123
|
| `llmgateway/gpt-oss-20b` | 131K | | | | | | $0.10 | $0.50 |
|
|
123
124
|
| `llmgateway/grok-4-0709` | 256K | | | | | | $3 | $15 |
|
|
124
125
|
| `llmgateway/grok-4-1-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
125
|
-
| `llmgateway/grok-4-20-beta-0309-non-reasoning` | 2.0M | | | | | | $
|
|
126
|
-
| `llmgateway/grok-4-20-beta-0309-reasoning` | 2.0M | | | | | | $
|
|
126
|
+
| `llmgateway/grok-4-20-beta-0309-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
127
|
+
| `llmgateway/grok-4-20-beta-0309-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
128
|
+
| `llmgateway/grok-4-20-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
129
|
+
| `llmgateway/grok-4-20-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
127
130
|
| `llmgateway/grok-4-3` | 1.0M | | | | | | $1 | $3 |
|
|
128
131
|
| `llmgateway/grok-4-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
129
132
|
| `llmgateway/hermes-2-pro-llama-3-8b` | 8K | | | | | | $0.14 | $0.14 |
|
|
@@ -209,6 +212,7 @@ for await (const chunk of stream) {
|
|
|
209
212
|
| `llmgateway/qwen3.6-max-preview` | 262K | | | | | | $1 | $8 |
|
|
210
213
|
| `llmgateway/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
|
|
211
214
|
| `llmgateway/qwen35-397b-a17b` | 262K | | | | | | $0.60 | $4 |
|
|
215
|
+
| `llmgateway/qwen37-max` | 1.0M | | | | | | $3 | $8 |
|
|
212
216
|
| `llmgateway/qwq-plus` | 131K | | | | | | $0.80 | $2 |
|
|
213
217
|
| `llmgateway/seed-1-6-250615` | 256K | | | | | | $0.25 | $2 |
|
|
214
218
|
| `llmgateway/seed-1-6-250915` | 256K | | | | | | $0.25 | $2 |
|
|
@@ -66,6 +66,7 @@ for await (const chunk of stream) {
|
|
|
66
66
|
| `opencode/gpt-5.4-pro` | 1.1M | | | | | | $30 | $180 |
|
|
67
67
|
| `opencode/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
|
|
68
68
|
| `opencode/gpt-5.5-pro` | 1.1M | | | | | | $30 | $180 |
|
|
69
|
+
| `opencode/grok-build-0.1` | 256K | | | | | | $1 | $2 |
|
|
69
70
|
| `opencode/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
|
|
70
71
|
| `opencode/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
71
72
|
| `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -73,7 +74,6 @@ for await (const chunk of stream) {
|
|
|
73
74
|
| `opencode/nemotron-3-super-free` | 205K | | | | | | — | — |
|
|
74
75
|
| `opencode/qwen3.5-plus` | 262K | | | | | | $0.20 | $1 |
|
|
75
76
|
| `opencode/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
|
|
76
|
-
| `opencode/qwen3.6-plus-free` | 262K | | | | | | — | — |
|
|
77
77
|
|
|
78
78
|
## Advanced configuration
|
|
79
79
|
|
|
@@ -103,7 +103,7 @@ const agent = new Agent({
|
|
|
103
103
|
model: ({ requestContext }) => {
|
|
104
104
|
const useAdvanced = requestContext.task === "complex";
|
|
105
105
|
return useAdvanced
|
|
106
|
-
? "opencode/qwen3.6-plus
|
|
106
|
+
? "opencode/qwen3.6-plus"
|
|
107
107
|
: "opencode/big-pickle";
|
|
108
108
|
}
|
|
109
109
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Scaleway
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 17 Scaleway models through Mastra's model router. Authentication is handled automatically using the `SCALEWAY_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [Scaleway documentation](https://www.scaleway.com/en/docs/generative-apis/).
|
|
6
6
|
|
|
@@ -41,6 +41,7 @@ for await (const chunk of stream) {
|
|
|
41
41
|
| `scaleway/gpt-oss-120b` | 128K | | | | | | $0.15 | $0.60 |
|
|
42
42
|
| `scaleway/llama-3.1-8b-instruct` | 128K | | | | | | $0.20 | $0.20 |
|
|
43
43
|
| `scaleway/llama-3.3-70b-instruct` | 100K | | | | | | $0.90 | $0.90 |
|
|
44
|
+
| `scaleway/mistral-medium-3.5-128b` | 256K | | | | | | $2 | $8 |
|
|
44
45
|
| `scaleway/mistral-nemo-instruct-2407` | 128K | | | | | | $0.20 | $0.20 |
|
|
45
46
|
| `scaleway/mistral-small-3.2-24b-instruct-2506` | 128K | | | | | | $0.15 | $0.35 |
|
|
46
47
|
| `scaleway/pixtral-12b-2409` | 128K | | | | | | $0.20 | $0.20 |
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# StepFun
|
|
2
|
+
|
|
3
|
+
Access 2 StepFun models through Mastra's model router. Authentication is handled automatically using the `STEPFUN_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [StepFun documentation](https://platform.stepfun.ai/docs/en/step-plan/integrations/open-code).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
STEPFUN_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: "stepfun-ai/step-3.5-flash"
|
|
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 [StepFun documentation](https://platform.stepfun.ai/docs/en/step-plan/integrations/open-code) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| -------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `stepfun-ai/step-3.5-flash` | 256K | | | | | | $0.10 | $0.29 |
|
|
38
|
+
| `stepfun-ai/step-3.5-flash-2603` | 256K | | | | | | $0.10 | $0.30 |
|
|
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.stepfun.ai/step_plan/v1",
|
|
50
|
+
id: "stepfun-ai/step-3.5-flash",
|
|
51
|
+
apiKey: process.env.STEPFUN_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
|
+
? "stepfun-ai/step-3.5-flash-2603"
|
|
69
|
+
: "stepfun-ai/step-3.5-flash";
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# xAI
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 8 xAI models through Mastra's model router. Authentication is handled automatically using the `XAI_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [xAI documentation](https://docs.x.ai/docs/models).
|
|
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: "xai/grok-
|
|
18
|
+
model: "xai/grok-4.20-0309-non-reasoning"
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
// Generate a response
|
|
@@ -32,22 +32,14 @@ for await (const chunk of stream) {
|
|
|
32
32
|
|
|
33
33
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
34
34
|
| ---------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
35
|
-
| `xai/grok-
|
|
36
|
-
| `xai/grok-
|
|
37
|
-
| `xai/grok-
|
|
38
|
-
| `xai/grok-2-vision` | 8K | | | | | | $2 | $10 |
|
|
39
|
-
| `xai/grok-2-vision-1212` | 8K | | | | | | $2 | $10 |
|
|
40
|
-
| `xai/grok-2-vision-latest` | 8K | | | | | | $2 | $10 |
|
|
41
|
-
| `xai/grok-4.20-0309-non-reasoning` | 2.0M | | | | | | $2 | $6 |
|
|
42
|
-
| `xai/grok-4.20-0309-reasoning` | 2.0M | | | | | | $2 | $6 |
|
|
43
|
-
| `xai/grok-4.20-multi-agent-0309` | 2.0M | | | | | | $2 | $6 |
|
|
35
|
+
| `xai/grok-4.20-0309-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
36
|
+
| `xai/grok-4.20-0309-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
37
|
+
| `xai/grok-4.20-multi-agent-0309` | 2.0M | | | | | | $1 | $3 |
|
|
44
38
|
| `xai/grok-4.3` | 1.0M | | | | | | $1 | $3 |
|
|
45
|
-
| `xai/grok-beta` | 131K | | | | | | $5 | $15 |
|
|
46
39
|
| `xai/grok-build-0.1` | 256K | | | | | | $1 | $2 |
|
|
47
|
-
| `xai/grok-imagine-image` |
|
|
48
|
-
| `xai/grok-imagine-image-quality` |
|
|
40
|
+
| `xai/grok-imagine-image` | 8K | | | | | | — | — |
|
|
41
|
+
| `xai/grok-imagine-image-quality` | 8K | | | | | | — | — |
|
|
49
42
|
| `xai/grok-imagine-video` | 1K | | | | | | — | — |
|
|
50
|
-
| `xai/grok-vision-beta` | 8K | | | | | | $5 | $15 |
|
|
51
43
|
|
|
52
44
|
## Advanced configuration
|
|
53
45
|
|
|
@@ -58,7 +50,7 @@ const agent = new Agent({
|
|
|
58
50
|
id: "custom-agent",
|
|
59
51
|
name: "custom-agent",
|
|
60
52
|
model: {
|
|
61
|
-
id: "xai/grok-
|
|
53
|
+
id: "xai/grok-4.20-0309-non-reasoning",
|
|
62
54
|
apiKey: process.env.XAI_API_KEY,
|
|
63
55
|
headers: {
|
|
64
56
|
"X-Custom-Header": "value"
|
|
@@ -76,8 +68,8 @@ const agent = new Agent({
|
|
|
76
68
|
model: ({ requestContext }) => {
|
|
77
69
|
const useAdvanced = requestContext.task === "complex";
|
|
78
70
|
return useAdvanced
|
|
79
|
-
? "xai/grok-
|
|
80
|
-
: "xai/grok-
|
|
71
|
+
? "xai/grok-imagine-video"
|
|
72
|
+
: "xai/grok-4.20-0309-non-reasoning";
|
|
81
73
|
}
|
|
82
74
|
});
|
|
83
75
|
```
|
|
@@ -29,6 +29,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
29
29
|
- [CloudFerro Sherlock](https://mastra.ai/models/providers/cloudferro-sherlock)
|
|
30
30
|
- [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai)
|
|
31
31
|
- [Cortecs](https://mastra.ai/models/providers/cortecs)
|
|
32
|
+
- [CrofAI](https://mastra.ai/models/providers/crof)
|
|
32
33
|
- [D.Run (China)](https://mastra.ai/models/providers/drun)
|
|
33
34
|
- [Databricks](https://mastra.ai/models/providers/databricks)
|
|
34
35
|
- [Deep Infra](https://mastra.ai/models/providers/deepinfra)
|
|
@@ -47,6 +48,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
47
48
|
- [Hugging Face](https://mastra.ai/models/providers/huggingface)
|
|
48
49
|
- [iFlow](https://mastra.ai/models/providers/iflowcn)
|
|
49
50
|
- [Inception](https://mastra.ai/models/providers/inception)
|
|
51
|
+
- [Inceptron](https://mastra.ai/models/providers/inceptron)
|
|
50
52
|
- [Inference](https://mastra.ai/models/providers/inference)
|
|
51
53
|
- [IO.NET](https://mastra.ai/models/providers/io-net)
|
|
52
54
|
- [Jiekou.AI](https://mastra.ai/models/providers/jiekou)
|
|
@@ -96,6 +98,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
96
98
|
- [SiliconFlow (China)](https://mastra.ai/models/providers/siliconflow-cn)
|
|
97
99
|
- [STACKIT](https://mastra.ai/models/providers/stackit)
|
|
98
100
|
- [StepFun](https://mastra.ai/models/providers/stepfun)
|
|
101
|
+
- [StepFun](https://mastra.ai/models/providers/stepfun-ai)
|
|
99
102
|
- [submodel](https://mastra.ai/models/providers/submodel)
|
|
100
103
|
- [Synthetic](https://mastra.ai/models/providers/synthetic)
|
|
101
104
|
- [Tencent Coding Plan (China)](https://mastra.ai/models/providers/tencent-coding-plan)
|
|
@@ -39,7 +39,7 @@ Use stagehand_extract to get data from pages.`,
|
|
|
39
39
|
|
|
40
40
|
**projectId** (`string`): Browserbase project ID. Required when env is 'BROWSERBASE'.
|
|
41
41
|
|
|
42
|
-
**model** (`string | ModelConfiguration`): Model configuration for AI operations. Can be a string like '
|
|
42
|
+
**model** (`string | ModelConfiguration`): Model configuration for AI operations. Can be a string like '\_\_GATEWAY\_OPENAI\_MODEL\_\_' or an object with modelName, apiKey, and baseURL. (Default: `'openai/gpt-5.4'`)
|
|
43
43
|
|
|
44
44
|
**selfHeal** (`boolean`): Enable self-healing selectors. When enabled, Stagehand uses AI to find elements even when initial selectors fail. (Default: `true`)
|
|
45
45
|
|
|
@@ -464,6 +464,37 @@ response.processDataStream({
|
|
|
464
464
|
})
|
|
465
465
|
```
|
|
466
466
|
|
|
467
|
+
### Tracing client tools
|
|
468
|
+
|
|
469
|
+
When `@mastra/observability` is installed and configured on the server, a client-side tool records a `CLIENT_TOOL_CALL` span as a child of the current `AGENT_RUN` span. The server creates that span when the model emits the client tool call, injects a W3C trace carrier into the outgoing tool-call chunk, and ends the span once the tool arguments are available. Without server-side observability configured, client tool tracing is a no-op.
|
|
470
|
+
|
|
471
|
+
The client SDK also measures the wall-clock duration of each client tool's `execute` function and ships it back to the server, where it's emitted as a `mastra_tool_duration_ms` metric with `toolType: "client"`.
|
|
472
|
+
|
|
473
|
+
For richer telemetry from inside your tool's `execute` function, use the `observe` helper on the execution context to add child spans and structured logs:
|
|
474
|
+
|
|
475
|
+
```typescript
|
|
476
|
+
import { createTool } from '@mastra/client-js'
|
|
477
|
+
import { z } from 'zod'
|
|
478
|
+
|
|
479
|
+
const fetchUserTool = createTool({
|
|
480
|
+
id: 'fetchUser',
|
|
481
|
+
description: 'Fetches the current user profile',
|
|
482
|
+
inputSchema: z.object({ userId: z.string() }),
|
|
483
|
+
execute: async ({ userId }, { observe }) => {
|
|
484
|
+
observe.log('info', 'fetching user', { userId })
|
|
485
|
+
const user = await observe.span('http GET /users', async () => {
|
|
486
|
+
const res = await fetch(`/api/users/${userId}`)
|
|
487
|
+
return res.json()
|
|
488
|
+
})
|
|
489
|
+
return user
|
|
490
|
+
},
|
|
491
|
+
})
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
`observe` is always available — when no tracing context is active (e.g. running outside a traced agent), `span` runs the function directly and `log` is a no-op. No null-checking needed.
|
|
495
|
+
|
|
496
|
+
The SDK serializes everything the collector buffered as OTLP/JSON and ships it back in the next request body. The server's `@mastra/observability` package validates that the spans belong to the correct trace (preventing cross-trace injection) and forwards each span/log into the same observability bus that server-side telemetry uses. Your existing exporters pick them up automatically after observability is configured.
|
|
497
|
+
|
|
467
498
|
## Stored agents
|
|
468
499
|
|
|
469
500
|
Stored agents are agent configurations stored in a database that can be created, updated, and deleted at runtime. They reference primitives (tools, workflows, other agents, scorers) by key, which are resolved from the Mastra registry when the agent is instantiated. Memory is configured inline as a `SerializedMemoryConfig` object with options such as `lastMessages` and `semanticRecall`.
|
|
@@ -547,7 +547,7 @@ import { createNoiseSensitivityScorerLLM } from '@mastra/evals'
|
|
|
547
547
|
async function compareModelRobustness() {
|
|
548
548
|
const models = [
|
|
549
549
|
{ name: 'GPT-5.4', model: 'openai/gpt-5.4' },
|
|
550
|
-
{ name: 'GPT-5.4-mini', model: 'openai/gpt-5
|
|
550
|
+
{ name: 'GPT-5.4-mini', model: 'openai/gpt-5-mini' },
|
|
551
551
|
{ name: 'Claude', model: 'anthropic/claude-opus-4-6' },
|
|
552
552
|
]
|
|
553
553
|
|
|
@@ -656,7 +656,7 @@ const modelId = harness.getReflectorModelId()
|
|
|
656
656
|
Switch the observer model. Persists the setting to thread metadata and emits an `om_model_changed` event.
|
|
657
657
|
|
|
658
658
|
```typescript
|
|
659
|
-
await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-
|
|
659
|
+
await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-4-5' })
|
|
660
660
|
```
|
|
661
661
|
|
|
662
662
|
#### `switchReflectorModel({ modelId })`
|
|
@@ -664,7 +664,7 @@ await harness.switchObserverModel({ modelId: 'anthropic/claude-haiku-3.5' })
|
|
|
664
664
|
Switch the reflector model. Persists the setting to thread metadata and emits an `om_model_changed` event.
|
|
665
665
|
|
|
666
666
|
```typescript
|
|
667
|
-
await harness.switchReflectorModel({ modelId: 'anthropic/claude-haiku-
|
|
667
|
+
await harness.switchReflectorModel({ modelId: 'anthropic/claude-haiku-4-5' })
|
|
668
668
|
```
|
|
669
669
|
|
|
670
670
|
#### `getObservationThreshold()`
|
|
@@ -702,7 +702,10 @@ Set the subagent model ID. Pass an `agentType` to set a per-type override, or om
|
|
|
702
702
|
await harness.setSubagentModelId({ modelId: 'anthropic/claude-sonnet-4-6' })
|
|
703
703
|
|
|
704
704
|
// Set per-type model
|
|
705
|
-
await harness.setSubagentModelId({
|
|
705
|
+
await harness.setSubagentModelId({
|
|
706
|
+
modelId: 'anthropic/claude-haiku-4-5',
|
|
707
|
+
agentType: 'explore',
|
|
708
|
+
})
|
|
706
709
|
```
|
|
707
710
|
|
|
708
711
|
### Forked subagents
|
|
@@ -674,7 +674,7 @@ import { ModelByInputTokens } from '@mastra/memory'
|
|
|
674
674
|
const selector = new ModelByInputTokens({
|
|
675
675
|
upTo: {
|
|
676
676
|
10_000: 'google/gemini-2.5-flash', // Fast for small inputs
|
|
677
|
-
40_000: 'openai/gpt-5
|
|
677
|
+
40_000: 'openai/gpt-5-mini', // Stronger for medium inputs
|
|
678
678
|
1_000_000: 'openai/gpt-5.4', // Most capable for large inputs
|
|
679
679
|
},
|
|
680
680
|
})
|
|
@@ -146,6 +146,7 @@ The exporter sets these standard OpenTelemetry attributes:
|
|
|
146
146
|
|
|
147
147
|
- `sentry.origin`: `auto.ai.mastra` (identifies spans from Mastra)
|
|
148
148
|
- `ai.span.type`: Mastra span type
|
|
149
|
+
- `gen_ai.conversation.id`: Chat thread identifier, set from `metadata.threadId` to group spans in Sentry's Conversations view
|
|
149
150
|
|
|
150
151
|
**MODEL\_GENERATION spans:**
|
|
151
152
|
|
|
@@ -43,6 +43,7 @@ interface SpanTypeMap {
|
|
|
43
43
|
MODEL_STEP: ModelStepAttributes
|
|
44
44
|
MODEL_CHUNK: ModelChunkAttributes
|
|
45
45
|
TOOL_CALL: ToolCallAttributes
|
|
46
|
+
CLIENT_TOOL_CALL: ClientToolCallAttributes
|
|
46
47
|
MCP_TOOL_CALL: MCPToolCallAttributes
|
|
47
48
|
PROCESSOR_RUN: ProcessorRunAttributes
|
|
48
49
|
WORKFLOW_STEP: WorkflowStepAttributes
|
|
@@ -255,6 +256,18 @@ enum SpanType {
|
|
|
255
256
|
/** Function/tool execution with inputs, outputs, errors */
|
|
256
257
|
TOOL_CALL = 'tool_call',
|
|
257
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Client-side tool execution marker. The server creates this span
|
|
261
|
+
* when the model emits a client tool call, injects its W3C carrier
|
|
262
|
+
* into the outgoing tool-call chunk, then ends the span once tool
|
|
263
|
+
* args are available. Child spans/logs from the client SDK flow back
|
|
264
|
+
* as OTLP/JSON via the ClientObservabilityProxy interface in
|
|
265
|
+
* @mastra/observability and parent themselves under this span.
|
|
266
|
+
* See the "Client tools" section in the @mastra/client-js reference
|
|
267
|
+
* for the full flow.
|
|
268
|
+
*/
|
|
269
|
+
CLIENT_TOOL_CALL = 'client_tool_call',
|
|
270
|
+
|
|
258
271
|
/** Workflow run - root span for workflow processes */
|
|
259
272
|
WORKFLOW_RUN = 'workflow_run',
|
|
260
273
|
|
|
@@ -318,7 +318,7 @@ processInputStep?<TTripwireMetadata = unknown>(
|
|
|
318
318
|
|
|
319
319
|
The object form can return any combination of these properties:
|
|
320
320
|
|
|
321
|
-
**model** (`LanguageModelV2 | string`): Change the model for this step. Can be a model instance or router ID like '
|
|
321
|
+
**model** (`LanguageModelV2 | string`): Change the model for this step. Can be a model instance or router ID like '\_\_GATEWAY\_OPENAI\_MODEL\_\_'.
|
|
322
322
|
|
|
323
323
|
**toolChoice** (`ToolChoice`): Change tool selection behavior for this step.
|
|
324
324
|
|
|
@@ -74,7 +74,7 @@ const agent = new Agent({
|
|
|
74
74
|
name: 'skill-agent',
|
|
75
75
|
instructions:
|
|
76
76
|
'You are a helpful assistant. Use search_skills to find relevant skills, then load_skill to load their instructions.',
|
|
77
|
-
model: 'openai/gpt-
|
|
77
|
+
model: 'openai/gpt-5.4',
|
|
78
78
|
workspace,
|
|
79
79
|
inputProcessors: [skillSearch],
|
|
80
80
|
})
|
|
@@ -114,7 +114,7 @@ import { Mastra } from '@mastra/core/mastra'
|
|
|
114
114
|
greeter: {
|
|
115
115
|
name: 'greeter',
|
|
116
116
|
description: 'Greets the user',
|
|
117
|
-
model: config.get('MASTRA_MODEL', '
|
|
117
|
+
model: config.get('MASTRA_MODEL', '__OPENAI_MODEL_MINI__'),
|
|
118
118
|
},
|
|
119
119
|
},
|
|
120
120
|
}),
|
|
@@ -241,7 +241,7 @@ export const dsqlAgent = new Agent({
|
|
|
241
241
|
name: 'DSQL Agent',
|
|
242
242
|
instructions:
|
|
243
243
|
'You are an AI agent with the ability to automatically recall memories from previous interactions.',
|
|
244
|
-
model: 'openai/gpt-5.
|
|
244
|
+
model: 'openai/gpt-5.4',
|
|
245
245
|
memory: new Memory({
|
|
246
246
|
storage: new DSQLStore({
|
|
247
247
|
id: 'dsql-agent-storage',
|
|
@@ -181,7 +181,7 @@ export const redisAgent = new Agent({
|
|
|
181
181
|
name: 'Redis Agent',
|
|
182
182
|
instructions:
|
|
183
183
|
'You are an AI agent with the ability to automatically recall memories from previous interactions.',
|
|
184
|
-
model: 'openai/gpt-
|
|
184
|
+
model: 'openai/gpt-5.4',
|
|
185
185
|
memory: new Memory({
|
|
186
186
|
storage: new RedisStore({
|
|
187
187
|
id: 'redis-agent-storage',
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,40 @@
|
|
|
1
1
|
# @mastra/mcp-docs-server
|
|
2
2
|
|
|
3
|
+
## 1.1.40-alpha.8
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`b7286f4`](https://github.com/mastra-ai/mastra/commit/b7286f4308267f5fd70e6bfee10dba9472640906), [`a481027`](https://github.com/mastra-ai/mastra/commit/a481027b549ba1018414990c8f045eaee7b9f413), [`801baa0`](https://github.com/mastra-ai/mastra/commit/801baa07cccdbaec1d00942a92bdc831111744a2), [`b3c3b18`](https://github.com/mastra-ai/mastra/commit/b3c3b189121489a3a51a8fd8204b569be9a89fe5)]:
|
|
8
|
+
- @mastra/core@1.37.0-alpha.4
|
|
9
|
+
|
|
10
|
+
## 1.1.40-alpha.6
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`ac442a4`](https://github.com/mastra-ai/mastra/commit/ac442a42fda0354ac2bcea772bf6691cb3e9dbb3), [`1e5c067`](https://github.com/mastra-ai/mastra/commit/1e5c067d2e20a781af670578180d1ee249806d41), [`008baaf`](https://github.com/mastra-ai/mastra/commit/008baafd8d851f831407045aebead5a2e3342eff), [`8116436`](https://github.com/mastra-ai/mastra/commit/81164363eb225d774e41ff27da6a5ea611406688), [`c27c4b9`](https://github.com/mastra-ai/mastra/commit/c27c4b9f137df5414fca4e45896aceccff6b0ed5), [`08b3b59`](https://github.com/mastra-ai/mastra/commit/08b3b590dd960dee6c9a6e39272f8927d803db6e)]:
|
|
15
|
+
- @mastra/core@1.37.0-alpha.3
|
|
16
|
+
|
|
17
|
+
## 1.1.40-alpha.4
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies [[`df1947a`](https://github.com/mastra-ai/mastra/commit/df1947affa40f742067542251fac7ca759492ef4), [`ee59b74`](https://github.com/mastra-ai/mastra/commit/ee59b743ce73ad11784b4d9c6fbba8568edee1c8), [`a97b1a0`](https://github.com/mastra-ai/mastra/commit/a97b1a0abaed83946c3519d1e0f680d0815b8a67)]:
|
|
22
|
+
- @mastra/core@1.37.0-alpha.2
|
|
23
|
+
|
|
24
|
+
## 1.1.40-alpha.2
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Updated dependencies [[`2f5f58a`](https://github.com/mastra-ai/mastra/commit/2f5f58a9a8bb13bcdc6789db221eef7c9bf1ff02)]:
|
|
29
|
+
- @mastra/core@1.37.0-alpha.1
|
|
30
|
+
|
|
31
|
+
## 1.1.40-alpha.0
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Updated dependencies [[`cfa2e3a`](https://github.com/mastra-ai/mastra/commit/cfa2e3a5292322f48bb28b4d257d631da7f9d3cc)]:
|
|
36
|
+
- @mastra/core@1.36.1-alpha.0
|
|
37
|
+
|
|
3
38
|
## 1.1.39
|
|
4
39
|
|
|
5
40
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.40-alpha.10",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"jsdom": "^26.1.0",
|
|
30
30
|
"local-pkg": "^1.1.2",
|
|
31
31
|
"zod": "^4.3.6",
|
|
32
|
-
"@mastra/core": "1.
|
|
32
|
+
"@mastra/core": "1.37.0-alpha.4",
|
|
33
33
|
"@mastra/mcp": "^1.8.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"vitest": "4.1.5",
|
|
49
49
|
"@internal/lint": "0.0.97",
|
|
50
50
|
"@internal/types-builder": "0.0.72",
|
|
51
|
-
"@mastra/core": "1.
|
|
51
|
+
"@mastra/core": "1.37.0-alpha.4"
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://mastra.ai",
|
|
54
54
|
"repository": {
|