@mastra/mcp-docs-server 1.2.26 → 1.2.27-alpha.11

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.
Files changed (91) hide show
  1. package/.docs/docs/agents/structured-output.md +17 -0
  2. package/.docs/docs/connections/a2a.md +4 -3
  3. package/.docs/docs/deployment/monorepo.md +2 -2
  4. package/.docs/docs/evals/datasets.md +53 -0
  5. package/.docs/docs/guides/build-an-eval-loop.md +395 -0
  6. package/.docs/docs/harness/durable-agents.md +27 -2
  7. package/.docs/docs/mastra-platform/alerts.md +83 -0
  8. package/.docs/docs/mastra-platform/observability.md +184 -0
  9. package/.docs/docs/mastra-platform/overview.md +2 -0
  10. package/.docs/docs/memory/message-history.md +21 -0
  11. package/.docs/docs/memory/observational-memory.md +33 -0
  12. package/.docs/docs/observability/feedback.md +1 -1
  13. package/.docs/docs/observability/tracing/overview.md +2 -0
  14. package/.docs/docs/server/custom-adapters.md +43 -0
  15. package/.docs/docs/subagents.md +38 -7
  16. package/.docs/integrations/channels/github.md +6 -2
  17. package/.docs/integrations/databases/clickhouse.md +1 -1
  18. package/.docs/integrations/observability/confident-ai.md +67 -43
  19. package/.docs/integrations/observability/langfuse.md +4 -0
  20. package/.docs/integrations/observability/opentelemetry.md +14 -6
  21. package/.docs/integrations/sandboxes/cloudflare-sandbox.md +36 -4
  22. package/.docs/models/environment-variables.md +5 -1
  23. package/.docs/models/gateways/netlify.md +8 -4
  24. package/.docs/models/gateways/openrouter.md +5 -2
  25. package/.docs/models/gateways/vercel.md +378 -379
  26. package/.docs/models/index.md +22 -1
  27. package/.docs/models/providers/ai21.md +78 -0
  28. package/.docs/models/providers/ainetcafe.md +77 -0
  29. package/.docs/models/providers/alibaba-cn.md +8 -6
  30. package/.docs/models/providers/alibaba-token-plan-cn.md +2 -1
  31. package/.docs/models/providers/alibaba-token-plan.md +3 -1
  32. package/.docs/models/providers/alibaba.md +2 -1
  33. package/.docs/models/providers/chutes.md +2 -2
  34. package/.docs/models/providers/cortecs.md +6 -7
  35. package/.docs/models/providers/digitalocean.md +1 -1
  36. package/.docs/models/providers/edenai.md +4 -7
  37. package/.docs/models/providers/empiriolabs.md +2 -1
  38. package/.docs/models/providers/fireworks-ai.md +11 -10
  39. package/.docs/models/providers/hyper.md +26 -37
  40. package/.docs/models/providers/inception.md +3 -3
  41. package/.docs/models/providers/inco.md +83 -0
  42. package/.docs/models/providers/iteracompute.md +14 -7
  43. package/.docs/models/providers/kilo.md +12 -9
  44. package/.docs/models/providers/llmgateway-providers.md +4 -2
  45. package/.docs/models/providers/llmgateway.md +1 -1
  46. package/.docs/models/providers/mistral.md +3 -2
  47. package/.docs/models/providers/nano-gpt.md +10 -19
  48. package/.docs/models/providers/nvidia.md +2 -1
  49. package/.docs/models/providers/oci.md +85 -0
  50. package/.docs/models/providers/ofox.md +24 -23
  51. package/.docs/models/providers/opencode.md +2 -1
  52. package/.docs/models/providers/ovhcloud.md +1 -1
  53. package/.docs/models/providers/privatemode-ai.md +3 -3
  54. package/.docs/models/providers/scnet-token-plan.md +2 -1
  55. package/.docs/models/providers/synthetic.md +2 -1
  56. package/.docs/models/providers/tensorx.md +2 -1
  57. package/.docs/models/providers/tinfoil.md +1 -1
  58. package/.docs/models/providers/umans-ai-coding-plan.md +3 -4
  59. package/.docs/models/providers/umans-ai.md +3 -4
  60. package/.docs/models/providers/vancine.md +10 -10
  61. package/.docs/models/providers/volcengine.md +3 -2
  62. package/.docs/models/providers/wandb.md +4 -4
  63. package/.docs/models/providers/xai.md +1 -3
  64. package/.docs/models/providers/zhipuai-coding-plan.md +2 -8
  65. package/.docs/models/providers.md +5 -1
  66. package/.docs/reference/agents/durable-agent.md +9 -1
  67. package/.docs/reference/agents/generate.md +1 -1
  68. package/.docs/reference/agents/inngest-agent.md +2 -0
  69. package/.docs/reference/auth/clerk.md +25 -1
  70. package/.docs/reference/cli/mastra.md +84 -0
  71. package/.docs/reference/client-js/agents.md +25 -0
  72. package/.docs/reference/client-js/mastra-client.md +1 -1
  73. package/.docs/reference/client-js/observability.md +101 -4
  74. package/.docs/reference/code-sdk/mount-agent-controller.md +23 -0
  75. package/.docs/reference/core/getMCPServer.md +47 -0
  76. package/.docs/reference/core/mastra-class.md +1 -1
  77. package/.docs/reference/index.md +2 -0
  78. package/.docs/reference/memory/memory-class.md +2 -0
  79. package/.docs/reference/memory/observational-memory.md +34 -4
  80. package/.docs/reference/observability/tracing/interfaces.md +3 -1
  81. package/.docs/reference/observability/tracing/trace-query.md +219 -46
  82. package/.docs/reference/pubsub/redis-streams.md +34 -0
  83. package/.docs/reference/rag/vector-databases.md +73 -0
  84. package/.docs/reference/storage/retention.md +56 -4
  85. package/.docs/reference/streaming/agents/stream.md +1 -1
  86. package/.docs/reference/tools/mcp-server.md +0 -28
  87. package/.docs/reference/vectors/azure-ai-search.md +150 -0
  88. package/.docs/reference/vectors/weaviate.md +128 -0
  89. package/.docs/reference/workspace/workspace-class.md +10 -2
  90. package/package.json +10 -12
  91. package/.docs/docs/connections/connect-mcp-client.md +0 -211
@@ -4,49 +4,49 @@
4
4
 
5
5
  # Confident AI
6
6
 
7
- [Confident AI](https://www.confident-ai.com/) is an LLM observability and evaluation platform for teams to build reliable AI applications in both development and production.
7
+ [Confident AI](https://www.confident-ai.com/) is an LLM observability and evaluation platform for teams building reliable AI applications in both development and production.
8
8
 
9
- The `@mastra/deepeval` package sends your Mastra traces to Confident AI, where you can run metrics against them and track quality over time. It builds on [DeepEval](https://www.confident-ai.com/docs), the open-source evaluation SDK behind the platform.
9
+ The `ConfidentMastraExporter` from [`confident-trace`](https://github.com/confident-ai/confident-trace) sends your Mastra traces to Confident AI, where agent runs show up with the full agent, model, and tool hierarchy, and can be scored automatically as they arrive.
10
10
 
11
11
  ## Installation
12
12
 
13
13
  **npm**:
14
14
 
15
15
  ```bash
16
- npm install @mastra/deepeval@latest
16
+ npm install confident-trace@latest
17
17
  ```
18
18
 
19
19
  **pnpm**:
20
20
 
21
21
  ```bash
22
- pnpm add @mastra/deepeval@latest
22
+ pnpm add confident-trace@latest
23
23
  ```
24
24
 
25
25
  **Yarn**:
26
26
 
27
27
  ```bash
28
- yarn add @mastra/deepeval@latest
28
+ yarn add confident-trace@latest
29
29
  ```
30
30
 
31
31
  **Bun**:
32
32
 
33
33
  ```bash
34
- bun add @mastra/deepeval@latest
34
+ bun add confident-trace@latest
35
35
  ```
36
36
 
37
37
  ## Configuration
38
38
 
39
39
  ### Prerequisites
40
40
 
41
- 1. **Confident AI account**: Sign up at [confident-ai.com](https://www.confident-ai.com/)
41
+ 1. **Confident AI account**: Sign up at [confident-ai.com](https://app.confident-ai.com)
42
42
  2. **API key**: Generate one in your Confident AI project settings
43
43
  3. **Environment variables**: Set your credentials:
44
44
 
45
45
  ```bash
46
46
  CONFIDENT_API_KEY=confident_proj_xxxxxxxxxxxxx
47
47
 
48
- # Optional
49
- CONFIDENT_TRACE_ENVIRONMENT=production # Defaults to "development"
48
+ # Optional. EU region, defaults to the US servers
49
+ CONFIDENT_OTEL_ENDPOINT=https://eu.otel.confident-ai.com/v1/traces
50
50
  ```
51
51
 
52
52
  ### Zero-Config Setup
@@ -56,14 +56,14 @@ With environment variables set, use the exporter with no configuration:
56
56
  ```typescript
57
57
  import { Mastra } from '@mastra/core'
58
58
  import { Observability } from '@mastra/observability'
59
- import { DeepEvalExporter } from '@mastra/deepeval'
59
+ import { ConfidentMastraExporter } from 'confident-trace/mastra'
60
60
 
61
61
  export const mastra = new Mastra({
62
62
  observability: new Observability({
63
63
  configs: {
64
- deepeval: {
64
+ confidentAI: {
65
65
  serviceName: 'my-service',
66
- exporters: [new DeepEvalExporter()],
66
+ exporters: [new ConfidentMastraExporter()],
67
67
  },
68
68
  },
69
69
  }),
@@ -77,17 +77,17 @@ You can also pass credentials directly (takes precedence over environment variab
77
77
  ```typescript
78
78
  import { Mastra } from '@mastra/core'
79
79
  import { Observability } from '@mastra/observability'
80
- import { DeepEvalExporter } from '@mastra/deepeval'
80
+ import { ConfidentMastraExporter } from 'confident-trace/mastra'
81
81
 
82
82
  export const mastra = new Mastra({
83
83
  observability: new Observability({
84
84
  configs: {
85
- deepeval: {
85
+ confidentAI: {
86
86
  serviceName: 'my-service',
87
87
  exporters: [
88
- new DeepEvalExporter({
88
+ new ConfidentMastraExporter({
89
89
  apiKey: process.env.CONFIDENT_API_KEY,
90
- environment: 'production',
90
+ endpoint: process.env.CONFIDENT_OTEL_ENDPOINT,
91
91
  }),
92
92
  ],
93
93
  },
@@ -96,47 +96,71 @@ export const mastra = new Mastra({
96
96
  })
97
97
  ```
98
98
 
99
- ### Metric collections
99
+ These options are available to you:
100
100
 
101
- Confident AI evaluates incoming traces against metric collections defined in your project. Attach them at the trace level or per span type. Trace-level metrics run against the whole trace, and per-type metrics run against matching spans.
101
+ ```typescript
102
+ new ConfidentMastraExporter({
103
+ apiKey: process.env.CONFIDENT_API_KEY, // Default: CONFIDENT_API_KEY
104
+ endpoint: process.env.CONFIDENT_OTEL_ENDPOINT, // Default: US servers
105
+ captureContent: false, // Omit inputs, outputs, and messages
106
+ maxContentBytes: 512, // Truncate captured content
107
+ timeoutMillis: 30000, // Flush and shutdown budget
108
+ resourceAttributes: { 'service.name': 'my-agent' }, // Overrides serviceName
109
+ })
110
+ ```
111
+
112
+ Traces carry Mastra's configured `serviceName` unless `resourceAttributes['service.name']` overrides it. Mastra's own sampling, filters, and span processors run before export, so whatever your pipeline lets through is what Confident AI receives.
113
+
114
+ ## Supported signals
115
+
116
+ The exporter converts ended Mastra spans into OTLP spans, preserving trace IDs, span IDs, parent IDs, external parent IDs, and original timestamps. It needs no start-event cache, so resumed workflow spans and out-of-order completion export correctly.
117
+
118
+ - **Agent and workflow execution**: Operation names, timing, status, and the parent-child relationships between steps.
119
+ - **Model calls**: Model details, messages, finish reasons, and [token usage](https://www.confident-ai.com/docs/llm-tracing/features/token-usage-cost).
120
+ - **Tool calls**: Tool names and their [input/output](https://www.confident-ai.com/docs/llm-tracing/features/input-output).
121
+ - **Trace details**: The root operation's name, tags, metadata, and input/output.
122
+ - **Errors**: Failed operations retain their error status to make failures visible in the trace.
123
+
124
+ This integration exports tracing data. Mastra logs, metrics, scores, and feedback aren't included.
125
+
126
+ ## Custom trace metadata
127
+
128
+ Metadata and tags passed through Mastra's `tracingOptions` are forwarded to the trace in Confident AI, where you can filter and group by them:
102
129
 
103
130
  ```typescript
104
- new DeepEvalExporter({
105
- metricCollection: 'trace-metrics', // trace-level
106
- llmMetricCollection: 'llm-metrics', // applied to LLM spans
107
- agentMetricCollection: 'agent-metrics', // applied to agent spans
108
- toolMetricCollectionMap: {
109
- search: 'search-tool-metrics', // applied to the "search" tool
131
+ const result = await mastra.getAgent('assistant').generate('How do you make the best coffee?', {
132
+ tracingOptions: {
133
+ metadata: { release: '2026-09', tier: 'enterprise' },
134
+ tags: ['production', 'support'],
110
135
  },
111
136
  })
112
137
  ```
113
138
 
114
- ### Complete Configuration
139
+ Your metadata is merged with the fields Mastra sets itself, such as `runId`. Tags apply to the root span, so they land on the trace rather than on individual spans.
140
+
141
+ ## Lifecycle
142
+
143
+ Mastra owns this exporter. It creates its own OTLP processor and never registers, replaces, or shuts down the global OpenTelemetry provider, so there is no `init()` call to make and no preload to add to your start command.
144
+
145
+ Spans are batched and sent when the exporter is shut down. Shut it down once, after every agent run and stream has finished, or a short-lived script exits before anything is sent:
115
146
 
116
147
  ```typescript
117
- new DeepEvalExporter({
118
- apiKey: process.env.CONFIDENT_API_KEY,
119
- environment: 'production', // Default: "development"
120
- name: 'my-trace', // Default: the Mastra serviceName
121
- tags: ['production'],
122
- metadata: { team: 'growth' },
123
- })
148
+ await observability.shutdown()
124
149
  ```
125
150
 
126
- ## Span type mapping
151
+ In a long-running server, shut down during graceful shutdown rather than per request. Traces can take up to 30 seconds to appear in the Observatory after being sent.
152
+
153
+ ## Threads and trace properties
154
+
155
+ This exporter maps Mastra's own tracing surface, so trace metadata and tags come from `tracingOptions` as shown above.
127
156
 
128
- Mastra spans map to the span types shown in Confident AI:
157
+ Grouping turns into [threads](https://www.confident-ai.com/docs/llm-tracing/features/threads) and setting trace-level properties such as user IDs use `confident-trace`'s SDK instrumentation, which attaches to Mastra directly rather than through an exporter. See the [Mastra integration guide](https://www.confident-ai.com/docs/integrations/third-party/mastra) for that setup.
129
158
 
130
- | Mastra span type | Confident AI span type |
131
- | ---------------------------------------------------------------------- | ---------------------- |
132
- | `AGENT_RUN`, `WORKFLOW_RUN` | `AGENT` |
133
- | `MODEL_GENERATION` | `LLM` |
134
- | `TOOL_CALL`, `MCP_TOOL_CALL`, `PROVIDER_TOOL_CALL`, `CLIENT_TOOL_CALL` | `TOOL` |
135
- | `RAG_EMBEDDING`, `RAG_VECTOR_OPERATION` | `RETRIEVER` |
136
- | All other exported span types | `CUSTOM` |
159
+ Choose one or the other. Do not use both at once.
137
160
 
138
161
  ## Related
139
162
 
140
163
  - [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
141
- - [DeepEvalExporter reference](https://mastra.ai/reference/observability/tracing/exporters/confident-ai)
142
- - [Confident AI documentation](https://www.confident-ai.com/docs)
164
+ - [Mastra integration guide](https://www.confident-ai.com/docs/integrations/third-party/mastra)
165
+ - [Online evals](https://www.confident-ai.com/docs/llm-tracing/online-evals)
166
+ - [confident-trace on GitHub](https://github.com/confident-ai/confident-trace)
@@ -287,6 +287,10 @@ The prompt object requires both `name` and `version`:
287
287
 
288
288
  When set on a `MODEL_GENERATION` span, the Langfuse exporter automatically links the generation to the corresponding prompt.
289
289
 
290
+ ## Import existing traces into Mastra Platform
291
+
292
+ The Mastra CLI can import historical trace observations from Langfuse Cloud or a self-hosted Langfuse v4 or later instance. This is separate from configuring the exporter on this page. See [Import existing traces](https://mastra.ai/docs/mastra-platform/observability) for credentials, dry runs, resume, verification, and current limits.
293
+
290
294
  ## Related
291
295
 
292
296
  - [Tracing Overview](https://mastra.ai/docs/observability/tracing/overview)
@@ -571,11 +571,14 @@ The exporter follows [OpenTelemetry Semantic Conventions for GenAI v1.38.0](http
571
571
 
572
572
  #### Span Naming
573
573
 
574
- - **LLM Operations**: `chat {model}`
574
+ - **Model calls**: `chat {model}`
575
+ - **Generation loop**: `model_generation {model}`, with one `agent_step {agent_id}` per turn
575
576
  - **Tool Execution**: `execute_tool {tool_name}`
576
577
  - **Agent Runs**: `invoke_agent {agent_id}`
577
578
  - **Workflow Runs**: `invoke_workflow {workflow_id}`
578
579
 
580
+ Each agent turn calls the model once. The `chat` span is that call and is the only span that carries `gen_ai.request.model`, the messages, and `gen_ai.usage.*`, so backends that sum usage across spans count each call once. The `model_generation` span wraps the whole loop and `agent_step` wraps one turn (model call plus tool execution); neither carries usage.
581
+
579
582
  #### Key Attributes
580
583
 
581
584
  - `gen_ai.operation.name` - Operation type (chat, tool.execute, etc.)
@@ -805,10 +808,13 @@ With the `OtelBridge`, your traces maintain proper hierarchy across OTEL and Mas
805
808
  ```text
806
809
  HTTP POST /api/chat (from Hono middleware)
807
810
  └── agent.assistant (from Mastra via OtelBridge)
808
- ├── chat gpt-5.4 (LLM call)
809
- ├── tool.execute search (tool execution)
810
- │ └── HTTP GET api.example.com (from OTEL auto-instrumentation)
811
- └── chat gpt-5.4 (follow-up LLM call)
811
+ └── model_generation gpt-5 (generation loop)
812
+ ├── agent_step assistant (turn 1)
813
+ │ ├── chat gpt-5 (LLM call)
814
+ │ └── execute_tool search (tool execution)
815
+ │ └── HTTP GET api.example.com (from OTEL auto-instrumentation)
816
+ └── agent_step assistant (turn 2)
817
+ └── chat gpt-5 (follow-up LLM call)
812
818
  ```
813
819
 
814
820
  ### Multi-service distributed tracing
@@ -821,7 +827,9 @@ Service A: HTTP POST /api/process
821
827
 
822
828
  Service B: HTTP POST /api/analyze (incoming call - same trace!)
823
829
  └── agent.analyzer (Mastra agent inherits trace context)
824
- └── chat gpt-5.4
830
+ └── model_generation gpt-5
831
+ └── agent_step analyzer
832
+ └── chat gpt-5
825
833
  ```
826
834
 
827
835
  Both services must have:
@@ -100,9 +100,41 @@ const bytes = await workspace.sandbox?.readFile?.('src/index.ts')
100
100
  const source = new TextDecoder().decode(bytes)
101
101
  ```
102
102
 
103
+ ## Keep files across container sleep
104
+
105
+ Cloudflare stops an idle container after `sleepAfter` (10 minutes by default). The next command starts a fresh container, so anything written under `/workspace` is gone. Treat `/workspace` as scratch space, and put files that must survive on a mounted bucket.
106
+
107
+ Mount an S3-compatible bucket such as Cloudflare R2 through the Workspace `mounts` option. The sandbox mounts it on `start()`. A slept container boots without its mounts, so the sandbox re-mounts any dropped paths before the next filesystem operation, keeping mounted data durable across sleep.
108
+
109
+ ```typescript
110
+ import { Workspace } from '@mastra/core/workspace'
111
+ import { S3Filesystem } from '@mastra/s3'
112
+ import { CloudflareSandbox } from '@mastra/cloudflare-sandbox'
113
+
114
+ const workspace = new Workspace({
115
+ sandbox: new CloudflareSandbox({
116
+ baseUrl: process.env.CLOUDFLARE_SANDBOX_BRIDGE_URL!,
117
+ apiToken: process.env.CLOUDFLARE_SANDBOX_BRIDGE_TOKEN!,
118
+ }),
119
+ mounts: {
120
+ '/workspace/data': new S3Filesystem({
121
+ bucket: 'agent-data',
122
+ region: 'auto',
123
+ endpoint: `https://${process.env.CLOUDFLARE_ACCOUNT_ID}.r2.cloudflarestorage.com`,
124
+ accessKeyId: process.env.R2_ACCESS_KEY_ID,
125
+ secretAccessKey: process.env.R2_SECRET_ACCESS_KEY,
126
+ }),
127
+ },
128
+ })
129
+ ```
130
+
131
+ The bridge mounts buckets with s3fs, so only `type: 's3'` mount configs are accepted. GCS and Azure filesystems, and S3 credentials that include a `sessionToken`, return a failed `MountResult` without contacting the bridge.
132
+
133
+ The default `getInstructions()` text tells the model that `/workspace` does not survive between commands and lists the mounted paths to write to instead.
134
+
103
135
  ## Persist and restore the workspace
104
136
 
105
- `persistWorkspace()` archives `/workspace` and returns the raw tar bytes; `hydrateWorkspace()` restores it from those bytes. Store the archive between sessions to resume work after a container sleeps or is recreated.
137
+ `persistWorkspace()` archives `/workspace` and returns the raw tar bytes; `hydrateWorkspace()` restores it from those bytes. Use this for one-off backups. It is not a substitute for mounts: restoring must happen before the first command after a wake, and a persist taken from a freshly woken container overwrites the archive with an empty workspace.
106
138
 
107
139
  ```typescript
108
140
  // Back up before the container can sleep
@@ -114,7 +146,7 @@ const archive = await myStorage.get('workspace-backup')
114
146
  await workspace.sandbox?.hydrateWorkspace?.(archive)
115
147
  ```
116
148
 
117
- For bucket mounts and execution sessions, use the corresponding `CloudflareSandboxBridgeClient` methods (`mountBucket`, `unmountBucket`, `createSession`, `deleteSession`) directly.
149
+ For execution sessions, use the `CloudflareSandboxBridgeClient` methods (`createSession`, `deleteSession`) directly.
118
150
 
119
151
  ## Constructor parameters
120
152
 
@@ -138,10 +170,10 @@ For bucket mounts and execution sessions, use the corresponding `CloudflareSandb
138
170
 
139
171
  ## Lifecycle behavior
140
172
 
141
- - `start()`: Reconnects to `sandboxId` or creates a remote sandbox.
173
+ - `start()`: Reconnects to `sandboxId` or creates a remote sandbox, then mounts any Workspace `mounts`.
142
174
  - `stop()`: Detaches the Mastra lifecycle without deleting the remote sandbox because the bridge doesn't expose a suspend operation.
143
175
  - `destroy()`: Deletes the remote sandbox.
144
176
 
145
177
  ## Limitations
146
178
 
147
- The provider surfaces command execution, streamed output, file reads and writes, and workspace persistence directly on the sandbox. Bucket mounts and sessions are available on the bridge client (`CloudflareSandboxBridgeClient`) but not on the `CloudflareSandbox` surface. PTY terminals are not exposed, and the provider doesn't support background process management, stdin, snapshots, or port URLs.
179
+ The provider surfaces command execution, streamed output, file reads and writes, S3-compatible bucket mounts, and workspace persistence directly on the sandbox. Sessions are available on the bridge client (`CloudflareSandboxBridgeClient`) but not on the `CloudflareSandbox` surface. PTY terminals are not exposed, and the provider doesn't support background process management, stdin, snapshots, or port URLs.
@@ -16,6 +16,8 @@ List of required environment variables for each model provider and gateway suppo
16
16
  | [Agnes AI](https://mastra.ai/models/providers/agnes) | `agnes/*` | `AGNES_API_KEY` |
17
17
  | [AI-ROUTER](https://mastra.ai/models/providers/ai-router) | `ai-router/*` | `AI_ROUTER_API_KEY` |
18
18
  | [ai&](https://mastra.ai/models/providers/aiand) | `aiand/*` | `AIAND_API_KEY` |
19
+ | [AI21 Labs](https://mastra.ai/models/providers/ai21) | `ai21/*` | `AI21_API_KEY` |
20
+ | [ainetcafe](https://mastra.ai/models/providers/ainetcafe) | `ainetcafe/*` | `AINETCAFE_API_KEY` |
19
21
  | [Aixy](https://mastra.ai/models/providers/aixy) | `aixy/*` | `AIXY_API_KEY` |
20
22
  | [AKI.IO](https://mastra.ai/models/providers/aki-io) | `aki-io/*` | `AKI_IO_API_KEY` |
21
23
  | [Alibaba](https://mastra.ai/models/providers/alibaba) | `alibaba/*` | `DASHSCOPE_API_KEY` |
@@ -45,6 +47,7 @@ List of required environment variables for each model provider and gateway suppo
45
47
  | [CloudFerro Sherlock](https://mastra.ai/models/providers/cloudferro-sherlock) | `cloudferro-sherlock/*` | `CLOUDFERRO_SHERLOCK_API_KEY` |
46
48
  | [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai) | `cloudflare-workers-ai/*` | `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_API_KEY` |
47
49
  | [CoralBricks](https://mastra.ai/models/providers/coralbricks) | `coralbricks/*` | `CORAL_API_KEY` |
50
+ | [CoreWeave](https://mastra.ai/models/providers/wandb) | `wandb/*` | `WANDB_API_KEY` |
48
51
  | [Cortecs](https://mastra.ai/models/providers/cortecs) | `cortecs/*` | `CORTECS_API_KEY` |
49
52
  | [CrofAI](https://mastra.ai/models/providers/crof) | `crof/*` | `CROF_API_KEY` |
50
53
  | [CrossModel](https://mastra.ai/models/providers/crossmodel) | `crossmodel/*` | `CROSSMODEL_API_KEY` |
@@ -79,6 +82,7 @@ List of required environment variables for each model provider and gateway suppo
79
82
  | [Impossibl](https://mastra.ai/models/providers/impossibl) | `impossibl/*` | `IMPOSSIBL_API_KEY` |
80
83
  | [Inception](https://mastra.ai/models/providers/inception) | `inception/*` | `INCEPTION_API_KEY` |
81
84
  | [Inceptron](https://mastra.ai/models/providers/inceptron) | `inceptron/*` | `INCEPTRON_API_KEY` |
85
+ | [Inco](https://mastra.ai/models/providers/inco) | `inco/*` | `INCO_API_KEY` |
82
86
  | [Infer by Flow7](https://mastra.ai/models/providers/infer) | `infer/*` | `INFER_API_KEY` |
83
87
  | [Inference](https://mastra.ai/models/providers/inference) | `inference/*` | `INFERENCE_API_KEY` |
84
88
  | [InferX](https://mastra.ai/models/providers/inferx) | `inferx/*` | `INFERX_API_KEY` |
@@ -128,6 +132,7 @@ List of required environment variables for each model provider and gateway suppo
128
132
  | [Nova](https://mastra.ai/models/providers/nova) | `nova/*` | `NOVA_API_KEY` |
129
133
  | [NovitaAI](https://mastra.ai/models/providers/novita-ai) | `novita-ai/*` | `NOVITA_API_KEY` |
130
134
  | [Nvidia](https://mastra.ai/models/providers/nvidia) | `nvidia/*` | `NVIDIA_API_KEY` |
135
+ | [OCI Generative AI](https://mastra.ai/models/providers/oci) | `oci/*` | `OCI_GENAI_API_KEY` |
131
136
  | [Ofox](https://mastra.ai/models/providers/ofox) | `ofox/*` | `OFOX_API_KEY` |
132
137
  | [Ollama Cloud](https://mastra.ai/models/providers/ollama-cloud) | `ollama-cloud/*` | `OLLAMA_API_KEY` |
133
138
  | [OpenAI](https://mastra.ai/models/providers/openai) | `openai/*` | `OPENAI_API_KEY` |
@@ -191,7 +196,6 @@ List of required environment variables for each model provider and gateway suppo
191
196
  | [Vultr](https://mastra.ai/models/providers/vultr) | `vultr/*` | `VULTR_API_KEY` |
192
197
  | [Wafer](https://mastra.ai/models/providers/wafer.ai) | `wafer.ai/*` | `WAFER_API_KEY` |
193
198
  | [Wallaby](https://mastra.ai/models/providers/wallaby) | `wallaby/*` | `WALLABY_API_KEY` |
194
- | [Weights & Biases](https://mastra.ai/models/providers/wandb) | `wandb/*` | `WANDB_API_KEY` |
195
199
  | [xAI](https://mastra.ai/models/providers/xai) | `xai/*` | `XAI_API_KEY` |
196
200
  | [Xiaomi](https://mastra.ai/models/providers/xiaomi) | `xiaomi/*` | `XIAOMI_API_KEY` |
197
201
  | [Xiaomi Token Plan (China)](https://mastra.ai/models/providers/xiaomi-token-plan-cn) | `xiaomi-token-plan-cn/*` | `XIAOMI_API_KEY` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # Netlify
6
6
 
7
- Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 257 models through Mastra's model router.
7
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 261 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
10
10
 
@@ -145,6 +145,7 @@ ANTHROPIC_API_KEY=ant-...
145
145
  | `openrouter/deepseek/deepseek-v3.2-exp` |
146
146
  | `openrouter/deepseek/deepseek-v4-flash` |
147
147
  | `openrouter/deepseek/deepseek-v4-flash-0731` |
148
+ | `openrouter/deepseek/deepseek-v4-flash-0731:free` |
148
149
  | `openrouter/deepseek/deepseek-v4-flash-vision-exp` |
149
150
  | `openrouter/deepseek/deepseek-v4-pro` |
150
151
  | `openrouter/deepseek/deepseek-v4-pro-0813` |
@@ -189,7 +190,6 @@ ANTHROPIC_API_KEY=ant-...
189
190
  | `openrouter/mistralai/ministral-3b-2512` |
190
191
  | `openrouter/mistralai/ministral-8b-2512` |
191
192
  | `openrouter/mistralai/mistral-large-2407` |
192
- | `openrouter/mistralai/mistral-large-2512` |
193
193
  | `openrouter/mistralai/mistral-medium-3` |
194
194
  | `openrouter/mistralai/mistral-medium-3-5` |
195
195
  | `openrouter/mistralai/mistral-medium-3.1` |
@@ -256,7 +256,7 @@ ANTHROPIC_API_KEY=ant-...
256
256
  | `openrouter/qwen/qwen3.6-35b-a3b` |
257
257
  | `openrouter/qwen/qwen3.8-2.4t-a95b` |
258
258
  | `openrouter/qwen/qwen3.8-27b` |
259
- | `openrouter/qwen/qwen3.8-flash` |
259
+ | `openrouter/qwen/qwen3.8-27b:free` |
260
260
  | `openrouter/rekaai/reka-edge` |
261
261
  | `openrouter/rekaai/reka-flash-3` |
262
262
  | `openrouter/relace/relace-apply-3` |
@@ -294,5 +294,9 @@ ANTHROPIC_API_KEY=ant-...
294
294
  | `openrouter/z-ai/glm-5` |
295
295
  | `openrouter/z-ai/glm-5.1` |
296
296
  | `openrouter/z-ai/glm-5.2` |
297
+ | `openrouter/z-ai/glm-5.2:free` |
297
298
  | `openrouter/z-ai/glm-5.3` |
298
- | `openrouter/z-ai/glm-5.3-flash` |
299
+ | `openrouter/z-ai/glm-5.3-flash` |
300
+ | `typesafe/jev-1.13.0` |
301
+ | `typesafe/jev-latest` |
302
+ | `typesafe/jev-preview` |
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ![OpenRouter logo](https://models.dev/logos/openrouter.svg)OpenRouter
6
6
 
7
- OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 367 models through Mastra's model router.
7
+ OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 370 models through Mastra's model router.
8
8
 
9
9
  Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
10
10
 
@@ -107,6 +107,7 @@ ANTHROPIC_API_KEY=ant-...
107
107
  | `deepseek/deepseek-v3.2-exp` |
108
108
  | `deepseek/deepseek-v4-flash` |
109
109
  | `deepseek/deepseek-v4-flash-0731` |
110
+ | `deepseek/deepseek-v4-flash-0731:free` |
110
111
  | `deepseek/deepseek-v4-flash-vision-exp` |
111
112
  | `deepseek/deepseek-v4-pro` |
112
113
  | `deepseek/deepseek-v4-pro-0813` |
@@ -191,7 +192,6 @@ ANTHROPIC_API_KEY=ant-...
191
192
  | `mistralai/ministral-8b-2512` |
192
193
  | `mistralai/mistral-large` |
193
194
  | `mistralai/mistral-large-2407` |
194
- | `mistralai/mistral-large-2512` |
195
195
  | `mistralai/mistral-medium-3` |
196
196
  | `mistralai/mistral-medium-3-5` |
197
197
  | `mistralai/mistral-medium-3.1` |
@@ -350,6 +350,7 @@ ANTHROPIC_API_KEY=ant-...
350
350
  | `qwen/qwen3.7-plus` |
351
351
  | `qwen/qwen3.8-2.4t-a95b` |
352
352
  | `qwen/qwen3.8-27b` |
353
+ | `qwen/qwen3.8-27b:free` |
353
354
  | `qwen/qwen3.8-flash` |
354
355
  | `qwen/qwen3.8-max-0902` |
355
356
  | `rekaai/reka-edge` |
@@ -379,6 +380,7 @@ ANTHROPIC_API_KEY=ant-...
379
380
  | `thinkingmachines/inkling-small` |
380
381
  | `thinkingmachines/inkling-small:free` |
381
382
  | `thinkingmachines/inkling:free` |
383
+ | `unbiased/pareto` |
382
384
  | `undi95/remm-slerp-l2-13b` |
383
385
  | `upstage/solar-pro-3` |
384
386
  | `upstage/solar-pro4` |
@@ -402,6 +404,7 @@ ANTHROPIC_API_KEY=ant-...
402
404
  | `z-ai/glm-5-turbo` |
403
405
  | `z-ai/glm-5.1` |
404
406
  | `z-ai/glm-5.2` |
407
+ | `z-ai/glm-5.2:free` |
405
408
  | `z-ai/glm-5.3` |
406
409
  | `z-ai/glm-5.3-flash` |
407
410
  | `z-ai/glm-5v-turbo` |