@mastra/mcp-docs-server 1.1.40-alpha.1 → 1.1.40-alpha.5
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/signals.md +38 -0
- package/.docs/models/gateways/openrouter.md +3 -2
- package/.docs/models/gateways/vercel.md +5 -1
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/alibaba.md +2 -1
- package/.docs/models/providers/crof.md +91 -0
- package/.docs/models/providers/inceptron.md +74 -0
- package/.docs/models/providers/llmgateway.md +5 -1
- package/.docs/models/providers/opencode.md +2 -3
- package/.docs/models/providers/stepfun-ai.md +72 -0
- package/.docs/models/providers.md +3 -0
- package/.docs/reference/client-js/agents.md +31 -0
- package/.docs/reference/observability/tracing/exporters/sentry.md +1 -0
- package/.docs/reference/observability/tracing/interfaces.md +13 -0
- package/CHANGELOG.md +14 -0
- package/package.json +5 -5
|
@@ -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.
|
|
@@ -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` |
|
|
@@ -254,6 +257,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
254
257
|
| `xai/grok-4.20-reasoning` |
|
|
255
258
|
| `xai/grok-4.20-reasoning-beta` |
|
|
256
259
|
| `xai/grok-4.3` |
|
|
260
|
+
| `xai/grok-build-0.1` |
|
|
257
261
|
| `xai/grok-imagine-image` |
|
|
258
262
|
| `xai/grok-imagine-image-pro` |
|
|
259
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
|
|
@@ -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 |
|
|
@@ -124,6 +125,8 @@ for await (const chunk of stream) {
|
|
|
124
125
|
| `llmgateway/grok-4-1-fast-reasoning` | 2.0M | | | | | | $0.20 | $0.50 |
|
|
125
126
|
| `llmgateway/grok-4-20-beta-0309-non-reasoning` | 2.0M | | | | | | $1 | $3 |
|
|
126
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 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenCode Zen
|
|
2
2
|
|
|
3
|
-
Access
|
|
3
|
+
Access 40 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
|
|
4
4
|
|
|
5
5
|
Learn more in the [OpenCode Zen documentation](https://opencode.ai/docs/zen).
|
|
6
6
|
|
|
@@ -74,7 +74,6 @@ for await (const chunk of stream) {
|
|
|
74
74
|
| `opencode/nemotron-3-super-free` | 205K | | | | | | — | — |
|
|
75
75
|
| `opencode/qwen3.5-plus` | 262K | | | | | | $0.20 | $1 |
|
|
76
76
|
| `opencode/qwen3.6-plus` | 262K | | | | | | $0.50 | $3 |
|
|
77
|
-
| `opencode/qwen3.6-plus-free` | 262K | | | | | | — | — |
|
|
78
77
|
|
|
79
78
|
## Advanced configuration
|
|
80
79
|
|
|
@@ -104,7 +103,7 @@ const agent = new Agent({
|
|
|
104
103
|
model: ({ requestContext }) => {
|
|
105
104
|
const useAdvanced = requestContext.task === "complex";
|
|
106
105
|
return useAdvanced
|
|
107
|
-
? "opencode/qwen3.6-plus
|
|
106
|
+
? "opencode/qwen3.6-plus"
|
|
108
107
|
: "opencode/big-pickle";
|
|
109
108
|
}
|
|
110
109
|
});
|
|
@@ -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
|
+
```
|
|
@@ -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)
|
|
@@ -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`.
|
|
@@ -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
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @mastra/mcp-docs-server
|
|
2
2
|
|
|
3
|
+
## 1.1.40-alpha.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 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)]:
|
|
8
|
+
- @mastra/core@1.37.0-alpha.2
|
|
9
|
+
|
|
10
|
+
## 1.1.40-alpha.2
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`2f5f58a`](https://github.com/mastra-ai/mastra/commit/2f5f58a9a8bb13bcdc6789db221eef7c9bf1ff02)]:
|
|
15
|
+
- @mastra/core@1.37.0-alpha.1
|
|
16
|
+
|
|
3
17
|
## 1.1.40-alpha.0
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.1.40-alpha.
|
|
3
|
+
"version": "1.1.40-alpha.5",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
"jsdom": "^26.1.0",
|
|
30
30
|
"local-pkg": "^1.1.2",
|
|
31
31
|
"zod": "^4.3.6",
|
|
32
|
-
"@mastra/
|
|
33
|
-
"@mastra/
|
|
32
|
+
"@mastra/core": "1.37.0-alpha.2",
|
|
33
|
+
"@mastra/mcp": "^1.8.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@hono/node-server": "^1.19.11",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
48
|
"vitest": "4.1.5",
|
|
49
49
|
"@internal/lint": "0.0.97",
|
|
50
|
-
"@
|
|
51
|
-
"@
|
|
50
|
+
"@mastra/core": "1.37.0-alpha.2",
|
|
51
|
+
"@internal/types-builder": "0.0.72"
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://mastra.ai",
|
|
54
54
|
"repository": {
|