@mastra/mcp-docs-server 1.2.8-alpha.2 → 1.2.8-alpha.23

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 (153) hide show
  1. package/.docs/docs/agent-builder/integrations.md +1 -3
  2. package/.docs/docs/agents/overview.md +17 -13
  3. package/.docs/docs/agents/skills.md +1 -3
  4. package/.docs/docs/agents/structured-output.md +14 -7
  5. package/.docs/docs/agents/using-tools.md +66 -49
  6. package/.docs/docs/browser/agent-browser.md +1 -0
  7. package/.docs/docs/browser/firecrawl.md +129 -0
  8. package/.docs/docs/browser/overview.md +16 -2
  9. package/.docs/docs/capabilities/channels/slack.md +111 -1
  10. package/.docs/docs/deployment/mastra-server.md +35 -0
  11. package/.docs/docs/deployment/monorepo.md +2 -0
  12. package/.docs/docs/deployment/overview.md +6 -0
  13. package/.docs/docs/deployment/sandbox.md +277 -0
  14. package/.docs/docs/editor/overview.md +2 -6
  15. package/.docs/docs/editor/tools.md +2 -6
  16. package/.docs/docs/evals/multi-turn.md +178 -0
  17. package/.docs/docs/evals/overview.md +1 -0
  18. package/.docs/docs/evals/running-in-ci.md +3 -9
  19. package/.docs/docs/getting-started/build-with-ai.md +2 -6
  20. package/.docs/docs/getting-started/manual-install.md +1 -1
  21. package/.docs/docs/index.md +17 -13
  22. package/.docs/docs/long-running-agents/background-tasks.md +2 -2
  23. package/.docs/docs/long-running-agents/durable-agents.md +2 -1
  24. package/.docs/docs/long-running-agents/goals.md +3 -1
  25. package/.docs/docs/mastra-platform/database.md +12 -6
  26. package/.docs/docs/mastra-platform/deploy.md +14 -7
  27. package/.docs/docs/mastra-platform/environments.md +5 -4
  28. package/.docs/docs/mastra-platform/observability.md +4 -12
  29. package/.docs/docs/mastra-platform/overview.md +1 -1
  30. package/.docs/docs/mastra-platform/regions.md +73 -0
  31. package/.docs/docs/mastra-platform/workspace.md +111 -0
  32. package/.docs/docs/mcp/overview.md +1 -1
  33. package/.docs/docs/memory/observational-memory.md +77 -2
  34. package/.docs/docs/memory/overview.md +4 -0
  35. package/.docs/docs/observability/feedback.md +4 -0
  36. package/.docs/docs/observability/integrations/bridges/otel.md +1 -3
  37. package/.docs/docs/observability/integrations/exporters/otel.md +1 -3
  38. package/.docs/docs/server/auth/fga.md +40 -0
  39. package/.docs/docs/server/auth/simple-auth.md +1 -3
  40. package/.docs/docs/server/request-context.md +2 -0
  41. package/.docs/docs/studio/overview.md +2 -0
  42. package/.docs/docs/workflows/control-flow.md +1 -3
  43. package/.docs/docs/workspace/filesystem.md +1 -0
  44. package/.docs/docs/workspace/sandbox.md +1 -0
  45. package/.docs/guides/getting-started/quickstart.md +40 -25
  46. package/.docs/guides/index.md +1 -1
  47. package/.docs/guides/migrations/vnext-to-standard-apis.md +1 -3
  48. package/.docs/models/environment-variables.md +3 -0
  49. package/.docs/models/gateways/netlify.md +3 -1
  50. package/.docs/models/gateways/openrouter.md +343 -345
  51. package/.docs/models/gateways/vercel.md +8 -5
  52. package/.docs/models/index.md +1 -1
  53. package/.docs/models/providers/aki-io.md +78 -0
  54. package/.docs/models/providers/alibaba-token-plan-cn.md +22 -21
  55. package/.docs/models/providers/alibaba-token-plan.md +22 -21
  56. package/.docs/models/providers/ambient.md +12 -10
  57. package/.docs/models/providers/baseten.md +3 -2
  58. package/.docs/models/providers/cline-pass.md +82 -0
  59. package/.docs/models/providers/crossmodel.md +2 -1
  60. package/.docs/models/providers/deepinfra.md +4 -7
  61. package/.docs/models/providers/deepseek.md +3 -1
  62. package/.docs/models/providers/empiriolabs.md +2 -1
  63. package/.docs/models/providers/evroc.md +3 -2
  64. package/.docs/models/providers/google.md +6 -4
  65. package/.docs/models/providers/inferx.md +3 -3
  66. package/.docs/models/providers/kilo.md +1 -1
  67. package/.docs/models/providers/kimi-for-coding.md +10 -11
  68. package/.docs/models/providers/llmgateway.md +5 -8
  69. package/.docs/models/providers/moonshotai-cn.md +3 -2
  70. package/.docs/models/providers/moonshotai.md +3 -2
  71. package/.docs/models/providers/nebius.md +3 -1
  72. package/.docs/models/providers/novita-ai.md +3 -1
  73. package/.docs/models/providers/ollama-cloud.md +25 -42
  74. package/.docs/models/providers/opencode-go.md +5 -3
  75. package/.docs/models/providers/opencode.md +4 -2
  76. package/.docs/models/providers/orcarouter.md +1 -1
  77. package/.docs/models/providers/privatemode-ai.md +10 -10
  78. package/.docs/models/providers/thinkingmachines.md +73 -0
  79. package/.docs/models/providers/togetherai.md +2 -6
  80. package/.docs/models/providers/wandb.md +2 -1
  81. package/.docs/models/providers/zenmux.md +3 -1
  82. package/.docs/models/providers.md +3 -0
  83. package/.docs/reference/acp/acp-agent.md +2 -0
  84. package/.docs/reference/acp/create-acp-tool.md +28 -0
  85. package/.docs/reference/agent-controller/session.md +15 -0
  86. package/.docs/reference/agents/agent.md +13 -1
  87. package/.docs/reference/agents/durable-agent.md +23 -0
  88. package/.docs/reference/agents/generate.md +19 -1
  89. package/.docs/reference/browser/firecrawl-browser.md +71 -0
  90. package/.docs/reference/cli/create-mastra.md +118 -43
  91. package/.docs/reference/cli/mastra.md +47 -5
  92. package/.docs/reference/code-sdk/mount-agent-controller.md +4 -4
  93. package/.docs/reference/core/getMCPServer.md +1 -3
  94. package/.docs/reference/core/getMCPServerById.md +1 -3
  95. package/.docs/reference/core/getWorkflow.md +1 -3
  96. package/.docs/reference/core/listMCPServers.md +2 -6
  97. package/.docs/reference/datasets/addItem.md +1 -3
  98. package/.docs/reference/datasets/addItems.md +1 -3
  99. package/.docs/reference/datasets/compareExperiments.md +1 -3
  100. package/.docs/reference/datasets/create.md +1 -3
  101. package/.docs/reference/datasets/dataset.md +2 -6
  102. package/.docs/reference/datasets/datasets-manager.md +5 -15
  103. package/.docs/reference/datasets/delete.md +1 -3
  104. package/.docs/reference/datasets/deleteExperiment.md +1 -3
  105. package/.docs/reference/datasets/deleteItem.md +1 -3
  106. package/.docs/reference/datasets/deleteItems.md +1 -3
  107. package/.docs/reference/datasets/get.md +1 -3
  108. package/.docs/reference/datasets/getDetails.md +1 -3
  109. package/.docs/reference/datasets/getExperiment.md +1 -3
  110. package/.docs/reference/datasets/getItem.md +1 -3
  111. package/.docs/reference/datasets/getItemHistory.md +1 -3
  112. package/.docs/reference/datasets/list.md +1 -3
  113. package/.docs/reference/datasets/listExperimentResults.md +1 -3
  114. package/.docs/reference/datasets/listExperiments.md +1 -3
  115. package/.docs/reference/datasets/listItems.md +1 -3
  116. package/.docs/reference/datasets/listVersions.md +1 -3
  117. package/.docs/reference/datasets/startExperiment.md +1 -3
  118. package/.docs/reference/datasets/startExperimentAsync.md +1 -3
  119. package/.docs/reference/datasets/update.md +1 -3
  120. package/.docs/reference/datasets/updateItem.md +1 -3
  121. package/.docs/reference/editor/mastra-editor.md +1 -3
  122. package/.docs/reference/evals/context-recall.md +205 -0
  123. package/.docs/reference/evals/create-scorer.md +4 -10
  124. package/.docs/reference/evals/mastra-scorer.md +1 -3
  125. package/.docs/reference/evals/run-evals.md +94 -2
  126. package/.docs/reference/file-based-agents/tools.md +7 -6
  127. package/.docs/reference/index.md +5 -0
  128. package/.docs/reference/memory/observational-memory.md +21 -0
  129. package/.docs/reference/observability/tracing/exporters/posthog.md +39 -1
  130. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +1 -3
  131. package/.docs/reference/processors/token-limiter-processor.md +1 -3
  132. package/.docs/reference/rag/database-config.md +12 -0
  133. package/.docs/reference/streaming/agents/stream.md +3 -1
  134. package/.docs/reference/templates/overview.md +6 -32
  135. package/.docs/reference/tools/create-tool.md +78 -52
  136. package/.docs/reference/tools/mcp-client.md +104 -24
  137. package/.docs/reference/tools/mcp-server.md +143 -44
  138. package/.docs/reference/tools/tavily.md +1 -1
  139. package/.docs/reference/tools/vector-query-tool.md +22 -0
  140. package/.docs/reference/vectors/mongodb.md +2 -0
  141. package/.docs/reference/vectors/turbopuffer.md +4 -0
  142. package/.docs/reference/voice/mistral.md +127 -0
  143. package/.docs/reference/workspace/daytona-sandbox.md +2 -6
  144. package/.docs/reference/workspace/platform-filesystem.md +182 -0
  145. package/.docs/reference/workspace/platform-sandbox.md +200 -0
  146. package/.docs/reference/workspace/railway-sandbox.md +37 -1
  147. package/CHANGELOG.md +78 -0
  148. package/dist/{chunk-GLPCVXXO.js → chunk-HGADBLKG.js} +2 -2
  149. package/dist/{chunk-GLPCVXXO.js.map → chunk-HGADBLKG.js.map} +1 -1
  150. package/dist/index.js +1 -1
  151. package/dist/stdio.js +1 -1
  152. package/dist/tools/docs.d.ts.map +1 -1
  153. package/package.json +7 -7
@@ -254,6 +254,46 @@ class MyFGAProvider implements IFGAProvider {
254
254
  }
255
255
  ```
256
256
 
257
+ ## System actors
258
+
259
+ Autonomous and scheduled agents run without an end user. Mark these calls with an actor signal so FGA can tell them apart from user requests:
260
+
261
+ - `true` or `{ actorKind: 'system' }` identifies an anonymous system actor.
262
+ - The object form can also carry `agentId`, `permissions`, and `scope` to identify and constrain the acting agent.
263
+
264
+ By default, a trusted actor skips the user-centric `require()` check after a tenant-scope check. To enforce per-agent least privilege, implement the optional `requireActor` method on your provider. It receives the actor and the same `FGACheckParams` as `require`, and throws `FGADeniedError` to deny. When your provider doesn't implement `requireActor`, the trusted-actor bypass is preserved, so adding it is backward compatible.
265
+
266
+ ```typescript
267
+ import { FGADeniedError } from '@mastra/core/auth/ee'
268
+ import type { ActorSignal, FGACheckParams, IFGAProvider } from '@mastra/core/auth/ee'
269
+
270
+ class MyFGAProvider implements IFGAProvider {
271
+ // ...check, require, filterAccessible...
272
+
273
+ async requireActor(actor: ActorSignal, params: FGACheckParams): Promise<void> {
274
+ const agentId = actor === true ? undefined : actor.agentId
275
+ // Resolve the agent's real grants from a trusted source keyed by agentId.
276
+ const granted = await this.grantsForAgent(agentId)
277
+ const required = Array.isArray(params.permission) ? params.permission : [params.permission]
278
+ if (!required.some(permission => granted.includes(permission))) {
279
+ throw new FGADeniedError(null, params.resource, params.permission)
280
+ }
281
+ }
282
+ }
283
+ ```
284
+
285
+ ### Trust requirements
286
+
287
+ The actor signal is trusted input, so construct it server-side:
288
+
289
+ - Treat `actor` as a per-call signal. Durable workflows forward it when a run starts, but don't restore the initial actor on resume. Pass it explicitly on every trusted resume, or resolve a fresh actor through agent `defaultOptions`. Without a current actor, user authorization applies and a missing user fails closed.
290
+ - Mastra strips `actor` from execution options handled by its built-in agent HTTP routes. Set it in server-side code, for example a scheduled job or a workflow, never from client input.
291
+ - Establish tenant scope server-side. Built-in agent HTTP routes ignore a client-supplied `organizationId` in the request context, and the trusted-actor path requires an `organizationId` to be set.
292
+ - Durable resume keeps its existing request-context recovery and merge behavior. This doesn't make a persisted actor trusted for a later workflow segment.
293
+ - The tenant-scope check confirms that a trusted `organizationId` exists. It doesn't verify that `actor.agentId` belongs to that organization. When that relationship matters, verify it in `requireActor` using authoritative provider data.
294
+ - Treat `actor.permissions` as a claim, not a grant. A provider that enforces least privilege resolves the agent's authoritative permissions from a trusted source, for example a manifest or your FGA backend keyed by `agentId`, rather than trusting the inline values.
295
+ - Once a provider implements `requireActor`, errors from that method stop execution. Mastra doesn't fall back to organization-only authorization.
296
+
257
297
  ## Related
258
298
 
259
299
  - [Authentication overview](https://mastra.ai/docs/server/auth)
@@ -74,9 +74,7 @@ Add custom headers using the `headers` option:
74
74
 
75
75
  ```typescript
76
76
  new SimpleAuth({
77
- tokens: {
78
- /* ... */
79
- },
77
+ tokens: {/* ... */},
80
78
  headers: ['X-API-Key', 'X-Custom-Auth'],
81
79
  })
82
80
  ```
@@ -247,6 +247,8 @@ auth: {
247
247
  }
248
248
  ```
249
249
 
250
+ When the resource ID is derived this way, clients can omit `memory.resource` from agent generate and stream request bodies — the server-derived value is used instead (and always takes precedence over any client-provided value). If a request uses memory and neither the body nor the request context provides a resource ID, the server responds with a 400 error.
251
+
250
252
  You can also set these keys manually in middleware:
251
253
 
252
254
  ```typescript
@@ -91,6 +91,8 @@ See [request context](https://mastra.ai/docs/server/request-context) for configu
91
91
 
92
92
  ## Evaluation
93
93
 
94
+ Use the date filter to limit score metrics to a preset or custom time range.
95
+
94
96
  ### Scorers
95
97
 
96
98
  The Scorers tab displays the results of your agent's scorers as they run. When messages pass through your agent, the defined scorers evaluate each output asynchronously and render their results here. This allows you to understand how your scorers respond to different interactions, compare performance across test cases, and identify areas for improvement.
@@ -591,9 +591,7 @@ const embedStep = createStep({
591
591
  inputSchema: z.object({ chunk: z.string() }),
592
592
  outputSchema: z.object({ embedding: z.array(z.number()) }),
593
593
  execute: async ({ inputData }) => ({
594
- embedding: [
595
- /* vector embedding */
596
- ],
594
+ embedding: [/* vector embedding */],
597
595
  }),
598
596
  })
599
597
 
@@ -23,6 +23,7 @@ Available providers:
23
23
  - [`LocalFilesystem`](https://mastra.ai/reference/workspace/local-filesystem): Stores files in a directory on disk
24
24
  - [`S3Filesystem`](https://mastra.ai/reference/workspace/s3-filesystem): Stores files in Amazon S3 or S3-compatible storage (R2, MinIO, Tigris)
25
25
  - [`GCSFilesystem`](https://mastra.ai/reference/workspace/gcs-filesystem): Stores files in Google Cloud Storage
26
+ - [`PlatformFilesystem`](https://mastra.ai/reference/workspace/platform-filesystem): Stores files in a Mastra Platform workspace bucket
26
27
  - [`GoogleDriveFilesystem`](https://mastra.ai/reference/workspace/google-drive-filesystem): Stores files inside a Google Drive folder
27
28
  - [`AzureBlobFilesystem`](https://mastra.ai/reference/workspace/azure-blob-filesystem): Stores files in Azure Blob Storage
28
29
  - [`FilesSDKFilesystem`](https://mastra.ai/reference/workspace/files-sdk-filesystem): Stores files in any [FilesSDK](https://files-sdk.dev) adapter (S3, R2, GCS, Azure Blob, Vercel Blob, local filesystem, and more) — useful when you want one provider that can target multiple backends
@@ -26,6 +26,7 @@ A sandbox provider executes commands in a controlled environment:
26
26
  - [`DaytonaSandbox`](https://mastra.ai/reference/workspace/daytona-sandbox): Executes commands in isolated Daytona cloud sandboxes
27
27
  - [`E2BSandbox`](https://mastra.ai/reference/workspace/e2b-sandbox): Executes commands in isolated E2B cloud sandboxes
28
28
  - [`ModalSandbox`](https://mastra.ai/reference/workspace/modal-sandbox): Executes commands in isolated Modal cloud sandboxes
29
+ - [`PlatformSandbox`](https://mastra.ai/reference/workspace/platform-sandbox): Executes commands in a sandbox tied to a Mastra Platform environment
29
30
  - [`RailwaySandbox`](https://mastra.ai/reference/workspace/railway-sandbox): Executes commands in ephemeral, isolated Railway cloud sandboxes
30
31
 
31
32
  ## Basic usage
@@ -2,21 +2,21 @@
2
2
 
3
3
  # Mastra Quickstart
4
4
 
5
- **For AI agents:** This page provides information for humans on how to run an interactive CLI to create a boilerplate Mastra project (with agents, workflows, and tools). You can run it non-interactively like so: `npm create mastra@latest <project-name> -- --default`. If you need to build a Mastra project from scratch (e.g. as a Node.js script printing to stdout), navigate to <https://mastra.ai/docs/getting-started/manual-install> instead.
5
+ **For AI agents:** Create a new Mastra project non-interactively with `npm create mastra@latest <project-name> -- --llm <provider>`, replacing `<provider>` with `openai`, `anthropic`, `google`, or `xai`. For a minimal project without an agent or model provider, use `npm create mastra@latest <project-name> -- --empty`. To build a Mastra project from scratch, see the [manual installation guide](https://mastra.ai/docs/getting-started/manual-install).
6
6
 
7
- The `create mastra` CLI command is the quickest way to get started. It walks you through setup and creates example agents, workflows, and tools for you to run locally or adapt.
7
+ The `create-mastra` CLI is the quickest way to start a Mastra project. It creates an agent harness with workspace tools, memory, task tracking, web access, schedules, storage, and observability.
8
8
 
9
- If you need more control over the setup, see the [manual installation guide](https://mastra.ai/docs/getting-started/manual-install). You can also use [`mastra init`](https://mastra.ai/reference/cli/mastra) for existing projects.
9
+ For more control, see the [manual installation guide](https://mastra.ai/docs/getting-started/manual-install). To add Mastra to an existing project, use [`mastra init`](https://mastra.ai/reference/cli/mastra).
10
10
 
11
- > **📹 Watch:** Watch [Mastra AI agent course](https://www.youtube.com/watch?v=lCmf_qrGfGA) for a guided introduction to building agents with Mastra.
11
+ > **📹 Watch:** Watch the [Mastra AI agent course](https://www.youtube.com/watch?v=lCmf_qrGfGA) for a guided introduction to building agents with Mastra.
12
12
 
13
13
  ## Before you begin
14
14
 
15
- - You'll need an API key from a supported [model provider](https://mastra.ai/models). If you don't have a preference, use [OpenAI](https://mastra.ai/models/providers/openai).
15
+ You'll need an API key from OpenAI, Anthropic, Google Gemini, or xAI. You can skip entering it during setup and add it to `.env` later.
16
16
 
17
- ## Initialize Mastra
17
+ ## Create the project
18
18
 
19
- You can run `create mastra` anywhere on your machine. Start the setup wizard:
19
+ Run the interactive setup:
20
20
 
21
21
  **npm**:
22
22
 
@@ -42,32 +42,47 @@ yarn create mastra
42
42
  bunx create-mastra
43
43
  ```
44
44
 
45
- You'll be prompted for various configuration options, including your LLM provider and whether to enable [Observability](https://mastra.ai/docs/mastra-platform/observability) on the Mastra platform.
45
+ The command asks for a project name, model provider, and optional API key. It then installs dependencies, installs Mastra skills for your coding assistants, and creates an initial Git commit when you aren't already inside a repository.
46
46
 
47
- The wizard creates a new directory for your project with a `src/mastra` folder containing an example weather agent and the following files:
47
+ The generated `src/mastra` directory contains the Mastra entry point, agent, workspace tools, and supporting code. See the [project structure reference](https://mastra.ai/reference/project-structure) for the standard Mastra layout.
48
48
 
49
- - `index.ts`: Entry point for all Mastra-related code and configuration
50
- - `agents/weather-agent.ts`: A weather agent with a prompt that uses the tool
51
- - `tools/weather-tool.ts`: A tool to fetch weather for a given location
52
- - `workflows/weather-workflow.ts`: A workflow that runs the weather agent
53
- - `scorers/weather-scorer.ts`: A scorer to evaluate the weather agent's responses
49
+ > **Tip:** Use `--template <template>` to start from a template, or `--empty` to create a minimal provider-free project. Use `--no-skills` or `--no-git` to skip automatic setup. See the [`create-mastra` reference](https://mastra.ai/reference/cli/create-mastra) for all flags.
54
50
 
55
- Depending on your choices, you'll also end up with [Mastra Skills](https://mastra.ai/docs/getting-started/build-with-ai) or the [MCP Docs Server](https://mastra.ai/docs/getting-started/build-with-ai) installed. Learn more about Mastra's [project structure](https://mastra.ai/reference/project-structure).
51
+ ## Test your agent
56
52
 
57
- > **Tip:** You can use [flags](https://mastra.ai/reference/cli/create-mastra) with `create mastra` like `--no-example` to skip the example weather agent or `--template` to start from a specific [template](https://mastra.ai/templates).
53
+ Follow the terminal instructions to enter the project directory and start the development server:
58
54
 
59
- ## Test your agent
55
+ **npm**:
56
+
57
+ ```bash
58
+ npm run dev
59
+ ```
60
+
61
+ **pnpm**:
62
+
63
+ ```bash
64
+ pnpm run dev
65
+ ```
66
+
67
+ **Yarn**:
68
+
69
+ ```bash
70
+ yarn dev
71
+ ```
72
+
73
+ **Bun**:
60
74
 
61
- Once setup is complete, follow the instructions in your terminal to start the Mastra dev server, then open Studio at [localhost:4111](http://localhost:4111).
75
+ ```bash
76
+ bun run dev
77
+ ```
62
78
 
63
- Try asking about the weather. If your API key is set up correctly, you'll get a response in Studio.
79
+ Open [Studio at localhost:4111](http://localhost:4111), select the agent, and send a message. Add the provider API key named in `.env.example` to an `.env` file if you skipped it during setup.
64
80
 
65
- [Studio](https://mastra.ai/docs/studio/overview) lets you rapidly build and prototype agents without needing to build a UI. Once you're ready, you can integrate your Mastra agent into your app using the guides below.
81
+ [Studio](https://mastra.ai/docs/studio/overview) lets you build and test agents without creating a separate UI.
66
82
 
67
83
  ## Next steps
68
84
 
69
- - Integrate Mastra with your frontend framework: [Next.js](https://mastra.ai/guides/getting-started/next-js), [React](https://mastra.ai/guides/getting-started/vite-react), or [Astro](https://mastra.ai/guides/getting-started/astro)
70
- - Read more about [Mastra's features](https://mastra.ai/docs)
71
- - Learn how you can [build Mastra with AI](https://mastra.ai/docs/getting-started/build-with-ai)
72
- - Build an agent from scratch following one of our [guides](https://mastra.ai/guides)
73
- - Watch conceptual guides on our [YouTube channel](https://www.youtube.com/@mastra-ai) and [subscribe](https://www.youtube.com/@mastra-ai?sub_confirmation=1)
85
+ - Integrate Mastra with [Next.js](https://mastra.ai/guides/getting-started/next-js), [React](https://mastra.ai/guides/getting-started/vite-react), or [Astro](https://mastra.ai/guides/getting-started/astro)
86
+ - Learn how to [build Mastra with AI](https://mastra.ai/docs/getting-started/build-with-ai)
87
+ - Build an agent from scratch with a [guide](https://mastra.ai/guides)
88
+ - Watch the [Mastra YouTube channel](https://www.youtube.com/@mastra-ai)
@@ -6,7 +6,7 @@ Mastra offers a variety of guides to help you build and work with Mastra, from b
6
6
 
7
7
  ## New project
8
8
 
9
- The `create mastra` command is the fastest way to build your first agent. It walks you through setup and generates an example agent you can run and adapt in [Studio](https://mastra.ai/docs/studio/overview) right away. You can always integrate Mastra with your framework or UI when you’re ready.
9
+ The `npm create mastra@latest` command is the fastest way to build your first agent. It creates a ready-to-run agent harness that you can explore and adapt in [Studio](https://mastra.ai/docs/studio/overview) right away. You can always integrate Mastra with your framework or UI when you’re ready.
10
10
 
11
11
  - [Quickstart](https://mastra.ai/guides/getting-started/quickstart)
12
12
 
@@ -245,9 +245,7 @@ The following options are available in the standard `.stream()` and `generate()`
245
245
  const result = await agent.stream(messages, {
246
246
  prepareStep: ({ step, state }) => {
247
247
  console.log('About to execute step:', step)
248
- return {
249
- /* modified state */
250
- }
248
+ return {/* modified state */}
251
249
  },
252
250
  })
253
251
  ```
@@ -10,6 +10,7 @@ List of required environment variables for each model provider and gateway suppo
10
10
  | [Abacus](https://mastra.ai/models/providers/abacus) | `abacus/*` | `ABACUS_API_KEY` |
11
11
  | [abliteration.ai](https://mastra.ai/models/providers/abliteration-ai) | `abliteration-ai/*` | `ABLIT_KEY` |
12
12
  | [AI-ROUTER](https://mastra.ai/models/providers/ai-router) | `ai-router/*` | `AI_ROUTER_API_KEY` |
13
+ | [AKI.IO](https://mastra.ai/models/providers/aki-io) | `aki-io/*` | `AKI_IO_API_KEY` |
13
14
  | [Alibaba](https://mastra.ai/models/providers/alibaba) | `alibaba/*` | `DASHSCOPE_API_KEY` |
14
15
  | [Alibaba (China)](https://mastra.ai/models/providers/alibaba-cn) | `alibaba-cn/*` | `DASHSCOPE_API_KEY` |
15
16
  | [Alibaba Coding Plan](https://mastra.ai/models/providers/alibaba-coding-plan) | `alibaba-coding-plan/*` | `ALIBABA_CODING_PLAN_API_KEY` |
@@ -29,6 +30,7 @@ List of required environment variables for each model provider and gateway suppo
29
30
  | [Chutes](https://mastra.ai/models/providers/chutes) | `chutes/*` | `CHUTES_API_KEY` |
30
31
  | [Clarifai](https://mastra.ai/models/providers/clarifai) | `clarifai/*` | `CLARIFAI_PAT` |
31
32
  | [Claudinio](https://mastra.ai/models/providers/claudinio) | `claudinio/*` | `CLAUDINIO_API_KEY` |
33
+ | [ClinePass](https://mastra.ai/models/providers/cline-pass) | `cline-pass/*` | `CLINE_API_KEY` |
32
34
  | [CloudFerro Sherlock](https://mastra.ai/models/providers/cloudferro-sherlock) | `cloudferro-sherlock/*` | `CLOUDFERRO_SHERLOCK_API_KEY` |
33
35
  | [Cloudflare Workers AI](https://mastra.ai/models/providers/cloudflare-workers-ai) | `cloudflare-workers-ai/*` | `CLOUDFLARE_ACCOUNT_ID`, `CLOUDFLARE_API_KEY` |
34
36
  | [Cortecs](https://mastra.ai/models/providers/cortecs) | `cortecs/*` | `CORTECS_API_KEY` |
@@ -132,6 +134,7 @@ List of required environment variables for each model provider and gateway suppo
132
134
  | [Tencent Token Plan](https://mastra.ai/models/providers/tencent-token-plan) | `tencent-token-plan/*` | `TENCENT_TOKEN_PLAN_API_KEY` |
133
135
  | [Tencent TokenHub](https://mastra.ai/models/providers/tencent-tokenhub) | `tencent-tokenhub/*` | `TENCENT_TOKENHUB_API_KEY` |
134
136
  | [The Grid AI](https://mastra.ai/models/providers/the-grid-ai) | `the-grid-ai/*` | `THEGRIDAI_API_KEY` |
137
+ | [Thinking Machines](https://mastra.ai/models/providers/thinkingmachines) | `thinkingmachines/*` | `TINKER_API_KEY` |
135
138
  | [Tinfoil](https://mastra.ai/models/providers/tinfoil) | `tinfoil/*` | `TINFOIL_API_KEY` |
136
139
  | [Together AI](https://mastra.ai/models/providers/togetherai) | `togetherai/*` | `TOGETHER_API_KEY` |
137
140
  | [TrustedRouter](https://mastra.ai/models/providers/trustedrouter) | `trustedrouter/*` | `TRUSTEDROUTER_API_KEY` |
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Netlify
4
4
 
5
- Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 70 models through Mastra's model router.
5
+ Netlify AI Gateway provides unified access to multiple providers with built-in caching and observability. Access 72 models through Mastra's model router.
6
6
 
7
7
  Learn more in the [Netlify documentation](https://docs.netlify.com/build/ai-gateway/overview/).
8
8
 
@@ -62,6 +62,8 @@ ANTHROPIC_API_KEY=ant-...
62
62
  | `gemini/gemini-3.1-pro-preview` |
63
63
  | `gemini/gemini-3.1-pro-preview-customtools` |
64
64
  | `gemini/gemini-3.5-flash` |
65
+ | `gemini/gemini-3.5-flash-lite` |
66
+ | `gemini/gemini-3.6-flash` |
65
67
  | `gemini/gemini-flash-latest` |
66
68
  | `gemini/gemini-flash-lite-latest` |
67
69
  | `openai/chat-latest` |