Skip to main content

Tools

Tools are individual operations the AI assistant can call. The following tools are available in the Topaz MCP server.

Common parameters

All provisioning tools share these common parameters:

ParameterDescription
subscriptionIdID of the subscription to target
objectIdEntra ID object ID of the acting user. Pass an empty GUID (00000000-0000-0000-0000-000000000000) for superadmin access
locationAzure location string (e.g. westeurope, eastus)

Setup tools

ToolDescription
RunTopazAsContainerCreates a shared topaz-net Docker network, starts a lightweight DNS resolver (topaz-dns) that handles all *.topaz.local.dev wildcard subdomains, then pulls and starts the Topaz emulator container at a fixed IP on that network
ConnectMcpToTopazNetworkReturns a docker network connect command to attach an already-running MCP container to topaz-net. Use this when the MCP container was started before RunTopazAsContainer was called. Note: full wildcard subdomain DNS support requires --dns 172.28.0.53 at container creation time; connecting a running container only restores base ARM connectivity
StopTopazContainerGracefully stops and removes the Topaz emulator container, the DNS resolver container, and the topaz-net Docker network

RunTopazAsContainer accepts the following optional parameters:

ParameterDefaultDescription
logLevelInformationEmulator log verbosity (Debug, Information, Warning, Error)
versionlatest stableDocker image tag to use (e.g. v1.9.0)
platformlinux/amd64Docker platform: linux/arm64 for Apple Silicon / ARM64 hosts, linux/amd64 for Intel/AMD hosts

The following ports are bound automatically when the container starts:

PortService
8899ARM / Resource Manager
8898Key Vault
8897Event Hub (HTTP)
8896App Service (Kudu)
8895Cosmos DB
8893App Configuration
8892Container Registry
8891Storage (Blob, Queue, Table, File)
8889Service Bus (AMQP)
8888Event Hub (AMQP)
8887Service Bus (Extra)

Subscription tools

ToolDescription
CreateSubscriptionCreates a subscription inside a running Topaz instance
ListSubscriptionsReturns all subscriptions currently registered in Topaz

Both tools accept an objectId parameter — the Entra ID object ID of the acting user. Pass an empty GUID (00000000-0000-0000-0000-000000000000) to act as a superadmin with no permission restrictions.

Diagnostics tools

ToolDescription
GetTopazStatusCalls the Topaz health-check endpoint and probes all known service ports. Returns the running version, overall status, working directory, and which services are up

GetTopazStatus takes no parameters. It probes the following ports and reports whether each service is reachable:

PortService
8899Resource Manager
8898Key Vault
8897Event Hub (HTTP)
8896App Service (Kudu)
8895Cosmos DB
8893App Configuration
8892Container Registry
8891Storage (Blob, Queue, Table, File)
8889Service Bus (AMQP)
8888Event Hub (AMQP)
8887Service Bus (Extra)

This tool is useful for debugging a setup that fails partway through — ask the assistant to check status before investigating further.

Resource tools

Tenant-scope deployments

ToolDescription
CreateOrUpdateTenantDeploymentCreates or updates a tenant-scope ARM template deployment and polls until the orchestrator finishes
GetTenantDeploymentReturns a tenant-scope deployment by name
DeleteTenantDeploymentDeletes a tenant-scope deployment by name

All three tools accept an objectId parameter. CreateOrUpdateTenantDeployment also requires deploymentName, location, and templateJson (ARM template as a JSON string). GetTenantDeployment and DeleteTenantDeployment require only deploymentName and objectId.

CreateOrUpdateTenantDeployment returns a TenantDeploymentResult with Name, Id, and ProvisioningState fields. It polls Topaz until the provisioning state leaves Created or Running, so the caller always receives a terminal state.

Provisioning

ToolDescription
CreateResourceGroupCreates a resource group in the given subscription
CreateKeyVaultCreates a Key Vault and optionally seeds it with an initial secret
CreateStorageAccountCreates a Storage Account and returns its connection strings and service URIs
CreateBlobContainerCreates a Blob container inside an existing Storage Account
CreateStorageQueueCreates a Storage Queue inside an existing Storage Account
CreateStorageTableCreates a Storage Table inside an existing Storage Account
CreateServiceBusNamespaceCreates a Service Bus namespace and returns its connection strings
CreateServiceBusQueueCreates a queue inside an existing Service Bus namespace
CreateServiceBusTopicCreates a topic inside an existing Service Bus namespace
CreateServiceBusSubscriptionCreates a subscription on an existing Service Bus topic
CreateEventHubNamespaceCreates an Event Hub namespace and returns its connection string
CreateEventHubCreates an Event Hub inside an existing namespace
CreateContainerRegistryCreates a Container Registry and returns its login server and admin credentials
CreateCosmosDbAccountCreates a Cosmos DB account (SQL API) and returns the account endpoint and connection string
CreateCosmosDbDatabaseCreates a SQL database inside an existing Cosmos DB account
CreateCosmosDbContainerCreates a SQL container inside an existing Cosmos DB database
CreateAppConfigurationStoreCreates an App Configuration store and returns its endpoint URL and primary read-write connection string
CreateApplicationInsightsCreates an Application Insights component and returns its connection string and instrumentation key
CreateLogAnalyticsWorkspaceCreates a Log Analytics workspace
CreateAppServicePlanCreates an App Service plan
CreateAppServiceSiteCreates an App Service site (web app) inside an existing App Service plan
CreateRedisCacheCreates a Redis Cache instance and returns its host name and connection string
CreateSqlServerCreates a SQL Server instance and returns its fully qualified domain name

CreateKeyVault also accepts two optional parameters to seed an initial secret:

ParameterDescription
secretNameName of the secret to create
secretValueValue of the secret (required when secretName is provided)

CreateServiceBusQueue and CreateServiceBusSubscription each accept one optional parameter:

ParameterDefaultDescription
maxDeliveryCount10Maximum delivery attempts before a message is dead-lettered

CreateEventHub accepts two optional parameters:

ParameterDefaultDescription
partitionCount4Number of partitions (1–32)
messageRetentionInDays1Retention period in days (1–7)

CreateContainerRegistry accepts two optional parameters:

ParameterDefaultDescription
skuBasicRegistry SKU: Basic, Standard, or Premium
adminUserEnabledtrueWhen true, admin credentials are returned alongside the login server

CreateCosmosDbDatabase accepts one optional parameter:

ParameterDefaultDescription
throughput(serverless)Optional throughput in RU/s for the database

CreateCosmosDbContainer requires accountName, databaseName, containerName, and partitionKeyPath (e.g. /id), plus one optional parameter:

ParameterDefaultDescription
throughput(serverless)Optional throughput in RU/s for the container

Delete

ToolDescription
DeleteResourceGroupDeletes a resource group and all resources it contains

Query

ToolDescription
GetConnectionStringsQueries all provisioned resources in a subscription and returns ready-to-use connection strings and URIs

GetConnectionStrings scans every resource group in the subscription and returns connection information for the following resource types:

Resource typeReturned fields
Storage accountsconnectionString, blobServiceUri, queueServiceUri, tableServiceUri
Service Bus namespacesconnectionString, connectionStringWithTls
Key VaultsvaultUri
Event Hub namespacesconnectionString
Container RegistriesloginServer
Cosmos DB accountsaccountEndpoint, primaryConnectionString
App Configuration storesendpoint, primaryReadWriteConnectionString
Redis Cache instanceshostName, connectionString
Star on GitHub