Adding a provider to a workspace
An LLM provider configuration belongs to the workspace you add it in.1
Open the workspace's LLM providers
Go to Configuration › LLM Providers.
Every catalog entry has a card there. Check that the workspace selected in the account menu is
the one you mean to configure.
2
Choose a catalog entry
Click Configure on the entry’s card, or Add another on a card that already has a
configuration. A gateway that hosts more than one model family (Azure, Vertex) asks which family
this configuration is for.
3
Fill in the credentials
The form asks only for the fields that entry needs — see the tables below. Give the
configuration a name that will still mean something to a teammate later.
4
Save
Click Configure. Mutagent contacts the provider with the credential before storing it. If the
provider accepts it, the configuration is saved; if not, nothing is written and the provider’s
own reason is shown.
Adding a provider from the CLI
The CLI goes through the same server-side check. Before you start: install the CLI and sign in with a workspace selected. A coding agent signs in withMUTAGENT_API_KEY=<key> mutagent login --json, or
runs mutagent login --browser --json and shows the printed URL to the user. The LLM provider lands in
the workspace mutagent workspaces current shows; --workspace <name|id> picks another for one
command.
1
Check what the workspace already has
2
Add the provider
Pipe the key in with
--api-key-stdin, so it stays out of shell history and process lists:--api-key <key> also works, but it puts the key on the command line. The global --api-key is
your Mutagent key, not the provider’s.Success: exit code 0, and the result has "success": true, the new provider’s id and the
workspaceId it landed in. If the workspace has no default model yet, adding a keyed provider
sets one.3
Check which models it adds
models[].id lists the provider/model ids cloud runs and managed agents can use.Reading the field tables
Every entry stores exactly one secret. Secrets are masked on entry, encrypted at rest, and never returned by the API — reads come back with a masked value such assk-p...4f2a. Everything else is
ordinary configuration and is shown back to you as typed.
Direct entries
Seven entries talk straight to the vendor and take the same three fields. Z.AI (Coding Plan) and OpenRouter are direct too, with fewer fields; they are described after the tables.
Where each key comes from:
Z.AI (Coding Plan)
For a Z.AI GLM Coding Plan subscription. It takes an API key only: the endpoint is fixed, so there is no base URL override. It offers the GLM models your plan includes.A GLM Coding Plan key works only with the Z.AI (Coding Plan) entry. A standard z.ai key
belongs in the z.ai (GLM) entry instead.
OpenRouter
One OpenRouter key gives your cloud runs models from many vendors through your OpenRouter account. It takes an API key from openrouter.ai and an optional model allow-list; there is no base URL override. Without an allow-list, every model your key can reach on OpenRouter is offered.Custom (OpenAI- or Anthropic-compatible)
Use this for any endpoint that speaks an OpenAI- or Anthropic-compatible API — one you run, or a third party’s.
A custom endpoint offers whatever it publishes; Mutagent applies no policy of its own to it.
.internal, .local, .localhost or
.home.arpa are refused.
Gateway entries
A gateway hosts models trained by someone else, so it needs the coordinates of your deployment as well as a credential. Azure and Vertex host two families each — state which family a configuration is for, and add a second configuration for the other.Azure
Hosts OpenAI and Anthropic models. Azure addresses a model by the name given to its deployment rather than by model ID, which is why the deployment name is required.--hosted-family is openai or anthropic. Add --api-version <version> to pin one.
Google Vertex
Hosts Gemini and Anthropic models. Vertex authenticates with a service-account key rather than an API key, so the JSON credential is the secret here.--hosted-family is gemini or anthropic. Vertex takes --service-account-key, not
--api-key or --api-key-stdin; an API key is refused with WRONG_CREDENTIAL_FLAG.
Vertex regions are full-word locations (
europe-west4, asia-northeast1, northamerica-northeast1).
They are not AWS-style region codes — eu-central-1 is not a Vertex location.AWS Bedrock
Hosts Anthropic models. One family, so there is nothing to choose.--hosted-family.
Bedrock addresses Anthropic models as region-prefixed cross-region inference profiles, such as
us.anthropic.claude-opus-5-v1:0. A bare model ID without the region prefix is not a valid Bedrock
target.
The connection test
Mutagent contacts the provider with the submitted credential before persisting anything. This runs on the server, so it applies to every client equally — a configuration added through the CLI is checked exactly as one added in the web app.- If the provider accepts the credential, the configuration is saved.
- If it does not, nothing is written and the provider’s own error is returned. Your secret is stripped out of that message before you ever see it.
- No credential submitted. Mutagent never falls back to a key sitting in the environment. A blank credential fails the test rather than silently picking one up from somewhere else.
- An unnamed gateway family. A gateway hosting more than one family cannot be proven against a family nobody named, so state which family the configuration targets.
Verifying from the CLI
--json to any of them for one JSON object on stdout. <provider-id> comes from
mutagent providers list. test lists the models the provider reports and exits 0 when the
connection works.
Security
- Each configuration holds exactly one secret, encrypted at rest.
- API responses always mask it — the real value is never echoed back, not even to the person who entered it.
- A configuration is reachable only from the workspace it belongs to.
- Rotate keys by updating the configuration; the replacement is connection-tested like any other.
Troubleshooting
The connection test failed when I added a provider
The connection test failed when I added a provider
Nothing was saved — the message shown is the provider’s own. Check that the key is current and
has not been revoked, and that any endpoint, region or project field matches the deployment the
key belongs to.
Bedrock rejects my AWS access key
Bedrock rejects my AWS access key
Expected. Bedrock accepts a bearer API key only; an access key ID and secret pair is refused
before a connection is attempted. Issue a Bedrock API key and submit that.
I was asked which model family my gateway configuration is for
I was asked which model family my gateway configuration is for
Azure and Vertex each host two families, and one configuration covers one family. Pick the family
this credential is for, then add a second configuration for the other.
A provider is missing from the CLI
A provider is missing from the CLI
Providers belong to a single workspace. Check you are pointed at the right one with
mutagent workspaces current, then mutagent providers list. Switch with
mutagent workspaces use <name>.