Create a named LLM config owned by the caller, optionally storing the
Create a named LLM config owned by the caller, optionally storing the referenced API-key secret and/or marking it as the caller’s default.
Body
Name of the caller's user_secrets row holding the provider API key. None ⇒ the
platform-key path.
Mark this as the caller's default (clears any prior default).
Plaintext key to store under api_key_secret_name when no such secret exists yet.
Required when the named secret is absent; ignored (as an upsert) when it already exists.
Per-config tier→model overrides. When set, the smart router uses these instead of
the global model_registry for this config's provider.
Response
data is the created config object (id, name, provider, model, fallback_models, temperature, max_tokens, api_key_secret_name, pinned, pinned_model, tier1_model, tier2_model, tier3_model, is_default, created_at, updated_at)
Doc-only schema for the standard MCP ApiResponse envelope
({"data": …, "status_code": N, "message": "…"}). Most /api/mcp/*
payloads are service-layer serde_json::Value views, so data is
documented as a free-form object; each route's response description says
what it carries.
