@mastra/mcp-docs-server 1.1.38-alpha.1 → 1.1.38-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.
- package/.docs/docs/server/auth/fga.md +69 -1
- package/.docs/models/gateways/openrouter.md +211 -36
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/orcarouter.md +151 -0
- package/.docs/models/providers/umans-ai-coding-plan.md +75 -0
- package/.docs/models/providers/xpersona.md +1 -1
- package/.docs/models/providers.md +2 -0
- package/CHANGELOG.md +14 -0
- package/package.json +4 -4
|
@@ -87,6 +87,74 @@ permissionMapping: {
|
|
|
87
87
|
|
|
88
88
|
If no mapping exists for a permission, the original string is passed through.
|
|
89
89
|
|
|
90
|
+
Use `validatePermissions()` to validate the full set of permissions Mastra may emit at startup. Use this when a provider requires every Mastra permission to have an explicit provider permission slug.
|
|
91
|
+
|
|
92
|
+
### Route policy coverage
|
|
93
|
+
|
|
94
|
+
Mastra includes route-level FGA metadata for built-in resource routes, including agents, workflows, tools, MCP tools, memory threads, responses, and conversations. A route is checked when it has route-level `fga` metadata, when Mastra can derive built-in metadata for that route, or when the provider supplies metadata with `resolveRouteFGA()`.
|
|
95
|
+
|
|
96
|
+
To deny protected routes that do not resolve FGA metadata, configure route policy coverage on the FGA provider:
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
const fga = new MastraFGAWorkos({
|
|
100
|
+
resourceMapping: {
|
|
101
|
+
project: { fgaResourceType: 'project' },
|
|
102
|
+
},
|
|
103
|
+
permissionMapping: {
|
|
104
|
+
'projects:read': 'read',
|
|
105
|
+
},
|
|
106
|
+
requireForProtectedRoutes: true,
|
|
107
|
+
auditProtectedRoutes: 'warn',
|
|
108
|
+
validatePermissions: async permissions => {
|
|
109
|
+
// Throw if a Mastra permission is missing from permissionMapping.
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Set `auditProtectedRoutes: 'error'` to fail startup when protected routes are missing built-in FGA metadata. If `requireForProtectedRoutes` is enabled, Mastra logs this audit as a warning by default.
|
|
115
|
+
|
|
116
|
+
For custom routes, prefer route-level `fga` metadata. This keeps authorization policy next to the route:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
import { createRoute } from '@mastra/server/server-adapter';
|
|
120
|
+
|
|
121
|
+
export const getProjectRoute = createRoute({
|
|
122
|
+
method: 'GET',
|
|
123
|
+
path: '/projects/:projectId',
|
|
124
|
+
responseType: 'json',
|
|
125
|
+
requiresAuth: true,
|
|
126
|
+
fga: {
|
|
127
|
+
resourceType: 'project',
|
|
128
|
+
resourceIdParam: 'projectId',
|
|
129
|
+
permission: 'projects:read',
|
|
130
|
+
},
|
|
131
|
+
handler: async () => {
|
|
132
|
+
return { project: null };
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Use `resolveRouteFGA()` only when route metadata must be derived centrally from route, params, or request context. A route map scales better than string-prefix checks:
|
|
138
|
+
|
|
139
|
+
```typescript
|
|
140
|
+
import type { FGARouteConfig, FGARouteResolver } from '@mastra/core/auth/ee';
|
|
141
|
+
|
|
142
|
+
const routeFGA = {
|
|
143
|
+
'GET /billing/:accountId': {
|
|
144
|
+
resourceType: 'account',
|
|
145
|
+
resourceIdParam: 'accountId',
|
|
146
|
+
permission: 'billing:read',
|
|
147
|
+
},
|
|
148
|
+
} satisfies Record<string, FGARouteConfig>;
|
|
149
|
+
|
|
150
|
+
const resolveRouteFGA: FGARouteResolver = ({ route }) => routeFGA[`${route.method} ${route.path}`];
|
|
151
|
+
|
|
152
|
+
const fga = new MastraFGAWorkos({
|
|
153
|
+
/* ... */
|
|
154
|
+
resolveRouteFGA,
|
|
155
|
+
});
|
|
156
|
+
```
|
|
157
|
+
|
|
90
158
|
## Enforcement points
|
|
91
159
|
|
|
92
160
|
When an FGA provider is configured, Mastra automatically checks authorization at these lifecycle points:
|
|
@@ -98,7 +166,7 @@ When an FGA provider is configured, Mastra automatically checks authorization at
|
|
|
98
166
|
| Tool execution | `tools:execute` | `{ type: 'tool', id: toolName }` |
|
|
99
167
|
| Thread/memory access | `memory:read`, `memory:write`, `memory:delete` | `{ type: 'thread', id: threadId }` |
|
|
100
168
|
| MCP tool execution | `tools:execute` | `{ type: 'tool', id: toolName }` |
|
|
101
|
-
| HTTP routes
|
|
169
|
+
| HTTP resource routes | Configured per route | Configured per route |
|
|
102
170
|
|
|
103
171
|
All checks are **no-ops when FGA is not configured**, maintaining backward compatibility.
|
|
104
172
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OpenRouter
|
|
2
2
|
|
|
3
|
-
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access
|
|
3
|
+
OpenRouter aggregates models from multiple providers with enhanced features like rate limiting and failover. Access 364 models through Mastra's model router.
|
|
4
4
|
|
|
5
5
|
Learn more in the [OpenRouter documentation](https://openrouter.ai/models).
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ const agent = new Agent({
|
|
|
13
13
|
id: "my-agent",
|
|
14
14
|
name: "My Agent",
|
|
15
15
|
instructions: "You are a helpful assistant",
|
|
16
|
-
model: "openrouter/
|
|
16
|
+
model: "openrouter/ai21/jamba-large-1.7"
|
|
17
17
|
});
|
|
18
18
|
```
|
|
19
19
|
|
|
@@ -34,96 +34,188 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
34
34
|
|
|
35
35
|
| Model |
|
|
36
36
|
| --------------------------------------------------------------- |
|
|
37
|
+
| `~anthropic/claude-haiku-latest` |
|
|
38
|
+
| `~anthropic/claude-opus-latest` |
|
|
39
|
+
| `~anthropic/claude-sonnet-latest` |
|
|
40
|
+
| `~google/gemini-flash-latest` |
|
|
41
|
+
| `~google/gemini-pro-latest` |
|
|
42
|
+
| `~moonshotai/kimi-latest` |
|
|
43
|
+
| `~openai/gpt-latest` |
|
|
44
|
+
| `~openai/gpt-mini-latest` |
|
|
45
|
+
| `ai21/jamba-large-1.7` |
|
|
46
|
+
| `aion-labs/aion-1.0` |
|
|
47
|
+
| `aion-labs/aion-1.0-mini` |
|
|
48
|
+
| `aion-labs/aion-2.0` |
|
|
49
|
+
| `aion-labs/aion-rp-llama-3.1-8b` |
|
|
50
|
+
| `alfredpros/codellama-7b-instruct-solidity` |
|
|
51
|
+
| `alibaba/tongyi-deepresearch-30b-a3b` |
|
|
52
|
+
| `allenai/olmo-3-32b-think` |
|
|
53
|
+
| `amazon/nova-2-lite-v1` |
|
|
54
|
+
| `amazon/nova-lite-v1` |
|
|
55
|
+
| `amazon/nova-micro-v1` |
|
|
56
|
+
| `amazon/nova-premier-v1` |
|
|
57
|
+
| `amazon/nova-pro-v1` |
|
|
58
|
+
| `anthracite-org/magnum-v4-72b` |
|
|
59
|
+
| `anthropic/claude-3-haiku` |
|
|
37
60
|
| `anthropic/claude-3.5-haiku` |
|
|
38
|
-
| `anthropic/claude-3.7-sonnet` |
|
|
39
61
|
| `anthropic/claude-haiku-4.5` |
|
|
40
62
|
| `anthropic/claude-opus-4` |
|
|
41
63
|
| `anthropic/claude-opus-4.1` |
|
|
42
64
|
| `anthropic/claude-opus-4.5` |
|
|
43
65
|
| `anthropic/claude-opus-4.6` |
|
|
66
|
+
| `anthropic/claude-opus-4.6-fast` |
|
|
44
67
|
| `anthropic/claude-opus-4.7` |
|
|
68
|
+
| `anthropic/claude-opus-4.7-fast` |
|
|
45
69
|
| `anthropic/claude-sonnet-4` |
|
|
46
70
|
| `anthropic/claude-sonnet-4.5` |
|
|
47
71
|
| `anthropic/claude-sonnet-4.6` |
|
|
48
|
-
| `arcee-ai/
|
|
72
|
+
| `arcee-ai/coder-large` |
|
|
73
|
+
| `arcee-ai/maestro-reasoning` |
|
|
74
|
+
| `arcee-ai/spotlight` |
|
|
75
|
+
| `arcee-ai/trinity-large-preview` |
|
|
49
76
|
| `arcee-ai/trinity-large-thinking` |
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
77
|
+
| `arcee-ai/trinity-large-thinking:free` |
|
|
78
|
+
| `arcee-ai/trinity-mini` |
|
|
79
|
+
| `arcee-ai/virtuoso-large` |
|
|
80
|
+
| `baidu/cobuddy:free` |
|
|
81
|
+
| `baidu/ernie-4.5-21b-a3b` |
|
|
82
|
+
| `baidu/ernie-4.5-21b-a3b-thinking` |
|
|
83
|
+
| `baidu/ernie-4.5-300b-a47b` |
|
|
84
|
+
| `baidu/ernie-4.5-vl-28b-a3b` |
|
|
85
|
+
| `baidu/ernie-4.5-vl-424b-a47b` |
|
|
86
|
+
| `baidu/qianfan-ocr-fast` |
|
|
87
|
+
| `bytedance-seed/seed-1.6` |
|
|
88
|
+
| `bytedance-seed/seed-1.6-flash` |
|
|
89
|
+
| `bytedance-seed/seed-2.0-lite` |
|
|
90
|
+
| `bytedance-seed/seed-2.0-mini` |
|
|
91
|
+
| `bytedance/ui-tars-1.5-7b` |
|
|
55
92
|
| `cognitivecomputations/dolphin-mistral-24b-venice-edition:free` |
|
|
93
|
+
| `cohere/command-a` |
|
|
94
|
+
| `cohere/command-r-08-2024` |
|
|
95
|
+
| `cohere/command-r-plus-08-2024` |
|
|
96
|
+
| `cohere/command-r7b-12-2024` |
|
|
97
|
+
| `deepcogito/cogito-v2.1-671b` |
|
|
98
|
+
| `deepseek/deepseek-chat` |
|
|
56
99
|
| `deepseek/deepseek-chat-v3-0324` |
|
|
57
100
|
| `deepseek/deepseek-chat-v3.1` |
|
|
58
101
|
| `deepseek/deepseek-r1` |
|
|
102
|
+
| `deepseek/deepseek-r1-0528` |
|
|
59
103
|
| `deepseek/deepseek-r1-distill-llama-70b` |
|
|
104
|
+
| `deepseek/deepseek-r1-distill-qwen-32b` |
|
|
60
105
|
| `deepseek/deepseek-v3.1-terminus` |
|
|
61
|
-
| `deepseek/deepseek-v3.1-terminus:exacto` |
|
|
62
106
|
| `deepseek/deepseek-v3.2` |
|
|
107
|
+
| `deepseek/deepseek-v3.2-exp` |
|
|
63
108
|
| `deepseek/deepseek-v3.2-speciale` |
|
|
64
109
|
| `deepseek/deepseek-v4-flash` |
|
|
110
|
+
| `deepseek/deepseek-v4-flash:free` |
|
|
65
111
|
| `deepseek/deepseek-v4-pro` |
|
|
112
|
+
| `essentialai/rnj-1-instruct` |
|
|
66
113
|
| `google/gemini-2.0-flash-001` |
|
|
114
|
+
| `google/gemini-2.0-flash-lite-001` |
|
|
67
115
|
| `google/gemini-2.5-flash` |
|
|
116
|
+
| `google/gemini-2.5-flash-image` |
|
|
68
117
|
| `google/gemini-2.5-flash-lite` |
|
|
69
118
|
| `google/gemini-2.5-flash-lite-preview-09-2025` |
|
|
70
|
-
| `google/gemini-2.5-flash-preview-09-2025` |
|
|
71
119
|
| `google/gemini-2.5-pro` |
|
|
120
|
+
| `google/gemini-2.5-pro-preview` |
|
|
72
121
|
| `google/gemini-2.5-pro-preview-05-06` |
|
|
73
|
-
| `google/gemini-2.5-pro-preview-06-05` |
|
|
74
122
|
| `google/gemini-3-flash-preview` |
|
|
75
|
-
| `google/gemini-3-pro-preview`
|
|
123
|
+
| `google/gemini-3-pro-image-preview` |
|
|
76
124
|
| `google/gemini-3.1-flash-image-preview` |
|
|
125
|
+
| `google/gemini-3.1-flash-lite` |
|
|
77
126
|
| `google/gemini-3.1-flash-lite-preview` |
|
|
78
127
|
| `google/gemini-3.1-pro-preview` |
|
|
79
128
|
| `google/gemini-3.1-pro-preview-customtools` |
|
|
80
|
-
| `google/gemma-2-
|
|
129
|
+
| `google/gemma-2-27b-it` |
|
|
81
130
|
| `google/gemma-3-12b-it` |
|
|
82
|
-
| `google/gemma-3-12b-it:free` |
|
|
83
131
|
| `google/gemma-3-27b-it` |
|
|
84
|
-
| `google/gemma-3-27b-it:free` |
|
|
85
132
|
| `google/gemma-3-4b-it` |
|
|
86
|
-
| `google/gemma-3-4b-it:free` |
|
|
87
|
-
| `google/gemma-3n-e2b-it:free` |
|
|
88
133
|
| `google/gemma-3n-e4b-it` |
|
|
89
|
-
| `google/gemma-3n-e4b-it:free` |
|
|
90
134
|
| `google/gemma-4-26b-a4b-it` |
|
|
91
135
|
| `google/gemma-4-26b-a4b-it:free` |
|
|
92
136
|
| `google/gemma-4-31b-it` |
|
|
93
137
|
| `google/gemma-4-31b-it:free` |
|
|
138
|
+
| `google/lyria-3-clip-preview` |
|
|
139
|
+
| `google/lyria-3-pro-preview` |
|
|
140
|
+
| `gryphe/mythomax-l2-13b` |
|
|
141
|
+
| `ibm-granite/granite-4.0-h-micro` |
|
|
142
|
+
| `ibm-granite/granite-4.1-8b` |
|
|
94
143
|
| `inception/mercury-2` |
|
|
95
|
-
| `
|
|
144
|
+
| `inclusionai/ling-2.6-1t` |
|
|
145
|
+
| `inclusionai/ling-2.6-flash` |
|
|
146
|
+
| `inclusionai/ring-2.6-1t:free` |
|
|
147
|
+
| `inflection/inflection-3-pi` |
|
|
148
|
+
| `inflection/inflection-3-productivity` |
|
|
149
|
+
| `kwaipilot/kat-coder-pro-v2` |
|
|
150
|
+
| `liquid/lfm-2-24b-a2b` |
|
|
96
151
|
| `liquid/lfm-2.5-1.2b-instruct:free` |
|
|
97
152
|
| `liquid/lfm-2.5-1.2b-thinking:free` |
|
|
153
|
+
| `mancer/weaver` |
|
|
154
|
+
| `meta-llama/llama-3-70b-instruct` |
|
|
155
|
+
| `meta-llama/llama-3-8b-instruct` |
|
|
156
|
+
| `meta-llama/llama-3.1-70b-instruct` |
|
|
157
|
+
| `meta-llama/llama-3.1-8b-instruct` |
|
|
98
158
|
| `meta-llama/llama-3.2-11b-vision-instruct` |
|
|
159
|
+
| `meta-llama/llama-3.2-1b-instruct` |
|
|
160
|
+
| `meta-llama/llama-3.2-3b-instruct` |
|
|
99
161
|
| `meta-llama/llama-3.2-3b-instruct:free` |
|
|
162
|
+
| `meta-llama/llama-3.3-70b-instruct` |
|
|
100
163
|
| `meta-llama/llama-3.3-70b-instruct:free` |
|
|
164
|
+
| `meta-llama/llama-4-maverick` |
|
|
165
|
+
| `meta-llama/llama-4-scout` |
|
|
166
|
+
| `meta-llama/llama-guard-3-8b` |
|
|
167
|
+
| `meta-llama/llama-guard-4-12b` |
|
|
168
|
+
| `microsoft/phi-4` |
|
|
169
|
+
| `microsoft/phi-4-mini-instruct` |
|
|
170
|
+
| `microsoft/wizardlm-2-8x22b` |
|
|
101
171
|
| `minimax/minimax-01` |
|
|
102
172
|
| `minimax/minimax-m1` |
|
|
103
173
|
| `minimax/minimax-m2` |
|
|
174
|
+
| `minimax/minimax-m2-her` |
|
|
104
175
|
| `minimax/minimax-m2.1` |
|
|
105
176
|
| `minimax/minimax-m2.5` |
|
|
106
177
|
| `minimax/minimax-m2.5:free` |
|
|
107
178
|
| `minimax/minimax-m2.7` |
|
|
108
179
|
| `mistralai/codestral-2508` |
|
|
109
180
|
| `mistralai/devstral-2512` |
|
|
110
|
-
| `mistralai/devstral-medium
|
|
111
|
-
| `mistralai/devstral-small
|
|
112
|
-
| `mistralai/
|
|
181
|
+
| `mistralai/devstral-medium` |
|
|
182
|
+
| `mistralai/devstral-small` |
|
|
183
|
+
| `mistralai/ministral-14b-2512` |
|
|
184
|
+
| `mistralai/ministral-3b-2512` |
|
|
185
|
+
| `mistralai/ministral-8b-2512` |
|
|
186
|
+
| `mistralai/mistral-7b-instruct-v0.1` |
|
|
187
|
+
| `mistralai/mistral-large` |
|
|
188
|
+
| `mistralai/mistral-large-2407` |
|
|
189
|
+
| `mistralai/mistral-large-2411` |
|
|
190
|
+
| `mistralai/mistral-large-2512` |
|
|
113
191
|
| `mistralai/mistral-medium-3` |
|
|
192
|
+
| `mistralai/mistral-medium-3-5` |
|
|
114
193
|
| `mistralai/mistral-medium-3.1` |
|
|
194
|
+
| `mistralai/mistral-nemo` |
|
|
195
|
+
| `mistralai/mistral-saba` |
|
|
196
|
+
| `mistralai/mistral-small-24b-instruct-2501` |
|
|
115
197
|
| `mistralai/mistral-small-2603` |
|
|
116
198
|
| `mistralai/mistral-small-3.1-24b-instruct` |
|
|
117
199
|
| `mistralai/mistral-small-3.2-24b-instruct` |
|
|
200
|
+
| `mistralai/mixtral-8x22b-instruct` |
|
|
201
|
+
| `mistralai/pixtral-large-2411` |
|
|
202
|
+
| `mistralai/voxtral-small-24b-2507` |
|
|
118
203
|
| `moonshotai/kimi-k2` |
|
|
119
204
|
| `moonshotai/kimi-k2-0905` |
|
|
120
|
-
| `moonshotai/kimi-k2-0905:exacto` |
|
|
121
205
|
| `moonshotai/kimi-k2-thinking` |
|
|
122
206
|
| `moonshotai/kimi-k2.5` |
|
|
123
207
|
| `moonshotai/kimi-k2.6` |
|
|
208
|
+
| `morph/morph-v3-fast` |
|
|
209
|
+
| `morph/morph-v3-large` |
|
|
210
|
+
| `nex-agi/deepseek-v3.1-nex-n1` |
|
|
211
|
+
| `nousresearch/hermes-2-pro-llama-3-8b` |
|
|
212
|
+
| `nousresearch/hermes-3-llama-3.1-405b` |
|
|
124
213
|
| `nousresearch/hermes-3-llama-3.1-405b:free` |
|
|
214
|
+
| `nousresearch/hermes-3-llama-3.1-70b` |
|
|
125
215
|
| `nousresearch/hermes-4-405b` |
|
|
126
216
|
| `nousresearch/hermes-4-70b` |
|
|
217
|
+
| `nvidia/llama-3.3-nemotron-super-49b-v1.5` |
|
|
218
|
+
| `nvidia/nemotron-3-nano-30b-a3b` |
|
|
127
219
|
| `nvidia/nemotron-3-nano-30b-a3b:free` |
|
|
128
220
|
| `nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free` |
|
|
129
221
|
| `nvidia/nemotron-3-super-120b-a12b` |
|
|
@@ -131,13 +223,32 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
131
223
|
| `nvidia/nemotron-nano-12b-v2-vl:free` |
|
|
132
224
|
| `nvidia/nemotron-nano-9b-v2` |
|
|
133
225
|
| `nvidia/nemotron-nano-9b-v2:free` |
|
|
226
|
+
| `openai/gpt-3.5-turbo` |
|
|
227
|
+
| `openai/gpt-3.5-turbo-0613` |
|
|
228
|
+
| `openai/gpt-3.5-turbo-16k` |
|
|
229
|
+
| `openai/gpt-3.5-turbo-instruct` |
|
|
230
|
+
| `openai/gpt-4` |
|
|
231
|
+
| `openai/gpt-4-0314` |
|
|
232
|
+
| `openai/gpt-4-1106-preview` |
|
|
233
|
+
| `openai/gpt-4-turbo` |
|
|
234
|
+
| `openai/gpt-4-turbo-preview` |
|
|
134
235
|
| `openai/gpt-4.1` |
|
|
135
236
|
| `openai/gpt-4.1-mini` |
|
|
237
|
+
| `openai/gpt-4.1-nano` |
|
|
238
|
+
| `openai/gpt-4o` |
|
|
239
|
+
| `openai/gpt-4o-2024-05-13` |
|
|
240
|
+
| `openai/gpt-4o-2024-08-06` |
|
|
241
|
+
| `openai/gpt-4o-2024-11-20` |
|
|
242
|
+
| `openai/gpt-4o-audio-preview` |
|
|
136
243
|
| `openai/gpt-4o-mini` |
|
|
244
|
+
| `openai/gpt-4o-mini-2024-07-18` |
|
|
245
|
+
| `openai/gpt-4o-mini-search-preview` |
|
|
246
|
+
| `openai/gpt-4o-search-preview` |
|
|
137
247
|
| `openai/gpt-5` |
|
|
138
248
|
| `openai/gpt-5-chat` |
|
|
139
249
|
| `openai/gpt-5-codex` |
|
|
140
250
|
| `openai/gpt-5-image` |
|
|
251
|
+
| `openai/gpt-5-image-mini` |
|
|
141
252
|
| `openai/gpt-5-mini` |
|
|
142
253
|
| `openai/gpt-5-nano` |
|
|
143
254
|
| `openai/gpt-5-pro` |
|
|
@@ -150,52 +261,114 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
150
261
|
| `openai/gpt-5.2-chat` |
|
|
151
262
|
| `openai/gpt-5.2-codex` |
|
|
152
263
|
| `openai/gpt-5.2-pro` |
|
|
264
|
+
| `openai/gpt-5.3-chat` |
|
|
153
265
|
| `openai/gpt-5.3-codex` |
|
|
154
266
|
| `openai/gpt-5.4` |
|
|
267
|
+
| `openai/gpt-5.4-image-2` |
|
|
155
268
|
| `openai/gpt-5.4-mini` |
|
|
156
269
|
| `openai/gpt-5.4-nano` |
|
|
157
270
|
| `openai/gpt-5.4-pro` |
|
|
158
271
|
| `openai/gpt-5.5` |
|
|
159
272
|
| `openai/gpt-5.5-pro` |
|
|
273
|
+
| `openai/gpt-audio` |
|
|
274
|
+
| `openai/gpt-audio-mini` |
|
|
275
|
+
| `openai/gpt-chat-latest` |
|
|
160
276
|
| `openai/gpt-oss-120b` |
|
|
161
|
-
| `openai/gpt-oss-120b:exacto` |
|
|
162
277
|
| `openai/gpt-oss-120b:free` |
|
|
163
278
|
| `openai/gpt-oss-20b` |
|
|
164
279
|
| `openai/gpt-oss-20b:free` |
|
|
165
280
|
| `openai/gpt-oss-safeguard-20b` |
|
|
281
|
+
| `openai/o1` |
|
|
282
|
+
| `openai/o1-pro` |
|
|
283
|
+
| `openai/o3` |
|
|
284
|
+
| `openai/o3-deep-research` |
|
|
285
|
+
| `openai/o3-mini` |
|
|
286
|
+
| `openai/o3-mini-high` |
|
|
287
|
+
| `openai/o3-pro` |
|
|
166
288
|
| `openai/o4-mini` |
|
|
167
|
-
| `
|
|
289
|
+
| `openai/o4-mini-deep-research` |
|
|
290
|
+
| `openai/o4-mini-high` |
|
|
291
|
+
| `openrouter/auto` |
|
|
292
|
+
| `openrouter/bodybuilder` |
|
|
168
293
|
| `openrouter/free` |
|
|
169
294
|
| `openrouter/owl-alpha` |
|
|
170
295
|
| `openrouter/pareto-code` |
|
|
296
|
+
| `perceptron/perceptron-mk1` |
|
|
297
|
+
| `perplexity/sonar` |
|
|
298
|
+
| `perplexity/sonar-deep-research` |
|
|
299
|
+
| `perplexity/sonar-pro` |
|
|
300
|
+
| `perplexity/sonar-pro-search` |
|
|
301
|
+
| `perplexity/sonar-reasoning-pro` |
|
|
171
302
|
| `poolside/laguna-m.1:free` |
|
|
172
303
|
| `poolside/laguna-xs.2:free` |
|
|
173
304
|
| `prime-intellect/intellect-3` |
|
|
305
|
+
| `qwen/qwen-2.5-72b-instruct` |
|
|
306
|
+
| `qwen/qwen-2.5-7b-instruct` |
|
|
174
307
|
| `qwen/qwen-2.5-coder-32b-instruct` |
|
|
175
|
-
| `qwen/qwen-3.6-27b` |
|
|
176
308
|
| `qwen/qwen-plus` |
|
|
309
|
+
| `qwen/qwen-plus-2025-07-28` |
|
|
310
|
+
| `qwen/qwen-plus-2025-07-28:thinking` |
|
|
177
311
|
| `qwen/qwen2.5-vl-72b-instruct` |
|
|
178
|
-
| `qwen/qwen3-
|
|
312
|
+
| `qwen/qwen3-14b` |
|
|
313
|
+
| `qwen/qwen3-235b-a22b` |
|
|
314
|
+
| `qwen/qwen3-235b-a22b-2507` |
|
|
179
315
|
| `qwen/qwen3-235b-a22b-thinking-2507` |
|
|
316
|
+
| `qwen/qwen3-30b-a3b` |
|
|
180
317
|
| `qwen/qwen3-30b-a3b-instruct-2507` |
|
|
181
318
|
| `qwen/qwen3-30b-a3b-thinking-2507` |
|
|
319
|
+
| `qwen/qwen3-32b` |
|
|
320
|
+
| `qwen/qwen3-8b` |
|
|
182
321
|
| `qwen/qwen3-coder` |
|
|
183
322
|
| `qwen/qwen3-coder-30b-a3b-instruct` |
|
|
184
323
|
| `qwen/qwen3-coder-flash` |
|
|
324
|
+
| `qwen/qwen3-coder-next` |
|
|
185
325
|
| `qwen/qwen3-coder-plus` |
|
|
186
|
-
| `qwen/qwen3-coder:
|
|
326
|
+
| `qwen/qwen3-coder:free` |
|
|
187
327
|
| `qwen/qwen3-max` |
|
|
328
|
+
| `qwen/qwen3-max-thinking` |
|
|
188
329
|
| `qwen/qwen3-next-80b-a3b-instruct` |
|
|
330
|
+
| `qwen/qwen3-next-80b-a3b-instruct:free` |
|
|
189
331
|
| `qwen/qwen3-next-80b-a3b-thinking` |
|
|
332
|
+
| `qwen/qwen3-vl-235b-a22b-instruct` |
|
|
333
|
+
| `qwen/qwen3-vl-235b-a22b-thinking` |
|
|
334
|
+
| `qwen/qwen3-vl-30b-a3b-instruct` |
|
|
335
|
+
| `qwen/qwen3-vl-30b-a3b-thinking` |
|
|
336
|
+
| `qwen/qwen3-vl-32b-instruct` |
|
|
337
|
+
| `qwen/qwen3-vl-8b-instruct` |
|
|
338
|
+
| `qwen/qwen3-vl-8b-thinking` |
|
|
339
|
+
| `qwen/qwen3.5-122b-a10b` |
|
|
340
|
+
| `qwen/qwen3.5-27b` |
|
|
341
|
+
| `qwen/qwen3.5-35b-a3b` |
|
|
190
342
|
| `qwen/qwen3.5-397b-a17b` |
|
|
343
|
+
| `qwen/qwen3.5-9b` |
|
|
191
344
|
| `qwen/qwen3.5-flash-02-23` |
|
|
192
345
|
| `qwen/qwen3.5-plus-02-15` |
|
|
346
|
+
| `qwen/qwen3.5-plus-20260420` |
|
|
347
|
+
| `qwen/qwen3.6-27b` |
|
|
348
|
+
| `qwen/qwen3.6-35b-a3b` |
|
|
349
|
+
| `qwen/qwen3.6-flash` |
|
|
350
|
+
| `qwen/qwen3.6-max-preview` |
|
|
193
351
|
| `qwen/qwen3.6-plus` |
|
|
194
|
-
| `
|
|
195
|
-
| `
|
|
196
|
-
| `
|
|
352
|
+
| `rekaai/reka-edge` |
|
|
353
|
+
| `rekaai/reka-flash-3` |
|
|
354
|
+
| `relace/relace-apply-3` |
|
|
355
|
+
| `relace/relace-search` |
|
|
356
|
+
| `sao10k/l3-euryale-70b` |
|
|
357
|
+
| `sao10k/l3-lunaris-8b` |
|
|
358
|
+
| `sao10k/l3.1-70b-hanami-x1` |
|
|
359
|
+
| `sao10k/l3.1-euryale-70b` |
|
|
360
|
+
| `sao10k/l3.3-euryale-70b` |
|
|
197
361
|
| `stepfun/step-3.5-flash` |
|
|
362
|
+
| `switchpoint/router` |
|
|
363
|
+
| `tencent/hunyuan-a13b-instruct` |
|
|
198
364
|
| `tencent/hy3-preview` |
|
|
365
|
+
| `thedrummer/cydonia-24b-v4.1` |
|
|
366
|
+
| `thedrummer/rocinante-12b` |
|
|
367
|
+
| `thedrummer/skyfall-36b-v2` |
|
|
368
|
+
| `thedrummer/unslopnemo-12b` |
|
|
369
|
+
| `undi95/remm-slerp-l2-13b` |
|
|
370
|
+
| `upstage/solar-pro-3` |
|
|
371
|
+
| `writer/palmyra-x5` |
|
|
199
372
|
| `x-ai/grok-3` |
|
|
200
373
|
| `x-ai/grok-3-beta` |
|
|
201
374
|
| `x-ai/grok-3-mini` |
|
|
@@ -203,8 +376,8 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
203
376
|
| `x-ai/grok-4` |
|
|
204
377
|
| `x-ai/grok-4-fast` |
|
|
205
378
|
| `x-ai/grok-4.1-fast` |
|
|
206
|
-
| `x-ai/grok-4.20
|
|
207
|
-
| `x-ai/grok-4.20-multi-agent
|
|
379
|
+
| `x-ai/grok-4.20` |
|
|
380
|
+
| `x-ai/grok-4.20-multi-agent` |
|
|
208
381
|
| `x-ai/grok-4.3` |
|
|
209
382
|
| `x-ai/grok-code-fast-1` |
|
|
210
383
|
| `xiaomi/mimo-v2-flash` |
|
|
@@ -212,14 +385,16 @@ ANTHROPIC_API_KEY=ant-...
|
|
|
212
385
|
| `xiaomi/mimo-v2-pro` |
|
|
213
386
|
| `xiaomi/mimo-v2.5` |
|
|
214
387
|
| `xiaomi/mimo-v2.5-pro` |
|
|
388
|
+
| `z-ai/glm-4-32b` |
|
|
215
389
|
| `z-ai/glm-4.5` |
|
|
216
390
|
| `z-ai/glm-4.5-air` |
|
|
217
391
|
| `z-ai/glm-4.5-air:free` |
|
|
218
392
|
| `z-ai/glm-4.5v` |
|
|
219
393
|
| `z-ai/glm-4.6` |
|
|
220
|
-
| `z-ai/glm-4.
|
|
394
|
+
| `z-ai/glm-4.6v` |
|
|
221
395
|
| `z-ai/glm-4.7` |
|
|
222
396
|
| `z-ai/glm-4.7-flash` |
|
|
223
397
|
| `z-ai/glm-5` |
|
|
224
398
|
| `z-ai/glm-5-turbo` |
|
|
225
|
-
| `z-ai/glm-5.1` |
|
|
399
|
+
| `z-ai/glm-5.1` |
|
|
400
|
+
| `z-ai/glm-5v-turbo` |
|
package/.docs/models/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Model Providers
|
|
2
2
|
|
|
3
|
-
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to
|
|
3
|
+
Mastra provides a unified interface for working with LLMs across multiple providers, giving you access to 4223 models from 119 providers through a single API.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# OrcaRouter
|
|
2
|
+
|
|
3
|
+
Access 81 OrcaRouter models through Mastra's model router. Authentication is handled automatically using the `ORCAROUTER_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [OrcaRouter documentation](https://docs.orcarouter.ai).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ORCAROUTER_API_KEY=your-api-key
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Agent } from "@mastra/core/agent";
|
|
13
|
+
|
|
14
|
+
const agent = new Agent({
|
|
15
|
+
id: "my-agent",
|
|
16
|
+
name: "My Agent",
|
|
17
|
+
instructions: "You are a helpful assistant",
|
|
18
|
+
model: "orcarouter/anthropic/claude-haiku-4.5"
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Generate a response
|
|
22
|
+
const response = await agent.generate("Hello!");
|
|
23
|
+
|
|
24
|
+
// Stream a response
|
|
25
|
+
const stream = await agent.stream("Tell me a story");
|
|
26
|
+
for await (const chunk of stream) {
|
|
27
|
+
console.log(chunk);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [OrcaRouter documentation](https://docs.orcarouter.ai) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| ------------------------------------------------------ | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `orcarouter/anthropic/claude-haiku-4.5` | 200K | | | | | | $1 | $5 |
|
|
38
|
+
| `orcarouter/anthropic/claude-opus-4` | 200K | | | | | | $15 | $75 |
|
|
39
|
+
| `orcarouter/anthropic/claude-opus-4.1` | 200K | | | | | | $15 | $75 |
|
|
40
|
+
| `orcarouter/anthropic/claude-opus-4.5` | 200K | | | | | | $5 | $25 |
|
|
41
|
+
| `orcarouter/anthropic/claude-opus-4.6` | 1.0M | | | | | | $5 | $25 |
|
|
42
|
+
| `orcarouter/anthropic/claude-opus-4.7` | 1.0M | | | | | | $5 | $25 |
|
|
43
|
+
| `orcarouter/anthropic/claude-sonnet-4` | 200K | | | | | | $3 | $15 |
|
|
44
|
+
| `orcarouter/anthropic/claude-sonnet-4.5` | 200K | | | | | | $3 | $15 |
|
|
45
|
+
| `orcarouter/anthropic/claude-sonnet-4.6` | 1.0M | | | | | | $3 | $15 |
|
|
46
|
+
| `orcarouter/deepseek/deepseek-chat` | 1.0M | | | | | | $0.14 | $0.28 |
|
|
47
|
+
| `orcarouter/deepseek/deepseek-reasoner` | 1.0M | | | | | | $0.43 | $0.87 |
|
|
48
|
+
| `orcarouter/deepseek/deepseek-v4-flash` | 1.0M | | | | | | $0.19 | $0.37 |
|
|
49
|
+
| `orcarouter/deepseek/deepseek-v4-pro` | 1.0M | | | | | | $0.56 | $1 |
|
|
50
|
+
| `orcarouter/google/gemini-2.5-flash` | 1.0M | | | | | | $0.30 | $3 |
|
|
51
|
+
| `orcarouter/google/gemini-2.5-flash-lite` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
52
|
+
| `orcarouter/google/gemini-2.5-pro` | 1.0M | | | | | | $3 | $15 |
|
|
53
|
+
| `orcarouter/google/gemini-3-flash-preview` | 1.0M | | | | | | $0.50 | $3 |
|
|
54
|
+
| `orcarouter/google/gemini-3-pro-preview` | 1.0M | | | | | | $4 | $18 |
|
|
55
|
+
| `orcarouter/google/gemini-3.1-flash-lite-preview` | 1.0M | | | | | | $0.25 | $2 |
|
|
56
|
+
| `orcarouter/google/gemini-3.1-pro-preview` | 1.0M | | | | | | $4 | $18 |
|
|
57
|
+
| `orcarouter/google/gemini-3.1-pro-preview-customtools` | 1.0M | | | | | | $4 | $18 |
|
|
58
|
+
| `orcarouter/google/gemini-flash-latest` | 1.0M | | | | | | $0.50 | $3 |
|
|
59
|
+
| `orcarouter/google/gemini-flash-lite-latest` | 1.0M | | | | | | $0.25 | $2 |
|
|
60
|
+
| `orcarouter/google/gemma-4-26b-a4b-it` | 256K | | | | | | $0.06 | $0.33 |
|
|
61
|
+
| `orcarouter/google/gemma-4-31b-it` | 256K | | | | | | $0.13 | $0.38 |
|
|
62
|
+
| `orcarouter/grok/grok-4.3` | 1.0M | | | | | | $1 | $3 |
|
|
63
|
+
| `orcarouter/kimi/kimi-k2.5` | 262K | | | | | | $0.60 | $3 |
|
|
64
|
+
| `orcarouter/kimi/kimi-k2.6` | 262K | | | | | | $0.95 | $4 |
|
|
65
|
+
| `orcarouter/minimax/minimax-m2.5` | 205K | | | | | | $0.30 | $1 |
|
|
66
|
+
| `orcarouter/minimax/minimax-m2.5-highspeed` | 205K | | | | | | $0.60 | $2 |
|
|
67
|
+
| `orcarouter/minimax/minimax-m2.7` | 205K | | | | | | $0.30 | $1 |
|
|
68
|
+
| `orcarouter/minimax/minimax-m2.7-highspeed` | 205K | | | | | | $0.60 | $2 |
|
|
69
|
+
| `orcarouter/openai/gpt-3.5-turbo` | 16K | | | | | | $0.50 | $2 |
|
|
70
|
+
| `orcarouter/openai/gpt-4` | 8K | | | | | | $30 | $60 |
|
|
71
|
+
| `orcarouter/openai/gpt-4-turbo` | 128K | | | | | | $10 | $30 |
|
|
72
|
+
| `orcarouter/openai/gpt-4.1` | 1.0M | | | | | | $2 | $8 |
|
|
73
|
+
| `orcarouter/openai/gpt-4.1-mini` | 1.0M | | | | | | $0.40 | $2 |
|
|
74
|
+
| `orcarouter/openai/gpt-4.1-nano` | 1.0M | | | | | | $0.10 | $0.40 |
|
|
75
|
+
| `orcarouter/openai/gpt-4o` | 128K | | | | | | $3 | $10 |
|
|
76
|
+
| `orcarouter/openai/gpt-4o-2024-05-13` | 128K | | | | | | $5 | $15 |
|
|
77
|
+
| `orcarouter/openai/gpt-4o-2024-08-06` | 128K | | | | | | $3 | $10 |
|
|
78
|
+
| `orcarouter/openai/gpt-4o-2024-11-20` | 128K | | | | | | $3 | $10 |
|
|
79
|
+
| `orcarouter/openai/gpt-4o-mini` | 128K | | | | | | $0.15 | $0.60 |
|
|
80
|
+
| `orcarouter/openai/gpt-5` | 400K | | | | | | $1 | $10 |
|
|
81
|
+
| `orcarouter/openai/gpt-5-chat-latest` | 400K | | | | | | $1 | $10 |
|
|
82
|
+
| `orcarouter/openai/gpt-5-codex` | 400K | | | | | | $1 | $10 |
|
|
83
|
+
| `orcarouter/openai/gpt-5-mini` | 400K | | | | | | $0.25 | $2 |
|
|
84
|
+
| `orcarouter/openai/gpt-5-nano` | 400K | | | | | | $0.05 | $0.40 |
|
|
85
|
+
| `orcarouter/openai/gpt-5-pro` | 400K | | | | | | $15 | $120 |
|
|
86
|
+
| `orcarouter/openai/gpt-5.1` | 400K | | | | | | $1 | $10 |
|
|
87
|
+
| `orcarouter/openai/gpt-5.1-chat-latest` | 128K | | | | | | $1 | $10 |
|
|
88
|
+
| `orcarouter/openai/gpt-5.1-codex` | 400K | | | | | | $1 | $10 |
|
|
89
|
+
| `orcarouter/openai/gpt-5.1-codex-max` | 400K | | | | | | $1 | $10 |
|
|
90
|
+
| `orcarouter/openai/gpt-5.1-codex-mini` | 400K | | | | | | $0.25 | $2 |
|
|
91
|
+
| `orcarouter/openai/gpt-5.2` | 400K | | | | | | $2 | $14 |
|
|
92
|
+
| `orcarouter/openai/gpt-5.2-chat-latest` | 128K | | | | | | $2 | $14 |
|
|
93
|
+
| `orcarouter/openai/gpt-5.2-codex` | 400K | | | | | | $2 | $14 |
|
|
94
|
+
| `orcarouter/openai/gpt-5.2-pro` | 400K | | | | | | $21 | $168 |
|
|
95
|
+
| `orcarouter/openai/gpt-5.3-chat-latest` | 128K | | | | | | $2 | $14 |
|
|
96
|
+
| `orcarouter/openai/gpt-5.3-codex` | 400K | | | | | | $2 | $14 |
|
|
97
|
+
| `orcarouter/openai/gpt-5.4` | 1.1M | | | | | | $5 | $23 |
|
|
98
|
+
| `orcarouter/openai/gpt-5.4-mini` | 400K | | | | | | $0.75 | $5 |
|
|
99
|
+
| `orcarouter/openai/gpt-5.4-nano` | 400K | | | | | | $0.20 | $1 |
|
|
100
|
+
| `orcarouter/openai/gpt-5.4-pro` | 1.1M | | | | | | $60 | $270 |
|
|
101
|
+
| `orcarouter/openai/gpt-5.5` | 1.1M | | | | | | $5 | $30 |
|
|
102
|
+
| `orcarouter/openai/gpt-5.5-pro` | 1.1M | | | | | | $30 | $180 |
|
|
103
|
+
| `orcarouter/orcarouter/auto` | 128K | | | | | | — | — |
|
|
104
|
+
| `orcarouter/qwen/qwen3-max` | 262K | | | | | | $0.36 | $1 |
|
|
105
|
+
| `orcarouter/qwen/qwen3.5-122b-a10b` | 262K | | | | | | $0.12 | $0.92 |
|
|
106
|
+
| `orcarouter/qwen/qwen3.5-27b` | 262K | | | | | | $0.09 | $0.69 |
|
|
107
|
+
| `orcarouter/qwen/qwen3.5-35b-a3b` | 262K | | | | | | $0.06 | $0.46 |
|
|
108
|
+
| `orcarouter/qwen/qwen3.5-397b-a17b` | 262K | | | | | | $0.17 | $1 |
|
|
109
|
+
| `orcarouter/qwen/qwen3.5-plus` | 1.0M | | | | | | $0.12 | $0.69 |
|
|
110
|
+
| `orcarouter/qwen/qwen3.6-35b-a3b` | 262K | | | | | | $0.25 | $1 |
|
|
111
|
+
| `orcarouter/qwen/qwen3.6-plus` | 1.0M | | | | | | $0.50 | $3 |
|
|
112
|
+
| `orcarouter/z-ai/glm-4.5` | 131K | | | | | | $0.60 | $2 |
|
|
113
|
+
| `orcarouter/z-ai/glm-4.5-air` | 131K | | | | | | $0.20 | $1 |
|
|
114
|
+
| `orcarouter/z-ai/glm-4.6` | 205K | | | | | | $0.60 | $2 |
|
|
115
|
+
| `orcarouter/z-ai/glm-4.7` | 205K | | | | | | $0.60 | $2 |
|
|
116
|
+
| `orcarouter/z-ai/glm-5` | 205K | | | | | | $1 | $3 |
|
|
117
|
+
| `orcarouter/z-ai/glm-5.1` | 200K | | | | | | $1 | $4 |
|
|
118
|
+
|
|
119
|
+
## Advanced configuration
|
|
120
|
+
|
|
121
|
+
### Custom headers
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
const agent = new Agent({
|
|
125
|
+
id: "custom-agent",
|
|
126
|
+
name: "custom-agent",
|
|
127
|
+
model: {
|
|
128
|
+
url: "https://api.orcarouter.ai/v1",
|
|
129
|
+
id: "orcarouter/anthropic/claude-haiku-4.5",
|
|
130
|
+
apiKey: process.env.ORCAROUTER_API_KEY,
|
|
131
|
+
headers: {
|
|
132
|
+
"X-Custom-Header": "value"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Dynamic model selection
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
const agent = new Agent({
|
|
142
|
+
id: "dynamic-agent",
|
|
143
|
+
name: "Dynamic Agent",
|
|
144
|
+
model: ({ requestContext }) => {
|
|
145
|
+
const useAdvanced = requestContext.task === "complex";
|
|
146
|
+
return useAdvanced
|
|
147
|
+
? "orcarouter/z-ai/glm-5.1"
|
|
148
|
+
: "orcarouter/anthropic/claude-haiku-4.5";
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
```
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Umans AI Coding Plan
|
|
2
|
+
|
|
3
|
+
Access 5 Umans AI Coding Plan models through Mastra's model router. Authentication is handled automatically using the `UMANS_AI_CODING_PLAN_API_KEY` environment variable.
|
|
4
|
+
|
|
5
|
+
Learn more in the [Umans AI Coding Plan documentation](https://app.umans.ai/offers/code/docs).
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
UMANS_AI_CODING_PLAN_API_KEY=your-api-key
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Agent } from "@mastra/core/agent";
|
|
13
|
+
|
|
14
|
+
const agent = new Agent({
|
|
15
|
+
id: "my-agent",
|
|
16
|
+
name: "My Agent",
|
|
17
|
+
instructions: "You are a helpful assistant",
|
|
18
|
+
model: "umans-ai-coding-plan/umans-coder"
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Generate a response
|
|
22
|
+
const response = await agent.generate("Hello!");
|
|
23
|
+
|
|
24
|
+
// Stream a response
|
|
25
|
+
const stream = await agent.stream("Tell me a story");
|
|
26
|
+
for await (const chunk of stream) {
|
|
27
|
+
console.log(chunk);
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
> **Info:** Mastra uses the OpenAI-compatible `/chat/completions` endpoint. Some provider-specific features may not be available. Check the [Umans AI Coding Plan documentation](https://app.umans.ai/offers/code/docs) for details.
|
|
32
|
+
|
|
33
|
+
## Models
|
|
34
|
+
|
|
35
|
+
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
|
+
| -------------------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
+
| `umans-ai-coding-plan/umans-coder` | 262K | | | | | | — | — |
|
|
38
|
+
| `umans-ai-coding-plan/umans-flash` | 262K | | | | | | — | — |
|
|
39
|
+
| `umans-ai-coding-plan/umans-glm-5.1` | 205K | | | | | | — | — |
|
|
40
|
+
| `umans-ai-coding-plan/umans-kimi-k2.6` | 262K | | | | | | — | — |
|
|
41
|
+
| `umans-ai-coding-plan/umans-qwen3.6-35b-a3b` | 262K | | | | | | — | — |
|
|
42
|
+
|
|
43
|
+
## Advanced configuration
|
|
44
|
+
|
|
45
|
+
### Custom headers
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
const agent = new Agent({
|
|
49
|
+
id: "custom-agent",
|
|
50
|
+
name: "custom-agent",
|
|
51
|
+
model: {
|
|
52
|
+
url: "https://api.code.umans.ai/v1",
|
|
53
|
+
id: "umans-ai-coding-plan/umans-coder",
|
|
54
|
+
apiKey: process.env.UMANS_AI_CODING_PLAN_API_KEY,
|
|
55
|
+
headers: {
|
|
56
|
+
"X-Custom-Header": "value"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### Dynamic model selection
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
const agent = new Agent({
|
|
66
|
+
id: "dynamic-agent",
|
|
67
|
+
name: "Dynamic Agent",
|
|
68
|
+
model: ({ requestContext }) => {
|
|
69
|
+
const useAdvanced = requestContext.task === "complex";
|
|
70
|
+
return useAdvanced
|
|
71
|
+
? "umans-ai-coding-plan/umans-qwen3.6-35b-a3b"
|
|
72
|
+
: "umans-ai-coding-plan/umans-coder";
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
```
|
|
@@ -34,7 +34,7 @@ for await (const chunk of stream) {
|
|
|
34
34
|
|
|
35
35
|
| Model | Context | Tools | Reasoning | Image | Audio | Video | Input $/1M | Output $/1M |
|
|
36
36
|
| --------------------------------- | ------- | ----- | --------- | ----- | ----- | ----- | ---------- | ----------- |
|
|
37
|
-
| `xpersona/xpersona-frieren-coder` |
|
|
37
|
+
| `xpersona/xpersona-frieren-coder` | 400K | | | | | | $2 | $6 |
|
|
38
38
|
|
|
39
39
|
## Advanced configuration
|
|
40
40
|
|
|
@@ -78,6 +78,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
78
78
|
- [Ollama Cloud](https://mastra.ai/models/providers/ollama-cloud)
|
|
79
79
|
- [OpenCode Go](https://mastra.ai/models/providers/opencode-go)
|
|
80
80
|
- [OpenCode Zen](https://mastra.ai/models/providers/opencode)
|
|
81
|
+
- [OrcaRouter](https://mastra.ai/models/providers/orcarouter)
|
|
81
82
|
- [OVHcloud AI Endpoints](https://mastra.ai/models/providers/ovhcloud)
|
|
82
83
|
- [Perplexity](https://mastra.ai/models/providers/perplexity)
|
|
83
84
|
- [Perplexity Agent](https://mastra.ai/models/providers/perplexity-agent)
|
|
@@ -99,6 +100,7 @@ Direct access to individual AI model providers. Each provider offers unique mode
|
|
|
99
100
|
- [Tencent TokenHub](https://mastra.ai/models/providers/tencent-tokenhub)
|
|
100
101
|
- [The Grid AI](https://mastra.ai/models/providers/the-grid-ai)
|
|
101
102
|
- [Together AI](https://mastra.ai/models/providers/togetherai)
|
|
103
|
+
- [Umans AI Coding Plan](https://mastra.ai/models/providers/umans-ai-coding-plan)
|
|
102
104
|
- [Upstage](https://mastra.ai/models/providers/upstage)
|
|
103
105
|
- [Vivgrid](https://mastra.ai/models/providers/vivgrid)
|
|
104
106
|
- [Vultr](https://mastra.ai/models/providers/vultr)
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @mastra/mcp-docs-server
|
|
2
2
|
|
|
3
|
+
## 1.1.38-alpha.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [[`816b974`](https://github.com/mastra-ai/mastra/commit/816b974b424e4a1bfae3af30cc41263b6f1c0344), [`816b974`](https://github.com/mastra-ai/mastra/commit/816b974b424e4a1bfae3af30cc41263b6f1c0344), [`b32ba5f`](https://github.com/mastra-ai/mastra/commit/b32ba5fde524b46a4ff1bdf38e30d62a2bb29b04)]:
|
|
8
|
+
- @mastra/core@1.35.0-alpha.2
|
|
9
|
+
|
|
10
|
+
## 1.1.38-alpha.2
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- Updated dependencies [[`bad08e9`](https://github.com/mastra-ai/mastra/commit/bad08e99c5291884c3ac76743c78c74f53a302c2)]:
|
|
15
|
+
- @mastra/core@1.35.0-alpha.1
|
|
16
|
+
|
|
3
17
|
## 1.1.38-alpha.0
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/mcp-docs-server",
|
|
3
|
-
"version": "1.1.38-alpha.
|
|
3
|
+
"version": "1.1.38-alpha.4",
|
|
4
4
|
"description": "MCP server for accessing Mastra.ai documentation, changelogs, and news.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"jsdom": "^26.1.0",
|
|
30
30
|
"local-pkg": "^1.1.2",
|
|
31
31
|
"zod": "^4.3.6",
|
|
32
|
-
"@mastra/core": "1.
|
|
32
|
+
"@mastra/core": "1.35.0-alpha.2",
|
|
33
33
|
"@mastra/mcp": "^1.7.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
"tsx": "^4.21.0",
|
|
47
47
|
"typescript": "^6.0.3",
|
|
48
48
|
"vitest": "4.1.5",
|
|
49
|
-
"@internal/lint": "0.0.95",
|
|
50
49
|
"@internal/types-builder": "0.0.70",
|
|
51
|
-
"@
|
|
50
|
+
"@internal/lint": "0.0.95",
|
|
51
|
+
"@mastra/core": "1.35.0-alpha.2"
|
|
52
52
|
},
|
|
53
53
|
"homepage": "https://mastra.ai",
|
|
54
54
|
"repository": {
|