@mastra/mcp-docs-server 1.2.25-alpha.1 → 1.2.25-alpha.3
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/models/gateways/netlify.md +1 -1
- package/.docs/models/gateways/openrouter.md +1 -2
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/cloudflare-workers-ai.md +1 -2
- package/.docs/models/providers/crossmodel.md +1 -1
- package/.docs/models/providers/edenai.md +5 -5
- package/.docs/models/providers/hyper.md +1 -1
- package/.docs/models/providers/kilo.md +2 -3
- package/.docs/models/providers/llmgateway-providers.md +6 -6
- package/.docs/models/providers/llmgateway.md +6 -6
- package/.docs/models/providers/nano-gpt.md +6 -1
- package/.docs/models/providers/opencode-go.md +1 -1
- package/.docs/reference/observability/tracing/trace-query.md +169 -9
- package/package.json +4 -4
|
@@ -197,7 +197,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
197
197
|
| `openrouter/nousresearch/hermes-3-llama-3.1-405b` |
|
|
198
198
|
| `openrouter/nousresearch/hermes-3-llama-3.1-70b` |
|
|
199
199
|
| `openrouter/nousresearch/hermes-4-405b` |
|
|
200
|
-
| `openrouter/nousresearch/hermes-4-70b` |
|
|
201
200
|
| `openrouter/nvidia/nemotron-3-nano-30b-a3b` |
|
|
202
201
|
| `openrouter/nvidia/nemotron-3-super-120b-a12b` |
|
|
203
202
|
| `openrouter/nvidia/nemotron-3-ultra-550b-a55b` |
|
|
@@ -242,6 +241,7 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
242
241
|
| `openrouter/qwen/qwen3.6-35b-a3b` |
|
|
243
242
|
| `openrouter/qwen/qwen3.8-2.4t-a95b` |
|
|
244
243
|
| `openrouter/qwen/qwen3.8-27b` |
|
|
244
|
+
| `openrouter/qwen/qwen3.8-flash` |
|
|
245
245
|
| `openrouter/rekaai/reka-edge` |
|
|
246
246
|
| `openrouter/rekaai/reka-flash-3` |
|
|
247
247
|
| `openrouter/relace/relace-apply-3` |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenRouter
|
|
6
6
|
|
|
7
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 357 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
10
10
|
|
|
@@ -208,7 +208,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
208
208
|
| `nousresearch/hermes-3-llama-3.1-405b` |
|
|
209
209
|
| `nousresearch/hermes-3-llama-3.1-70b` |
|
|
210
210
|
| `nousresearch/hermes-4-405b` |
|
|
211
|
-
| `nousresearch/hermes-4-70b` |
|
|
212
211
|
| `nvidia/nemotron-3-nano-30b-a3b` |
|
|
213
212
|
| `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` |
|
|
214
213
|
| `nvidia/nemotron-3-super-120b-a12b` |
|
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 7124 models from 200 providers through a single API.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Cloudflare Workers AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 26 Cloudflare Workers AI models through Mastra's model router. Authentication is handled automatically using the `CLOUDFLARE_API_KEY` environment variable. Configure `CLOUDFLARE_ACCOUNT_ID` as well.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Cloudflare Workers AI documentation](https://developers.cloudflare.com/workers-ai/models/).
|
|
10
10
|
|
|
@@ -64,7 +64,6 @@ for await (const chunk of stream) {
|
|
|
64
64
|
| `cloudflare-workers-ai/@cf/qwen/qwq-32b` | 24K | | | | | | $0.66 | $1 |
|
|
65
65
|
| `cloudflare-workers-ai/@cf/zai-org/glm-4.7-flash` | 131K | | | | | | $0.06 | $0.40 |
|
|
66
66
|
| `cloudflare-workers-ai/@cf/zai-org/glm-5.2` | 262K | | | | | | $1 | $4 |
|
|
67
|
-
| `cloudflare-workers-ai/@cf/zai-org/glm-5.3` | 1.3M | | | | | | $1 | $4 |
|
|
68
67
|
| `cloudflare-workers-ai/@cf/zai-org/glm-5.3-flash` | 1.3M | | | | | | $0.15 | $0.50 |
|
|
69
68
|
|
|
70
69
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
@@ -95,7 +95,7 @@ for await (const chunk of stream) {
|
|
|
95
95
|
| `crossmodel/z-ai/glm-5.1` | 200K | | | | | | $1 | $4 |
|
|
96
96
|
| `crossmodel/z-ai/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
97
97
|
| `crossmodel/z-ai/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
98
|
-
| `crossmodel/z-ai/glm-5.3-flash` | 1.0M | | | | | | $0.
|
|
98
|
+
| `crossmodel/z-ai/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
99
99
|
|
|
100
100
|
Model availability, capabilities, context windows, and pricing are sourced from [models.dev](https://models.dev) and may change.
|
|
101
101
|
|
|
@@ -145,8 +145,8 @@ for await (const chunk of stream) {
|
|
|
145
145
|
| `edenai/google/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
146
146
|
| `edenai/groq/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
147
147
|
| `edenai/groq/openai/gpt-oss-20b` | 131K | | | | | | $0.07 | $0.30 |
|
|
148
|
-
| `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.
|
|
149
|
-
| `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.
|
|
148
|
+
| `edenai/ionos/meta-llama/Llama-3.3-70B-Instruct` | 128K | | | | | | $0.76 | $0.76 |
|
|
149
|
+
| `edenai/ionos/openai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.76 |
|
|
150
150
|
| `edenai/minimax/MiniMax-M2` | 205K | | | | | | $0.30 | $1 |
|
|
151
151
|
| `edenai/minimax/MiniMax-M2.1` | 205K | | | | | | $0.30 | $1 |
|
|
152
152
|
| `edenai/minimax/MiniMax-M2.5` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -216,8 +216,8 @@ for await (const chunk of stream) {
|
|
|
216
216
|
| `edenai/perplexityai/sonar-deep-research` | 128K | | | | | | $2 | $8 |
|
|
217
217
|
| `edenai/perplexityai/sonar-pro` | 200K | | | | | | $3 | $15 |
|
|
218
218
|
| `edenai/perplexityai/sonar-reasoning-pro` | 128K | | | | | | $2 | $8 |
|
|
219
|
-
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.
|
|
220
|
-
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $
|
|
219
|
+
| `edenai/qwen/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.18 | $0.53 |
|
|
220
|
+
| `edenai/qwen/deepseek-v4-pro-0813` | 1.0M | | | | | | $0.58 | $2 |
|
|
221
221
|
| `edenai/qwen/qwen-max` | 33K | | | | | | $2 | $6 |
|
|
222
222
|
| `edenai/qwen/qwen-vl-max` | 131K | | | | | | $0.80 | $3 |
|
|
223
223
|
| `edenai/qwen/qwen-vl-plus` | 131K | | | | | | $0.21 | $0.63 |
|
|
@@ -240,7 +240,7 @@ for await (const chunk of stream) {
|
|
|
240
240
|
| `edenai/qwen/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
241
241
|
| `edenai/qwen/qwen3.8-max-0902` | 1.0M | | | | | | $2 | $6 |
|
|
242
242
|
| `edenai/qwen/qwq-plus` | 131K | | | | | | $0.80 | $2 |
|
|
243
|
-
| `edenai/scaleway/deepseek-v4-flash-0731` | 256K | | | | | | $0.
|
|
243
|
+
| `edenai/scaleway/deepseek-v4-flash-0731` | 256K | | | | | | $0.47 | $0.93 |
|
|
244
244
|
| `edenai/scaleway/gpt-oss-120b` | 128K | | | | | | $0.17 | $0.70 |
|
|
245
245
|
| `edenai/scaleway/llama-3.3-70b-instruct` | 128K | | | | | | $1 | $1 |
|
|
246
246
|
| `edenai/tensorx/deepseek/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.25 | $0.30 |
|
|
@@ -48,7 +48,7 @@ for await (const chunk of stream) {
|
|
|
48
48
|
| `hyper/glm-5.2` | 1.0M | | | | | | $2 | $5 |
|
|
49
49
|
| `hyper/glm-5.3` | 1.0M | | | | | | $2 | $5 |
|
|
50
50
|
| `hyper/glm-5.3-flash` | 1.0M | | | | | | $0.16 | $0.54 |
|
|
51
|
-
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.18 | $0.
|
|
51
|
+
| `hyper/gpt-oss-120b` | 128K | | | | | | $0.18 | $0.61 |
|
|
52
52
|
| `hyper/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
53
53
|
| `hyper/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
|
|
54
54
|
| `hyper/kimi-k2.5` | 262K | | | | | | $0.56 | $3 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Kilo Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 366 Kilo Gateway models through Mastra's model router. Authentication is handled automatically using the `KILO_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Kilo Gateway documentation](https://kilo.ai).
|
|
10
10
|
|
|
@@ -211,7 +211,6 @@ for await (const chunk of stream) {
|
|
|
211
211
|
| `kilo/nousresearch/hermes-3-llama-3.1-405b` | 131K | | | | | | $1 | $1 |
|
|
212
212
|
| `kilo/nousresearch/hermes-3-llama-3.1-70b` | 131K | | | | | | $0.70 | $0.70 |
|
|
213
213
|
| `kilo/nousresearch/hermes-4-405b` | 131K | | | | | | $1 | $3 |
|
|
214
|
-
| `kilo/nousresearch/hermes-4-70b` | 131K | | | | | | $0.13 | $0.40 |
|
|
215
214
|
| `kilo/nvidia/nemotron-3-nano-30b-a3b` | 262K | | | | | | $0.05 | $0.20 |
|
|
216
215
|
| `kilo/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` | 256K | | | | | | — | — |
|
|
217
216
|
| `kilo/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.09 | $0.40 |
|
|
@@ -369,7 +368,7 @@ for await (const chunk of stream) {
|
|
|
369
368
|
| `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
|
|
370
369
|
| `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
|
|
371
370
|
| `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
|
|
372
|
-
| `kilo/tencent/hy3` | 262K | | | | | | $0.
|
|
371
|
+
| `kilo/tencent/hy3` | 262K | | | | | | $0.08 | $0.33 |
|
|
373
372
|
| `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
|
|
374
373
|
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.83 | $3 |
|
|
375
374
|
| `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
|
|
@@ -347,13 +347,13 @@ for await (const chunk of stream) {
|
|
|
347
347
|
| `llmgateway-providers/runware/kimi-k2.6` | 262K | | | | | | $0.60 | $3 |
|
|
348
348
|
| `llmgateway-providers/runware/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
349
349
|
| `llmgateway-providers/sakana/fugu-ultra` | 1.0M | | | | | | $5 | $30 |
|
|
350
|
-
| `llmgateway-providers/scx-ai-gp/glm-5.2` | 1.0M | | | | | | $0.
|
|
351
|
-
| `llmgateway-providers/scx-ai-gp/glm-5.2-fast` | 1.0M | | | | | | $2 | $
|
|
350
|
+
| `llmgateway-providers/scx-ai-gp/glm-5.2` | 1.0M | | | | | | $0.80 | $3 |
|
|
351
|
+
| `llmgateway-providers/scx-ai-gp/glm-5.2-fast` | 1.0M | | | | | | $2 | $7 |
|
|
352
352
|
| `llmgateway-providers/scx-ai-gp/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
353
|
-
| `llmgateway-providers/scx-ai-gp/glm-5.3-flash` | 1.0M | | | | | | $0.
|
|
354
|
-
| `llmgateway-providers/scx-ai-gp/kimi-k2.7-code` | 262K | | | | | | $0.
|
|
355
|
-
| `llmgateway-providers/scx-ai-gp/kimi-k3` | 1.0M | | | | | | $
|
|
356
|
-
| `llmgateway-providers/scx-ai-gp/qwen3.8-max` | 1.0M | | | | | | $2 | $
|
|
353
|
+
| `llmgateway-providers/scx-ai-gp/glm-5.3-flash` | 1.0M | | | | | | $0.09 | $0.25 |
|
|
354
|
+
| `llmgateway-providers/scx-ai-gp/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
355
|
+
| `llmgateway-providers/scx-ai-gp/kimi-k3` | 1.0M | | | | | | $4 | $18 |
|
|
356
|
+
| `llmgateway-providers/scx-ai-gp/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
357
357
|
| `llmgateway-providers/scx-ai/gemma-4-31b-it` | 131K | | | | | | $0.30 | $0.91 |
|
|
358
358
|
| `llmgateway-providers/scx-ai/gpt-oss-120b` | 131K | | | | | | $0.17 | $0.55 |
|
|
359
359
|
| `llmgateway-providers/scx-ai/llama-4-maverick-17b-instruct` | 131K | | | | | | $0.53 | $2 |
|
|
@@ -89,10 +89,10 @@ for await (const chunk of stream) {
|
|
|
89
89
|
| `llmgateway/glm-4.7-flashx` | 200K | | | | | | $0.07 | $0.40 |
|
|
90
90
|
| `llmgateway/glm-5` | 203K | | | | | | $0.72 | $2 |
|
|
91
91
|
| `llmgateway/glm-5.1` | 205K | | | | | | $0.93 | $3 |
|
|
92
|
-
| `llmgateway/glm-5.2` | 1.0M | | | | | | $0.
|
|
93
|
-
| `llmgateway/glm-5.2-fast` | 1.0M | | | | | | $2 | $
|
|
92
|
+
| `llmgateway/glm-5.2` | 1.0M | | | | | | $0.80 | $3 |
|
|
93
|
+
| `llmgateway/glm-5.2-fast` | 1.0M | | | | | | $2 | $7 |
|
|
94
94
|
| `llmgateway/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
95
|
-
| `llmgateway/glm-5.3-flash` | 1.0M | | | | | | $0.
|
|
95
|
+
| `llmgateway/glm-5.3-flash` | 1.0M | | | | | | $0.09 | $0.25 |
|
|
96
96
|
| `llmgateway/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
|
|
97
97
|
| `llmgateway/gpt-4` | 8K | | | | | | $30 | $60 |
|
|
98
98
|
| `llmgateway/gpt-4-turbo` | 128K | | | | | | $10 | $30 |
|
|
@@ -142,9 +142,9 @@ for await (const chunk of stream) {
|
|
|
142
142
|
| `llmgateway/kimi-k2-thinking` | 262K | | | | | | $0.60 | $3 |
|
|
143
143
|
| `llmgateway/kimi-k2.5` | 262K | | | | | | $0.41 | $2 |
|
|
144
144
|
| `llmgateway/kimi-k2.6` | 262K | | | | | | $0.60 | $3 |
|
|
145
|
-
| `llmgateway/kimi-k2.7-code` | 262K | | | | | | $0.
|
|
145
|
+
| `llmgateway/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
146
146
|
| `llmgateway/kimi-k2.7-code-highspeed` | 262K | | | | | | $2 | $8 |
|
|
147
|
-
| `llmgateway/kimi-k3` | 1.0M | | | | | | $3 | $
|
|
147
|
+
| `llmgateway/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
148
148
|
| `llmgateway/kimi-k3-fast` | 1.0M | | | | | | $5 | $23 |
|
|
149
149
|
| `llmgateway/ling-3.0-flash` | 262K | | | | | | $0.06 | $0.18 |
|
|
150
150
|
| `llmgateway/llama-3-70b-instruct` | 8K | | | | | | $0.51 | $0.74 |
|
|
@@ -214,7 +214,7 @@ for await (const chunk of stream) {
|
|
|
214
214
|
| `llmgateway/qwen3.7-plus` | 1.0M | | | | | | $0.40 | $2 |
|
|
215
215
|
| `llmgateway/Qwen3.8-27B` | 33K | | | | | | $0.20 | $2 |
|
|
216
216
|
| `llmgateway/qwen3.8-flash` | 1.0M | | | | | | $0.15 | $0.47 |
|
|
217
|
-
| `llmgateway/qwen3.8-max` | 1.0M | | | | | | $2 | $
|
|
217
|
+
| `llmgateway/qwen3.8-max` | 1.0M | | | | | | $2 | $6 |
|
|
218
218
|
| `llmgateway/qwen35-397b-a17b` | 262K | | | | | | $0.60 | $4 |
|
|
219
219
|
| `llmgateway/seed-1-6-250615` | 256K | | | | | | $0.25 | $2 |
|
|
220
220
|
| `llmgateway/seed-1-6-250915` | 256K | | | | | | $0.25 | $2 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# NanoGPT
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 589 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
|
|
|
@@ -42,6 +42,7 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `nano-gpt/abliteration-ai/abliterated-model` | 262K | | | | | | $3 | $3 |
|
|
43
43
|
| `nano-gpt/abliteration-ai/abliterated-model-large` | 1.0M | | | | | | $5 | $5 |
|
|
44
44
|
| `nano-gpt/abliteration-ai/abliterated-model-large-v2` | 1.0M | | | | | | $5 | $5 |
|
|
45
|
+
| `nano-gpt/agnes-3.0-flash` | 524K | | | | | | $0.05 | $0.15 |
|
|
45
46
|
| `nano-gpt/aion-labs/aion-2.0` | 131K | | | | | | $0.80 | $2 |
|
|
46
47
|
| `nano-gpt/aion-labs/aion-3.0` | 131K | | | | | | $3 | $6 |
|
|
47
48
|
| `nano-gpt/aion-labs/aion-3.0-mini` | 131K | | | | | | $0.70 | $1 |
|
|
@@ -154,6 +155,7 @@ for await (const chunk of stream) {
|
|
|
154
155
|
| `nano-gpt/deepseek/deepseek-v4-pro-0813:thinking` | 1.0M | | | | | | $1 | $3 |
|
|
155
156
|
| `nano-gpt/deepseek/deepseek-v4-pro:thinking` | 1.0M | | | | | | $1 | $2 |
|
|
156
157
|
| `nano-gpt/deepseek/deepseek-v4.1-flash` | 1.0M | | | | | | $0.16 | $0.31 |
|
|
158
|
+
| `nano-gpt/deepseek/deepseek-v4.1-flash:thinking` | 1.0M | | | | | | $0.16 | $0.31 |
|
|
157
159
|
| `nano-gpt/Doctor-Shotgun/MS3.2-24B-Magnum-Diamond` | 33K | | | | | | $0.49 | $0.49 |
|
|
158
160
|
| `nano-gpt/doubao-1.5-pro-256k` | 256K | | | | | | $0.80 | $1 |
|
|
159
161
|
| `nano-gpt/doubao-1.5-pro-32k` | 32K | | | | | | $0.13 | $0.33 |
|
|
@@ -201,6 +203,8 @@ for await (const chunk of stream) {
|
|
|
201
203
|
| `nano-gpt/gemini-3-pro-image-preview` | 66K | | | | | | $2 | $12 |
|
|
202
204
|
| `nano-gpt/gemini-exp-1206` | 2.1M | | | | | | $1 | $5 |
|
|
203
205
|
| `nano-gpt/gemma-4-12b-it` | 262K | | | | | | $0.05 | $0.25 |
|
|
206
|
+
| `nano-gpt/gemma-4-12b-it-semancer` | 131K | | | | | | $0.05 | $0.25 |
|
|
207
|
+
| `nano-gpt/gemma-4-12b-it-station-keeper` | 131K | | | | | | $0.05 | $0.25 |
|
|
204
208
|
| `nano-gpt/gemma-4-26b-a4b-it-chimerax` | 262K | | | | | | $0.12 | $0.38 |
|
|
205
209
|
| `nano-gpt/gemma-4-26b-a4b-it-darksoul` | 262K | | | | | | $0.12 | $0.38 |
|
|
206
210
|
| `nano-gpt/gemma-4-26b-a4b-it-luminous` | 262K | | | | | | $0.12 | $0.38 |
|
|
@@ -456,6 +460,7 @@ for await (const chunk of stream) {
|
|
|
456
460
|
| `nano-gpt/qwen/qwen3.8-27b-fable` | 262K | | | | | | $0.25 | $2 |
|
|
457
461
|
| `nano-gpt/qwen/qwen3.8-27b-obliterated` | 262K | | | | | | $0.25 | $2 |
|
|
458
462
|
| `nano-gpt/qwen/qwen3.8-27b-obliterated:thinking` | 262K | | | | | | $0.25 | $2 |
|
|
463
|
+
| `nano-gpt/qwen/qwen3.8-27b-queen` | 262K | | | | | | $0.25 | $2 |
|
|
459
464
|
| `nano-gpt/qwen/qwen3.8-27b-uncensored` | 262K | | | | | | $0.25 | $2 |
|
|
460
465
|
| `nano-gpt/qwen/qwen3.8-27b-uncensored:thinking` | 262K | | | | | | $0.25 | $2 |
|
|
461
466
|
| `nano-gpt/qwen25-vl-72b-instruct` | 32K | | | | | | $0.70 | $0.70 |
|
|
@@ -44,7 +44,7 @@ for await (const chunk of stream) {
|
|
|
44
44
|
| `opencode-go/glm-5.1` | 203K | | | | | | $1 | $4 |
|
|
45
45
|
| `opencode-go/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
46
46
|
| `opencode-go/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
47
|
-
| `opencode-go/glm-5.3-flash` | 1.0M | | | | | | $0.
|
|
47
|
+
| `opencode-go/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
48
48
|
| `opencode-go/gpt-5.6-luna` | 1.1M | | | | | | $0.20 | $1 |
|
|
49
49
|
| `opencode-go/grok-4.6` | 500K | | | | | | $2 | $6 |
|
|
50
50
|
| `opencode-go/hy3` | 256K | | | | | | $0.14 | $0.58 |
|
|
@@ -24,6 +24,7 @@ const result = await mastraClient.queryTraces({
|
|
|
24
24
|
op: 'and',
|
|
25
25
|
args: [
|
|
26
26
|
{ op: 'eq', left: { path: 'scorerId' }, right: { literal: 'factuality' } },
|
|
27
|
+
{ op: 'eq', left: { path: 'scorerVersion' }, right: { literal: '2.1.0' } },
|
|
27
28
|
{ op: 'lt', left: { path: 'score' }, right: { literal: 0.6 } },
|
|
28
29
|
],
|
|
29
30
|
},
|
|
@@ -34,7 +35,7 @@ const result = await mastraClient.queryTraces({
|
|
|
34
35
|
})
|
|
35
36
|
```
|
|
36
37
|
|
|
37
|
-
A `some` clause matches when one related record satisfies its complete nested predicate. In this example, `scorerId` and `score` must match on the same score record. A `none` clause matches when no related record satisfies its complete nested predicate.
|
|
38
|
+
A `some` clause matches when one related record satisfies its complete nested predicate. In this example, `scorerId`, `scorerVersion`, and `score` must match on the same score record. A `none` clause uses anti-existence semantics: it matches when no related record satisfies its complete nested predicate. A trace with no related scores therefore matches `scores.none`.
|
|
38
39
|
|
|
39
40
|
Span clauses examine the current root span and current child spans. The root `timeRange` applies only to the selected current root's `startedAt`. Related spans and scores can participate even when their own timestamps are outside that range. Related records correlate only through a matching non-null `traceId`.
|
|
40
41
|
|
|
@@ -99,17 +100,176 @@ Hono and Fastify enforce the request-body limit before JSON parsing. Express and
|
|
|
99
100
|
|
|
100
101
|
## Fields and operators
|
|
101
102
|
|
|
102
|
-
| Predicate context | Fields
|
|
103
|
-
| ----------------- |
|
|
104
|
-
| Trace | `traceId`, `threadId`, `resourceId`, `entityName`, `entityType`, `environment`, `status`
|
|
105
|
-
| Trace
|
|
106
|
-
|
|
|
107
|
-
| Span | `
|
|
108
|
-
|
|
|
109
|
-
|
|
|
103
|
+
| Predicate context | Fields | Operators |
|
|
104
|
+
| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------- |
|
|
105
|
+
| Trace | `traceId`, `threadId`, `resourceId`, `entityName`, `entityType`, `environment`, `status` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
|
|
106
|
+
| Trace metadata | `metadata.<key>` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
|
|
107
|
+
| Trace | `startedAt`, `endedAt` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
|
|
108
|
+
| Span | `name`, `spanType`, `model`, `provider`, `status`, `entityType`, `entityId`, `entityName`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
|
|
109
|
+
| Span | `startedAt`, `endedAt`, `durationMs` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
|
|
110
|
+
| Span | `error` | `exists`, `notExists` |
|
|
111
|
+
| Score | `scorerId`, `scorerVersion`, `scoreSource`, `entityVersionId`, `parentEntityVersionId`, `rootEntityVersionId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
|
|
112
|
+
| Score | `score`, `timestamp` | `eq`, `ne`, `in`, `notIn`, `lt`, `lte`, `gt`, `gte`, `exists`, `notExists` |
|
|
113
|
+
| Score | `spanId` | `exists`, `notExists` |
|
|
110
114
|
|
|
111
115
|
Compose predicates with `{ op: 'and', args: [...] }`, `{ op: 'or', args: [...] }`, and `{ op: 'not', arg: ... }`. Comparison predicates place a field reference on the left and a literal on the right. Membership predicates use a field reference in `value` and a homogeneous literal array in `set`.
|
|
112
116
|
|
|
117
|
+
String comparisons are case-sensitive, and literals are never coerced. Canonical string fields compare exact stored values. Metadata string values are trimmed before comparison, as described below. Numeric predicates, including `score` and `durationMs`, require numbers, while timestamp predicates require ISO timestamp strings. A missing value satisfies neither positive nor ordered predicates, although it does satisfy the negative operators `ne` and `notIn`. Combine a negative predicate with `exists` when the field must also be present.
|
|
118
|
+
|
|
119
|
+
### Filter by span properties
|
|
120
|
+
|
|
121
|
+
Every condition inside one `spans.some` or `spans.none` clause applies to the same current span. For example, this predicate finds a failed tool span whose name is `medication_lookup`; a matching name on one span and an error on another don't satisfy it:
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const failedMedicationLookup = {
|
|
125
|
+
spans: {
|
|
126
|
+
some: {
|
|
127
|
+
op: 'and',
|
|
128
|
+
args: [
|
|
129
|
+
{ op: 'eq', left: { path: 'name' }, right: { literal: 'medication_lookup' } },
|
|
130
|
+
{ op: 'eq', left: { path: 'spanType' }, right: { literal: 'tool_call' } },
|
|
131
|
+
{ op: 'exists', path: 'error' },
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Use `status` for the derived `success` or `error` outcome. Use `error` when you only need to test whether error details are present.
|
|
139
|
+
|
|
140
|
+
`durationMs` is the span's elapsed time in milliseconds. Span `startedAt` and `endedAt` conditions filter related spans independently of the top-level root `timeRange`:
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
const slowModelCalls = {
|
|
144
|
+
spans: {
|
|
145
|
+
some: {
|
|
146
|
+
op: 'and',
|
|
147
|
+
args: [
|
|
148
|
+
{ op: 'eq', left: { path: 'spanType' }, right: { literal: 'model_generation' } },
|
|
149
|
+
{ op: 'gt', left: { path: 'durationMs' }, right: { literal: 5000 } },
|
|
150
|
+
{
|
|
151
|
+
op: 'gte',
|
|
152
|
+
left: { path: 'startedAt' },
|
|
153
|
+
right: { literal: '2026-07-15T00:00:00.000Z' },
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
`model` and `provider` read the canonical `attributes.model` and `attributes.provider` span attributes. Only stored string values are queryable; missing, null, and non-string values count as missing.
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
const selectedModel = {
|
|
165
|
+
spans: {
|
|
166
|
+
some: {
|
|
167
|
+
op: 'and',
|
|
168
|
+
args: [
|
|
169
|
+
{
|
|
170
|
+
op: 'eq',
|
|
171
|
+
left: { path: 'model' },
|
|
172
|
+
right: { literal: 'claude-sonnet-4-6' },
|
|
173
|
+
},
|
|
174
|
+
{ op: 'eq', left: { path: 'provider' }, right: { literal: 'anthropic' } },
|
|
175
|
+
],
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Use generic entity fields for tool and retrieval identity. The version fields let one clause qualify the same span by its entity lineage:
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
const versionedRetrieval = {
|
|
185
|
+
spans: {
|
|
186
|
+
some: {
|
|
187
|
+
op: 'and',
|
|
188
|
+
args: [
|
|
189
|
+
{ op: 'eq', left: { path: 'entityType' }, right: { literal: 'rag_ingestion' } },
|
|
190
|
+
{ op: 'eq', left: { path: 'entityId' }, right: { literal: 'medication-index' } },
|
|
191
|
+
{ op: 'eq', left: { path: 'entityVersionId' }, right: { literal: 'index-v3' } },
|
|
192
|
+
{ op: 'eq', left: { path: 'rootEntityVersionId' }, right: { literal: 'agent-v2' } },
|
|
193
|
+
],
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Filter by score time
|
|
200
|
+
|
|
201
|
+
Score timestamps are independent of the required top-level trace `timeRange`. The top-level range selects trace candidates by trace start time. A nested `timestamp` predicate limits related score records:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
const query = {
|
|
205
|
+
timeRange: {
|
|
206
|
+
from: '2026-08-01T00:00:00.000Z',
|
|
207
|
+
to: '2026-08-08T00:00:00.000Z',
|
|
208
|
+
},
|
|
209
|
+
where: {
|
|
210
|
+
scores: {
|
|
211
|
+
some: {
|
|
212
|
+
op: 'and',
|
|
213
|
+
args: [
|
|
214
|
+
{ op: 'eq', left: { path: 'scoreSource' }, right: { literal: 'automated' } },
|
|
215
|
+
{
|
|
216
|
+
op: 'gte',
|
|
217
|
+
left: { path: 'timestamp' },
|
|
218
|
+
right: { literal: '2026-07-15T00:00:00.000Z' },
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
op: 'lt',
|
|
222
|
+
left: { path: 'timestamp' },
|
|
223
|
+
right: { literal: '2026-08-01T00:00:00.000Z' },
|
|
224
|
+
},
|
|
225
|
+
],
|
|
226
|
+
},
|
|
227
|
+
},
|
|
228
|
+
},
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Filter by span anchoring
|
|
233
|
+
|
|
234
|
+
Use `spanId` only to test whether a score targets a span. The predicate doesn't join the score to a matching span predicate:
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
// At least one score targets a span.
|
|
238
|
+
const anchoredToSpanWhere = { scores: { some: { op: 'exists', path: 'spanId' } } }
|
|
239
|
+
|
|
240
|
+
// At least one score applies to the trace rather than a span.
|
|
241
|
+
const traceLevelScoreWhere = { scores: { some: { op: 'notExists', path: 'spanId' } } }
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
The deprecated `source` field and `scorerName` aren't available as score predicate fields. Use the canonical `scoreSource` and `scorerId` fields.
|
|
245
|
+
|
|
246
|
+
### Filter by metadata
|
|
247
|
+
|
|
248
|
+
Use `metadata.<key>` paths for custom dimensions stored on the current root span. Metadata predicates compare trimmed, non-empty string values exactly and case-sensitively. Leading and trailing whitespace in a stored string value is ignored. Values empty after trimming count as missing. Null, numeric, boolean, object, and array values also count as missing.
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
const messageTrace = {
|
|
252
|
+
op: 'and',
|
|
253
|
+
args: [
|
|
254
|
+
{ op: 'eq', left: { path: 'metadata.messageId' }, right: { literal: 'message-123' } },
|
|
255
|
+
{ op: 'in', value: { path: 'metadata.actorRole' }, set: ['assistant', 'tool'] },
|
|
256
|
+
{ op: 'exists', path: 'metadata.protocolVersion' },
|
|
257
|
+
{
|
|
258
|
+
op: 'or',
|
|
259
|
+
args: [
|
|
260
|
+
{ op: 'eq', left: { path: 'metadata.temporalRunId' }, right: { literal: 'run-456' } },
|
|
261
|
+
{ op: 'eq', left: { path: 'metadata.externalTraceId' }, right: { literal: 'trace-789' } },
|
|
262
|
+
],
|
|
263
|
+
},
|
|
264
|
+
{ op: 'not', arg: { op: 'exists', path: 'metadata.parentMessageId' } },
|
|
265
|
+
],
|
|
266
|
+
}
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
The key must name one top-level property. Empty keys and nested paths are rejected. Metadata keys aren't trimmed, so leading and trailing whitespace remains part of the exact key identity. When metadata duplicates a canonical trace field, such as `resourceId`, `threadId`, or `environment`, prefer the canonical field because it uses the dedicated storage column. The `metadata.<key>` form remains available when you specifically need the value from the metadata object. Metadata and canonical values may differ.
|
|
270
|
+
|
|
271
|
+
Metadata fields aren't available for grouping or field discovery.
|
|
272
|
+
|
|
113
273
|
## Responses
|
|
114
274
|
|
|
115
275
|
An ungrouped query returns only lightweight completed traces:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.2.25-alpha.
|
|
3
|
+
"version": "1.2.25-alpha.3",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"jsdom": "^26.1.0",
|
|
28
28
|
"local-pkg": "^1.1.2",
|
|
29
29
|
"zod": "^4.4.3",
|
|
30
|
-
"@mastra/core": "1.66.0-alpha.
|
|
30
|
+
"@mastra/core": "1.66.0-alpha.1",
|
|
31
31
|
"@mastra/mcp": "^1.17.3"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
@@ -45,8 +45,8 @@
|
|
|
45
45
|
"typescript": "^7.0.2",
|
|
46
46
|
"vitest": "4.1.10",
|
|
47
47
|
"@internal/lint": "0.0.131",
|
|
48
|
-
"@
|
|
49
|
-
"@
|
|
48
|
+
"@internal/types-builder": "0.0.106",
|
|
49
|
+
"@mastra/core": "1.66.0-alpha.1"
|
|
50
50
|
},
|
|
51
51
|
"homepage": "https://mastra.ai",
|
|
52
52
|
"repository": {
|