@mastra/mcp-docs-server 1.3.8-alpha.2 → 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.
@@ -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
@@ -4,7 +4,7 @@
4
4
 
5
5
  # Tools
6
6
 
7
- Agents use tools to call APIs or query databases. They can also run custom functions from your codebase. Tools give agents capabilities beyond language generation by providing structured access to data and performing clearly defined operations. You can also load tools from remote [MCP servers](https://mastra.ai/docs/connections/mcp) to expand an agent's capabilities.
7
+ Agents use tools to call APIs or query databases. They can also run custom functions from your codebase. Tools give agents capabilities beyond language generation by providing structured access to data and performing clearly defined operations. You can also load tools from remote [MCP servers](https://mastra.ai/docs/connections/mcp) to expand an agent's capabilities. For services like Linear, Slack, and GitHub, [Connect](https://mastra.ai/docs/mastra-platform/connect/tools) on Mastra platform supplies ready-made tools with managed credentials, which you can combine with your own.
8
8
 
9
9
  **For AI agents:** `execute` has exactly one signature: `execute(inputData, context)`. The first parameter is validated against `inputSchema`. The runtime always provides the second parameter with `requestContext`, `tracingContext`, `abortSignal`, and other execution metadata. You may omit it when unused. Other shapes are outdated. Run `npx mastra api tool execute weather-tool '{"location":"San Francisco"}'` to test this tool directly instead of writing a temporary script. The command requires a running Mastra server; start the local server with `npx mastra dev`, or pass the reachable server's base URL with `--url`. Run `npx mastra api tool execute --schema` before constructing different input. Install Mastra's skill with `npx skills add mastra-ai/skills --skill mastra` for complete API CLI discovery, targeting, schema, authentication, and error-handling guidance.
10
10
 
@@ -698,6 +698,7 @@ The [AgentController](https://mastra.ai/docs/harness/agent-controller) automatic
698
698
  - [`Agent.generate()` reference](https://mastra.ai/reference/agents/generate): Runtime options for tool selection, steps, and callbacks
699
699
  - [Background tasks](https://mastra.ai/docs/harness/background-tasks): Run long-running tools without blocking the agent loop
700
700
  - [MCP overview](https://mastra.ai/docs/connections/mcp)
701
+ - [Connect tools](https://mastra.ai/docs/mastra-platform/connect/tools): Ready-made tools for providers connected to a Mastra platform project
701
702
  - [Dynamic tool search](https://mastra.ai/reference/processors/tool-search-processor): Load tools on demand for agents with large tool libraries
702
703
  - [Tools with structured output](https://mastra.ai/docs/agents/structured-output): Model compatibility when combining tools and structured output
703
704
  - [Agent approval](https://mastra.ai/docs/agents/human-in-the-loop)
@@ -8,6 +8,8 @@ Mastra supports the [Model Context Protocol (MCP)](https://modelcontextprotocol.
8
8
 
9
9
  Use [`MCPClient`](https://mastra.ai/reference/tools/mcp-client) to connect to MCP servers. Use [`MCPServer`](https://mastra.ai/reference/tools/mcp-server) to expose Mastra agents, tools, workflows, prompts, and resources to other MCP-compatible systems. Both speak the MCP `2026-07-28` revision over stdio and Streamable HTTP.
10
10
 
11
+ For hosted MCP servers such as Neon and Canva, [Connect](https://mastra.ai/docs/mastra-platform/connect/providers) on Mastra platform can manage the OAuth flow and credentials for you, so agents get the server's tools through [`tools()`](https://mastra.ai/docs/mastra-platform/connect/tools) without a hand-configured `MCPClient`.
12
+
11
13
  > **Note:** Upgrading from `@mastra/mcp` 1.x? See the [migration guide](https://mastra.ai/reference/migrations/mcp-v2).
12
14
 
13
15
  For credential choices and permission boundaries, see [Authentication and authorization with MCP](https://mastra.ai/docs/guides/mcp-authentication-authorization).
@@ -10,31 +10,31 @@ A provider is a service you can connect to your project, identified by a provide
10
10
 
11
11
  This directory covers the generated toolsets and channel setup documented here, rather than every provider in the platform catalog. Run [`mastra connect list`](https://mastra.ai/reference/cli/mastra) to see providers available to your project and their connection status.
12
12
 
13
- | Provider ID | Provider | Gives you |
14
- | ----------------- | -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
15
- | `clerk` | ![](https://cdn.simpleicons.org/clerk?viewbox=auto\&size=28) Clerk | [Tools](https://mastra.ai/reference/connect/providers) |
16
- | `discord` | ![](https://cdn.simpleicons.org/discord?viewbox=auto\&size=28) Discord | [Tools](https://mastra.ai/reference/connect/providers), [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
17
- | `fireflies` | ![](https://app.nango.dev/images/template-logos/fireflies.svg) Fireflies.ai | [Tools](https://mastra.ai/reference/connect/providers) |
18
- | `github` | ![](https://cdn.simpleicons.org/github?viewbox=auto\&size=28) GitHub | [Tools](https://mastra.ai/reference/connect/providers) |
19
- | `google-calendar` | ![](https://cdn.simpleicons.org/googlecalendar?viewbox=auto\&size=28) Google Calendar | [Tools](https://mastra.ai/reference/connect/providers) |
20
- | `google-docs` | ![](https://cdn.simpleicons.org/googledocs?viewbox=auto\&size=28) Google Docs | [Tools](https://mastra.ai/reference/connect/providers) |
21
- | `google-drive` | ![](https://cdn.simpleicons.org/googledrive?viewbox=auto\&size=28) Google Drive | [Tools](https://mastra.ai/reference/connect/providers) |
22
- | `google-mail` | ![](https://cdn.simpleicons.org/gmail?viewbox=auto\&size=28) Gmail | [Tools](https://mastra.ai/reference/connect/providers) |
23
- | `google-sheet` | ![](https://cdn.simpleicons.org/googlesheets?viewbox=auto\&size=28) Google Sheets | [Tools](https://mastra.ai/reference/connect/providers) |
24
- | `hubspot` | ![](https://cdn.simpleicons.org/hubspot?viewbox=auto\&size=28) HubSpot | [Tools](https://mastra.ai/reference/connect/providers) |
25
- | `incident-io` | ![](https://app.nango.dev/images/template-logos/incident-io.svg) [incident.io setup](#set-up-incidentio) | [Tools](https://mastra.ai/reference/connect/providers) |
26
- | `jira` | ![](https://cdn.simpleicons.org/jira?viewbox=auto\&size=28) Jira | [Tools](https://mastra.ai/reference/connect/providers) |
27
- | `linear` | ![](https://cdn.simpleicons.org/linear?viewbox=auto\&size=28) Linear | [Tools](https://mastra.ai/reference/connect/providers) |
28
- | `notion` | ![](https://cdn.simpleicons.org/notion?viewbox=auto\&size=28) Notion | [Tools](https://mastra.ai/reference/connect/providers) |
29
- | `openai` | ![](https://svgl.app/library/openai.svg) OpenAI | [Tools](https://mastra.ai/reference/connect/providers) |
30
- | `posthog` | ![](https://cdn.simpleicons.org/posthog?viewbox=auto\&size=28) [PostHog setup](#set-up-posthog) | [Tools](https://mastra.ai/reference/connect/providers) |
31
- | `resend` | ![](https://cdn.simpleicons.org/resend?viewbox=auto\&size=28) [Resend setup](#set-up-resend) | [Tools](https://mastra.ai/reference/connect/providers) |
32
- | `slack` | ![](https://svgl.app/library/slack.svg) Slack | [Tools](https://mastra.ai/reference/connect/providers) |
33
- | `slack-channels` | ![](https://svgl.app/library/slack.svg) Slack channels | [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
34
- | `snowflake` | ![](https://cdn.simpleicons.org/snowflake?viewbox=auto\&size=28) Snowflake | [Tools](https://mastra.ai/reference/connect/providers) |
35
- | `supabase` | ![](https://cdn.simpleicons.org/supabase?viewbox=auto\&size=28) Supabase | [Tools](https://mastra.ai/reference/connect/providers) |
36
- | `telegram` | ![](https://cdn.simpleicons.org/telegram?viewbox=auto\&size=28) Telegram | [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
37
- | `workos` | ![](https://svgl.app/library/workos.svg) WorkOS | [Tools](https://mastra.ai/reference/connect/providers) |
13
+ | Provider ID | Provider | Gives you |
14
+ | ----------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
15
+ | `clerk` | ![](https://cdn.simpleicons.org/clerk?viewbox=auto\&size=28) Clerk | [Tools](https://mastra.ai/reference/connect/providers) |
16
+ | `discord` | ![](https://cdn.simpleicons.org/discord?viewbox=auto\&size=28) Discord | [Tools](https://mastra.ai/reference/connect/providers), [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
17
+ | `fireflies` | ![](https://app.nango.dev/images/template-logos/fireflies.svg) Fireflies.ai | [Tools](https://mastra.ai/reference/connect/providers) |
18
+ | `github` | ![](https://cdn.simpleicons.org/github?viewbox=auto\&size=28) GitHub | [Tools](https://mastra.ai/reference/connect/providers) |
19
+ | `google-calendar` | ![](https://cdn.simpleicons.org/googlecalendar?viewbox=auto\&size=28) Google Calendar | [Tools](https://mastra.ai/reference/connect/providers) |
20
+ | `google-docs` | ![](https://cdn.simpleicons.org/googledocs?viewbox=auto\&size=28) Google Docs | [Tools](https://mastra.ai/reference/connect/providers) |
21
+ | `google-drive` | ![](https://cdn.simpleicons.org/googledrive?viewbox=auto\&size=28) Google Drive | [Tools](https://mastra.ai/reference/connect/providers) |
22
+ | `google-mail` | ![](https://cdn.simpleicons.org/gmail?viewbox=auto\&size=28) Gmail | [Tools](https://mastra.ai/reference/connect/providers) |
23
+ | `google-sheet` | ![](https://cdn.simpleicons.org/googlesheets?viewbox=auto\&size=28) Google Sheets | [Tools](https://mastra.ai/reference/connect/providers) |
24
+ | `hubspot` | ![](https://cdn.simpleicons.org/hubspot?viewbox=auto\&size=28) HubSpot | [Tools](https://mastra.ai/reference/connect/providers) |
25
+ | `incident-io` | ![](https://app.nango.dev/images/template-logos/incident-io.svg) incident.io | [Tools](https://mastra.ai/reference/connect/providers) |
26
+ | `jira` | ![](https://cdn.simpleicons.org/jira?viewbox=auto\&size=28) Jira | [Tools](https://mastra.ai/reference/connect/providers) |
27
+ | `linear` | ![](https://cdn.simpleicons.org/linear?viewbox=auto\&size=28) Linear | [Tools](https://mastra.ai/reference/connect/providers) |
28
+ | `notion` | ![](https://cdn.simpleicons.org/notion?viewbox=auto\&size=28) Notion | [Tools](https://mastra.ai/reference/connect/providers) |
29
+ | `openai` | ![](https://svgl.app/library/openai.svg) OpenAI | [Tools](https://mastra.ai/reference/connect/providers) |
30
+ | `posthog` | ![](https://cdn.simpleicons.org/posthog?viewbox=auto\&size=28) PostHog | [Tools](https://mastra.ai/reference/connect/providers) |
31
+ | `resend` | ![](https://cdn.simpleicons.org/resend?viewbox=auto\&size=28) Resend | [Tools](https://mastra.ai/reference/connect/providers) |
32
+ | `slack` | ![](https://svgl.app/library/slack.svg) Slack | [Tools](https://mastra.ai/reference/connect/providers) |
33
+ | `slack-channels` | ![](https://svgl.app/library/slack.svg) Slack channels | [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
34
+ | `snowflake` | ![](https://cdn.simpleicons.org/snowflake?viewbox=auto\&size=28) Snowflake | [Tools](https://mastra.ai/reference/connect/providers) |
35
+ | `supabase` | ![](https://cdn.simpleicons.org/supabase?viewbox=auto\&size=28) Supabase | [Tools](https://mastra.ai/reference/connect/providers) |
36
+ | `telegram` | ![](https://cdn.simpleicons.org/telegram?viewbox=auto\&size=28) Telegram | [Channels](https://mastra.ai/docs/mastra-platform/connect/channels) |
37
+ | `workos` | ![](https://svgl.app/library/workos.svg) WorkOS | [Tools](https://mastra.ai/reference/connect/providers) |
38
38
 
39
39
  Generated toolsets are included in `@mastra/connect`. Upgrading the package gives you toolsets added in newer releases, but provider availability depends on the platform catalog. The [provider toolsets reference](https://mastra.ai/reference/connect/providers) lists the generated tools.
40
40
 
@@ -52,98 +52,13 @@ These providers serve their tools from a hosted Model Context Protocol (MCP) ser
52
52
  | `robinhood-mcp` | ![](https://cdn.simpleicons.org/robinhood?viewbox=auto\&size=28) Robinhood | [Agentic Trading](https://robinhood.com/us/en/support/agentic-trading) |
53
53
  | `sanity-mcp` | ![](https://cdn.simpleicons.org/sanity?viewbox=auto\&size=28) Sanity | [Sanity MCP server](https://www.sanity.io/docs/ai/mcp-server) |
54
54
 
55
- ## Provider-specific setup
55
+ ## Troubleshoot a connection
56
56
 
57
- Start with the [Connect setup](https://mastra.ai/docs/mastra-platform/connect/overview), then add a provider with `mastra connect add <provider>`. The sections below cover providers whose API keys need permissions or regional settings. For Slack, Discord, and Telegram, follow the [channel setup guide](https://mastra.ai/docs/mastra-platform/connect/channels).
58
-
59
- ### Set up Resend
60
-
61
- The `resend` toolset sends and reads email and manages domains, contacts, segments, broadcasts, templates, and webhooks. To send from your own domain, [verify it in Resend](https://resend.com/docs/dashboard/domains/introduction).
62
-
63
- 1. In Resend, open [**API Keys**](https://resend.com/api-keys) and select **Create API Key**.
64
- 2. Enter a name, such as `mastra-agents`, and set **Permission** to **Full access**.
65
- 3. Select **Add** and copy the key. It starts with `re_`, and Resend shows it only once.
66
- 4. Run `mastra connect add resend` and paste the key when it asks for **API Key**.
67
-
68
- A **Sending access** key fails to connect. Mastra checks a new key by listing your domains, which sending access keys can't do. To expose only the sending tool to an agent, use `allowTools`:
69
-
70
- ```typescript
71
- tools({
72
- providers: {
73
- resend: { allowTools: ['resend_send_email'] },
74
- },
75
- })
76
- ```
77
-
78
- This filter controls which tools the agent receives. It doesn't reduce the Resend key's **Full access** permissions.
79
-
80
- #### Sending safely
81
-
82
- `resend_send_email` retries a failed send up to three times only when the call includes an `idempotency_key`. Without one it doesn't retry automatically, but a retry elsewhere in your app can still duplicate an email that failed after Resend accepted it. When duplicates matter, tell the agent to set a stable key per logical email, such as `confirmation/order-1234`. Resend answers a reused key with the original response, and rejects a reused key with a different payload with a `409`.
83
-
84
- If a send fails with a `proxy_error` and status `403`, check that the `from` address uses a domain verified in Resend.
85
-
86
- ### Set up PostHog
87
-
88
- The `posthog` toolset runs HogQL queries and reads and edits insights, dashboards, feature flags, experiments, surveys, cohorts, and persons. It works with PostHog Cloud in either region. Self-hosted PostHog isn't supported.
89
-
90
- 1. Check your region in PostHog's address bar: `us.posthog.com` or `eu.posthog.com`.
91
- 2. Open [**Settings** > **Personal API keys**](https://us.posthog.com/settings/user-api-keys) on your region's host and select **Create personal API key**.
92
- 3. Limit the key to the organization or projects the agent should see, and choose scopes from the following table.
93
- 4. Create the key and copy it. It starts with `phx_`, and PostHog shows it only once.
94
- 5. Run `mastra connect add posthog`. Choose `us` or `eu` for **Subdomain** and paste the key when it asks for **API Key**.
95
-
96
- | Scope | Read gives the agent | Write also allows |
97
- | ------------------- | --------------------------------------------------------------- | ------------------------------------ |
98
- | `project` | `posthog_list_projects`, `posthog_get_project` | |
99
- | `query` | `posthog_run_query`, `posthog_list_events`, `posthog_get_event` | |
100
- | `insight` | List and get insights | Create, update, delete insights |
101
- | `dashboard` | List and get dashboards | Create, update, delete dashboards |
102
- | `feature_flag` | List and get feature flags | Create, update, delete feature flags |
103
- | `experiment` | List and get experiments | Create and update experiments |
104
- | `survey` | List and get surveys | Create, update, delete surveys |
105
- | `cohort` | List and get cohorts | Create, update, delete cohorts |
106
- | `person` | List and get persons | Update and delete persons |
107
- | `session_recording` | `posthog_list_session_recordings` | |
108
-
109
- Most PostHog tools take a `project_id`, so give every key `project:read`. Agents call `posthog_list_projects` to find the ID. A read-only analytics agent needs `project:read`, `query:read`, `insight:read`, and `dashboard:read`.
110
-
111
- Avoid the `us.i` and `eu.i` subdomains. Those hosts only serve PostHog's event ingestion endpoints, so most tools fail with them. The form also rejects project API keys (`phc_`) and project secret API keys (`phs_`).
112
-
113
- #### Query limits
114
-
115
- `posthog_run_query` queries count against PostHog's hourly query budget for personal API keys. Prefer aggregated results over raw event exports.
116
-
117
- ### Set up incident.io
118
-
119
- The `incident-io` toolset reads and updates incidents, posts incident updates, manages actions and follow-ups, and reads alerts, schedules, the catalog, and postmortems. Tool keys start with `incident_io_`, with an underscore where the provider ID has a hyphen.
120
-
121
- 1. In incident.io, open [**Settings** > **API keys**](https://app.incident.io/~/settings/api-keys) and create a key named `mastra-agents` or similar.
122
- 2. Select permissions from the following table. You can only grant permissions you already have.
123
- 3. Create the key and copy it. It starts with `inc_`, and incident.io shows it only once.
124
- 4. Run `mastra connect add incident-io` and paste the key when it asks for **API Key**.
125
-
126
- | Agent task | Permission |
127
- | ------------------------------------------------------------------------- | -------------------------- |
128
- | Read incidents, updates, timelines, actions, follow-ups, users, and teams | **View data** |
129
- | Read private incidents too | **View all incident data** |
130
- | Read the catalog | **View catalog** |
131
- | Read alerts, schedules, and overrides | **View on-call resources** |
132
- | Open incidents | **Create incidents** |
133
- | Update incidents, post updates, and manage actions and follow-ups | **Edit incidents** |
134
-
135
- A triage agent that reads incidents and posts updates needs **View data** and **Edit incidents**, and the incident.io [permissions reference](https://docs.incident.io/admin/api-keys#permissions-reference) describes each permission.
136
-
137
- #### Creation and rate limits
138
-
139
- `incident_io_create_incident` requires an `idempotency_key`, and incident.io rejects a second incident with the same key. An API key can open 10 incidents an hour that create a chat channel. Listing incidents is limited to 60 requests a minute. If the agent hits `429` errors, tell it to filter incidents instead of paging through all of them.
140
-
141
- ## Fix a failing provider
142
-
143
- A `proxy_error` carries the provider's response in its `status` and `detail` properties.
57
+ Most provider call failures come from the connection's credential or configuration. A `proxy_error` carries the provider's response in its `status` and `detail` properties.
144
58
 
145
59
  - **Status `401`:** Check whether the credential has expired, been revoked, or been rotated. If it needs replacing, [reauthorize the connection](https://mastra.ai/reference/cli/mastra).
146
60
  - **Status `403`:** Check the provider's response for missing scopes, resource-access restrictions, or account requirements. Grant only the access the agent needs. You can exclude unsupported operations with `allowTools`, but filtering tools doesn't change the credential's permissions.
147
61
  - **No tools from a provider:** Run `mastra connect list` to check the project and connection status. Check provider selection and tool filters, and confirm that your installed `@mastra/connect` version includes the toolset. Connection changes follow the resolver's [caching behavior](https://mastra.ai/reference/connect/tools). Check app logs for `[@mastra/connect] Skipping` warnings when a connection can't be resolved.
62
+ - **Resend won't connect:** Use an API key with **Full access** permission. A **Sending access** key fails to connect because Mastra checks a new key by listing your domains, which sending access keys can't do.
148
63
 
149
64
  See [errors](https://mastra.ai/reference/connect/tools) for every error code.
@@ -138,7 +138,7 @@ Use a consistent `serviceName` to filter data from a specific application or dep
138
138
 
139
139
  ## Query observability data
140
140
 
141
- Query hosted observability data from the terminal with the Mastra CLI:
141
+ Browse hosted traces from the terminal with the Mastra CLI:
142
142
 
143
143
  **npm**:
144
144
 
@@ -164,7 +164,28 @@ yarn dlx mastra api trace list
164
164
  bun x mastra api trace list
165
165
  ```
166
166
 
167
- The CLI can infer platform credentials from your project environment. See the [`mastra api` CLI reference](https://mastra.ai/reference/cli/mastra) for available commands, filtering, pagination, credential resolution, and `curl` examples.
167
+ The CLI reads `MASTRA_PLATFORM_ACCESS_TOKEN` and `MASTRA_PROJECT_ID` from your project environment and targets the US observability endpoint by default. See [CLI target resolution](https://mastra.ai/reference/cli/mastra) for other authentication options and regional endpoints.
168
+
169
+ Use `mastra api trace query` to find completed traces by their fields or related spans. For example, find traces whose root span took more than five seconds:
170
+
171
+ ```bash
172
+ npx mastra api trace query '{
173
+ "timeRange": {
174
+ "from": "2026-08-01T00:00:00.000Z",
175
+ "to": "2026-08-08T00:00:00.000Z"
176
+ },
177
+ "where": {
178
+ "op": "gt",
179
+ "left": { "path": "durationMs" },
180
+ "right": { "literal": 5000 }
181
+ },
182
+ "page": { "limit": 25 }
183
+ }'
184
+ ```
185
+
186
+ Choose a time range containing your exported traces, up to 31 days. Results appear in `data.traces`.
187
+
188
+ Mastra Platform uses the same trace-query endpoints and request format as Mastra Server. Use the [Trace queries API reference](https://mastra.ai/reference/observability/tracing/trace-query) for HTTP requests, supported filters, pagination, polling, and field discovery.
168
189
 
169
190
  You can query exported feedback over HTTP. See the [Feedback API](https://mastra.ai/docs/mastra-platform/api) for its current status, regional endpoints, authentication, project scoping, and supported query parameters such as `traceId` and `environment`.
170
191
 
@@ -290,7 +290,7 @@ Don't set `replication` on ClickHouse Cloud. Cloud rewrites `MergeTree` to `Shar
290
290
 
291
291
  ### Observability domain options
292
292
 
293
- `ObservabilityStorageClickhouse` and `ObservabilityStorageClickhouseVNext` accept the same connection options as `ClickhouseStore` (`url`, `username`, `password`, or a pre-configured `client`). `ObservabilityStorageClickhouseVNext` also accepts `retention`, the per-signal TTL in days described in [ClickHouse native TTL](https://mastra.ai/reference/storage/retention), and `traceQuery`, the execution limits for [advanced trace queries](https://mastra.ai/reference/observability/tracing/trace-query).
293
+ `ObservabilityStorageClickhouse` and `ObservabilityStorageClickhouseVNext` accept the same connection options as `ClickhouseStore` (`url`, `username`, `password`, or a pre-configured `client`). `ObservabilityStorageClickhouseVNext` also accepts `retention`, the per-signal TTL in days described in [ClickHouse native TTL](https://mastra.ai/reference/storage/retention), and `traceQuery`, the execution limits for [trace queries](https://mastra.ai/reference/observability/tracing/trace-query).
294
294
 
295
295
  ## Hosting options
296
296
 
@@ -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 8164 models from 217 providers through a single API.
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 logo](https://models.dev/logos/crossmodel.svg)CrossModel
6
6
 
7
- Access 69 CrossModel models through Mastra's model router. Authentication is handled automatically using the `CROSSMODEL_API_KEY` environment variable.
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.50 | $3 |
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 logo](https://models.dev/logos/edenai.svg)Eden AI
6
6
 
7
- Access 326 Eden AI models through Mastra's model router. Authentication is handled automatically using the `EDENAI_API_KEY` environment variable.
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.23 | $8 |
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.54 | $14 |
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.07 | $0.28 |
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.13 | $0.53 |
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.83 | $3 |
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 logo](https://models.dev/logos/llmgateway-providers.svg)LLM Gateway
6
6
 
7
- Access 445 LLM Gateway models through Mastra's model router. Authentication is handled automatically using the `LLMGATEWAY_API_KEY` environment variable.
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.07 | $0.12 |
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 logo](https://models.dev/logos/nano-gpt.svg)NanoGPT
6
6
 
7
- Access 618 NanoGPT models through Mastra's model router. Authentication is handled automatically using the `NANO_GPT_API_KEY` environment variable.
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 | | | | | | $0.48 | $2 |
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 | | | | | | $0.48 | $2 |
147
- | `nano-gpt/deepseek/deepseek-v4-pro-0813:thinking` | 1.0M | | | | | | $0.48 | $2 |
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.44 | $2 |
343
- | `nano-gpt/moonshotai/kimi-k2.6:thinking` | 262K | | | | | | $0.44 | $2 |
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.76 | $2 |
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.
@@ -1648,19 +1648,27 @@ mastra api trace list '{"page":0,"perPage":20}' --verbose
1648
1648
 
1649
1649
  #### `mastra api trace query`
1650
1650
 
1651
- Queries completed observability traces with recursive predicates over trace and related span or score fields. The inline JSON input is required. Like other observability commands, it targets `https://observability.mastra.ai` by default.
1651
+ Queries completed observability traces with recursive predicates over trace fields and related spans. The inline JSON input is required and uses the same query structure as the SDK and HTTP API. Like other observability commands, it targets `https://observability.mastra.ai` by default. Pass `--url http://localhost:4111` to query a local server.
1652
1652
 
1653
1653
  ```bash
1654
1654
  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 target server's exact request contract before constructing a query:
1658
+ Inspect the command with:
1659
1659
 
1660
1660
  ```bash
1661
- mastra api trace query --schema
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
- Pass a non-null `page.next` value back as `page.after` in the next query. See [Advanced trace queries](https://mastra.ai/reference/observability/tracing/trace-query) for supported fields and operators, recursive predicates, limits, pagination, and errors.
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