Provider Tools
These five tools manage voice AI providers on the gateway. They allow agents to list, inspect, test, add, and delete providers.list_providers
List every provider configured on the gateway, including both YAML-defined providers and providers added via the API or MCP. Destructive: NoInput Schema
No parameters required.Output
| Field | Type | Description |
|---|---|---|
providers | array | List of provider objects. |
count | integer | Total number of providers. |
| Field | Type | Description |
|---|---|---|
provider_id | string | Unique identifier (e.g., "deepgram"). |
provider_type | string | The provider implementation type. |
source | string | "yaml" (config file) or "db" (added via API). |
enabled | boolean | Whether the provider has valid credentials. |
api_key_masked | string | null | Masked API key (e.g., "sk-a...1f2b"). |
base_url | string | null | Custom base URL, if configured. |
type | string | "cloud" or "local". |
Example
Invocation:get_provider
Return full details for one provider, including how many models depend on it. The API key is always masked. Destructive: NoInput Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
provider_id | string | Yes | The ID of the provider to fetch. |
Output
Same fields aslist_providers entries, plus:
| Field | Type | Description |
|---|---|---|
model_count | integer | Number of models registered for this provider. |
Errors
| Code | When |
|---|---|
PROVIDER_NOT_FOUND | No provider with the given ID exists. |
Example
Invocation:test_provider
Test connectivity to a provider by calling itshealth_check() method. This makes a real network request to the provider’s API to verify credentials and reachability.
Destructive: No
Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
provider_id | string | Yes | The ID of the provider to test. |
Output
| Field | Type | Description |
|---|---|---|
status | string | "ok" or "failed". |
latency_ms | integer | Round-trip time of the health check in milliseconds. |
message | string | "reachable" on success, or an error description. |
Errors
| Code | When |
|---|---|
PROVIDER_NOT_FOUND | No provider with the given ID exists. |
Example
Invocation:add_provider
Register a new voice AI provider. The gateway validates the credentials by running a health check before saving (for cloud providers). After adding, useregister_model to add specific models from this provider.
Destructive: No (creates a new resource)
Input Schema
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
provider_id | string | Yes | Unique identifier, typically the provider name in lowercase. | |
provider_type | string | Yes | One of: deepgram, openai, anthropic, groq, cartesia, elevenlabs, assemblyai, ollama, whisper, kokoro, piper. | |
api_key | string | No | "" | API key from the provider console. Empty for local providers. |
base_url | string | null | No | null | Custom base URL (e.g., self-hosted Ollama). |
Output
| Field | Type | Description |
|---|---|---|
provider_id | string | The created provider ID. |
provider_type | string | The provider type. |
api_key_masked | string | null | Masked API key. |
base_url | string | null | The base URL, if set. |
source | string | Always "db". |
created | boolean | Always true. |
Errors
| Code | When |
|---|---|
PROVIDER_ALREADY_EXISTS | A YAML-defined provider has the same ID. |
VALIDATION_ERROR | Unknown provider_type, or storage is disabled. |
PROVIDER_TEST_FAILED | The health check failed (credentials invalid or unreachable). |
Example
Invocation:delete_provider
Delete a managed (GUI/API-added) provider. This is a destructive operation that uses the two-phase confirmation pattern. Destructive: YesInput Schema
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
provider_id | string | Yes | The ID of the provider to delete. | |
confirm | boolean | No | false | Must be true to actually delete. Default returns a preview. |
Output (preview, confirm=false)
The tool raises aCONFIRMATION_REQUIRED error containing:
| Field | Type | Description |
|---|---|---|
provider_id | string | The provider to be deleted. |
models_affected | array | List of model IDs that reference this provider. |
projects_affected | array | List of project IDs that use this provider via stacks. |
Output (confirmed, confirm=true)
| Field | Type | Description |
|---|---|---|
action | string | "deleted". |
provider_id | string | The deleted provider ID. |
models_affected | array | Models that were affected. |
projects_affected | array | Projects that were affected. |
Errors
| Code | When |
|---|---|
PROVIDER_NOT_FOUND | No managed provider with the given ID. |
READ_ONLY_RESOURCE | The provider is defined in YAML (cannot delete). |
CONFIRMATION_REQUIRED | Called without confirm=true (returns preview). |