@mastra/mcp-docs-server 1.3.8-alpha.3 → 1.3.8-alpha.4
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/processors.md +2 -0
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/crossmodel.md +2 -1
- package/.docs/models/providers/digitalocean.md +1 -1
- package/.docs/models/providers/edenai.md +2 -1
- package/.docs/models/providers/kilo.md +5 -5
- package/.docs/models/providers/llmgateway-providers.md +1 -9
- package/.docs/models/providers/llmgateway.md +1 -1
- package/.docs/models/providers/nano-gpt.md +6 -12
- package/.docs/models/providers/opencode.md +0 -3
- package/.docs/models/providers/wandb.md +1 -1
- package/.docs/reference/cli/mastra.md +11 -3
- package/.docs/reference/client-js/observability.md +2 -2
- package/.docs/reference/code-sdk/mount-agent-controller.md +2 -0
- package/.docs/reference/memory/observational-memory.md +13 -0
- package/.docs/reference/observability/tracing/trace-query.md +19 -15
- package/.docs/reference/processors/provider-history-compat.md +1 -1
- package/.docs/reference/processors/stream-error-retry-processor.md +1 -1
- package/.docs/reference/processors/tool-search-processor.md +3 -3
- package/package.json +5 -5
|
@@ -165,6 +165,8 @@ new Agent({
|
|
|
165
165
|
|
|
166
166
|
An `errorProcessors` list passed to a single `generate()` or `stream()` call works differently: it replaces the agent's resolved list for that call, defaults included.
|
|
167
167
|
|
|
168
|
+
An agent's memory can contribute error processors of its own, for example to recover when a request exceeds the model's context window. They run after the processors above and stay in place when a call passes its own `errorProcessors` list.
|
|
169
|
+
|
|
168
170
|
Each array also accepts a function that returns an array, so processors can be built per-request from `RequestContext`:
|
|
169
171
|
|
|
170
172
|
```typescript
|
package/.docs/models/index.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Model Providers
|
|
6
6
|
|
|
7
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
7
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 8152 models from 217 providers through a single API.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# CrossModel
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 70 CrossModel models through Mastra's model router. Authentication is handled automatically using the `CROSSMODEL_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [CrossModel documentation](https://www.crossmodel.ai/docs).
|
|
10
10
|
|
|
@@ -63,6 +63,7 @@ for await (const chunk of stream) {
|
|
|
63
63
|
| `crossmodel/gemini/gemini-3.6-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
64
64
|
| `crossmodel/gemini/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
65
65
|
| `crossmodel/gemini/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
66
|
+
| `crossmodel/gemini/gemini-4-argon` | 1.0M | | | | | | $2 | $10 |
|
|
66
67
|
| `crossmodel/minimax/minimax-m2.7` | 205K | | | | | | $0.33 | $1 |
|
|
67
68
|
| `crossmodel/minimax/minimax-m3` | 1.0M | | | | | | $0.33 | $1 |
|
|
68
69
|
| `crossmodel/moonshot/kimi-k2.6` | 262K | | | | | | $1 | $4 |
|
|
@@ -44,7 +44,7 @@ for await (const chunk of stream) {
|
|
|
44
44
|
| `digitalocean/anthropic-claude-4.5-sonnet` | 200K | | | | | | $3 | $15 |
|
|
45
45
|
| `digitalocean/anthropic-claude-4.6-sonnet` | 200K | | | | | | $3 | $15 |
|
|
46
46
|
| `digitalocean/anthropic-claude-5-sonnet` | 1.0M | | | | | | $2 | $10 |
|
|
47
|
-
| `digitalocean/anthropic-claude-5.5-haiku` | 1.0M | | | | | | $0.
|
|
47
|
+
| `digitalocean/anthropic-claude-5.5-haiku` | 1.0M | | | | | | $0.10 | $0.50 |
|
|
48
48
|
| `digitalocean/anthropic-claude-fable-5` | 1.0M | | | | | | $10 | $50 |
|
|
49
49
|
| `digitalocean/anthropic-claude-fable-5.1` | 1.0M | | | | | | $10 | $50 |
|
|
50
50
|
| `digitalocean/anthropic-claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Eden AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 327 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Eden AI documentation](https://docs.edenai.co).
|
|
10
10
|
|
|
@@ -158,6 +158,7 @@ for await (const chunk of stream) {
|
|
|
158
158
|
| `edenai/fireworks_ai/accounts/fireworks/models/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
159
159
|
| `edenai/fireworks_ai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
160
160
|
| `edenai/flexai/DeepSeek-V4-Flash-0731` | 1.0M | | | | | | $0.02 | $0.27 |
|
|
161
|
+
| `edenai/flexai/DeepSeek-V4-Flash-0731@eu` | 1.0M | | | | | | $0.02 | $0.27 |
|
|
161
162
|
| `edenai/flexai/DeepSeek-V4.1-Flash` | 1.0M | | | | | | $0.09 | $0.18 |
|
|
162
163
|
| `edenai/flexai/gpt-oss-120b` | 131K | | | | | | $0.03 | $0.17 |
|
|
163
164
|
| `edenai/flexai/gpt-oss-20b` | 131K | | | | | | $0.02 | $0.10 |
|
|
@@ -43,11 +43,11 @@ for await (const chunk of stream) {
|
|
|
43
43
|
| `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $4 | $20 |
|
|
44
44
|
| `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
45
45
|
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.02 | $0.89 |
|
|
46
|
-
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.
|
|
46
|
+
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.13 | $8 |
|
|
47
47
|
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.01 | $0.58 |
|
|
48
48
|
| `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
|
|
49
49
|
| `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
50
|
-
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $0.
|
|
50
|
+
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $0.40 | $14 |
|
|
51
51
|
| `kilo/~openai/gpt-astra-latest` | 1.1M | | | | | | $10 | $50 |
|
|
52
52
|
| `kilo/~openai/gpt-luna-latest` | 1.1M | | | | | | $0.10 | $0.50 |
|
|
53
53
|
| `kilo/~openai/gpt-mini-latest` | 400K | | | | | | $0.75 | $5 |
|
|
@@ -140,7 +140,7 @@ for await (const chunk of stream) {
|
|
|
140
140
|
| `kilo/google/gemini-nano-banana-2.1` | 66K | | | | | | $2 | $8 |
|
|
141
141
|
| `kilo/google/gemma-2-27b-it` | 8K | | | | | | $0.65 | $0.65 |
|
|
142
142
|
| `kilo/google/gemma-3-12b-it` | 131K | | | | | | $0.05 | $0.15 |
|
|
143
|
-
| `kilo/google/gemma-3-27b-it` | 131K | | | | | | $0.
|
|
143
|
+
| `kilo/google/gemma-3-27b-it` | 131K | | | | | | $0.08 | $0.16 |
|
|
144
144
|
| `kilo/google/gemma-3-4b-it` | 131K | | | | | | $0.05 | $0.10 |
|
|
145
145
|
| `kilo/google/gemma-4-26b-a4b-it` | 262K | | | | | | $0.04 | $0.22 |
|
|
146
146
|
| `kilo/google/gemma-4-31b-it` | 262K | | | | | | $0.09 | $0.34 |
|
|
@@ -384,9 +384,9 @@ for await (const chunk of stream) {
|
|
|
384
384
|
| `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
|
|
385
385
|
| `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
|
|
386
386
|
| `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
|
|
387
|
-
| `kilo/tencent/hy3` | 262K | | | | | | $0.
|
|
387
|
+
| `kilo/tencent/hy3` | 262K | | | | | | $0.08 | $0.33 |
|
|
388
388
|
| `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
|
|
389
|
-
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.
|
|
389
|
+
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.75 | $2 |
|
|
390
390
|
| `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
|
|
391
391
|
| `kilo/thedrummer/skyfall-36b-v2` | 33K | | | | | | $0.55 | $0.80 |
|
|
392
392
|
| `kilo/thedrummer/unslopnemo-12b` | 1.0M | | | | | | $0.40 | $0.40 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# LLM Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 437 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [LLM Gateway documentation](https://llmgateway.io/docs).
|
|
10
10
|
|
|
@@ -178,7 +178,6 @@ for await (const chunk of stream) {
|
|
|
178
178
|
| `llmgateway-providers/cerebras/gpt-oss-120b` | 131K | | | | | | $0.35 | $0.75 |
|
|
179
179
|
| `llmgateway-providers/cerebras/llama-3.3-70b-instruct` | 128K | | | | | | $0.85 | $1 |
|
|
180
180
|
| `llmgateway-providers/cerebras/qwen3-235b-a22b-instruct-2507` | 262K | | | | | | $0.60 | $1 |
|
|
181
|
-
| `llmgateway-providers/consensusprotocol/deepseek-v4-flash` | 524K | | | | | | $0.10 | $0.20 |
|
|
182
181
|
| `llmgateway-providers/consensusprotocol/deepseek-v4.1-flash` | 1.0M | | | | | | $0.15 | $0.55 |
|
|
183
182
|
| `llmgateway-providers/consensusprotocol/gemma-4-31b-it` | 262K | | | | | | $0.10 | $0.25 |
|
|
184
183
|
| `llmgateway-providers/consensusprotocol/glm-5.3-flash` | 1.0M | | | | | | $0.10 | $0.25 |
|
|
@@ -221,8 +220,6 @@ for await (const chunk of stream) {
|
|
|
221
220
|
| `llmgateway-providers/fireworks/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
222
221
|
| `llmgateway-providers/fireworks/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
223
222
|
| `llmgateway-providers/fireworks/kimi-k3-fast` | 1.0M | | | | | | $5 | $23 |
|
|
224
|
-
| `llmgateway-providers/gonka24/deepseek-v4-flash` | 390K | | | | | | $0.07 | $0.12 |
|
|
225
|
-
| `llmgateway-providers/gonka24/glm-5.3-flash` | 200K | | | | | | $0.15 | $0.30 |
|
|
226
223
|
| `llmgateway-providers/gonka24/minimax-m2.7` | 205K | | | | | | $0.08 | $0.32 |
|
|
227
224
|
| `llmgateway-providers/google-ai-studio/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
228
225
|
| `llmgateway-providers/google-ai-studio/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
@@ -376,11 +373,8 @@ for await (const chunk of stream) {
|
|
|
376
373
|
| `llmgateway-providers/perplexity/sonar` | 130K | | | | | | $0.25 | $3 |
|
|
377
374
|
| `llmgateway-providers/quartz/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
378
375
|
| `llmgateway-providers/ranoai/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
379
|
-
| `llmgateway-providers/reka-ai/deepseek-v4-flash` | 262K | | | | | | $0.11 | $0.66 |
|
|
380
376
|
| `llmgateway-providers/reka-ai/deepseek-v4-pro` | 1.0M | | | | | | $1 | $3 |
|
|
381
377
|
| `llmgateway-providers/reka-ai/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
382
|
-
| `llmgateway-providers/reka-ai/glm-5.3-flash` | 262K | | | | | | $0.15 | $0.50 |
|
|
383
|
-
| `llmgateway-providers/reka-ai/qwen3.8-27b` | 262K | | | | | | $0.41 | $3 |
|
|
384
378
|
| `llmgateway-providers/reka-ai/reka-edge-2603` | 16K | | | | | | $0.10 | $0.10 |
|
|
385
379
|
| `llmgateway-providers/runpod/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
386
380
|
| `llmgateway-providers/runware/deepseek-v4-flash` | 1.0M | | | | | | $0.08 | $0.15 |
|
|
@@ -406,9 +400,7 @@ for await (const chunk of stream) {
|
|
|
406
400
|
| `llmgateway-providers/scx-ai-gp/kimi-k2.7-code` | 262K | | | | | | $0.74 | $3 |
|
|
407
401
|
| `llmgateway-providers/scx-ai-gp/kimi-k3` | 1.0M | | | | | | $3 | $16 |
|
|
408
402
|
| `llmgateway-providers/scx-ai-gp/qwen3.8-max` | 1.0M | | | | | | $2 | $5 |
|
|
409
|
-
| `llmgateway-providers/scx-ai/gemma-4-31b-it` | 131K | | | | | | $0.30 | $0.91 |
|
|
410
403
|
| `llmgateway-providers/scx-ai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.55 |
|
|
411
|
-
| `llmgateway-providers/scx-ai/llama-4-maverick-17b-instruct` | 131K | | | | | | $0.53 | $2 |
|
|
412
404
|
| `llmgateway-providers/scx-ai/minimax-m2.7` | 197K | | | | | | $0.48 | $2 |
|
|
413
405
|
| `llmgateway-providers/scx-ai/qwen3-32b` | 33K | | | | | | $0.36 | $0.87 |
|
|
414
406
|
| `llmgateway-providers/tencent/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
@@ -60,7 +60,7 @@ for await (const chunk of stream) {
|
|
|
60
60
|
| `llmgateway/codestral-2508` | 256K | | | | | | $0.30 | $0.90 |
|
|
61
61
|
| `llmgateway/custom` | 128K | | | | | | — | — |
|
|
62
62
|
| `llmgateway/deepseek-v3.2` | 164K | | | | | | $0.26 | $0.38 |
|
|
63
|
-
| `llmgateway/deepseek-v4-flash` | 1.1M | | | | | | $0.
|
|
63
|
+
| `llmgateway/deepseek-v4-flash` | 1.1M | | | | | | $0.08 | $0.15 |
|
|
64
64
|
| `llmgateway/deepseek-v4-pro` | 1.1M | | | | | | $0.43 | $0.87 |
|
|
65
65
|
| `llmgateway/deepseek-v4.1-flash` | 1.1M | | | | | | $0.14 | $0.54 |
|
|
66
66
|
| `llmgateway/ernie-4.5-vl-424b-a47b` | 123K | | | | | | $0.42 | $1 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# NanoGPT
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 612 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [NanoGPT documentation](https://docs.nano-gpt.com).
|
|
10
10
|
|
|
@@ -97,7 +97,6 @@ for await (const chunk of stream) {
|
|
|
97
97
|
| `nano-gpt/anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
98
98
|
| `nano-gpt/arcee-ai/trinity-large-thinking` | 262K | | | | | | $0.25 | $0.90 |
|
|
99
99
|
| `nano-gpt/asi1-mini` | 128K | | | | | | $1 | $1 |
|
|
100
|
-
| `nano-gpt/ateron/gemma-4-dark-thoughts-v2-31b` | 66K | | | | | | $0.10 | $0.45 |
|
|
101
100
|
| `nano-gpt/auto-model` | 1.0M | | | | | | — | — |
|
|
102
101
|
| `nano-gpt/auto-model-basic` | 1.0M | | | | | | $10 | $20 |
|
|
103
102
|
| `nano-gpt/auto-model-premium` | 1.0M | | | | | | $10 | $20 |
|
|
@@ -130,7 +129,7 @@ for await (const chunk of stream) {
|
|
|
130
129
|
| `nano-gpt/deepseek-reasoner` | 64K | | | | | | $0.40 | $2 |
|
|
131
130
|
| `nano-gpt/deepseek-reasoner-cheaper` | 128K | | | | | | $0.40 | $2 |
|
|
132
131
|
| `nano-gpt/deepseek-v3-0324` | 128K | | | | | | $0.20 | $0.77 |
|
|
133
|
-
| `nano-gpt/deepseek/deepseek-latest` | 1.0M | | | | | | $
|
|
132
|
+
| `nano-gpt/deepseek/deepseek-latest` | 1.0M | | | | | | $1 | $3 |
|
|
134
133
|
| `nano-gpt/deepseek/deepseek-v3.2` | 163K | | | | | | $0.28 | $0.42 |
|
|
135
134
|
| `nano-gpt/deepseek/deepseek-v3.2:thinking` | 163K | | | | | | $0.28 | $0.42 |
|
|
136
135
|
| `nano-gpt/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
@@ -143,8 +142,8 @@ for await (const chunk of stream) {
|
|
|
143
142
|
| `nano-gpt/deepseek/deepseek-v4-flash-vision-exp-cybersecurity` | 1.0M | | | | | | $0.15 | $0.60 |
|
|
144
143
|
| `nano-gpt/deepseek/deepseek-v4-flash:thinking` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
145
144
|
| `nano-gpt/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $1 | $2 |
|
|
146
|
-
| `nano-gpt/deepseek/deepseek-v4-pro-0813` | 1.0M | | | | | | $
|
|
147
|
-
| `nano-gpt/deepseek/deepseek-v4-pro-0813:thinking` | 1.0M | | | | | | $
|
|
145
|
+
| `nano-gpt/deepseek/deepseek-v4-pro-0813` | 1.0M | | | | | | $1 | $3 |
|
|
146
|
+
| `nano-gpt/deepseek/deepseek-v4-pro-0813:thinking` | 1.0M | | | | | | $1 | $3 |
|
|
148
147
|
| `nano-gpt/deepseek/deepseek-v4-pro:thinking` | 1.0M | | | | | | $1 | $2 |
|
|
149
148
|
| `nano-gpt/deepseek/deepseek-v4.1-flash` | 1.0M | | | | | | $0.13 | $0.52 |
|
|
150
149
|
| `nano-gpt/deepseek/deepseek-v4.1-flash:thinking` | 1.0M | | | | | | $0.13 | $0.52 |
|
|
@@ -339,8 +338,8 @@ for await (const chunk of stream) {
|
|
|
339
338
|
| `nano-gpt/moonshotai/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
|
|
340
339
|
| `nano-gpt/moonshotai/kimi-k2.5` | 262K | | | | | | $0.38 | $2 |
|
|
341
340
|
| `nano-gpt/moonshotai/kimi-k2.5:thinking` | 262K | | | | | | $0.38 | $2 |
|
|
342
|
-
| `nano-gpt/moonshotai/kimi-k2.6` | 262K | | | | | | $0.
|
|
343
|
-
| `nano-gpt/moonshotai/kimi-k2.6:thinking` | 262K | | | | | | $0.
|
|
341
|
+
| `nano-gpt/moonshotai/kimi-k2.6` | 262K | | | | | | $0.50 | $3 |
|
|
342
|
+
| `nano-gpt/moonshotai/kimi-k2.6:thinking` | 262K | | | | | | $0.50 | $3 |
|
|
344
343
|
| `nano-gpt/moonshotai/kimi-k2.7-code` | 262K | | | | | | $0.67 | $3 |
|
|
345
344
|
| `nano-gpt/moonshotai/kimi-k2.7-code-highspeed` | 262K | | | | | | $2 | $8 |
|
|
346
345
|
| `nano-gpt/moonshotai/kimi-k3` | 1.0M | | | | | | $2 | $10 |
|
|
@@ -351,10 +350,7 @@ for await (const chunk of stream) {
|
|
|
351
350
|
| `nano-gpt/nanogpt/coding-router:low` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
352
351
|
| `nano-gpt/nanogpt/coding-router:max` | 1.0M | | | | | | $5 | $30 |
|
|
353
352
|
| `nano-gpt/nanogpt/coding-router:medium` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
354
|
-
| `nano-gpt/nbeerbower/gemma4-gutenberg-31b` | 66K | | | | | | $0.10 | $0.45 |
|
|
355
353
|
| `nano-gpt/NeverSleep/Lumimaid-v0.2-70B` | 16K | | | | | | $1 | $2 |
|
|
356
|
-
| `nano-gpt/nimbz/gemma-4-giftige-blume-31b-v2` | 66K | | | | | | $0.10 | $0.45 |
|
|
357
|
-
| `nano-gpt/nimbz/schattenblume-31b` | 66K | | | | | | $0.10 | $0.45 |
|
|
358
354
|
| `nano-gpt/nothingiisreal/L3.1-70B-Celeste-V0.1-BF16` | 33K | | | | | | $0.49 | $0.49 |
|
|
359
355
|
| `nano-gpt/NousResearch/hermes-3-llama-3.1-70b` | 66K | | | | | | $0.41 | $0.41 |
|
|
360
356
|
| `nano-gpt/NousResearch/hermes-4-405b` | 128K | | | | | | $0.30 | $1 |
|
|
@@ -529,7 +525,6 @@ for await (const chunk of stream) {
|
|
|
529
525
|
| `nano-gpt/shisa-ai/shisa-v2-llama3.3-70b` | 128K | | | | | | $0.50 | $0.50 |
|
|
530
526
|
| `nano-gpt/shisa-ai/shisa-v2.1-llama3.3-70b` | 33K | | | | | | $0.50 | $0.50 |
|
|
531
527
|
| `nano-gpt/soob3123/amoral-gemma3-27B-v2` | 33K | | | | | | $0.30 | $0.30 |
|
|
532
|
-
| `nano-gpt/soob3123/GrayLine-Qwen3-8B` | 33K | | | | | | $0.30 | $0.30 |
|
|
533
528
|
| `nano-gpt/soob3123/Veiled-Calla-12B` | 33K | | | | | | $0.30 | $0.30 |
|
|
534
529
|
| `nano-gpt/Steelskull/L3.3-Cu-Mai-R1-70b` | 33K | | | | | | $0.49 | $0.49 |
|
|
535
530
|
| `nano-gpt/Steelskull/L3.3-Electra-R1-70b` | 33K | | | | | | $0.70 | $0.70 |
|
|
@@ -575,7 +570,6 @@ for await (const chunk of stream) {
|
|
|
575
570
|
| `nano-gpt/TheDrummer/Cydonia-24B-v4.3` | 131K | | | | | | $0.12 | $0.15 |
|
|
576
571
|
| `nano-gpt/TheDrummer/Magidonia-24B-v4.3` | 33K | | | | | | $0.10 | $0.12 |
|
|
577
572
|
| `nano-gpt/TheDrummer/Rocinante-12B-v1.1` | 16K | | | | | | $0.41 | $0.59 |
|
|
578
|
-
| `nano-gpt/TheDrummer/Skyfall-31B-v4.2` | 16K | | | | | | $0.12 | $0.15 |
|
|
579
573
|
| `nano-gpt/TheDrummer/skyfall-36b-v2` | 33K | | | | | | $0.55 | $0.80 |
|
|
580
574
|
| `nano-gpt/TheDrummer/UnslopNemo-12B-v4.1` | 8K | | | | | | $0.49 | $0.49 |
|
|
581
575
|
| `nano-gpt/thinkingmachines/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
@@ -59,7 +59,6 @@ for await (const chunk of stream) {
|
|
|
59
59
|
| `opencode/deepseek-v4-flash-vision-exp` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
60
60
|
| `opencode/deepseek-v4-pro` | 1.0M | | | | | | $2 | $4 |
|
|
61
61
|
| `opencode/deepseek-v4.1-flash` | 1.0M | | | | | | $0.30 | $1 |
|
|
62
|
-
| `opencode/exo-free` | 1.0M | | | | | | — | — |
|
|
63
62
|
| `opencode/gemini-3-flash` | 1.0M | | | | | | $0.50 | $3 |
|
|
64
63
|
| `opencode/gemini-3.1-pro` | 1.0M | | | | | | $2 | $12 |
|
|
65
64
|
| `opencode/gemini-3.5-flash` | 1.0M | | | | | | $2 | $9 |
|
|
@@ -105,8 +104,6 @@ for await (const chunk of stream) {
|
|
|
105
104
|
| `opencode/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
106
105
|
| `opencode/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
107
106
|
| `opencode/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
108
|
-
| `opencode/ling-3.0-flash-fin-free` | 262K | | | | | | — | — |
|
|
109
|
-
| `opencode/ling-3.1-flash-free` | 262K | | | | | | — | — |
|
|
110
107
|
| `opencode/longcat-2.5-preview-free` | 1.0M | | | | | | — | — |
|
|
111
108
|
| `opencode/mimo-v2.6-flash-free` | 200K | | | | | | — | — |
|
|
112
109
|
| `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -56,7 +56,7 @@ for await (const chunk of stream) {
|
|
|
56
56
|
| `wandb/openai/gpt-oss-20b` | 131K | | | | | | $0.03 | $0.13 |
|
|
57
57
|
| `wandb/Qwen/Qwen3.6-35B-A3B` | 262K | | | | | | $0.25 | $1 |
|
|
58
58
|
| `wandb/Qwen/Qwen3.8-27B` | 262K | | | | | | $0.40 | $3 |
|
|
59
|
-
| `wandb/zai-org/GLM-5.2` | 1.0M | | | | | | $0.
|
|
59
|
+
| `wandb/zai-org/GLM-5.2` | 1.0M | | | | | | $0.62 | $2 |
|
|
60
60
|
| `wandb/zai-org/GLM-5.3-Flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
61
61
|
|
|
62
62
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
@@ -1655,12 +1655,20 @@ mastra api trace query <input>
|
|
|
1655
1655
|
mastra api trace query '{"timeRange":{"from":"2026-08-01T00:00:00.000Z","to":"2026-08-08T00:00:00.000Z"}}'
|
|
1656
1656
|
```
|
|
1657
1657
|
|
|
1658
|
-
Inspect the
|
|
1658
|
+
Inspect the command with:
|
|
1659
1659
|
|
|
1660
1660
|
```bash
|
|
1661
|
-
mastra api trace query --
|
|
1661
|
+
mastra api trace query --help
|
|
1662
1662
|
```
|
|
1663
1663
|
|
|
1664
|
+
For supported fields, operators, and request options, see [Trace queries](https://mastra.ai/reference/observability/tracing/trace-query). For a local Mastra server, you can also inspect its request and response schemas:
|
|
1665
|
+
|
|
1666
|
+
```bash
|
|
1667
|
+
mastra api --url http://localhost:4111 trace query --schema
|
|
1668
|
+
```
|
|
1669
|
+
|
|
1670
|
+
Mastra Platform doesn't currently expose the schema endpoint used by `--schema`. To find fields and values recorded in your project, use [field and value discovery](https://mastra.ai/reference/observability/tracing/trace-query).
|
|
1671
|
+
|
|
1664
1672
|
The response remains nested under `data` to preserve cursor pagination:
|
|
1665
1673
|
|
|
1666
1674
|
```json
|
|
@@ -1672,7 +1680,7 @@ The response remains nested under `data` to preserve cursor pagination:
|
|
|
1672
1680
|
}
|
|
1673
1681
|
```
|
|
1674
1682
|
|
|
1675
|
-
Each invocation makes one query. Pass a non-null `data.page.next` value back as `page.after` in the next query. See [
|
|
1683
|
+
Each invocation makes one query. Pass a non-null `data.page.next` value back as `page.after` in the next query. See [Pagination and errors](https://mastra.ai/reference/observability/tracing/trace-query) for pagination modes, cursor handling, and errors.
|
|
1676
1684
|
|
|
1677
1685
|
To load a numbered page and then poll, keep the same time range and predicate in both requests:
|
|
1678
1686
|
|
|
@@ -45,7 +45,7 @@ const completeTrace = await mastraClient.getTrace(traces.spans[0].traceId)
|
|
|
45
45
|
|
|
46
46
|
## Listing traces for a list view
|
|
47
47
|
|
|
48
|
-
`listTracesLight()` returns the same rows as a trace list, without the `input`, `output` and `attributes` payloads. Each row carries
|
|
48
|
+
`listTracesLight()` returns the same rows as a trace list, without the `input`, `output` and `attributes` payloads. Each row carries short `inputPreview`, `outputPreview` and `errorPreview` strings instead (at most 100 characters, ending with `…` when cut), so a list can render preview columns without transferring the whole payload, plus `threadId` and `resourceId` for the memory context columns.
|
|
49
49
|
|
|
50
50
|
Prefer it whenever you are rendering many traces at once, and fetch the full record only when a row is opened:
|
|
51
51
|
|
|
@@ -67,7 +67,7 @@ It accepts the same filtering, ordering and delta-polling arguments as `listTrac
|
|
|
67
67
|
|
|
68
68
|
## Querying traces
|
|
69
69
|
|
|
70
|
-
`queryTraces()` finds completed logical traces using trace fields and conditions over related spans. Every query requires an ISO timestamp range
|
|
70
|
+
`queryTraces()` finds completed logical traces using trace fields and conditions over related spans. Every query requires an ISO timestamp range.
|
|
71
71
|
|
|
72
72
|
```typescript
|
|
73
73
|
const result = await mastraClient.queryTraces({
|
|
@@ -72,6 +72,8 @@ const { controller } = await mountAgentControllerOnMastra({ mastra })
|
|
|
72
72
|
|
|
73
73
|
**disabledTools** (`string[]`): Tools removed from the dynamic tool set before exposure to the model.
|
|
74
74
|
|
|
75
|
+
**disableBuiltinTools** (`BuiltinToolId[]`): Agent controller built-in tools (for example, 'submit\_plan') removed from every session. Tool guidance skips disabled tools, and plan mode writes the plan file instead of calling 'submit\_plan' when it's disabled.
|
|
76
|
+
|
|
75
77
|
**storage** (`StorageConfig`): Custom storage config instead of the auto-detected default.
|
|
76
78
|
|
|
77
79
|
**workspace** (`AgentControllerConfig["workspace"]`): Override the workspace. (Default: `local filesystem + local sandbox based on the detected project`)
|
|
@@ -93,6 +93,8 @@ OM performs thresholding with fast local token estimation. Text uses `tokenx`, a
|
|
|
93
93
|
|
|
94
94
|
**observation.bufferOnIdle** (`boolean`): Run background observation buffering when an agent turn ends and the agent becomes idle. This is separate from bufferTokens, which controls step-time async buffering. Set this to true to buffer short idle turns without waiting for the next turn or the messageTokens threshold.
|
|
95
95
|
|
|
96
|
+
**observation.observeOnContextOverflow** (`boolean`): Recover when the model provider rejects a request for exceeding its context window. Provider token counts can be higher than Observational Memory's local estimate, for example with attachments or after switching to a model with a smaller window, so a request can overflow before the messageTokens threshold is reached. When this happens, Observational Memory activates buffered observations, observes every pending message regardless of the threshold, and retries the request once with the smaller context. Set to false to let the error reach the caller instead.
|
|
97
|
+
|
|
96
98
|
**observation.bufferActivation** (`number`): How much of the message window to clear when buffered observations activate. Values between 0 and 1 are the fraction of messageTokens to remove: 0.8 removes \~80% of the message history and keeps \~20% (6k tokens with the default 30k). Values of 1000 or more are the token count to keep: 4000 keeps \~4k message tokens after activation. Note the direction flips: a higher ratio removes more history, while a higher token count keeps more.
|
|
97
99
|
|
|
98
100
|
**observation.activateAfterIdle** (`number | string | false | "auto" | Record<string, number | string | false | "auto">`): Time before buffered observations are forced to activate after inactivity. Accepts milliseconds, a duration string, "auto" for a provider-aware prompt cache TTL, false, or an object of per-provider TTLs. An object replaces the top-level value and is not merged with it. If unset, the top-level activateAfterIdle value is used for observations. Set false to disable the top-level idle setting for observations. Currently only applied when using the standalone ObservationalMemory class; new Memory(...) applies the top-level activateAfterIdle only.
|
|
@@ -777,6 +779,17 @@ The standalone `ObservationalMemory` class accepts all the same options as the `
|
|
|
777
779
|
|
|
778
780
|
**obscureThreadIds** (`boolean`): When enabled, thread IDs are hashed before being included in observation context. This prevents the LLM from recognizing patterns in thread identifiers. Automatically enabled when using resource scope through the Memory class. (Default: `false`)
|
|
779
781
|
|
|
782
|
+
### Forcing observation
|
|
783
|
+
|
|
784
|
+
`observe()` only observes once pending tokens reach the observation threshold. Pass `force: true` to observe pending messages regardless of the threshold. The bypass applies to that call only and isn't saved to the record's config.
|
|
785
|
+
|
|
786
|
+
```typescript
|
|
787
|
+
const result = await om.observe({ threadId, resourceId, force: true })
|
|
788
|
+
// result.observed: true if pending messages were observed
|
|
789
|
+
```
|
|
790
|
+
|
|
791
|
+
Agents don't need this to recover from context-window errors. `observation.observeOnContextOverflow` handles that automatically.
|
|
792
|
+
|
|
780
793
|
## Recall tool
|
|
781
794
|
|
|
782
795
|
When `retrieval` is truthy, Mastra registers a `recall` tool that pages through raw messages behind observation group ranges. With the default resource scope, the tool can list threads (`mode: "threads"`) and browse another thread through `threadId`. It also supports cross-thread search. Set `retrieval: { vector: true }` for semantic search (`mode: "search"`), or use `scope: 'thread'` to restrict the tool to the current thread. The tool is automatically added to the agent.
|
|
@@ -8,7 +8,7 @@ Use `queryTraces()`, `mastra api trace query`, or `POST /api/observability/trace
|
|
|
8
8
|
|
|
9
9
|
For example, find traces with a failed tool call or a duration above a threshold. Each result represents a trace. Use its `traceId` to [retrieve the full trace](https://mastra.ai/reference/client-js/observability).
|
|
10
10
|
|
|
11
|
-
The endpoint uses the same authentication as other observability routes and requires the `observability:read` permission. The configured observability store must support trace queries. Every query requires a time range
|
|
11
|
+
The endpoint uses the same authentication as other observability routes and requires the `observability:read` permission. The configured observability store must support trace queries. Every query requires a time range.
|
|
12
12
|
|
|
13
13
|
For hosted traces, see [Query observability data on Mastra Platform](https://mastra.ai/docs/mastra-platform/observability) for project credentials and regional endpoints.
|
|
14
14
|
|
|
@@ -74,14 +74,19 @@ mastra api --url http://localhost:4111 trace query '{
|
|
|
74
74
|
|
|
75
75
|
The explicit `--url` targets a local Mastra server. Without it, observability commands default to `https://observability.mastra.ai`, even when a local server is running. See [CLI target resolution](https://mastra.ai/reference/cli/mastra) for authentication and regional endpoints. The target server and configured store must support the requested query capabilities.
|
|
76
76
|
|
|
77
|
-
Inspect the command
|
|
77
|
+
Inspect the command with:
|
|
78
78
|
|
|
79
79
|
```bash
|
|
80
80
|
mastra api trace query --help
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
For a local Mastra server, inspect its request and response schemas with:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
81
86
|
mastra api --url http://localhost:4111 trace query --schema
|
|
82
87
|
```
|
|
83
88
|
|
|
84
|
-
|
|
89
|
+
Mastra Platform doesn't currently expose the schema endpoint used by `--schema`. Use [Request fields](#request-fields) and [Fields and operators](#fields-and-operators) to construct queries for either target. To find fields and values recorded in your project, use [field and value discovery](#discover-fields-and-values).
|
|
85
90
|
|
|
86
91
|
## Send an HTTP request
|
|
87
92
|
|
|
@@ -115,16 +120,16 @@ curl --request POST \
|
|
|
115
120
|
|
|
116
121
|
## Request fields
|
|
117
122
|
|
|
118
|
-
| Field | Required | Description
|
|
119
|
-
| ------------ | -------- |
|
|
120
|
-
| `timeRange` | Yes | Trace start-time boundary. `from` is inclusive and `to` is exclusive. Both values must be ISO timestamps, `from` must be earlier than `to
|
|
121
|
-
| `where` | No | Recursive trace predicate. Supports scalar conditions and `spans.some` or `spans.none` clauses.
|
|
122
|
-
| `orderBy` | No | One item ordering results by `startedAt` or `endedAt`, in `asc` or `desc` order. Defaults to `startedAt desc`. Not accepted in delta mode.
|
|
123
|
-
| `page` | No | `{ limit, after }`. `limit` defaults to 100 and has a maximum of 1000. Pass the opaque `page.next` value as `after`.
|
|
124
|
-
| `pagination` | No | Numbered pages: `{ page, perPage }`. Defaults to page 0 and 10 results. `perPage` has a maximum of 100.
|
|
125
|
-
| `mode` | No | Set to `'delta'` to poll using a delta cursor instead of `page` or `pagination`.
|
|
126
|
-
| `after` | No | Delta mode only. Opaque `deltaCursor` from a numbered page or previous poll. Omit to establish the current watermark.
|
|
127
|
-
| `limit` | No | Delta mode only. Maximum results per batch. Defaults to 10 and has a maximum of 100.
|
|
123
|
+
| Field | Required | Description |
|
|
124
|
+
| ------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
125
|
+
| `timeRange` | Yes | Trace start-time boundary. `from` is inclusive and `to` is exclusive. Both values must be ISO timestamps, and `from` must be earlier than `to`. |
|
|
126
|
+
| `where` | No | Recursive trace predicate. Supports scalar conditions and `spans.some` or `spans.none` clauses. |
|
|
127
|
+
| `orderBy` | No | One item ordering results by `startedAt` or `endedAt`, in `asc` or `desc` order. Defaults to `startedAt desc`. Not accepted in delta mode. |
|
|
128
|
+
| `page` | No | `{ limit, after }`. `limit` defaults to 100 and has a maximum of 1000. Pass the opaque `page.next` value as `after`. |
|
|
129
|
+
| `pagination` | No | Numbered pages: `{ page, perPage }`. Defaults to page 0 and 10 results. `perPage` has a maximum of 100. |
|
|
130
|
+
| `mode` | No | Set to `'delta'` to poll using a delta cursor instead of `page` or `pagination`. |
|
|
131
|
+
| `after` | No | Delta mode only. Opaque `deltaCursor` from a numbered page or previous poll. Omit to establish the current watermark. |
|
|
132
|
+
| `limit` | No | Delta mode only. Maximum results per batch. Defaults to 10 and has a maximum of 100. |
|
|
128
133
|
|
|
129
134
|
Unknown fields are rejected. Requests can't select a projection, declare joins, request counts or measures, or control authorization. Request bodies are limited to 256 KiB.
|
|
130
135
|
|
|
@@ -134,7 +139,6 @@ The planner rejects a query before storage execution when it exceeds any of thes
|
|
|
134
139
|
|
|
135
140
|
| Input | Maximum |
|
|
136
141
|
| ----------------------------------------- | ----------------- |
|
|
137
|
-
| Trace selection `timeRange` | 31 days |
|
|
138
142
|
| Predicate nesting depth | 12 levels |
|
|
139
143
|
| Predicate nodes | 100 |
|
|
140
144
|
| Related `spans` clauses | 8 total |
|
|
@@ -594,7 +598,7 @@ Value suggestions are available for these canonical fields:
|
|
|
594
598
|
|
|
595
599
|
Each executable top-level string `metadata.<key>` field also supports value suggestions in the `trace` scope. Identifiers, timestamps, durations, errors, and version IDs don't. The fields response still includes canonical fields with `valueSuggestions: false`. The values endpoint rejects those paths with `422 TRACE_QUERY_INVALID`.
|
|
596
600
|
|
|
597
|
-
Both discovery requests require a half-open time range
|
|
601
|
+
Both discovery requests require a half-open time range. They use the same current-record semantics as `queryTraces()`: qualifying completed roots satisfy `from <= startedAt < to`, and related values come only from current records joined to those roots by `traceId`. Discovery doesn't accept or apply a draft `where` predicate.
|
|
598
602
|
|
|
599
603
|
`search` defaults to the empty string, is trimmed, and matches case-insensitive literal substrings. Characters such as `%` and `_` have no wildcard meaning. An empty search returns the most frequent results. `limit` defaults to 25 and has a maximum of 100. Both endpoints fetch one extra result to set their truncation flag, but don't provide a cursor. When a flag is `true`, refine `search`. It doesn't imply that a next page is available. No matches return an empty array and `false` truncation.
|
|
600
604
|
|
|
@@ -29,7 +29,7 @@ A supplied `ProviderHistoryCompat` is used instead of the default. The default i
|
|
|
29
29
|
|
|
30
30
|
The placement decides which half of the processor works:
|
|
31
31
|
|
|
32
|
-
- **Reactive rules need `errorProcessors`.**
|
|
32
|
+
- **Reactive rules need `errorProcessors`.** An agent wraps its input processors in a single processor workflow, and the API-error pass only runs `processAPIError` on error processors, so an instance registered only in `inputProcessors` never runs its reactive rules.
|
|
33
33
|
- **Preemptive rules run from either list.** `processLLMRequest` runs over the input processors and over the resolved error processors, so a `ProviderHistoryCompat` in `errorProcessors` gets its prompt rewrites as well as its reactive recovery. An instance registered in `inputProcessors` runs once, in its input position.
|
|
34
34
|
|
|
35
35
|
Registering in `errorProcessors` alone, as the example above does, covers both halves. Double registration can't cause a double retry: the runner stops at the first processor that asks for one, and each reactive rule bails once `retryCount` is above zero, so a repaired turn is attempted exactly once more.
|
|
@@ -28,7 +28,7 @@ export const agent = new Agent({
|
|
|
28
28
|
|
|
29
29
|
Set `maxProcessorRetries` alongside a `maxRetries` above `3`, because the agent stops error-processor retries at `3` when it's unset. See [Retry limits](#retry-limits).
|
|
30
30
|
|
|
31
|
-
To run only the processors you configure, with none of the defaults merged in, set `errorProcessorDefaults: false`. Without an `errorProcessors` list, the agent then runs
|
|
31
|
+
To run only the processors you configure, with none of the defaults merged in, set `errorProcessorDefaults: false`. Without an `errorProcessors` list, the agent then runs only the error processors its memory contributes, if any. When memory contributes one, the retry cap of `3` applies. See [Error processors are enabled by default](https://mastra.ai/docs/agents/processors). An empty agent-level `errorProcessors` list still gets the defaults. A call-time `errorProcessors: []` replaces the resolved list instead, though the agent still runs the error processors its memory contributes. Supplying your own processor for all three default ids replaces every default with your own implementation.
|
|
32
32
|
|
|
33
33
|
## How it works
|
|
34
34
|
|
|
@@ -41,7 +41,7 @@ const toolSearch = new ToolSearchProcessor({
|
|
|
41
41
|
|
|
42
42
|
**options.search.autoLoad** (`boolean`): When true, tools returned by search\_tools are activated immediately as part of the search. The load\_tool meta-tool is not exposed, collapsing the two-step search then load flow into a single search step. Discovered tools become available on the next turn. Keep topK conservative since every match is activated.
|
|
43
43
|
|
|
44
|
-
**options.storage** (`'in-memory' | 'context'`): Where loaded-tool state lives. 'in-memory' (default) tracks loaded tools in an in-memory map per thread with TTL cleanup (see ttl); state is lost on restart and anonymous requests share a 'default' entry. 'context' derives loaded state from the conversation messages — a tool is loaded while a search\_tools/load\_tool result naming it remains in the messages; it
|
|
44
|
+
**options.storage** (`'in-memory' | 'context'`): Where loaded-tool state lives. 'in-memory' (default) tracks loaded tools in an in-memory map per thread with TTL cleanup (see ttl); state is lost on restart and anonymous requests share a 'default' entry. 'context' derives loaded state from the conversation messages — a tool is loaded while a search\_tools/load\_tool result naming it remains in the messages; it works without memory (same-process only, and only for requests with a real thread ID), survives a restart whenever the messages are available again (memory with message history, or the caller resending the conversation), and de-loads automatically once that result is no longer present in the messages. The 'context' store is opt-in.
|
|
45
45
|
|
|
46
46
|
**options.ttl** (`number`): Time-to-live for in-memory thread state, in milliseconds. Only applies to the default storage: 'in-memory' store; after this duration of inactivity thread state is cleaned up. Set to 0 to disable cleanup. Ignored by the 'context' store.
|
|
47
47
|
|
|
@@ -238,8 +238,8 @@ Use `clearState`, `clearAllState`, `getStateStats`, and `cleanupNow` to inspect
|
|
|
238
238
|
|
|
239
239
|
Loaded state is derived from the conversation messages: a tool is loaded while a `search_tools` or `load_tool` result naming it remains in the messages. This mode:
|
|
240
240
|
|
|
241
|
-
-
|
|
242
|
-
-
|
|
241
|
+
- Works without memory configuration. Without memory, loaded tools are kept for the current process only, and only for requests with a real thread ID; anonymous requests retain nothing between calls unless the caller resends the relevant messages.
|
|
242
|
+
- Survives a restart whenever the messages are available again: from memory with message history, or because the caller resends the conversation. Without memory, a restart restores only what's in the messages the caller sends.
|
|
243
243
|
- De-loads a tool automatically once that result is no longer present in the messages.
|
|
244
244
|
|
|
245
245
|
```typescript
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.3.8-alpha.
|
|
3
|
+
"version": "1.3.8-alpha.4",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"@mastra/mcp-legacy": "npm:@mastra/mcp@^1.18.0",
|
|
27
27
|
"local-pkg": "^1.1.2",
|
|
28
28
|
"zod": "^4.6.4",
|
|
29
|
-
"@mastra/
|
|
30
|
-
"@mastra/
|
|
29
|
+
"@mastra/core": "1.78.0-alpha.3",
|
|
30
|
+
"@mastra/mcp": "^2.4.1-alpha.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@hono/node-server": "^2.0.0",
|
|
@@ -43,9 +43,9 @@
|
|
|
43
43
|
"tsx": "^4.23.1",
|
|
44
44
|
"typescript": "^7.0.2",
|
|
45
45
|
"vitest": "4.1.11",
|
|
46
|
-
"@mastra/core": "1.78.0-alpha.2",
|
|
47
46
|
"@internal/types-builder": "0.0.118",
|
|
48
|
-
"@internal/lint": "0.0.143"
|
|
47
|
+
"@internal/lint": "0.0.143",
|
|
48
|
+
"@mastra/core": "1.78.0-alpha.3"
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://mastra.ai",
|
|
51
51
|
"repository": {
|