@mastra/mcp-docs-server 1.3.9-alpha.1 → 1.3.9-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/docs/mastra-platform/connect/channels.md +14 -2
- package/.docs/docs/mastra-platform/connect/overview.md +1 -1
- package/.docs/docs/mastra-platform/connect/providers.md +1 -0
- package/.docs/models/gateways/vercel.md +1 -3
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/302ai.md +2 -1
- package/.docs/models/providers/cortecs.md +1 -2
- package/.docs/models/providers/edenai.md +3 -1
- package/.docs/models/providers/engy.md +2 -2
- package/.docs/models/providers/kilo.md +16 -15
- package/.docs/models/providers/llmgateway-providers.md +1 -7
- package/.docs/models/providers/llmgateway.md +1 -4
- package/.docs/models/providers/nano-gpt.md +4 -2
- package/.docs/models/providers/opencode-go.md +1 -1
- package/.docs/models/providers/opencode.md +4 -2
- package/.docs/models/providers/prime.md +2 -1
- package/.docs/reference/agents/durable-agent.md +3 -1
- package/.docs/reference/classifier/classifier.md +2 -2
- package/.docs/reference/cli/mastra.md +4 -2
- package/.docs/reference/client-js/observability.md +44 -0
- package/.docs/reference/connect/channels.md +2 -2
- package/.docs/reference/connect/providers.md +34 -1
- package/.docs/reference/datasets/list.md +9 -1
- package/.docs/reference/observability/metrics/automatic-metrics.md +3 -3
- package/.docs/reference/observability/metrics/queries.md +1 -0
- package/.docs/reference/observability/tracing/interfaces.md +6 -0
- package/.docs/reference/streaming/agents/stream.md +18 -0
- package/package.json +4 -4
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Channels
|
|
6
6
|
|
|
7
|
-
[Channels](https://mastra.ai/docs/channels) let people talk to your agents from services such as Slack, Telegram, and
|
|
7
|
+
[Channels](https://mastra.ai/docs/channels) let people talk to your agents from services such as Slack, Telegram, Discord, and Microsoft Teams. Connect stores provider credentials on the platform and uses [`channels()`](https://mastra.ai/reference/connect/channels) to make those channels available in your Mastra application. It uses the same channel packages with platform-managed credentials, while vendor-side setup depends on the provider.
|
|
8
8
|
|
|
9
9
|
Before you start, follow the [Connect setup](https://mastra.ai/docs/mastra-platform/connect/overview) to install the package and configure your platform project.
|
|
10
10
|
|
|
@@ -29,7 +29,7 @@ The channels available to your app are configured at startup, while their creden
|
|
|
29
29
|
|
|
30
30
|
## Connect a provider
|
|
31
31
|
|
|
32
|
-
The following steps cover Slack, Discord, and
|
|
32
|
+
The following steps cover Slack, Discord, Telegram, and Microsoft Teams. Start your Mastra application before completing the agent connection in Studio.
|
|
33
33
|
|
|
34
34
|
For webhook delivery and OAuth callbacks, your server needs a public URL reachable by the provider. Mastra platform supplies this URL. When hosting elsewhere, set `MASTRA_SERVER_URL` to your public server URL. Use a public HTTPS tunnel for local webhook development.
|
|
35
35
|
|
|
@@ -72,6 +72,18 @@ Telegram uses a bot token from BotFather. Before connecting an agent, set `MASTR
|
|
|
72
72
|
|
|
73
73
|
For local development without a public webhook URL, the [Telegram provider reference](https://mastra.ai/reference/channels/telegram-provider) describes polling mode.
|
|
74
74
|
|
|
75
|
+
### Microsoft Teams
|
|
76
|
+
|
|
77
|
+
Teams uses a Microsoft work or school account authorized with OAuth. The same `microsoft-teams` connection provides both the channel and Teams [tools](https://mastra.ai/docs/mastra-platform/connect/tools). When an agent connects, Mastra registers a bot for it in the Teams Developer Portal, so no Azure app registration is needed on your side.
|
|
78
|
+
|
|
79
|
+
The bot credential is stored encrypted at rest. Set `MASTRA_ENCRYPTION_KEY` to use a dedicated key; without it, `channels()` derives a key from the platform access token and logs a warning. Rotating the platform access token then makes stored bot credentials unreadable, disconnect and reconnect the channel to re-provision.
|
|
80
|
+
|
|
81
|
+
1. Run `mastra connect add microsoft-teams` and sign in with a Microsoft work or school account. Some of the requested permissions require admin consent, so the first connection in a tenant needs a Microsoft Entra administrator.
|
|
82
|
+
2. Connect the channel to an agent in Studio. Mastra creates a single-tenant bot registration for the agent and returns a link to the [Teams Developer Portal](https://dev.teams.microsoft.com/bots).
|
|
83
|
+
3. Open the link, package the bot into a Teams app in the Developer Portal, and add the app to Teams.
|
|
84
|
+
|
|
85
|
+
Disconnecting the agent deletes the bot registration and its Entra application.
|
|
86
|
+
|
|
75
87
|
## Configure available channels
|
|
76
88
|
|
|
77
89
|
Use `providers` to select the channels your app exposes:
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
Connect manages connections to services such as GitHub, Slack, and Linear in your [Mastra platform](https://mastra.ai/docs/mastra-platform/overview) project. The `@mastra/connect` package makes those connections available to your application as tools, channels, or credentials.
|
|
10
10
|
|
|
11
11
|
- **Tools** let agents call a provider's API. Connect supplies ready-made tools and sends their requests through a platform proxy that adds credentials and refreshes OAuth tokens. See [Tools](https://mastra.ai/docs/mastra-platform/connect/tools).
|
|
12
|
-
- **Channels** let people talk to agents through Slack, Telegram, or
|
|
12
|
+
- **Channels** let people talk to agents through Slack, Telegram, Discord, or Microsoft Teams. Connect supplies credentials to Mastra's channel providers. See [Channels](https://mastra.ai/docs/mastra-platform/connect/channels).
|
|
13
13
|
- **Raw credentials** let your code call a provider's SDK directly when the tools don't cover what you need. See [`credential()`](https://mastra.ai/reference/connect/credential).
|
|
14
14
|
|
|
15
15
|
## When to use Connect
|
|
@@ -25,6 +25,7 @@ This directory covers the generated toolsets and channel setup documented here,
|
|
|
25
25
|
| `incident-io` |  incident.io | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
26
26
|
| `jira` |  Jira | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
27
27
|
| `linear` |  Linear | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
28
|
+
| `microsoft-teams` |  Microsoft Teams | [Tools](https://mastra.ai/reference/connect/providers), [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
|
|
28
29
|
| `notion` |  Notion | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
29
30
|
| `openai` |  OpenAI | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
30
31
|
| `posthog` |  PostHog | [Tools](https://mastra.ai/reference/connect/providers) |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Vercel
|
|
6
6
|
|
|
7
|
-
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
7
|
+
Vercel aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 408 models through Mastra's model router.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Vercel documentation](https://ai-sdk.dev/providers/ai-sdk-providers).
|
|
10
10
|
|
|
@@ -94,7 +94,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
94
94
|
| `anthropic/claude-opus-5-fast` |
|
|
95
95
|
| `anthropic/claude-opus-5.5` |
|
|
96
96
|
| `anthropic/claude-opus-5.5-fast` |
|
|
97
|
-
| `anthropic/claude-sonnet-4` |
|
|
98
97
|
| `anthropic/claude-sonnet-4.5` |
|
|
99
98
|
| `anthropic/claude-sonnet-4.6` |
|
|
100
99
|
| `anthropic/claude-sonnet-5` |
|
|
@@ -360,7 +359,6 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
360
359
|
| `poolside/laguna-s-2.1` |
|
|
361
360
|
| `poolside/laguna-s-2.1-free` |
|
|
362
361
|
| `prodia/flux-fast-schnell` |
|
|
363
|
-
| `quiverai/arrow-1.1` |
|
|
364
362
|
| `quiverai/arrow-2` |
|
|
365
363
|
| `quiverai/arrow-2-telos` |
|
|
366
364
|
| `recraft/recraft-v2` |
|
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 8229 models from 218 providers through a single API.
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# 302.AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 125 302.AI models through Mastra's model router. Authentication is handled automatically using the `302AI_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [302.AI documentation](https://doc.302.ai).
|
|
10
10
|
|
|
@@ -84,6 +84,7 @@ for await (const chunk of stream) {
|
|
|
84
84
|
| `302ai/gemini-3.6-flash` | 1.0M | | | | | | $2 | $8 |
|
|
85
85
|
| `302ai/gemini-3.7-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
86
86
|
| `302ai/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
87
|
+
| `302ai/gemini-4-argon` | 1.0M | | | | | | $4 | $10 |
|
|
87
88
|
| `302ai/glm-4.5` | 131K | | | | | | $0.29 | $1 |
|
|
88
89
|
| `302ai/glm-4.5v` | 64K | | | | | | $0.29 | $0.86 |
|
|
89
90
|
| `302ai/glm-4.6` | 205K | | | | | | $0.29 | $1 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Cortecs
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 106 Cortecs models through Mastra's model router. Authentication is handled automatically using the `CORTECS_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Cortecs documentation](https://cortecs.ai).
|
|
10
10
|
|
|
@@ -99,7 +99,6 @@ for await (const chunk of stream) {
|
|
|
99
99
|
| `cortecs/kimi-k2.6` | 256K | | | | | | $0.47 | $3 |
|
|
100
100
|
| `cortecs/kimi-k2.7-code` | 262K | | | | | | $0.66 | $3 |
|
|
101
101
|
| `cortecs/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
102
|
-
| `cortecs/llama-3.1-8b-instruct` | 128K | | | | | | $0.17 | $0.17 |
|
|
103
102
|
| `cortecs/llama-3.3-70b-instruct` | 131K | | | | | | $0.72 | $0.72 |
|
|
104
103
|
| `cortecs/minicpm-v-4.5` | 32K | | | | | | $0.65 | $1 |
|
|
105
104
|
| `cortecs/minimax-m2` | 400K | | | | | | $0.35 | $1 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Eden AI
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 331 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/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.66 | $2 |
|
|
159
159
|
| `edenai/fireworks_ai/accounts/fireworks/models/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
160
160
|
| `edenai/fireworks_ai/accounts/fireworks/models/inkling` | 1.0M | | | | | | $1 | $4 |
|
|
161
|
+
| `edenai/fireworks_ai/accounts/fireworks/models/muse-spark-open` | 1.0M | | | | | | $1 | $4 |
|
|
161
162
|
| `edenai/fireworks_ai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
162
163
|
| `edenai/flexai/DeepSeek-V4-Flash-0731` | 1.0M | | | | | | $0.12 | $0.24 |
|
|
163
164
|
| `edenai/flexai/DeepSeek-V4-Flash-0731@eu` | 1.0M | | | | | | $0.12 | $0.24 |
|
|
@@ -234,6 +235,7 @@ for await (const chunk of stream) {
|
|
|
234
235
|
| `edenai/nebius/deepseek-ai/DeepSeek-V4-Pro-0813` | 979K | | | | | | $1 | $4 |
|
|
235
236
|
| `edenai/nebius/deepseek-ai/DeepSeek-V4.1-Flash` | 1.0M | | | | | | $0.30 | $1 |
|
|
236
237
|
| `edenai/nebius/google/gemma-3-27b-it` | 110K | | | | | | $0.10 | $0.30 |
|
|
238
|
+
| `edenai/nebius/meta-models/muse-spark-open` | 1.0M | | | | | | $1 | $4 |
|
|
237
239
|
| `edenai/nebius/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.30 | $0.90 |
|
|
238
240
|
| `edenai/nebius/nvidia/Nemotron-3-Ultra-550b-a55b` | 1.0M | | | | | | $1 | $3 |
|
|
239
241
|
| `edenai/nebius/openai/gpt-oss-120b` | 131K | | | | | | $0.15 | $0.60 |
|
|
@@ -39,10 +39,10 @@ for await (const chunk of stream) {
|
|
|
39
39
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
40
40
|
| ----------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
41
41
|
| `engy/deepseek-v4-flash-0731` | 1.0M | | | | | | $0.04 | $0.09 |
|
|
42
|
-
| `engy/deepseek-v4.1-flash` |
|
|
42
|
+
| `engy/deepseek-v4.1-flash` | 1.0M | | | | | | $0.04 | $0.08 |
|
|
43
43
|
| `engy/glm-5.2` | 262K | | | | | | $0.68 | $2 |
|
|
44
44
|
| `engy/glm-5.3` | 328K | | | | | | $0.98 | $3 |
|
|
45
|
-
| `engy/glm-5.3-flash` |
|
|
45
|
+
| `engy/glm-5.3-flash` | 328K | | | | | | $0.14 | $0.45 |
|
|
46
46
|
| `engy/kimi-k3` | 1.1M | | | | | | $2 | $10 |
|
|
47
47
|
| `engy/qwen3.6-35b-a3b` | 208K | | | | | | $0.04 | $0.30 |
|
|
48
48
|
| `engy/qwen3.8-27b` | 1.0M | | | | | | $0.04 | $0.32 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Kilo Gateway
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 393 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
|
|
|
@@ -42,12 +42,12 @@ for await (const chunk of stream) {
|
|
|
42
42
|
| `kilo/~anthropic/claude-haiku-latest` | 1.0M | | | | | | $0.10 | $0.50 |
|
|
43
43
|
| `kilo/~anthropic/claude-opus-latest` | 1.0M | | | | | | $4 | $20 |
|
|
44
44
|
| `kilo/~anthropic/claude-sonnet-latest` | 1.0M | | | | | | $2 | $10 |
|
|
45
|
-
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.
|
|
46
|
-
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.
|
|
47
|
-
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.01 | $
|
|
45
|
+
| `kilo/~deepseek/deepseek-flash-latest` | 1.0M | | | | | | $0.04 | $0.68 |
|
|
46
|
+
| `kilo/~deepseek/deepseek-pro-latest` | 1.0M | | | | | | $0.25 | $5 |
|
|
47
|
+
| `kilo/~deepseek/deepseek-v4-flash-latest` | 1.0M | | | | | | $0.01 | $1 |
|
|
48
48
|
| `kilo/~google/gemini-flash-latest` | 1.0M | | | | | | $0.75 | $4 |
|
|
49
49
|
| `kilo/~google/gemini-pro-latest` | 1.0M | | | | | | $2 | $10 |
|
|
50
|
-
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $0.
|
|
50
|
+
| `kilo/~moonshotai/kimi-latest` | 1.0M | | | | | | $0.29 | $28 |
|
|
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 |
|
|
@@ -55,7 +55,7 @@ for await (const chunk of stream) {
|
|
|
55
55
|
| `kilo/~openai/gpt-terra-latest` | 1.1M | | | | | | $2 | $12 |
|
|
56
56
|
| `kilo/~unbiased/pareto-latest` | 262K | | | | | | $3 | $8 |
|
|
57
57
|
| `kilo/~x-ai/grok-latest` | 500K | | | | | | $2 | $6 |
|
|
58
|
-
| `kilo/~z-ai/glm-flash-latest` | 1.0M | | | | | | $0.
|
|
58
|
+
| `kilo/~z-ai/glm-flash-latest` | 1.0M | | | | | | $0.01 | $0.82 |
|
|
59
59
|
| `kilo/~z-ai/glm-latest` | 1.0M | | | | | | $0.06 | $4 |
|
|
60
60
|
| `kilo/aion-labs/aion-2.0` | 131K | | | | | | $0.80 | $2 |
|
|
61
61
|
| `kilo/aion-labs/aion-3.0` | 131K | | | | | | $3 | $6 |
|
|
@@ -99,7 +99,7 @@ for await (const chunk of stream) {
|
|
|
99
99
|
| `kilo/cohere/command-r-plus-08-2024` | 128K | | | | | | $3 | $10 |
|
|
100
100
|
| `kilo/cohere/command-r7b-12-2024` | 128K | | | | | | $0.04 | $0.15 |
|
|
101
101
|
| `kilo/cohere/north-mini-code:free` | 256K | | | | | | — | — |
|
|
102
|
-
| `kilo/deepseek/deepseek-chat` |
|
|
102
|
+
| `kilo/deepseek/deepseek-chat` | 128K | | | | | | $0.26 | $1 |
|
|
103
103
|
| `kilo/deepseek/deepseek-chat-v3-0324` | 128K | | | | | | $0.29 | $1 |
|
|
104
104
|
| `kilo/deepseek/deepseek-chat-v3.1` | 164K | | | | | | $0.25 | $0.95 |
|
|
105
105
|
| `kilo/deepseek/deepseek-r1` | 64K | | | | | | $0.70 | $3 |
|
|
@@ -138,7 +138,7 @@ for await (const chunk of stream) {
|
|
|
138
138
|
| `kilo/google/gemini-4-argon` | 1.0M | | | | | | $2 | $10 |
|
|
139
139
|
| `kilo/google/gemini-nano-banana-2.1` | 66K | | | | | | $2 | $8 |
|
|
140
140
|
| `kilo/google/gemma-2-27b-it` | 8K | | | | | | $0.65 | $0.65 |
|
|
141
|
-
| `kilo/google/gemma-3-12b-it` | 131K | | | | | | $0.
|
|
141
|
+
| `kilo/google/gemma-3-12b-it` | 131K | | | | | | $0.04 | $0.12 |
|
|
142
142
|
| `kilo/google/gemma-3-27b-it` | 131K | | | | | | $0.08 | $0.16 |
|
|
143
143
|
| `kilo/google/gemma-3-4b-it` | 131K | | | | | | $0.04 | $0.05 |
|
|
144
144
|
| `kilo/google/gemma-4-26b-a4b-it` | 262K | | | | | | $0.04 | $0.22 |
|
|
@@ -170,8 +170,8 @@ for await (const chunk of stream) {
|
|
|
170
170
|
| `kilo/meta-llama/llama-3.2-3b-instruct` | 131K | | | | | | $0.05 | $0.33 |
|
|
171
171
|
| `kilo/meta-llama/llama-3.3-70b-instruct` | 131K | | | | | | $0.10 | $0.32 |
|
|
172
172
|
| `kilo/meta-llama/llama-4-maverick` | 128K | | | | | | $0.19 | $0.65 |
|
|
173
|
-
| `kilo/meta-llama/llama-4-scout` | 131K | | | | | | $0.
|
|
174
|
-
| `kilo/meta-llama/llama-guard-4-12b` | 164K | | | | | | $0.
|
|
173
|
+
| `kilo/meta-llama/llama-4-scout` | 131K | | | | | | $0.08 | $0.24 |
|
|
174
|
+
| `kilo/meta-llama/llama-guard-4-12b` | 164K | | | | | | $0.14 | $0.14 |
|
|
175
175
|
| `kilo/meta/muse-glimmer-30b` | 131K | | | | | | $0.30 | $1 |
|
|
176
176
|
| `kilo/meta/muse-spark-1.1` | 1.0M | | | | | | $1 | $4 |
|
|
177
177
|
| `kilo/meta/muse-spark-1.2` | 1.0M | | | | | | $1 | $4 |
|
|
@@ -180,7 +180,7 @@ for await (const chunk of stream) {
|
|
|
180
180
|
| `kilo/meta/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
|
|
181
181
|
| `kilo/meta/muse-spark-open` | 1.0M | | | | | | $1 | $4 |
|
|
182
182
|
| `kilo/meta/muse-wonder` | 1.0M | | | | | | $4 | $20 |
|
|
183
|
-
| `kilo/microsoft/phi-4` | 16K | | | | | | $0.
|
|
183
|
+
| `kilo/microsoft/phi-4` | 16K | | | | | | $0.06 | $0.11 |
|
|
184
184
|
| `kilo/microsoft/wizardlm-2-8x22b` | 66K | | | | | | $0.62 | $0.62 |
|
|
185
185
|
| `kilo/minimax/minimax-01` | 1.0M | | | | | | $0.20 | $1 |
|
|
186
186
|
| `kilo/minimax/minimax-m1` | 1.0M | | | | | | $0.40 | $2 |
|
|
@@ -230,7 +230,7 @@ for await (const chunk of stream) {
|
|
|
230
230
|
| `kilo/nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` | 256K | | | | | | — | — |
|
|
231
231
|
| `kilo/nvidia/nemotron-3-super-120b-a12b` | 262K | | | | | | $0.08 | $0.45 |
|
|
232
232
|
| `kilo/nvidia/nemotron-3-super-120b-a12b:free` | 262K | | | | | | — | — |
|
|
233
|
-
| `kilo/nvidia/nemotron-3-ultra-550b-a55b` | 203K | | | | | | $0.
|
|
233
|
+
| `kilo/nvidia/nemotron-3-ultra-550b-a55b` | 203K | | | | | | $0.40 | $2 |
|
|
234
234
|
| `kilo/nvidia/nemotron-3-ultra-550b-a55b:free` | 1.0M | | | | | | — | — |
|
|
235
235
|
| `kilo/nvidia/nemotron-3.5-content-safety` | 131K | | | | | | $0.20 | $0.20 |
|
|
236
236
|
| `kilo/nvidia/nemotron-3.5-content-safety:free` | 128K | | | | | | — | — |
|
|
@@ -334,7 +334,7 @@ for await (const chunk of stream) {
|
|
|
334
334
|
| `kilo/qwen/qwen3-coder-30b-a3b-instruct` | 262K | | | | | | $0.07 | $0.28 |
|
|
335
335
|
| `kilo/qwen/qwen3-coder-flash` | 1.0M | | | | | | $0.20 | $0.97 |
|
|
336
336
|
| `kilo/qwen/qwen3-coder-next` | 262K | | | | | | $0.12 | $0.80 |
|
|
337
|
-
| `kilo/qwen/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.
|
|
337
|
+
| `kilo/qwen/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.09 | $1 |
|
|
338
338
|
| `kilo/qwen/qwen3-next-80b-a3b-thinking` | 262K | | | | | | $0.15 | $1 |
|
|
339
339
|
| `kilo/qwen/qwen3-vl-235b-a22b-instruct` | 131K | | | | | | $0.21 | $2 |
|
|
340
340
|
| `kilo/qwen/qwen3-vl-30b-a3b-instruct` | 262K | | | | | | $0.15 | $0.60 |
|
|
@@ -374,6 +374,7 @@ for await (const chunk of stream) {
|
|
|
374
374
|
| `kilo/sao10k/l3.3-euryale-70b` | 131K | | | | | | $0.65 | $0.75 |
|
|
375
375
|
| `kilo/scaledown/extract` | 1.0M | | | | | | $0.05 | — |
|
|
376
376
|
| `kilo/scaledown/summarize` | 1.0M | | | | | | $0.05 | — |
|
|
377
|
+
| `kilo/stealth/cat-jam` | 1.0M | | | | | | — | — |
|
|
377
378
|
| `kilo/stealth/claude-opus-4.6` | 1.0M | | | | | | $4 | $20 |
|
|
378
379
|
| `kilo/stealth/claude-opus-4.7` | 1.0M | | | | | | $4 | $20 |
|
|
379
380
|
| `kilo/stealth/claude-opus-4.8` | 1.0M | | | | | | $4 | $20 |
|
|
@@ -387,9 +388,9 @@ for await (const chunk of stream) {
|
|
|
387
388
|
| `kilo/tencent/hy-mt2-1.8b` | 8K | | | | | | $0.04 | $0.18 |
|
|
388
389
|
| `kilo/tencent/hy-mt2-30b-a3b` | 8K | | | | | | $0.07 | $0.29 |
|
|
389
390
|
| `kilo/tencent/hy-mt2-7b` | 8K | | | | | | $0.07 | $0.29 |
|
|
390
|
-
| `kilo/tencent/hy3` | 262K | | | | | | $0.
|
|
391
|
+
| `kilo/tencent/hy3` | 262K | | | | | | $0.13 | $0.53 |
|
|
391
392
|
| `kilo/tencent/hy3-preview` | 262K | | | | | | $0.18 | $0.60 |
|
|
392
|
-
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.
|
|
393
|
+
| `kilo/tencent/hy4-preview` | 1.0M | | | | | | $0.80 | $2 |
|
|
393
394
|
| `kilo/thedrummer/cydonia-24b-v4.1` | 131K | | | | | | $0.30 | $0.50 |
|
|
394
395
|
| `kilo/thedrummer/skyfall-36b-v2` | 33K | | | | | | $0.55 | $0.80 |
|
|
395
396
|
| `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 433 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
|
|
|
@@ -223,9 +223,6 @@ for await (const chunk of stream) {
|
|
|
223
223
|
| `llmgateway-providers/fireworks/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
224
224
|
| `llmgateway-providers/fireworks/kimi-k3-fast` | 1.0M | | | | | | $5 | $23 |
|
|
225
225
|
| `llmgateway-providers/gonka24/minimax-m2.7` | 205K | | | | | | $0.08 | $0.32 |
|
|
226
|
-
| `llmgateway-providers/google-ai-studio/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
227
|
-
| `llmgateway-providers/google-ai-studio/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
228
|
-
| `llmgateway-providers/google-ai-studio/gemini-2.5-pro` | 1.0M | | | | | | $1 | $10 |
|
|
229
226
|
| `llmgateway-providers/google-ai-studio/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
|
|
230
227
|
| `llmgateway-providers/google-ai-studio/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
231
228
|
| `llmgateway-providers/google-ai-studio/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
@@ -236,9 +233,6 @@ for await (const chunk of stream) {
|
|
|
236
233
|
| `llmgateway-providers/google-ai-studio/gemini-3.8-flash` | 1.0M | | | | | | $0.75 | $4 |
|
|
237
234
|
| `llmgateway-providers/google-ai-studio/gemini-4-argon` | 1.0M | | | | | | $4 | $20 |
|
|
238
235
|
| `llmgateway-providers/google-ai-studio/gemini-pro-latest` | 1.0M | | | | | | $2 | $12 |
|
|
239
|
-
| `llmgateway-providers/google-vertex/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
240
|
-
| `llmgateway-providers/google-vertex/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
241
|
-
| `llmgateway-providers/google-vertex/gemini-2.5-pro` | 1.0M | | | | | | $1 | $10 |
|
|
242
236
|
| `llmgateway-providers/google-vertex/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
|
|
243
237
|
| `llmgateway-providers/google-vertex/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
244
238
|
| `llmgateway-providers/google-vertex/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# DevPass (LLM Gateway)
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 212 DevPass (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 [DevPass (LLM Gateway) documentation](https://llmgateway.io/docs).
|
|
10
10
|
|
|
@@ -66,9 +66,6 @@ for await (const chunk of stream) {
|
|
|
66
66
|
| `llmgateway/fugu-max` | 1.0M | | | | | | $2 | $6 |
|
|
67
67
|
| `llmgateway/fugu-ultra` | 1.0M | | | | | | $5 | $30 |
|
|
68
68
|
| `llmgateway/fugu-ultra-v2.0` | 1.0M | | | | | | $5 | $30 |
|
|
69
|
-
| `llmgateway/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
70
|
-
| `llmgateway/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
71
|
-
| `llmgateway/gemini-2.5-pro` | 1.0M | | | | | | $1 | $10 |
|
|
72
69
|
| `llmgateway/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
|
|
73
70
|
| `llmgateway/gemini-3.1-flash-lite` | 1.0M | | | | | | $0.25 | $2 |
|
|
74
71
|
| `llmgateway/gemini-3.1-pro-preview` | 1.0M | | | | | | $2 | $12 |
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# NanoGPT
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 617 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
|
|
|
@@ -167,6 +167,7 @@ for await (const chunk of stream) {
|
|
|
167
167
|
| `nano-gpt/failspy/Meta-Llama-3-70B-Instruct-abliterated-v3.5` | 8K | | | | | | $0.70 | $0.70 |
|
|
168
168
|
| `nano-gpt/fastgpt` | 33K | | | | | | $8 | $8 |
|
|
169
169
|
| `nano-gpt/featherless-ai/Qwerky-72B` | 32K | | | | | | $0.50 | $0.50 |
|
|
170
|
+
| `nano-gpt/fireworks/ember-1` | 1.0M | | | | | | $3 | $15 |
|
|
170
171
|
| `nano-gpt/GalrionSoftworks/MN-LooseCannon-12B-v1` | 16K | | | | | | $0.49 | $0.49 |
|
|
171
172
|
| `nano-gpt/gemini-2.0-pro-exp-02-05` | 2.1M | | | | | | $2 | $8 |
|
|
172
173
|
| `nano-gpt/gemini-2.0-pro-reasoner` | 128K | | | | | | $1 | $5 |
|
|
@@ -295,6 +296,7 @@ for await (const chunk of stream) {
|
|
|
295
296
|
| `nano-gpt/meta/muse-spark-1.2-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
|
|
296
297
|
| `nano-gpt/meta/muse-spark-1.3` | 1.0M | | | | | | $1 | $4 |
|
|
297
298
|
| `nano-gpt/meta/muse-spark-1.3-contributor` | 1.0M | | | | | | $0.10 | $0.20 |
|
|
299
|
+
| `nano-gpt/meta/muse-spark-open` | 1.0M | | | | | | $1 | $4 |
|
|
298
300
|
| `nano-gpt/microsoft/wizardlm-2-8x22b` | 66K | | | | | | $0.49 | $0.49 |
|
|
299
301
|
| `nano-gpt/MiniMax-M1` | 1.0M | | | | | | $0.14 | $1 |
|
|
300
302
|
| `nano-gpt/minimax/minimax-01` | 1.0M | | | | | | $0.14 | $1 |
|
|
@@ -454,7 +456,7 @@ for await (const chunk of stream) {
|
|
|
454
456
|
| `nano-gpt/qwen/qwen3-coder-next` | 262K | | | | | | $0.25 | $0.80 |
|
|
455
457
|
| `nano-gpt/qwen/qwen3-max` | 256K | | | | | | $1 | $6 |
|
|
456
458
|
| `nano-gpt/qwen/qwen3-max-2026-01-23` | 256K | | | | | | $1 | $6 |
|
|
457
|
-
| `nano-gpt/qwen/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.
|
|
459
|
+
| `nano-gpt/qwen/qwen3-next-80b-a3b-instruct` | 262K | | | | | | $0.10 | $1 |
|
|
458
460
|
| `nano-gpt/qwen/qwen3-next-80b-a3b-thinking` | 256K | | | | | | $0.15 | $0.65 |
|
|
459
461
|
| `nano-gpt/qwen/qwen3-vl-235b-a22b-instruct` | 131K | | | | | | $0.30 | $2 |
|
|
460
462
|
| `nano-gpt/qwen/qwen3-vl-235b-a22b-thinking` | 131K | | | | | | $0.50 | $6 |
|
|
@@ -79,7 +79,7 @@ const agent = new Agent({
|
|
|
79
79
|
id: "custom-agent",
|
|
80
80
|
name: "custom-agent",
|
|
81
81
|
model: {
|
|
82
|
-
url: "https://opencode.ai/inference/go/v1",
|
|
82
|
+
url: "https://opencode.ai/inference/go/openai/v1",
|
|
83
83
|
id: "opencode-go/cat-jam-free",
|
|
84
84
|
apiKey: process.env.OPENCODE_API_KEY,
|
|
85
85
|
headers: {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# OpenCode
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 126 OpenCode models through Mastra's model router. Authentication is handled automatically using the `OPENCODE_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [OpenCode documentation](https://opencode.ai/v2/docs/console/models/).
|
|
10
10
|
|
|
@@ -73,6 +73,7 @@ for await (const chunk of stream) {
|
|
|
73
73
|
| `opencode/glm-5.2` | 1.0M | | | | | | $1 | $4 |
|
|
74
74
|
| `opencode/glm-5.3` | 1.0M | | | | | | $1 | $4 |
|
|
75
75
|
| `opencode/glm-5.3-flash` | 1.0M | | | | | | $0.15 | $0.50 |
|
|
76
|
+
| `opencode/glm-5.3-flash-free` | 200K | | | | | | — | — |
|
|
76
77
|
| `opencode/gpt-5` | 400K | | | | | | $1 | $9 |
|
|
77
78
|
| `opencode/gpt-5-codex` | 400K | | | | | | $1 | $9 |
|
|
78
79
|
| `opencode/gpt-5-nano` | 400K | | | | | | $0.05 | $0.40 |
|
|
@@ -105,6 +106,7 @@ for await (const chunk of stream) {
|
|
|
105
106
|
| `opencode/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
106
107
|
| `opencode/kimi-k2.7-code` | 262K | | | | | | $0.95 | $4 |
|
|
107
108
|
| `opencode/kimi-k3` | 1.0M | | | | | | $3 | $15 |
|
|
109
|
+
| `opencode/ll-alpha-free` | 262K | | | | | | — | — |
|
|
108
110
|
| `opencode/longcat-2.5-preview-free` | 1.0M | | | | | | — | — |
|
|
109
111
|
| `opencode/mimo-v2.6-flash-free` | 200K | | | | | | — | — |
|
|
110
112
|
| `opencode/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
@@ -134,7 +136,7 @@ const agent = new Agent({
|
|
|
134
136
|
id: "custom-agent",
|
|
135
137
|
name: "custom-agent",
|
|
136
138
|
model: {
|
|
137
|
-
url: "https://opencode.ai/inference/v1",
|
|
139
|
+
url: "https://opencode.ai/inference/openai/v1",
|
|
138
140
|
id: "opencode/big-pickle",
|
|
139
141
|
apiKey: process.env.OPENCODE_API_KEY,
|
|
140
142
|
headers: {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Prime Inference
|
|
6
6
|
|
|
7
|
-
Access
|
|
7
|
+
Access 66 Prime Inference models through Mastra's model router. Authentication is handled automatically using the `PRIME_API_KEY` environment variable.
|
|
8
8
|
|
|
9
9
|
Learn more in the [Prime Inference documentation](https://docs.primeintellect.ai).
|
|
10
10
|
|
|
@@ -61,6 +61,7 @@ for await (const chunk of stream) {
|
|
|
61
61
|
| `prime/google/gemini-4-argon` | 1.0M | | | | | | $2 | $10 |
|
|
62
62
|
| `prime/google/gemma-3-27b-it` | 131K | | | | | | $0.12 | $0.30 |
|
|
63
63
|
| `prime/meta-llama/llama-3.3-70b-instruct` | 131K | | | | | | $1 | $2 |
|
|
64
|
+
| `prime/meta/muse-spark-open` | 1.0M | | | | | | $1 | $4 |
|
|
64
65
|
| `prime/mistralai/mistral-large-2512` | 262K | | | | | | $0.50 | $2 |
|
|
65
66
|
| `prime/mistralai/mistral-nemo` | 131K | | | | | | $0.17 | $0.17 |
|
|
66
67
|
| `prime/mistralai/mistral-small-2603` | 262K | | | | | | $0.17 | $0.66 |
|
|
@@ -181,6 +181,8 @@ Returns: [`Promise<DurableAgentStreamResult>`](#durableagentstreamresult)
|
|
|
181
181
|
|
|
182
182
|
Reconnects to an existing run. Use this after a network disconnection. For the supported general reconnect flow, omit `offset` to replay all available cached events before receiving live events.
|
|
183
183
|
|
|
184
|
+
When observing from another process, the observing agent must have the same `id` as the agent that started the run. If the persisted run belongs to an agent with a different ID, `observe()` throws `DURABLE_AGENT_OBSERVE_AGENT_MISMATCH`, matching the ownership checks in `resume()` and `recover()`.
|
|
185
|
+
|
|
184
186
|
For runs configured with `structuredOutput`, an observer in another process reconstructs `output.object` from the persisted schema and replayed text.
|
|
185
187
|
|
|
186
188
|
```typescript
|
|
@@ -427,7 +429,7 @@ Returns: [`Promise<DurableAgentStreamResult>`](#durableagentstreamresult)
|
|
|
427
429
|
|
|
428
430
|
**modelSettings** (`object`): Model-specific settings such as temperature. Credential-bearing headers (Authorization, X-Api-Key, and similar) are stripped from the serialized snapshot before it crosses process boundaries.
|
|
429
431
|
|
|
430
|
-
**stopWhen** (`AgentExecutionOptions['stopWhen']`): Predicate or composition that ends the agentic loop early. The closure rides on the in-process run registry; cross-process resumes degrade to maxSteps only.
|
|
432
|
+
**stopWhen** (`AgentExecutionOptions['stopWhen']`): Predicate or composition that ends the agentic loop early. If it throws, fullStream rejects without emitting a step-finish or error chunk. Durable transports preserve the error name and message, but not its stack, cause, or subclass identity. The closure rides on the in-process run registry; cross-process resumes degrade to maxSteps only.
|
|
431
433
|
|
|
432
434
|
**system** (`string | string[]`): Additional system message appended after the agent instructions and before user messages.
|
|
433
435
|
|
|
@@ -306,9 +306,9 @@ Only retryable AI SDK `APICallError` failures are retried. Other errors reject i
|
|
|
306
306
|
|
|
307
307
|
## Observability
|
|
308
308
|
|
|
309
|
-
When an active Mastra span exists, `decide()` creates a `CLASSIFIER_EVALUATION` child span.
|
|
309
|
+
When an active Mastra span exists, `decide()` creates a `CLASSIFIER_EVALUATION` child span. The span input holds the evaluated `state` and the questions. The span output holds the answers, including probabilities. Span attributes record the classifier and model identifiers, provider, question count and types, attempts, duration, and token usage. The token usage also produces [token and cost metrics](https://mastra.ai/reference/observability/metrics/automatic-metrics).
|
|
310
310
|
|
|
311
|
-
|
|
311
|
+
To keep the state and answers out of exported traces, set `hideInput` and `hideOutput` in the `tracingOptions` of the agent or workflow run that calls the classifier. See [hiding sensitive input/output](https://mastra.ai/docs/observability/tracing/overview).
|
|
312
312
|
|
|
313
313
|
## Customize provider responses
|
|
314
314
|
|
|
@@ -2016,11 +2016,13 @@ Prints help message and exits.
|
|
|
2016
2016
|
|
|
2017
2017
|
By default, Mastra collects telemetry about your project, including your OS, Mastra version, and Node.js version. Server events also include the project identifiers described below. You can read the [CLI telemetry source code](https://github.com/mastra-ai/mastra/blob/main/packages/cli/src/analytics/index.ts) to check what's collected by the CLI.
|
|
2018
2018
|
|
|
2019
|
-
When a server started with `mastra dev` or `mastra
|
|
2019
|
+
When a server started with `mastra dev`, `mastra start`, or a `mastra build` output has observability configured, Mastra counts the input and output tokens each model call uses in that server process. Every 15 minutes, and once more when the server shuts down, it sends a `mastra_model_token_usage_v2` event per provider and model used since the previous report. If no model calls finished since then, nothing is sent. Each event contains the tokens used since the previous report, the report window's start and end times, the reason for the report (`interval` or `shutdown`), the command (`dev`, `start`, or `server` when the build output runs directly), and `NODE_ENV`. No prompts, responses, or other message content is sent. You can read the [model usage telemetry source code](https://github.com/mastra-ai/mastra/blob/main/packages/core/src/telemetry/model-usage-telemetry.ts) to check what's collected.
|
|
2020
|
+
|
|
2021
|
+
For compatibility with older analysis, servers also send the earlier `mastra_model_token_usage` event at startup. It reads token totals from observability storage and sends the usage added since a cursor saved in `~/.mastra/usage-telemetry.json`. You can read the [startup usage telemetry source code](https://github.com/mastra-ai/mastra/blob/main/packages/core/src/telemetry/usage-telemetry.ts) to check what's collected.
|
|
2020
2022
|
|
|
2021
2023
|
At server startup, Mastra sends a project-surface snapshot with component counts, feature flags, and the coarse storage backend category, but no component names or component identifiers. You can read the [feature telemetry source code](https://github.com/mastra-ai/mastra/blob/main/packages/core/src/telemetry/feature-telemetry.ts) to check what's collected.
|
|
2022
2024
|
|
|
2023
|
-
The server events `mastra_feature_usage` and `
|
|
2025
|
+
The server events `mastra_feature_usage`, `mastra_model_token_usage`, and `mastra_model_token_usage_v2` include:
|
|
2024
2026
|
|
|
2025
2027
|
- `project_id`: The first 16 hexadecimal characters of the SHA-256 hash of `MASTRA_PROJECT_ROOT`, or the current working directory when unset. This identifier also keys the local model-usage cursor.
|
|
2026
2028
|
- `project_id2`: An optional identifier for correlation across machines and deployments. If the trimmed `MASTRA_PROJECT_ID` value has UUID format, the value is sent **unhashed**, prefixed with `mp_`. Search for `mp_<platform-project-id>` to find that project's telemetry. Names, slugs, and other non-UUID values aren't sent as Platform identifiers.
|
|
@@ -65,6 +65,50 @@ const selected = await mastraClient.getTrace(list.spans[0].traceId)
|
|
|
65
65
|
|
|
66
66
|
It accepts the same filtering, ordering and delta-polling arguments as `listTraces()`. Use `listTraces()` when you actually need the full span payloads.
|
|
67
67
|
|
|
68
|
+
## Querying spans
|
|
69
|
+
|
|
70
|
+
`querySpans()` returns completed span summaries across traces. It requires a positive ISO timestamp range over span start time and supports cursor pagination:
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
const result = await mastraClient.querySpans({
|
|
74
|
+
timeRange: {
|
|
75
|
+
from: '2026-10-01T00:00:00.000Z',
|
|
76
|
+
to: '2026-10-02T00:00:00.000Z',
|
|
77
|
+
},
|
|
78
|
+
where: {
|
|
79
|
+
op: 'and',
|
|
80
|
+
args: [
|
|
81
|
+
{ op: 'eq', left: { path: 'threadId' }, right: { literal: 'thread-123' } },
|
|
82
|
+
{ op: 'gte', left: { path: 'durationMs' }, right: { literal: 1000 } },
|
|
83
|
+
],
|
|
84
|
+
},
|
|
85
|
+
orderBy: [{ field: 'startedAt', direction: 'desc' }],
|
|
86
|
+
page: { limit: 100 },
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
// Pass result.page.next as page.after to continue with the same filters and ordering.
|
|
90
|
+
console.log(result.spans)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Pages default to 100 rows and allow at most 1,000. The response is `{ spans, page: { next } }`, without a total count. Ordering accepts exactly one of `startedAt` or `endedAt`, ascending or descending, and defaults to descending start time.
|
|
94
|
+
|
|
95
|
+
| Fields | Operators |
|
|
96
|
+
| -------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
|
|
97
|
+
| `traceId`, `spanId`, `parentSpanId`, `threadId` | `eq`, `ne`, `in`, `notIn`, `exists`, `notExists` |
|
|
98
|
+
| `organizationId`, `resourceId`, `runId`, `sessionId`, `userId`, `requestId`, `serviceName`, `experimentId`, `environment`, `executionSource` | Same string operators |
|
|
99
|
+
| Entity, parent entity and root entity `Type`, `Id`, `Name`, `VersionId` fields, such as `parentEntityId` | Same string operators |
|
|
100
|
+
| `name`, `spanType`, `status` | Same string operators; `name` also accepts `matches` / `notMatches` for normalized whole words and phrases |
|
|
101
|
+
| `startedAt`, `endedAt`, `durationMs` | Comparisons, membership and presence |
|
|
102
|
+
| `error` | `exists`, `notExists` |
|
|
103
|
+
|
|
104
|
+
Combine predicates with `and`, `or` and `not`. Membership uses `{ op: 'in', value: { path: 'spanType' }, set: ['agent_run', 'tool_call'] }`. A span's status is `error` when it has an error and `success` otherwise.
|
|
105
|
+
|
|
106
|
+
Each summary includes identity, context, entity lineage, status, timestamps, `durationMs`, model/provider and input/output/error previews. Model/provider are available in returned rows but aren't filterable.
|
|
107
|
+
|
|
108
|
+
The additional identity, context and parent/root entity filters require an updated storage adapter. With an older adapter, requests using these filters return a structured `422` error.
|
|
109
|
+
|
|
110
|
+
DuckDB returns `null` for parent/root entity type, ID and name, and for `executionSource`. Equality filters on these fields match no spans. Parent/root entity version IDs remain available.
|
|
111
|
+
|
|
68
112
|
## Querying traces
|
|
69
113
|
|
|
70
114
|
`queryTraces()` finds completed logical traces using trace fields and conditions over related spans. Every query requires an ISO timestamp range.
|
|
@@ -18,9 +18,9 @@ export const mastra = new Mastra({
|
|
|
18
18
|
|
|
19
19
|
Returns: `Promise<ChannelsResolver>`. See [The resolver](#the-resolver).
|
|
20
20
|
|
|
21
|
-
The [documented channel setup](https://mastra.ai/docs/mastra-platform/connect/channels) covers Slack, Telegram, and
|
|
21
|
+
The [documented channel setup](https://mastra.ai/docs/mastra-platform/connect/channels) covers Slack, Telegram, Discord, and Microsoft Teams. Their implementations come from `@mastra/slack`, `@mastra/telegram`, `@mastra/discord`, and `@mastra/teams`, loaded on demand. Use those packages directly to configure a channel outside the platform connection flow.
|
|
22
22
|
|
|
23
|
-
The
|
|
23
|
+
The Teams provider encrypts stored bot secrets with `MASTRA_ENCRYPTION_KEY` when set. When it isn't, the key is derived from the platform access token and a warning is logged while a Teams connection is active. Rotating the platform access token makes stored bot credentials unreadable (disconnect and reconnect to re-provision). Projects without a Teams connection are unaffected.
|
|
24
24
|
|
|
25
25
|
## Parameters
|
|
26
26
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
# Provider toolsets
|
|
6
6
|
|
|
7
|
-
This page documents generated toolsets for
|
|
7
|
+
This page documents generated toolsets for 22 providers (908 tools in this version of `@mastra/connect`). It isn't an exhaustive list of providers registered in the SDK or available in the platform catalog. [`tools()`](https://mastra.ai/reference/connect/tools) exposes a provider's toolset when the project has an active connection for its provider ID.
|
|
8
8
|
|
|
9
9
|
Tool keys are stable identifiers of the form `<provider>_<action>` and are the values accepted by `allowTools` and `disallowTools`. Toolsets are versioned with the package: the exact list depends on the installed `@mastra/connect` version, and this page reflects the version it was generated from.
|
|
10
10
|
|
|
@@ -25,6 +25,7 @@ MCP providers (Attio, Canva, Clay, Neon, Render, Robinhood, and Sanity) serve th
|
|
|
25
25
|
|  [incident.io](#incidentio) | `incident-io` | 66 |
|
|
26
26
|
|  [Jira](#jira) | `jira` | 38 |
|
|
27
27
|
|  [Linear](#linear) | `linear` | 46 |
|
|
28
|
+
|  [Microsoft Teams](#microsoft-teams) | `microsoft-teams` | 25 |
|
|
28
29
|
|  [Notion](#notion) | `notion` | 44 |
|
|
29
30
|
|  [OpenAI](#openai) | `openai` | 26 |
|
|
30
31
|
|  [PostHog](#posthog) | `posthog` | 67 |
|
|
@@ -657,6 +658,38 @@ Provider ID: `linear` · 46 tools
|
|
|
657
658
|
| `linear_update_issue_relation` | Update fields on an existing Linear issue relation. |
|
|
658
659
|
| `linear_update_project` | Update an existing Linear project. |
|
|
659
660
|
|
|
661
|
+
## Microsoft Teams
|
|
662
|
+
|
|
663
|
+
Provider ID: `microsoft-teams` · 25 tools
|
|
664
|
+
|
|
665
|
+
| Tool | Description |
|
|
666
|
+
| ------------------------------------------ | ------------------------------------------------ |
|
|
667
|
+
| `microsoft_teams_add_team_member` | Add a member to a team |
|
|
668
|
+
| `microsoft_teams_create_channel` | Create a channel in a team. |
|
|
669
|
+
| `microsoft_teams_create_channel_message` | Post a root message in a channel |
|
|
670
|
+
| `microsoft_teams_create_channel_tab` | Add a tab to a channel. |
|
|
671
|
+
| `microsoft_teams_create_chat` | Create a one-on-one or group chat. |
|
|
672
|
+
| `microsoft_teams_create_chat_message` | Send a message in a chat |
|
|
673
|
+
| `microsoft_teams_create_team` | Create a team from a template or existing group. |
|
|
674
|
+
| `microsoft_teams_delete_channel` | Delete a channel from a team |
|
|
675
|
+
| `microsoft_teams_get_channel` | Retrieve a channel by ID. |
|
|
676
|
+
| `microsoft_teams_get_channel_message` | Retrieve a channel message by ID. |
|
|
677
|
+
| `microsoft_teams_get_chat` | Retrieve a chat by ID. |
|
|
678
|
+
| `microsoft_teams_get_chat_message` | Retrieve a chat message by ID. |
|
|
679
|
+
| `microsoft_teams_get_team` | Retrieve a team by ID. |
|
|
680
|
+
| `microsoft_teams_list_channel_messages` | List root messages in a channel. |
|
|
681
|
+
| `microsoft_teams_list_channel_replies` | List replies under a channel message thread |
|
|
682
|
+
| `microsoft_teams_list_channel_tabs` | List tabs configured on a channel. |
|
|
683
|
+
| `microsoft_teams_list_channels` | List channels in a team. |
|
|
684
|
+
| `microsoft_teams_list_chat_members` | List members in a chat |
|
|
685
|
+
| `microsoft_teams_list_chat_messages` | List messages in a chat. |
|
|
686
|
+
| `microsoft_teams_list_chats` | List chats for a user. |
|
|
687
|
+
| `microsoft_teams_list_joined_teams` | List teams the user has joined |
|
|
688
|
+
| `microsoft_teams_list_team_members` | List members in a team. |
|
|
689
|
+
| `microsoft_teams_remove_team_member` | Remove a member from a team. |
|
|
690
|
+
| `microsoft_teams_reply_to_channel_message` | Reply to a channel message thread. |
|
|
691
|
+
| `microsoft_teams_update_channel` | Update mutable channel properties. |
|
|
692
|
+
|
|
660
693
|
## Notion
|
|
661
694
|
|
|
662
695
|
Provider ID: `notion` · 44 tools
|
|
@@ -32,13 +32,19 @@ const filtered = await mastra.datasets.list({
|
|
|
32
32
|
const forAgents = await mastra.datasets.list({
|
|
33
33
|
filters: { targetIds: ['agent-a', 'agent-b'] },
|
|
34
34
|
})
|
|
35
|
+
|
|
36
|
+
// Fetch specific datasets by ID, all on one page
|
|
37
|
+
const byId = await mastra.datasets.list({
|
|
38
|
+
perPage: false,
|
|
39
|
+
filters: { datasetIds: ['dataset-1', 'dataset-2'] },
|
|
40
|
+
})
|
|
35
41
|
```
|
|
36
42
|
|
|
37
43
|
## Parameters
|
|
38
44
|
|
|
39
45
|
**page** (`number`): Page number. Defaults to 0.
|
|
40
46
|
|
|
41
|
-
**perPage** (`number`): Number of datasets per page. Defaults to 20.
|
|
47
|
+
**perPage** (`number | false`): Number of datasets per page, or false to return every match on one page. Defaults to 20.
|
|
42
48
|
|
|
43
49
|
**filters** (`object`): Optional filters applied at the storage layer.
|
|
44
50
|
|
|
@@ -54,6 +60,8 @@ const forAgents = await mastra.datasets.list({
|
|
|
54
60
|
|
|
55
61
|
**filters.targetIds** (`string[]`): Restrict to datasets whose targetIds intersect this list (any-overlap match). Empty array is treated as no filter.
|
|
56
62
|
|
|
63
|
+
**filters.datasetIds** (`string[]`): Restrict to datasets with these IDs. Empty array matches no datasets. Pass perPage: false to get every match on one page.
|
|
64
|
+
|
|
57
65
|
**filters.name** (`string`): Case-insensitive substring match on dataset name. Empty string is treated as no filter.
|
|
58
66
|
|
|
59
67
|
## Returns
|
|
@@ -10,7 +10,7 @@ For setup instructions, see the [Metrics overview](https://mastra.ai/docs/observ
|
|
|
10
10
|
|
|
11
11
|
## When Mastra emits automatic metrics
|
|
12
12
|
|
|
13
|
-
Metrics are extracted from spans when they end. The observability layer inspects each completed span, calculates duration, and
|
|
13
|
+
Metrics are extracted from spans when they end. The observability layer inspects each completed span, calculates duration, and reads token usage data from model generation and classifier evaluation spans. No manual instrumentation is needed.
|
|
14
14
|
|
|
15
15
|
### What affects whether a metric is available
|
|
16
16
|
|
|
@@ -35,7 +35,7 @@ Duration metrics record execution time in milliseconds, calculated from the span
|
|
|
35
35
|
|
|
36
36
|
## Token usage metrics
|
|
37
37
|
|
|
38
|
-
Token metrics are emitted
|
|
38
|
+
Token metrics are emitted from `MODEL_GENERATION` and `CLASSIFIER_EVALUATION` spans that include `usage` data. Token metrics require usage data from the provider.
|
|
39
39
|
|
|
40
40
|
### Input token metrics
|
|
41
41
|
|
|
@@ -142,7 +142,7 @@ When you spot a spike in latency or token usage on the Metrics dashboard, correl
|
|
|
142
142
|
|
|
143
143
|
### Token metrics are missing
|
|
144
144
|
|
|
145
|
-
- **Span is a model generation**: Token metrics are only emitted from `MODEL_GENERATION` spans.
|
|
145
|
+
- **Span is a model generation or classifier evaluation**: Token metrics are only emitted from `MODEL_GENERATION` and `CLASSIFIER_EVALUATION` spans.
|
|
146
146
|
- **Provider reports usage**: The model provider must include `usage` data in its response. Usage data is required to emit token metrics.
|
|
147
147
|
|
|
148
148
|
## Related
|
|
@@ -110,6 +110,7 @@ All metric operations accept the same optional `filters` object. Raw list reques
|
|
|
110
110
|
| `userId` | `string` | User ID |
|
|
111
111
|
| `organizationId` | `string` | Organization ID |
|
|
112
112
|
| `experimentId` | `string` | Experiment or evaluation run ID |
|
|
113
|
+
| `experimentIds` | `string[]` | One to 1,000 experiment IDs |
|
|
113
114
|
| `serviceName` | `string` | Service name |
|
|
114
115
|
| `environment` | `string` | Environment name |
|
|
115
116
|
| `resourceId` | `string` | Resource ID |
|
|
@@ -542,6 +542,9 @@ interface AgentRunAttributes {
|
|
|
542
542
|
|
|
543
543
|
/** Maximum steps allowed */
|
|
544
544
|
maxSteps?: number
|
|
545
|
+
|
|
546
|
+
/** When the run's model streamed its first chunk, copied from the agent's own first generation */
|
|
547
|
+
completionStartTime?: Date
|
|
545
548
|
}
|
|
546
549
|
```
|
|
547
550
|
|
|
@@ -639,6 +642,9 @@ interface ModelStepAttributes {
|
|
|
639
642
|
|
|
640
643
|
/** Result warnings */
|
|
641
644
|
warnings?: Record<string, any>
|
|
645
|
+
|
|
646
|
+
/** When the step's first inference streamed its first chunk */
|
|
647
|
+
completionStartTime?: Date
|
|
642
648
|
}
|
|
643
649
|
```
|
|
644
650
|
|
|
@@ -248,6 +248,24 @@ const stream = await agent.stream('message for agent')
|
|
|
248
248
|
|
|
249
249
|
**spanId** (`string`): The root span ID associated with this execution when Tracing is enabled. Use this for span-level lookup and correlation.
|
|
250
250
|
|
|
251
|
+
## `stopWhen` errors
|
|
252
|
+
|
|
253
|
+
If a `stopWhen` predicate throws, `fullStream` rejects with that error. The stream does not emit a `step-finish`, `finish`, or `error` chunk for the failure. Catch the rejection around stream consumption:
|
|
254
|
+
|
|
255
|
+
```ts
|
|
256
|
+
async function consumeStream() {
|
|
257
|
+
try {
|
|
258
|
+
for await (const chunk of stream.fullStream) {
|
|
259
|
+
console.log(chunk)
|
|
260
|
+
}
|
|
261
|
+
} catch (error) {
|
|
262
|
+
console.error('stopWhen failed', error)
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
|
|
267
|
+
Durable transports reconstruct cross-process errors from their serialized name and message. The original stack, cause, and subclass identity are not available to the stream consumer.
|
|
268
|
+
|
|
251
269
|
## Signal visibility
|
|
252
270
|
|
|
253
271
|
Signals, including reactive reminders, appear in `fullStream` by default. Set `hideSignals` to omit selected signal chunks from your stream:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.3.9-alpha.
|
|
3
|
+
"version": "1.3.9-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",
|
|
@@ -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/mcp": "^2.4.2-alpha.0",
|
|
30
|
+
"@mastra/core": "1.79.0-alpha.1"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@hono/node-server": "^2.0.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"vitest": "4.1.11",
|
|
46
46
|
"@internal/lint": "0.0.144",
|
|
47
47
|
"@internal/types-builder": "0.0.119",
|
|
48
|
-
"@mastra/core": "1.
|
|
48
|
+
"@mastra/core": "1.79.0-alpha.1"
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://mastra.ai",
|
|
51
51
|
"repository": {
|