@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.
@@ -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 logo](https://models.dev/logos/openrouter.svg)OpenRouter
2
2
 
3
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 357 models through Mastra's model router.
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 logo](https://models.dev/logos/vercel.svg)Vercel
2
2
 
3
- Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 239 models through Mastra's model router.
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` |
@@ -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 4207 models from 121 providers through a single API.
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 logo](https://models.dev/logos/alibaba.svg)Alibaba
2
2
 
3
- Access 48 Alibaba models through Mastra's model router. Authentication is handled automatically using the `DASHSCOPE_API_KEY` environment variable.
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 logo](https://models.dev/logos/crof.svg)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 logo](https://models.dev/logos/inceptron.svg)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 logo](https://models.dev/logos/llmgateway.svg)LLM Gateway
2
2
 
3
- Access 183 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
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 logo](https://models.dev/logos/opencode.svg)OpenCode Zen
2
2
 
3
- Access 41 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
3
+ Access 40 OpenCode Zen models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
4
4
 
5
5
  Learn more in the [OpenCode Zen documentation](https://opencode.ai/docs/zen).
6
6
 
@@ -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-free"
106
+ ? "opencode/qwen3.6-plus"
108
107
  : "opencode/big-pickle";
109
108
  }
110
109
  });
@@ -0,0 +1,72 @@
1
+ # ![StepFun logo](https://models.dev/logos/stepfun-ai.svg)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.1",
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/mcp": "^1.8.0",
33
- "@mastra/core": "1.36.1-alpha.0"
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
- "@internal/types-builder": "0.0.72",
51
- "@mastra/core": "1.36.1-alpha.0"
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": {