---
title: "Azure Storage MCP server for AI agents - actionlake"
description: "Give Claude 141 Azure Storage actions through one MCP server: storage accounts. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/azure-storage
updated: 2026-10-23
---

Connectors · MSP & PSA

# Azure Storage MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Azure Storage and the rest of your systems. It gives your agent 141 Azure Storage actions (70 reads, 43 writes and 28 that wait for a confirmation) and holds the Azure Storage credential itself, so the agent never does. It paces Azure Storage's limits and records every call.

[Connect Azure Storage free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "azure_storage.subscriptions.list",
  intent: "check which Azure Storage account is connected"
}
# List the subscriptions the credential can see · read · 1 upstream call
```

- 141 actions in one signed file
- 70 read look, never change
- 43 write create and update
- 28 wait for a yes destructive, confirmed first

Set up

## Connect Azure Storage in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect Azure Storage.
   OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `client_id` Entra application (client) id of a service principal with an Azure RBAC role on the subscription
   - `client_secret` Entra client secret
   - `tenant_id` Your Azure Storage tenant id
   ```
   account { op: "connections.requirements", service: "azure_storage" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "azure_storage.subscriptions.list" }
   # list the subscriptions the credential can see · read · 1 upstream call
   check { action: "azure_storage.blob_containers.update", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Azure Storage at a glance

**Sign-in**

OAuth 2.0, client credentials. Paste the app's client id and secret; actionlake fetches and renews the token, and nobody has to sign in.

**You provide**

`client_id` `client_secret`

**Setup fields**

`tenant_id`

**Limits we pace to**

200 calls a minute, per connection

**API covered**

Azure Storage (storage accounts, keys, blob containers, file shares, queues, tables, lifecycle policies) API Azure Resource Manager Microsoft.Storage: openapi.json (2026-09-01)`management.azure.com`

**Built from**

Azure Storage's documentation, read 23 October 2026[OpenAPI spec (GitHub)](https://github.com/Azure/azure-rest-api-specs/tree/main/specification/storage/resource-manager/Microsoft.Storage/Storage/stable/2026-09-01/openapi.json) [learn.microsoft.com](https://learn.microsoft.com/en-us/rest/api/storagerp/)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

61 of 70 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

4, so ask can line Azure Storage up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in Azure Storage.

141 actions in 32 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **70** read look, never change
- **43** write create and update
- **28** destructive wait for a confirmation

1. ### Storage accounts
   18
   8 read · 4 write · 6 destructive
   Lists all the storage accounts available under the subscription · Lists all the storage accounts available under the given resource group · Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status · Gets the status of the ongoing migration for the specified storage account
2. ### Blob containers
   14
   3 read · 6 write · 5 destructive
   Lists all containers and does not support a prefix like data plane · Gets properties of a specified container · Updates container properties as specified in request body · Deletes specified container under its account
3. ### Blob access point configurations
   7
   4 read · 2 write · 1 destructive
   List all Blob Access Point configurations in a Storage Account · Get the specified Blob Access Point configuration · Test the connection configured on an existing Blob Access Point configuration · Test a proposed Blob Access Point connection before the configuration is created
4. ### Context caches
   7
   4 read · 2 write · 1 destructive
   List Context Caches by resource group · List Context Caches by subscription · Get a Context Cache · Check the availability of a context cache resource name
5. ### File shares
   7
   2 read · 4 write · 1 destructive
   Lists all shares · Gets properties of a specified share · The Lease Share operation establishes and manages a lock on a share for delete operations · Restore a file share within a valid retention days if share soft delete is enabled
6. ### Local users
   6
   3 read · 1 write · 2 destructive
   List the local users associated with the storage account · Get the local user of the storage account by username · List SSH authorized keys and shared key of the local user · Regenerate the local user SSH password
7. ### Storage connectors
   6
   3 read · 2 write · 1 destructive
   List all Storage Connectors in a Storage Account · Get the specified Storage Connector · This method is used to verify that the connection to the backing data store works · Update a Storage Connector
8. ### Storage task assignments
   6
   2 read · 2 write · 2 destructive
   List all the storage task assignments in an account · Get the storage task assignment properties · Update storage task assignment properties · Delete the storage task assignment sub-resource

**24 more areas · 70 actions**

- Context cache containers **5**
- Data shares **5**
- File services **5**
- Queues **5**
- Tables **5**
- Advanced platform metrics **4**
- Blob inventory policies **4**
- Encryption scopes **4**
- Object replication policies **4**
- Private endpoint connections **4**
- Blob services **3**
- Management policies **3**
- Network security perimeter configurations **3**
- Queue services **3**
- Table services **3**
- Deleted accounts **2**
- Account task reports **1**
- Operations **1**
- Private link resources **1**
- Resource groups **1**
- Skus **1**
- Storage task assignment reports **1**
- Subscriptions **1**
- Usages **1**

Top actions

## The Azure Storage API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 5 of Azure Storage's 6 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `azure_storage.blob_containers.list` Lists all containers and does not support a prefix like data plane | Lists all containers and does not support a prefix like data plane. | read | `infra.bucket.list` 3 connectors |
| `azure_storage.resource_groups.list` List the resource groups in a subscription | List the resource groups in a subscription. | read | `infra.resource_group.list` 19 connectors |
| `azure_storage.blob_containers.get` Gets properties of a specified container | Gets properties of a specified container. | read | `infra.bucket.get` 3 connectors |
| `azure_storage.tables.list` Gets a list of all the tables under the specified storage account | Gets a list of all the tables under the specified storage account. | read | this connector |
| `azure_storage.subscriptions.list` List the subscriptions the credential can see | List the subscriptions the credential can see. | read | this connector |
| `azure_storage.storage_accounts.list` Lists all the storage accounts available under the subscription | Lists all the storage accounts available under the subscription. | read | this connector |
| `azure_storage.blob_containers.update` Updates container properties as specified in request body | Updates container properties as specified in request body. | write | `infra.bucket.update` 4 connectors |
| `azure_storage.blob_containers.delete` Deletes specified container under its account | Deletes specified container under its account. | destructive | `infra.bucket.delete` 3 connectors |
| `azure_storage.skus.list` Lists the available SKUs supported by Microsoft.Storage for given subscription | Lists the available SKUs supported by Microsoft.Storage for given subscription. | read | this connector |
| `azure_storage.queues.list` Gets a list of all the queues under the specified storage account | Gets a list of all the queues under the specified storage account. | read | this connector |
| `azure_storage.blob_containers.create` Creates a new container under the specified account as described by request body | Creates a new container under the specified account as described by request body. | write | this connector |
| `azure_storage.queues.update` Creates a new queue with the specified queue name, under the specified account | Creates a new queue with the specified queue name, under the specified account. | write | this connector |

Try it

## Prompts to paste into Claude.

Each one names the Azure Storage actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   List the subscriptions the credential can see in Azure Storage and tell me what stands out.
   calls `azure_storage.subscriptions.list`
2. Write write
   Updates container properties as specified in request body in Azure Storage. Show me exactly what you will send before you save it.
   calls `azure_storage.blob_containers.update`

Governance for Azure Storage

## Destructive actions wait for a yes.

28 Azure Storage actions are destructive. These are all of them:

- Deletes specified container under its account `azure_storage.blob_containers.delete`
- A failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason `azure_storage.storage_accounts.failover`
- Regenerate the local user SSH password `azure_storage.local_users.regenerate_password`
- Regenerates one of the access keys or Kerberos keys for the specified storage account `azure_storage.storage_accounts.regenerate_key`
- Clears legal hold tags `azure_storage.blob_containers.clear_legal_hold`
- Restore blobs in the specified blob ranges `azure_storage.storage_accounts.restore_blob_ranges`
- Sets the ImmutabilityPolicy to Locked state `azure_storage.blob_containers.lock_immutability_policy`
- This operation migrates a blob container from container level WORM to object level immutability enabled container `azure_storage.blob_containers.migrate_to_object_level_worm`
- Live Migration of storage account to enable Hns `azure_storage.storage_accounts.migrate_hierarchical_namespace`
- Deletes the queue with the specified queue name, under the specified account if it exists `azure_storage.queues.delete`
- Deletes the table with the specified table name, under the specified account if it exists `azure_storage.tables.delete`
- Delete a Storage DataShare `azure_storage.data_shares.delete`
- Deletes specified share under its account `azure_storage.file_shares.delete`
- Deletes the local user associated with the specified storage account `azure_storage.local_users.delete`
- Delete a Context Cache `azure_storage.context_caches.delete`
- Deletes a storage account in Microsoft Azure `azure_storage.storage_accounts.delete`
- Delete a Storage Connector `azure_storage.storage_connectors.delete`
- Deletes the managementpolicy associated with the specified storage account `azure_storage.management_policies.delete`
- Deletes the blob inventory policy associated with the specified storage account `azure_storage.blob_inventory_policies.delete`
- Delete a container from a Context Cache `azure_storage.context_cache_containers.delete`
- Delete the storage task assignment sub-resource `azure_storage.storage_task_assignments.delete`
- Delete the advanced platform metrics rule for the storage account by rule type `azure_storage.advanced_platform_metrics.delete`
- Deletes the object replication policy associated with the specified storage account `azure_storage.object_replication_policies.delete`
- Deletes the specified private endpoint connection associated with the storage account `azure_storage.private_endpoint_connections.delete`
- Delete a Blob Access Point configuration `azure_storage.blob_access_point_configurations.delete`
- Aborts an unlocked immutability policy `azure_storage.blob_containers.delete_immutability_policy`
- Revoke user delegation keys `azure_storage.storage_accounts.revoke_user_delegation_keys`
- Stops any active running storage action for the storage task assignment `azure_storage.storage_task_assignments.stop_assignment`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do azure_storage.blob_containers.delete confirm_policy: **human**

Deletes specified container under its account?

**intent:** the user asked me to deletes specified container under its account

run suspended · waiting for a named person · key _azure-storage-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "azure-storage-agent",
  allowed_actions: ["azure_storage.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "azure_storage.blob_containers.delete", approver: "lead@example.com" },
    { match: "azure_storage.storage_accounts.failover", approver: "lead@example.com" },
    { match: "azure_storage.local_users.regenerate_password", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to Azure Storage only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What Azure Storage costs on actionlake.

Every Azure Storage action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Azure Storage refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 141 Azure Storage actions
- 30 actions page each page of a long list is one call
- 61 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every Azure Storage action.

141 actions by area: the id your agent calls, what it does, and its effect.

**Storage accounts 18**

- `azure_storage.storage_accounts.abort_hierarchical_namespace_migration` Abort live Migration of storage account to enable Hns write
- `azure_storage.storage_accounts.check_name_availability` Checks that the storage account name is valid and is not already in use read
- `azure_storage.storage_accounts.create` Asynchronously creates a new storage account with the specified parameters write
- `azure_storage.storage_accounts.delete` Deletes a storage account in Microsoft Azure destructive
- `azure_storage.storage_accounts.failover` A failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason destructive
- `azure_storage.storage_accounts.get` Returns the properties for the specified storage account including but not limited to name, SKU name, location, and account status read
- `azure_storage.storage_accounts.get_migration` Gets the status of the ongoing migration for the specified storage account read
- `azure_storage.storage_accounts.list` Lists all the storage accounts available under the subscription read
- `azure_storage.storage_accounts.list_account_sas` List SAS credentials of a storage account read
- `azure_storage.storage_accounts.list_by_resource_group` Lists all the storage accounts available under the given resource group read
- `azure_storage.storage_accounts.list_keys` Lists the access keys or Kerberos keys (if active directory enabled) for the specified storage account read
- `azure_storage.storage_accounts.list_service_sas` List service SAS credentials of a specific resource read
- `azure_storage.storage_accounts.migrate_hierarchical_namespace` Live Migration of storage account to enable Hns destructive
- `azure_storage.storage_accounts.regenerate_key` Regenerates one of the access keys or Kerberos keys for the specified storage account destructive
- `azure_storage.storage_accounts.restore_blob_ranges` Restore blobs in the specified blob ranges destructive
- `azure_storage.storage_accounts.revoke_user_delegation_keys` Revoke user delegation keys destructive
- `azure_storage.storage_accounts.start_migration` Account Migration request can be triggered for a storage account to change its redundancy level write
- `azure_storage.storage_accounts.update` The update operation can be used to update the SKU, encryption, access tier, or tags for a storage account write

**Blob containers 14**

- `azure_storage.blob_containers.clear_legal_hold` Clears legal hold tags destructive
- `azure_storage.blob_containers.create` Creates a new container under the specified account as described by request body write
- `azure_storage.blob_containers.create_or_update_immutability_policy` Creates or updates an unlocked immutability policy write
- `azure_storage.blob_containers.delete` Deletes specified container under its account destructive
- `azure_storage.blob_containers.delete_immutability_policy` Aborts an unlocked immutability policy destructive
- `azure_storage.blob_containers.extend_immutability_policy` Extends the immutabilityPeriodSinceCreationInDays of a locked immutabilityPolicy write
- `azure_storage.blob_containers.get` Gets properties of a specified container read
- `azure_storage.blob_containers.get_immutability_policy` Gets the existing immutability policy along with the corresponding ETag in response headers and body read
- `azure_storage.blob_containers.lease` The Lease Container operation establishes and manages a lock on a container for delete operations write
- `azure_storage.blob_containers.list` Lists all containers and does not support a prefix like data plane read
- `azure_storage.blob_containers.lock_immutability_policy` Sets the ImmutabilityPolicy to Locked state destructive
- `azure_storage.blob_containers.migrate_to_object_level_worm` This operation migrates a blob container from container level WORM to object level immutability enabled container destructive
- `azure_storage.blob_containers.set_legal_hold` Sets legal hold tags write
- `azure_storage.blob_containers.update` Updates container properties as specified in request body write

**Blob access point configurations 7**

- `azure_storage.blob_access_point_configurations.create` Creates or updates a Blob Access Point configuration write
- `azure_storage.blob_access_point_configurations.delete` Delete a Blob Access Point configuration destructive
- `azure_storage.blob_access_point_configurations.get` Get the specified Blob Access Point configuration read
- `azure_storage.blob_access_point_configurations.list_by_storage_account` List all Blob Access Point configurations in a Storage Account read
- `azure_storage.blob_access_point_configurations.test_existing_connection` Test the connection configured on an existing Blob Access Point configuration read
- `azure_storage.blob_access_point_configurations.test_proposed_connection` Test a proposed Blob Access Point connection before the configuration is created read
- `azure_storage.blob_access_point_configurations.update` Update a Blob Access Point configuration write

**Context caches 7**

- `azure_storage.context_caches.check_name_availability` Check the availability of a context cache resource name read
- `azure_storage.context_caches.create_or_update` Create or update a Context Cache write
- `azure_storage.context_caches.delete` Delete a Context Cache destructive
- `azure_storage.context_caches.get` Get a Context Cache read
- `azure_storage.context_caches.list_by_resource_group` List Context Caches by resource group read
- `azure_storage.context_caches.list_by_subscription` List Context Caches by subscription read
- `azure_storage.context_caches.update` Update a Context Cache write

**File shares 7**

- `azure_storage.file_shares.create` Creates a new share under the specified account as described by request body write
- `azure_storage.file_shares.delete` Deletes specified share under its account destructive
- `azure_storage.file_shares.get` Gets properties of a specified share read
- `azure_storage.file_shares.lease` The Lease Share operation establishes and manages a lock on a share for delete operations write
- `azure_storage.file_shares.list` Lists all shares read
- `azure_storage.file_shares.restore` Restore a file share within a valid retention days if share soft delete is enabled write
- `azure_storage.file_shares.update` Updates share properties as specified in request body write

**Local users 6**

- `azure_storage.local_users.create_or_update` Create or update the properties of a local user associated with the storage account write
- `azure_storage.local_users.delete` Deletes the local user associated with the specified storage account destructive
- `azure_storage.local_users.get` Get the local user of the storage account by username read
- `azure_storage.local_users.list` List the local users associated with the storage account read
- `azure_storage.local_users.list_keys` List SSH authorized keys and shared key of the local user read
- `azure_storage.local_users.regenerate_password` Regenerate the local user SSH password destructive

**Storage connectors 6**

- `azure_storage.storage_connectors.create` Create a Storage Connector if it does not already exist; otherwise, error out write
- `azure_storage.storage_connectors.delete` Delete a Storage Connector destructive
- `azure_storage.storage_connectors.get` Get the specified Storage Connector read
- `azure_storage.storage_connectors.list_by_storage_account` List all Storage Connectors in a Storage Account read
- `azure_storage.storage_connectors.test_existing_connection` This method is used to verify that the connection to the backing data store works read
- `azure_storage.storage_connectors.update` Update a Storage Connector write

**Storage task assignments 6**

- `azure_storage.storage_task_assignments.create` Asynchronously creates a new storage task assignment sub-resource with the specified parameters write
- `azure_storage.storage_task_assignments.delete` Delete the storage task assignment sub-resource destructive
- `azure_storage.storage_task_assignments.get` Get the storage task assignment properties read
- `azure_storage.storage_task_assignments.list` List all the storage task assignments in an account read
- `azure_storage.storage_task_assignments.stop_assignment` Stops any active running storage action for the storage task assignment destructive
- `azure_storage.storage_task_assignments.update` Update storage task assignment properties write

**Context cache containers 5**

- `azure_storage.context_cache_containers.create_or_update` Create or update a container in a Context Cache write
- `azure_storage.context_cache_containers.delete` Delete a container from a Context Cache destructive
- `azure_storage.context_cache_containers.get` Get a container in a Context Cache read
- `azure_storage.context_cache_containers.list_by_context_cache` List all containers in a Context Cache read
- `azure_storage.context_cache_containers.update` Update a container in a Context Cache write

**Data shares 5**

- `azure_storage.data_shares.create` Create a Storage DataShare if it does not already exist; otherwise, error out write
- `azure_storage.data_shares.delete` Delete a Storage DataShare destructive
- `azure_storage.data_shares.get` Get the specified Storage DataShare read
- `azure_storage.data_shares.list_by_storage_account` List all Storage DataShares in a Storage Account read
- `azure_storage.data_shares.update` Update a Storage DataShare write

**File services 5**

- `azure_storage.file_services.get_service_properties` Gets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules read
- `azure_storage.file_services.get_service_usage` Gets the usage of file service in storage account including account limits, file share limits and constants used in recommendations and bursting formula read
- `azure_storage.file_services.list` List all file services in storage accounts read
- `azure_storage.file_services.list_service_usages` Gets the usages of file service in storage account read
- `azure_storage.file_services.set_service_properties` Sets the properties of file services in storage accounts, including CORS (Cross-Origin Resource Sharing) rules write

**Queues 5**

- `azure_storage.queues.create` Creates a new queue with the specified queue name, under the specified account write
- `azure_storage.queues.delete` Deletes the queue with the specified queue name, under the specified account if it exists destructive
- `azure_storage.queues.get` Gets the queue with the specified queue name, under the specified account if it exists read
- `azure_storage.queues.list` Gets a list of all the queues under the specified storage account read
- `azure_storage.queues.update` Creates a new queue with the specified queue name, under the specified account write

**Tables 5**

- `azure_storage.tables.create` Creates a new table with the specified table name, under the specified account write
- `azure_storage.tables.delete` Deletes the table with the specified table name, under the specified account if it exists destructive
- `azure_storage.tables.get` Gets the table with the specified table name, under the specified account if it exists read
- `azure_storage.tables.list` Gets a list of all the tables under the specified storage account read
- `azure_storage.tables.update` Creates a new table with the specified table name, under the specified account write

**Advanced platform metrics 4**

- `azure_storage.advanced_platform_metrics.create_or_update` Create or update the advanced platform metrics rule for the storage account write
- `azure_storage.advanced_platform_metrics.delete` Delete the advanced platform metrics rule for the storage account by rule type destructive
- `azure_storage.advanced_platform_metrics.get` Get the advanced platform metrics rule for the storage account by rule type read
- `azure_storage.advanced_platform_metrics.list` List the advanced platform metrics rules associated with the storage account read

**Blob inventory policies 4**

- `azure_storage.blob_inventory_policies.create_or_update` Sets the blob inventory policy to the specified storage account write
- `azure_storage.blob_inventory_policies.delete` Deletes the blob inventory policy associated with the specified storage account destructive
- `azure_storage.blob_inventory_policies.get` Gets the blob inventory policy associated with the specified storage account read
- `azure_storage.blob_inventory_policies.list` Gets the blob inventory policy associated with the specified storage account read

**Encryption scopes 4**

- `azure_storage.encryption_scopes.get` Returns the properties for the specified encryption scope read
- `azure_storage.encryption_scopes.list` Lists all the encryption scopes available under the specified storage account read
- `azure_storage.encryption_scopes.patch` Update encryption scope properties as specified in the request body write
- `azure_storage.encryption_scopes.put` Synchronously creates or updates an encryption scope under the specified storage account write

**Object replication policies 4**

- `azure_storage.object_replication_policies.create_or_update` Create or update the object replication policy of the storage account write
- `azure_storage.object_replication_policies.delete` Deletes the object replication policy associated with the specified storage account destructive
- `azure_storage.object_replication_policies.get` Get the object replication policy of the storage account by policy ID read
- `azure_storage.object_replication_policies.list` List the object replication policies associated with the storage account read

**Private endpoint connections 4**

- `azure_storage.private_endpoint_connections.delete` Deletes the specified private endpoint connection associated with the storage account destructive
- `azure_storage.private_endpoint_connections.get` Gets the specified private endpoint connection associated with the storage account read
- `azure_storage.private_endpoint_connections.list` List all the private endpoint connections associated with the storage account read
- `azure_storage.private_endpoint_connections.put` Update the state of specified private endpoint connection associated with the storage account write

**Blob services 3**

- `azure_storage.blob_services.get_service_properties` Gets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules read
- `azure_storage.blob_services.list` List blob services of storage account read
- `azure_storage.blob_services.set_service_properties` Sets the properties of a storage account’s Blob service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules write

**Management policies 3**

- `azure_storage.management_policies.create_or_update` Sets the managementpolicy to the specified storage account write
- `azure_storage.management_policies.delete` Deletes the managementpolicy associated with the specified storage account destructive
- `azure_storage.management_policies.get` Gets the managementpolicy associated with the specified storage account read

**Network security perimeter configurations 3**

- `azure_storage.network_security_perimeter_configurations.get` Gets effective NetworkSecurityPerimeterConfiguration for association read
- `azure_storage.network_security_perimeter_configurations.list` Gets list of effective NetworkSecurityPerimeterConfiguration for storage account read
- `azure_storage.network_security_perimeter_configurations.reconcile` Refreshes any information about the association write

**Queue services 3**

- `azure_storage.queue_services.get_service_properties` Gets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules read
- `azure_storage.queue_services.list` List all queue services for the storage account read
- `azure_storage.queue_services.set_service_properties` Sets the properties of a storage account’s Queue service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules write

**Table services 3**

- `azure_storage.table_services.get_service_properties` Gets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules read
- `azure_storage.table_services.list` List all table services for the storage account read
- `azure_storage.table_services.set_service_properties` Sets the properties of a storage account’s Table service, including properties for Storage Analytics and CORS (Cross-Origin Resource Sharing) rules write

**Deleted accounts 2**

- `azure_storage.deleted_accounts.get` Get properties of specified deleted account resource read
- `azure_storage.deleted_accounts.list` Lists deleted accounts under the subscription read

**Account task reports 1**

- `azure_storage.account_task_reports.list` Fetch the report summary of all the storage task assignments and instances in an account read

**Operations 1**

- `azure_storage.operations.list` Lists all of the available Storage Rest API operations read

**Private link resources 1**

- `azure_storage.private_link_resources.list_by_storage_account` Gets the private link resources that need to be created for a storage account read

**Resource groups 1**

- `azure_storage.resource_groups.list` List the resource groups in a subscription read

**Skus 1**

- `azure_storage.skus.list` Lists the available SKUs supported by Microsoft.Storage for given subscription read

**Storage task assignment reports 1**

- `azure_storage.storage_task_assignment_reports.list` Fetch the report summary of a single storage task assignment's instances read

**Subscriptions 1**

- `azure_storage.subscriptions.list` List the subscriptions the credential can see read

**Usages 1**

- `azure_storage.usages.list_by_location` Gets the current usage count and the limit for the resources of the location under the subscription read

Questions

## The Azure Storage MCP server, answered.

**Is there an Azure Storage MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 141 Azure Storage actions across storage accounts, blob containers, blob access point configurations and context caches, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Azure Storage.

**What do I need to connect Azure Storage?**

Entra application (client) id of a service principal with an Azure RBAC role on the subscription and Entra client secret. Plus your tenant id. The free call account { op: "connections.requirements", service: "azure_storage" } lists exactly what to paste.

**Can an AI agent delete or change things in Azure Storage?**

Only if its key allows it, and only with an explicit confirmation. 28 Azure Storage actions are destructive, including deletes specified container under its account, a failover request can be triggered for a storage account in the event a primary endpoint becomes unavailable for any reason and regenerate the local user SSH password. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my Azure Storage API limit?**

actionlake paces every call to the limits in the Azure Storage service file: 200 calls a minute per connection. Repeated reads are answered from cache (61 Azure Storage actions can be), which never reaches Azure Storage.

**What does an Azure Storage action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (30 Azure Storage actions page). Cache hits, searches, dry runs and calls Azure Storage refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which Azure Storage API does it cover?**

The Azure Storage (storage accounts, keys, blob containers, file shares, queues, tables, lifecycle policies) API Azure Resource Manager Microsoft.Storage: openapi.json (2026-09-01) at management.azure.com. It is built from Azure Storage's documentation as read on 23 October 2026. 141 actions in 32 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Azure Storage data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your Azure Storage credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like Azure Storage

Shares the most action names with

- [Azure Kubernetes Service (AKS) 1](https://actionlake.com/connectors/azure-kubernetes-service-aks)
- [Azure Virtual Desktop 1](https://actionlake.com/connectors/azure-virtual-desktop)
- [Microsoft Defender for Cloud 1](https://actionlake.com/connectors/microsoft-defender-for-cloud)
- [Azure Backup (Recovery Services) 1](https://actionlake.com/connectors/azure-backup-recovery-services)
- [Azure Log Analytics 1](https://actionlake.com/connectors/azure-log-analytics)
- [Azure RBAC (Authorization) 1](https://actionlake.com/connectors/azure-rbac-authorization)

Joins with, on shared entities

- [Metabase 2](https://actionlake.com/connectors/metabase)
- [Grafana 2](https://actionlake.com/connectors/grafana)
- [Zoho WorkDrive 2](https://actionlake.com/connectors/zoho-workdrive)
- [LlamaCloud 2](https://actionlake.com/connectors/llamacloud)
- [Coda 2](https://actionlake.com/connectors/coda)
- [Grist 2](https://actionlake.com/connectors/grist)

Browse

- [All MSP & PSA connectors](https://actionlake.com/connectors/category/msp-and-psa)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by Azure Storage; the name is the vendor's own. Counts are from the Azure Storage service file, version 1.0.0.

## Give your agent Azure Storage today.

[Connect Azure Storage free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/azure-storage
More: https://actionlake.com/llms.txt
