Skip to main content
Glama
azure-utils-mcp

azure-utils-mcp

by BrianDeacon

Azure Utils MCP Server

An MCP (Model Context Protocol) server for Azure development and operations. Compatible with any MCP client — Claude Code, Claude Desktop, Cursor, and others.

Covers three areas:

  • Cosmos DB — list accounts, databases, and containers; run SQL queries; read, write, and delete documents

  • Service Bus — list namespaces, queues, and topics; send messages; peek, purge, and requeue dead letter queues

  • Authorization / PIM — list eligible roles and activate PIM role assignments

Authentication uses DefaultAzureCredential, which picks up an active az login session automatically. Optionally, Cosmos DB key-based auth and Service Bus connection-string auth can be used via environment variables (see Authentication below).

Requirements

Related MCP server: mcp-azure-toolkit

Installation

macOS

brew install uv azure-cli

Linux

curl -LsSf https://astral.sh/uv/install.sh | sh
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash   # Debian/Ubuntu

For other Linux distributions see the Azure CLI install docs.

Windows

winget install --id=astral-sh.uv
winget install --id=Microsoft.AzureCLI

Configuration

Claude Code users:

claude mcp add --scope user azure-utils -- uvx azure-utils-mcp

For other MCP clients, add the following to your server configuration:

{
  "mcpServers": {
    "azure-utils": {
      "command": "uvx",
      "args": ["azure-utils-mcp"]
    }
  }
}

Restart your MCP client after adding the server.

Installing from source

git clone https://github.com/BrianDeacon/azure-utils-mcp
cd azure-utils-mcp
uv sync
az login

Then configure with the cloned path:

{
  "mcpServers": {
    "azure-utils": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/azure-utils-mcp", "azure-utils-mcp"]
    }
  }
}

Authentication

All tools default to DefaultAzureCredential, which picks up an active az login session, managed identity, or other standard Azure credential sources.

For Cosmos DB and Service Bus, you can optionally use key-based or connection-string auth by setting environment variables. Each tool accepts an optional parameter to specify which env var to read from, with sensible defaults:

Service

Tool parameter

Default env var

What it holds

Cosmos DB

key_env_var

AZURE_COSMOS_KEY

Account key for data-plane operations

Service Bus

connection_string_env_var

AZURE_SERVICEBUS_CONNECTION_STRING

Connection string for data-plane operations

If the specified environment variable is set, its value is used for authentication. If not, DefaultAzureCredential is used as a fallback.

This design lets you point different tool calls at different credentials by overriding the env var name. For example, you might use MY_DEV_COSMOS_KEY for one account and MY_PROD_COSMOS_KEY for another, keeping both in your environment without conflict.

Other environment variables:

  • AZURE_SUBSCRIPTION_ID — used by list_accounts / list_namespaces if set; otherwise resolved from az login


Cosmos DB Tools

The account parameter accepts either a short account name (e.g. my-cosmos-account) or a full endpoint URL. The https:// prefix and .documents.azure.com suffix are added automatically if missing.

All Cosmos DB data-plane tools (everything except cosmosdb_list_accounts) accept an optional key_env_var parameter (default AZURE_COSMOS_KEY). See Authentication.

cosmosdb_list_accounts

List all Cosmos DB accounts in the current Azure subscription.

cosmosdb_list_databases

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_list_containers

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_get_container_info

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

Returns partition key path, indexing policy, default TTL, unique key policy, and system properties.

cosmosdb_query_items

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

query

string

yes

SQL query (e.g. SELECT * FROM c WHERE c.status = 'active')

max_items

integer

no

Max items to return (default 100, cap 1000)

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_query_items_to_file

Same as cosmosdb_query_items but writes results to a file. Use when result sets may be large.

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

query

string

yes

SQL query

output_file

string

yes

Path to write results as a JSON array

max_items

integer

no

Max items to return (default 100, cap 1000)

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_count_items

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

where

string

no

SQL WHERE clause body (e.g. c.status = 'active'). If omitted, counts all items.

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_read_item

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

item_id

string

yes

Item id field value

partition_key

string

yes

Partition key value

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_upsert_item

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

item

object

yes

Full item document — must include an id field

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)

cosmosdb_delete_item

Destructive.

Parameter

Type

Required

Description

account

string

yes

Cosmos DB account name or endpoint

database

string

yes

Database name

container

string

yes

Container name

item_id

string

yes

Item id field value

partition_key

string

yes

Partition key value

key_env_var

string

no

Env var holding the account key (default AZURE_COSMOS_KEY)


Service Bus Tools

The namespace parameter accepts either a short name (e.g. my-namespace) or a fully qualified hostname. The .servicebus.windows.net suffix is appended automatically if absent.

All Service Bus data-plane tools (everything except servicebus_list_namespaces) accept an optional connection_string_env_var parameter (default AZURE_SERVICEBUS_CONNECTION_STRING). See Authentication.

servicebus_list_namespaces

List all Service Bus namespaces in the current Azure subscription.

servicebus_list_queues

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_list_topics

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

include_subscriptions

boolean

no

If true, returns a map of topic → subscription names (default false)

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_send_message

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue or topic name

body

string

yes

Message body

session_id

string

no

Required for session-enabled queues

correlation_id

string

no

Correlation ID

application_properties

object

no

Key/value map of custom properties

scheduled_enqueue_time

string

no

ISO 8601 datetime to enqueue the message

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_send_batch

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue or topic name

messages

array

yes

Array of message objects, each with body (required), plus optional session_id, correlation_id, application_properties, scheduled_enqueue_time

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_peek_messages / servicebus_peek_messages_to_file

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue name

max_count

integer

no

Max messages (default 10, cap 100)

session_id

string

no

Peek within a specific session

output_file

string

yes (to_file only)

Path to write message bodies

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_peek_dlq / servicebus_peek_dlq_to_file

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue name

max_count

integer

no

Max messages (default 10, cap 100)

output_file

string

yes (to_file only)

Path to write message bodies

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_purge_queue / servicebus_purge_dlq

Destructive.

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue name

max_messages

integer

no

Safety cap (default 1000)

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_requeue_dlq

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

queue

string

yes

Queue name

max_messages

integer

no

Safety cap (default 100)

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_peek_subscription_messages / servicebus_peek_subscription_messages_to_file

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

topic

string

yes

Topic name

subscription

string

yes

Subscription name

max_count

integer

no

Max messages (default 10, cap 100)

session_id

string

no

Peek within a specific session

output_file

string

yes (to_file only)

Path to write message bodies

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_peek_subscription_dlq / servicebus_peek_subscription_dlq_to_file

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

topic

string

yes

Topic name

subscription

string

yes

Subscription name

max_count

integer

no

Max messages (default 10, cap 100)

output_file

string

yes (to_file only)

Path to write message bodies

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_purge_subscription / servicebus_purge_subscription_dlq

Destructive.

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

topic

string

yes

Topic name

subscription

string

yes

Subscription name

max_messages

integer

no

Safety cap (default 1000)

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)

servicebus_requeue_subscription_dlq

Parameter

Type

Required

Description

namespace

string

yes

Service Bus namespace

topic

string

yes

Topic name

subscription

string

yes

Subscription name

max_messages

integer

no

Safety cap (default 100)

connection_string_env_var

string

no

Env var holding the connection string (default AZURE_SERVICEBUS_CONNECTION_STRING)


Authorization / PIM Tools

authorization_list_eligible_roles

List all Azure PIM roles you are eligible to activate, across all accessible subscriptions. Returns role name, scope, and whether the eligibility is permanent or time-limited.

authorization_activate_role

Parameter

Type

Required

Description

role

string

yes

Role name as returned by authorization_list_eligible_roles

scope

string

yes

Scope as returned by authorization_list_eligible_roles

justification

string

yes

Reason for activation

duration

string

no

ISO 8601 duration (e.g. PT4H). Defaults to the policy maximum.

Returns activation status and request ID. Provisioned means immediately active; PendingApproval means an approver must act first.


Security

  • Authentication defaults to DefaultAzureCredential. When key-based or connection-string auth is used via environment variables, only the env var name is passed as a tool argument, never the secret value itself.

  • purge_* and requeue_* tools enforce a max_messages safety cap to prevent accidental bulk operations.

  • cosmosdb_delete_item is a hard point-delete requiring both item ID and partition key.

Available Tools

31 tools
authorization_activate_roleA

Activate an eligible Azure PIM role assignment.

role: the role name exactly as returned by authorization_list_eligible_roles (e.g. 'Contributor') scope: the scope to activate on, exactly as returned by authorization_list_eligible_roles justification: reason for activation (required by Azure PIM) duration: optional ISO 8601 duration string (e.g. 'PT4H', 'PT30M'). Defaults to the maximum duration allowed by the role's policy. Capped at the policy maximum if exceeded.

Returns the activation status and request ID. Status 'Provisioned' means immediately active. Status 'PendingApproval' or 'PendingApprovalProvisioning' means an approver must act first.

Inputs: role (required), scope (required), justification (required), duration. Returns: result

authorization_list_eligible_rolesA

List all Azure PIM roles you are eligible to activate, across all accessible subscriptions.

Returns role name, scope, eligibility status, and whether the eligibility is permanent or time-limited. Use this to discover what roles are available before calling authorization_activate_role.

Inputs: no named parameters. Returns: result

cosmosdb_count_itemsA

Count items in a Cosmos DB container, with an optional filter.

where accepts a SQL WHERE clause body (without the WHERE keyword), e.g.: c.status = 'active' c.createdAt > '2025-01-01'

If where is omitted, counts all items in the container. Returns a JSON object with a 'count' field.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), where, +1 more. Returns: result

cosmosdb_delete_itemA

Delete an item from a Cosmos DB container.

THIS IS DESTRUCTIVE — the item cannot be recovered after deletion. Both item_id and partition_key are required.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), item_id (required), +2 more. Returns: result

cosmosdb_get_container_infoA

Get metadata for a Cosmos DB container.

Returns partition key path, indexing policy, default TTL, unique key policy, and system properties (_self, _etag, _ts). The account can be given as a short name or full endpoint URL.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), key_env_var. Returns: result

cosmosdb_list_accountsA

List all Azure Cosmos DB accounts in the current subscription.

The subscription is resolved automatically — first from the AZURE_SUBSCRIPTION_ID environment variable, then from the active 'az login' session. If neither is available, an error is returned with instructions.

Inputs: no named parameters. Returns: result

cosmosdb_list_containersA

List all containers in a Cosmos DB database.

Returns a sorted JSON array of container names. The account can be given as a short name or full endpoint URL.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), key_env_var. Returns: result

cosmosdb_list_databasesA

List all databases in an Azure Cosmos DB account.

Returns a sorted JSON array of database names. The account can be given as a short name (e.g. my-cosmos-account) or as a full endpoint URL — the https:// prefix and .documents.azure.com suffix will be added automatically if missing.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), key_env_var. Returns: result

cosmosdb_query_itemsA

Run a SQL query against a Cosmos DB container and return results.

Uses Cosmos DB SQL API syntax, e.g.: SELECT * FROM c WHERE c.status = 'active' SELECT c.id, c.name FROM c ORDER BY c._ts DESC

max_items is capped at 1000. Cross-partition queries are enabled automatically. Use cosmosdb_query_items_to_file instead if the result set may be large.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), query (required), +2 more. Returns: result

cosmosdb_query_items_to_fileA

Run a SQL query against a Cosmos DB container and save results to a file.

Results are written to output_file as a JSON array. Only the item count is returned in context — use this variant when the result set may be large to avoid filling the context window. max_items is capped at 1000.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), query (required), +3 more. Returns: result

cosmosdb_read_itemA

Read a single item from a Cosmos DB container by ID and partition key.

Returns the full item document as JSON. Both item_id and partition_key are required — Cosmos DB requires the partition key for efficient point reads.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), item_id (required), +2 more. Returns: result

cosmosdb_upsert_itemA

Insert or replace an item in a Cosmos DB container.

The item must include an 'id' field. If an item with the same id and partition key already exists it will be replaced; otherwise a new item is created. Returns the stored item document (including system fields) as JSON.

key_env_var: name of the environment variable holding the Cosmos DB account key. If the variable is set, key-based auth is used; otherwise DefaultAzureCredential is used.

Inputs: account (required), database (required), container (required), item (required), +1 more. Returns: result

servicebus_list_namespacesA

List all Azure Service Bus namespaces in the current subscription.

The subscription is resolved automatically — first from the AZURE_SUBSCRIPTION_ID environment variable, then from the active 'az login' session. If neither is available, an error is returned with instructions.

Inputs: no named parameters. Returns: result

servicebus_list_queuesA

List all queues in an Azure Service Bus namespace.

Returns a sorted JSON array of queue names. The namespace can be given as a short name (e.g. shdapps-dev1-eus2-sbn) or as a fully qualified hostname — the .servicebus.windows.net suffix will be appended automatically if missing.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), connection_string_env_var. Returns: result

servicebus_list_topicsA

List all topics in an Azure Service Bus namespace.

Returns a sorted JSON array of topic names. If include_subscriptions is true, returns a JSON object mapping each topic name to a sorted array of its subscription names. The namespace can be given as a short name or fully qualified hostname.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), include_subscriptions, connection_string_env_var. Returns: result

servicebus_peek_dlqA

Non-destructively peek at messages in the dead letter queue for an Azure Service Bus queue.

Messages are not locked or consumed — this is a read-only operation. Returns message bodies, dead letter reason, error description, and other metadata. max_count is capped at 100. Use servicebus_peek_dlq_to_file instead if message bodies may be large.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), max_count, connection_string_env_var. Returns: result

servicebus_peek_dlq_to_fileB

Non-destructively peek at messages in the dead letter queue for an Azure Service Bus queue, saving bodies to a file.

Message bodies are written to output_file as JSON (keyed by sequence number). Only metadata (dead letter reason, error description, sequence number, enqueue time) is returned in context.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), output_file (required), max_count, +1 more. Returns: result

servicebus_peek_messagesA

Non-destructively peek at messages in an Azure Service Bus queue.

Messages are not locked or consumed — this is a read-only operation. Returns message bodies and metadata (sequence number, enqueue time, properties). max_count is capped at 100. For session-enabled queues, provide a session_id to peek a specific session. If session_id is omitted on a session-enabled queue, the next available session is accepted, peeked, and immediately released. Use servicebus_peek_messages_to_file instead if message bodies may be large.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), max_count, session_id, +1 more. Returns: result

servicebus_peek_messages_to_fileA

Non-destructively peek at messages in an Azure Service Bus queue, saving bodies to a file.

Message bodies are written to output_file as JSON (keyed by sequence number). Only metadata (sequence number, enqueue time, properties) is returned in context — use this variant when message bodies may be large to avoid filling the context window.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), output_file (required), max_count, +2 more. Returns: result

servicebus_peek_subscription_dlqA

Non-destructively peek at messages in the dead letter queue for a topic subscription.

Messages are not locked or consumed — this is a read-only operation. Returns message bodies, dead letter reason, error description, and other metadata. max_count is capped at 100. Use servicebus_peek_subscription_dlq_to_file instead if message bodies may be large.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), max_count, +1 more. Returns: result

servicebus_peek_subscription_dlq_to_fileA

Non-destructively peek at messages in the dead letter queue for a topic subscription, saving bodies to a file.

Message bodies are written to output_file as JSON (keyed by sequence number). Only metadata (dead letter reason, error description, sequence number, enqueue time) is returned in context.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), output_file (required), +2 more. Returns: result

servicebus_peek_subscription_messagesA

Non-destructively peek at messages in an Azure Service Bus topic subscription.

Messages are not locked or consumed — this is a read-only operation. Returns message bodies and metadata (sequence number, enqueue time, properties). max_count is capped at 100. Use servicebus_peek_subscription_messages_to_file instead if message bodies may be large.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), max_count, +2 more. Returns: result

servicebus_peek_subscription_messages_to_fileB

Non-destructively peek at messages in an Azure Service Bus topic subscription, saving bodies to a file.

Message bodies are written to output_file as JSON (keyed by sequence number). Only metadata (sequence number, enqueue time, properties) is returned in context.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), output_file (required), +3 more. Returns: result

servicebus_purge_dlqA

Delete all messages from the dead letter queue for an Azure Service Bus queue.

THIS IS DESTRUCTIVE — messages cannot be recovered after purging. Stops and leaves remaining messages untouched if the running total exceeds max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), max_messages, connection_string_env_var. Returns: result

servicebus_purge_queueA

Delete all messages from an Azure Service Bus queue.

THIS IS DESTRUCTIVE — messages cannot be recovered after purging. Stops and leaves remaining messages untouched if the running total exceeds max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), max_messages, connection_string_env_var. Returns: result

servicebus_purge_subscriptionA

Delete all messages from an Azure Service Bus topic subscription.

THIS IS DESTRUCTIVE — messages cannot be recovered after purging. Stops and leaves remaining messages untouched if the running total exceeds max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), max_messages, +1 more. Returns: result

servicebus_purge_subscription_dlqA

Delete all messages from the dead letter queue for a topic subscription.

THIS IS DESTRUCTIVE — messages cannot be recovered after purging. Stops and leaves remaining messages untouched if the running total exceeds max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), max_messages, +1 more. Returns: result

servicebus_requeue_dlqA

Move messages from a queue's dead letter queue back to the main queue.

Each message is re-sent to the main queue preserving body, session_id, correlation_id, and application_properties, then completed (removed) from the dead letter queue. Stops if the running total would exceed max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), max_messages, connection_string_env_var. Returns: result

servicebus_requeue_subscription_dlqA

Move messages from a topic subscription's dead letter queue back to the topic.

Each message is re-sent to the topic preserving body, session_id, correlation_id, and application_properties, then completed (removed) from the dead letter queue. Stops if the running total would exceed max_messages.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), topic (required), subscription (required), max_messages, +1 more. Returns: result

servicebus_send_batchA

Send multiple messages to an Azure Service Bus queue or topic in a single batch.

Each message in the 'messages' array should have:

  • body (string, required): the message content

  • session_id (string, optional)

  • correlation_id (string, optional)

  • application_properties (object, optional): key/value map of custom properties

  • scheduled_enqueue_time (string, optional): ISO 8601 time to enqueue the message

The entire batch is delivered in a single send operation. Useful for seeding test data.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), messages (required), connection_string_env_var. Returns: result

servicebus_send_messageA

Send a single message to an Azure Service Bus queue or topic.

The namespace can be given as a short name or fully qualified hostname.

scheduled_enqueue_time accepts an ISO 8601 string (e.g. '2026-03-05T10:00:00Z'). If provided, the message will be enqueued at that time rather than immediately.

connection_string_env_var: name of the environment variable holding the Service Bus connection string. If the variable is set, connection-string auth is used; otherwise DefaultAzureCredential is used.

Inputs: namespace (required), queue (required), body (required), session_id, +4 more. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 31 tools

    Disambiguation5/5

    Tools are clearly disambiguated by service prefix (authorization_, cosmosdb_, servicebus_) and distinct verbs. Even similar operations like peek across different targets (queue, subscription, DLQ) are precisely named, leaving no ambiguity.

    Naming Consistency5/5

    All tools follow a consistent pattern: service_verb_noun (e.g., cosmosdb_list_databases, servicebus_send_batch). The naming is uniform across all three services, making it predictable for agents.

    Tool Count3/5

    31 tools is high but justifiable given coverage of three distinct Azure services. However, the PIM portion only has 2 tools, which feels thin compared to the 11 for Cosmos DB and 18 for Service Bus, indicating slight over-scoping on the latter.

    Completeness4/5

    Cosmos DB covers essential operations (list, read, write, query, delete) with container info and count; Service Bus covers listing, peeking (with file variants for large payloads), purging, requeueing, and sending. Missing: ability to consume/receive messages from Service Bus (only peek), but that may be by design to avoid destructive operations. Minor gap but overall solid.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers