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

Connectors · MSP & PSA

# Azure Automation MCP server for AI agents.

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

[Connect Azure Automation 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_automation.operations.list",
  intent: "check which Azure Automation account is connected"
}
# Lists all of the available Automation REST API operations · read · 1 upstream call
```

- 160 actions in one signed file
- 80 read look, never change
- 50 write create and update
- 30 wait for a yes destructive, confirmed first

Set up

## Connect Azure Automation 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 Automation.
   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 Automation tenant id
   ```
   account { op: "connections.requirements", service: "azure_automation" }
   # 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_automation.operations.list" }
   # lists all of the available automation rest api operations · read · 1 upstream call
   check { action: "azure_automation.jobs.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

Azure Automation 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 Automation (runbooks, jobs and job streams, schedules, variables, credentials, Hybrid Runbook Workers, DSC) API Azure Resource Manager Microsoft.Automation: openapi.json (2024-10-23)`management.azure.com`

**Built from**

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

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

73 of 80 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

1, so ask can line Azure Automation 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 Automation.

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

- **80** read look, never change
- **50** write create and update
- **30** destructive wait for a confirmation

1. ### Runbooks
   8
   4 read · 3 write · 1 destructive
   Retrieve a list of runbooks · Retrieve the runbook identified by runbook name · Update the runbook identified by runbook name · Delete the runbook by name
2. ### Watchers
   7
   2 read · 4 write · 1 destructive
   Retrieve a list of watchers · Retrieve the watcher identified by watcher name · Resume the watcher identified by watcher name · Resume the watcher identified by watcher name
3. ### Automation accounts
   6
   3 read · 2 write · 1 destructive
   Lists the Automation Accounts within an Azure subscription · Retrieve a list of accounts within a given resource group · Get information about an Automation Account · Update an automation account
4. ### Hybrid runbook workers
   6
   2 read · 3 write · 1 destructive
   Retrieve a list of hybrid runbook workers · Retrieve a hybrid runbook worker · Move a hybrid worker to a different group · Update a hybrid runbook worker
5. ### Jobs
   6
   2 read · 2 write · 2 destructive
   Retrieve a list of jobs · Retrieve the job identified by job name · Create a job of the runbook · Resume the job identified by jobName
6. ### Webhooks
   6
   3 read · 2 write · 1 destructive
   Retrieve a list of webhooks · Retrieve the webhook identified by webhook name · Update the webhook identified by webhook name · Delete the webhook by name
7. ### Certificates
   5
   2 read · 2 write · 1 destructive
   Retrieve a list of certificates · Retrieve the certificate identified by certificate name · Update a certificate · Delete the certificate
8. ### Connections
   5
   2 read · 2 write · 1 destructive
   Retrieve a list of connections · Retrieve the connection identified by connection name · Update a connection · Delete the connection

**37 more areas · 111 actions**

- Credentials **5**
- DSC configurations **5**
- Hybrid runbook worker groups **5**
- Modules **5**
- Python2 packages **5**
- Python3 packages **5**
- Runtime environment packages **5**
- Runtime environments **5**
- Schedules **5**
- Source controls **5**
- Test jobs **5**
- Variables **5**
- Connection types **4**
- DSC node configurations **4**
- DSC nodes **4**
- Job schedules **4**
- Private endpoint connections **4**
- Runbook drafts **3**
- Source control sync jobs **3**
- Activities **2**
- Agent registration information **2**
- DSC node reports **2**
- Job streams **2**
- Object data types **2**
- Source control sync job streams **2**
- Test job streams **2**
- Account keys **1**
- Deleted automation accounts **1**
- DSC node counts **1**
- Linked workspace **1**
- Module type fields **1**
- Operations **1**
- Private link resources **1**
- Resource groups **1**
- Statistics **1**
- Subscriptions **1**
- Usages **1**

Top actions

## The Azure Automation API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 19 of Azure Automation's 19 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_automation.jobs.list` Retrieve a list of jobs | Retrieve a list of jobs. | read | `infra.job.list` 12 connectors |
| `azure_automation.webhooks.list` Retrieve a list of webhooks | Retrieve a list of webhooks. | read | `automation.webhook.list` 202 connectors |
| `azure_automation.runbooks.list` Retrieve a list of runbooks | Retrieve a list of runbooks. | read | `automation.script.list` 18 connectors |
| `azure_automation.schedules.list` Retrieve a list of schedules | Retrieve a list of schedules. | read | `automation.schedule.list` 18 connectors |
| `azure_automation.jobs.get` Retrieve the job identified by job name | Retrieve the job identified by job name. | read | `infra.job.get` 11 connectors |
| `azure_automation.webhooks.get` Retrieve the webhook identified by webhook name | Retrieve the webhook identified by webhook name. | read | `automation.webhook.get` 162 connectors |
| `azure_automation.runbooks.get` Retrieve the runbook identified by runbook name | Retrieve the runbook identified by runbook name. | read | `automation.script.get` 15 connectors |
| `azure_automation.schedules.get` Retrieve the schedule identified by schedule name | Retrieve the schedule identified by schedule name. | read | `automation.schedule.get` 13 connectors |
| `azure_automation.jobs.create` Create a job of the runbook | Create a job of the runbook. | write | `infra.job.create` 10 connectors |
| `azure_automation.webhooks.update` Update the webhook identified by webhook name | Update the webhook identified by webhook name. | write | `automation.webhook.update` 175 connectors |
| `azure_automation.webhooks.delete` Delete the webhook by name | Delete the webhook by name. | destructive | `automation.webhook.delete` 211 connectors |
| `azure_automation.schedules.update` Update the schedule identified by schedule name | Update the schedule identified by schedule name. | write | `automation.schedule.update` 16 connectors |

Try it

## Prompts to paste into Claude.

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

1. Read read
   Lists all of the available Automation REST API operations in Azure Automation and tell me what stands out.
   calls `azure_automation.operations.list`
2. Write write
   Create a job of the runbook in Azure Automation. Show me exactly what you will send before you save it.
   calls `azure_automation.jobs.create`

Governance for Azure Automation

## Destructive actions wait for a yes.

30 Azure Automation actions are destructive. These are all of them:

- Delete the webhook by name `azure_automation.webhooks.delete`
- Delete the schedule identified by schedule name `azure_automation.schedules.delete`
- Delete the runbook by name `azure_automation.runbooks.delete`
- Delete the module by name `azure_automation.modules.delete`
- Delete the watcher by name `azure_automation.watchers.delete`
- Delete the dsc node identified by node id `azure_automation.dsc_nodes.delete`
- Delete the variable `azure_automation.variables.delete`
- Delete the connection `azure_automation.connections.delete`
- Delete the credential `azure_automation.credentials.delete`
- Delete the certificate `azure_automation.certificates.delete`
- Delete the job schedule identified by job schedule name `azure_automation.job_schedules.delete`
- Delete the source control `azure_automation.source_controls.delete`
- Delete the connection type `azure_automation.connection_types.delete`
- Delete the python 2 package by name `azure_automation.python2_packages.delete`
- Delete the python 3 package by name `azure_automation.python3_packages.delete`
- Undo draft edit to last known published state identified by runbook name `azure_automation.runbook_drafts.undo_edit`
- Delete the dsc configuration identified by configuration name `azure_automation.dsc_configurations.delete`
- Delete an automation account `azure_automation.automation_accounts.delete`
- Delete the Runtime Environment `azure_automation.runtime_environments.delete`
- Delete a hybrid runbook worker `azure_automation.hybrid_runbook_workers.delete`
- Delete the Dsc node configurations by node configuration `azure_automation.dsc_node_configurations.delete`
- Replaces the runbook draft content `azure_automation.runbook_drafts.replace_content`
- Delete a hybrid runbook worker group `azure_automation.hybrid_runbook_worker_groups.delete`
- Deletes a private endpoint connection with a given name `azure_automation.private_endpoint_connections.delete`
- Delete the package by name `azure_automation.runtime_environment_packages.delete`
- Regenerate a primary or secondary agent registration key `azure_automation.agent_registration_information.regenerate_key`
- Stop the job identified by jobName `azure_automation.jobs.stop`
- Suspend the job identified by job name `azure_automation.jobs.suspend`
- Stop the test job `azure_automation.test_jobs.stop`
- Suspend the test job `azure_automation.test_jobs.suspend`

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_automation.webhooks.delete confirm_policy: **human**

Delete the webhook by name?

**intent:** the user asked me to delete the webhook by name

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

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "azure-automation-agent",
  allowed_actions: ["azure_automation.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "azure_automation.webhooks.delete", approver: "lead@example.com" },
    { match: "azure_automation.schedules.delete", approver: "lead@example.com" },
    { match: "azure_automation.runbooks.delete", approver: "lead@example.com" }
  ]
}
```

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

Cost

## What Azure Automation costs on actionlake.

Every Azure Automation action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call Azure Automation 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 160 Azure Automation actions
- 41 actions page each page of a long list is one call
- 73 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 Automation action.

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

**Runbooks 8**

- `azure_automation.runbooks.convert_graph_content` Post operation to serialize or deserialize GraphRunbookContent read
- `azure_automation.runbooks.create_or_update` Create the runbook identified by runbook name write
- `azure_automation.runbooks.delete` Delete the runbook by name destructive
- `azure_automation.runbooks.get` Retrieve the runbook identified by runbook name read
- `azure_automation.runbooks.list` Retrieve a list of runbooks read
- `azure_automation.runbooks.list_deleted` Retrieve the deleted runbooks for an automation account read
- `azure_automation.runbooks.publish` Publish runbook draft write
- `azure_automation.runbooks.update` Update the runbook identified by runbook name write

**Watchers 7**

- `azure_automation.watchers.create_or_update` Create the watcher identified by watcher name write
- `azure_automation.watchers.delete` Delete the watcher by name destructive
- `azure_automation.watchers.get` Retrieve the watcher identified by watcher name read
- `azure_automation.watchers.list` Retrieve a list of watchers read
- `azure_automation.watchers.start` Resume the watcher identified by watcher name write
- `azure_automation.watchers.stop` Resume the watcher identified by watcher name write
- `azure_automation.watchers.update` Update the watcher identified by watcher name write

**Automation accounts 6**

- `azure_automation.automation_accounts.create_or_update` Create or update automation account write
- `azure_automation.automation_accounts.delete` Delete an automation account destructive
- `azure_automation.automation_accounts.get` Get information about an Automation Account read
- `azure_automation.automation_accounts.list` Lists the Automation Accounts within an Azure subscription read
- `azure_automation.automation_accounts.list_by_resource_group` Retrieve a list of accounts within a given resource group read
- `azure_automation.automation_accounts.update` Update an automation account write

**Hybrid runbook workers 6**

- `azure_automation.hybrid_runbook_workers.create` Create a hybrid runbook worker write
- `azure_automation.hybrid_runbook_workers.delete` Delete a hybrid runbook worker destructive
- `azure_automation.hybrid_runbook_workers.get` Retrieve a hybrid runbook worker read
- `azure_automation.hybrid_runbook_workers.list` Retrieve a list of hybrid runbook workers read
- `azure_automation.hybrid_runbook_workers.move` Move a hybrid worker to a different group write
- `azure_automation.hybrid_runbook_workers.patch` Update a hybrid runbook worker write

**Jobs 6**

- `azure_automation.jobs.create` Create a job of the runbook write
- `azure_automation.jobs.get` Retrieve the job identified by job name read
- `azure_automation.jobs.list` Retrieve a list of jobs read
- `azure_automation.jobs.resume` Resume the job identified by jobName write
- `azure_automation.jobs.stop` Stop the job identified by jobName destructive
- `azure_automation.jobs.suspend` Suspend the job identified by job name destructive

**Webhooks 6**

- `azure_automation.webhooks.create_or_update` Create the webhook identified by webhook name write
- `azure_automation.webhooks.delete` Delete the webhook by name destructive
- `azure_automation.webhooks.generate_uri` Generates a Uri for use in creating a webhook read
- `azure_automation.webhooks.get` Retrieve the webhook identified by webhook name read
- `azure_automation.webhooks.list` Retrieve a list of webhooks read
- `azure_automation.webhooks.update` Update the webhook identified by webhook name write

**Certificates 5**

- `azure_automation.certificates.create_or_update` Create a certificate write
- `azure_automation.certificates.delete` Delete the certificate destructive
- `azure_automation.certificates.get` Retrieve the certificate identified by certificate name read
- `azure_automation.certificates.list` Retrieve a list of certificates read
- `azure_automation.certificates.update` Update a certificate write

**Connections 5**

- `azure_automation.connections.create_or_update` Create or update a connection write
- `azure_automation.connections.delete` Delete the connection destructive
- `azure_automation.connections.get` Retrieve the connection identified by connection name read
- `azure_automation.connections.list` Retrieve a list of connections read
- `azure_automation.connections.update` Update a connection write

**Credentials 5**

- `azure_automation.credentials.create_or_update` Create a credential write
- `azure_automation.credentials.delete` Delete the credential destructive
- `azure_automation.credentials.get` Retrieve the credential identified by credential name read
- `azure_automation.credentials.list` Retrieve a list of credentials read
- `azure_automation.credentials.update` Update a credential write

**DSC configurations 5**

- `azure_automation.dsc_configurations.create_or_update` Create the configuration identified by configuration name write
- `azure_automation.dsc_configurations.delete` Delete the dsc configuration identified by configuration name destructive
- `azure_automation.dsc_configurations.get` Retrieve the configuration identified by configuration name read
- `azure_automation.dsc_configurations.list` Retrieve a list of configurations read
- `azure_automation.dsc_configurations.update` Create the configuration identified by configuration name write

**Hybrid runbook worker groups 5**

- `azure_automation.hybrid_runbook_worker_groups.create` Create a hybrid runbook worker group write
- `azure_automation.hybrid_runbook_worker_groups.delete` Delete a hybrid runbook worker group destructive
- `azure_automation.hybrid_runbook_worker_groups.get` Retrieve a hybrid runbook worker group read
- `azure_automation.hybrid_runbook_worker_groups.list` Retrieve a list of hybrid runbook worker groups read
- `azure_automation.hybrid_runbook_worker_groups.update` Update a hybrid runbook worker group write

**Modules 5**

- `azure_automation.modules.create_or_update` Create or Update the module identified by module name write
- `azure_automation.modules.delete` Delete the module by name destructive
- `azure_automation.modules.get` Retrieve the module identified by module name read
- `azure_automation.modules.list` Retrieve a list of modules read
- `azure_automation.modules.update` Update the module identified by module name write

**Python2 packages 5**

- `azure_automation.python2_packages.create_or_update` Create or Update the python 2 package identified by package name write
- `azure_automation.python2_packages.delete` Delete the python 2 package by name destructive
- `azure_automation.python2_packages.get` Retrieve the python 2 package identified by package name read
- `azure_automation.python2_packages.list` Retrieve a list of python 2 packages read
- `azure_automation.python2_packages.update` Update the python 2 package identified by package name write

**Python3 packages 5**

- `azure_automation.python3_packages.create_or_update` Create or Update the python 3 package identified by package name write
- `azure_automation.python3_packages.delete` Delete the python 3 package by name destructive
- `azure_automation.python3_packages.get` Retrieve the python 3 package identified by package name read
- `azure_automation.python3_packages.list` Retrieve a list of python 3 packages read
- `azure_automation.python3_packages.update` Update the python 3 package identified by package name write

**Runtime environment packages 5**

- `azure_automation.runtime_environment_packages.create_or_update` Create or update the package identified by package name write
- `azure_automation.runtime_environment_packages.delete` Delete the package by name destructive
- `azure_automation.runtime_environment_packages.get` Retrieve the Package identified by Package name read
- `azure_automation.runtime_environment_packages.list` Retrieve the a list of Packages read
- `azure_automation.runtime_environment_packages.update` Update the Package identified by Package name write

**Runtime environments 5**

- `azure_automation.runtime_environments.create` Create or update Runtime Environment write
- `azure_automation.runtime_environments.delete` Delete the Runtime Environment destructive
- `azure_automation.runtime_environments.get` Get information about the Runtime Environment read
- `azure_automation.runtime_environments.list` Retrieve a list of RuntimeEnvironments read
- `azure_automation.runtime_environments.update` Update an Runtime Environment write

**Schedules 5**

- `azure_automation.schedules.create_or_update` Create a schedule write
- `azure_automation.schedules.delete` Delete the schedule identified by schedule name destructive
- `azure_automation.schedules.get` Retrieve the schedule identified by schedule name read
- `azure_automation.schedules.list` Retrieve a list of schedules read
- `azure_automation.schedules.update` Update the schedule identified by schedule name write

**Source controls 5**

- `azure_automation.source_controls.create_or_update` Create a source control write
- `azure_automation.source_controls.delete` Delete the source control destructive
- `azure_automation.source_controls.get` Retrieve the source control identified by source control name read
- `azure_automation.source_controls.list` Retrieve a list of source controls read
- `azure_automation.source_controls.update` Update a source control write

**Test jobs 5**

- `azure_automation.test_jobs.create` Create a test job of the runbook write
- `azure_automation.test_jobs.get` Retrieve the test job for the specified runbook read
- `azure_automation.test_jobs.resume` Resume the test job write
- `azure_automation.test_jobs.stop` Stop the test job destructive
- `azure_automation.test_jobs.suspend` Suspend the test job destructive

**Variables 5**

- `azure_automation.variables.create_or_update` Create a variable write
- `azure_automation.variables.delete` Delete the variable destructive
- `azure_automation.variables.get` Retrieve the variable identified by variable name read
- `azure_automation.variables.list` Retrieve a list of variables read
- `azure_automation.variables.update` Update a variable write

**Connection types 4**

- `azure_automation.connection_types.create_or_update` Create a connection type write
- `azure_automation.connection_types.delete` Delete the connection type destructive
- `azure_automation.connection_types.get` Retrieve the connection type identified by connection type name read
- `azure_automation.connection_types.list` Retrieve a list of connection types read

**DSC node configurations 4**

- `azure_automation.dsc_node_configurations.create_or_update` Create the node configuration identified by node configuration name write
- `azure_automation.dsc_node_configurations.delete` Delete the Dsc node configurations by node configuration destructive
- `azure_automation.dsc_node_configurations.get` Retrieve the Dsc node configurations by node configuration read
- `azure_automation.dsc_node_configurations.list` Retrieve a list of dsc node configurations read

**DSC nodes 4**

- `azure_automation.dsc_nodes.delete` Delete the dsc node identified by node id destructive
- `azure_automation.dsc_nodes.get` Retrieve the dsc node identified by node id read
- `azure_automation.dsc_nodes.list` Retrieve a list of dsc nodes read
- `azure_automation.dsc_nodes.update` Update the dsc node write

**Job schedules 4**

- `azure_automation.job_schedules.create` Create a job schedule write
- `azure_automation.job_schedules.delete` Delete the job schedule identified by job schedule name destructive
- `azure_automation.job_schedules.get` Retrieve the job schedule identified by job schedule name read
- `azure_automation.job_schedules.list` Retrieve a list of job schedules read

**Private endpoint connections 4**

- `azure_automation.private_endpoint_connections.create_or_update` Approve or reject a private endpoint connection with a given name write
- `azure_automation.private_endpoint_connections.delete` Deletes a private endpoint connection with a given name destructive
- `azure_automation.private_endpoint_connections.get` Gets a private endpoint connection read
- `azure_automation.private_endpoint_connections.list` List all private endpoint connections on an Automation account read

**Runbook drafts 3**

- `azure_automation.runbook_drafts.get` Retrieve the runbook draft identified by runbook name read
- `azure_automation.runbook_drafts.replace_content` Replaces the runbook draft content destructive
- `azure_automation.runbook_drafts.undo_edit` Undo draft edit to last known published state identified by runbook name destructive

**Source control sync jobs 3**

- `azure_automation.source_control_sync_jobs.create` Creates the sync job for a source control write
- `azure_automation.source_control_sync_jobs.get` Retrieve the source control sync job identified by job id read
- `azure_automation.source_control_sync_jobs.list` Retrieve a list of source control sync jobs read

**Activities 2**

- `azure_automation.activities.get` Retrieve the activity in the module identified by module name and activity name read
- `azure_automation.activities.list` Retrieve a list of activities in the module identified by module name read

**Agent registration information 2**

- `azure_automation.agent_registration_information.get` Retrieve the automation agent registration information read
- `azure_automation.agent_registration_information.regenerate_key` Regenerate a primary or secondary agent registration key destructive

**DSC node reports 2**

- `azure_automation.dsc_node_reports.get` Retrieve the Dsc node report data by node id and report id read
- `azure_automation.dsc_node_reports.list` Retrieve the Dsc node report list by node id read

**Job streams 2**

- `azure_automation.job_streams.get` Retrieve the job stream identified by job stream id read
- `azure_automation.job_streams.list` Retrieve a list of jobs streams identified by job name read

**Object data types 2**

- `azure_automation.object_data_types.list_fields` Retrieve a list of fields of a given type across all accessible modules read
- `azure_automation.object_data_types.list_fields_by_module` Retrieve a list of fields of a given type identified by module name read

**Source control sync job streams 2**

- `azure_automation.source_control_sync_job_streams.get` Retrieve a sync job stream identified by stream id read
- `azure_automation.source_control_sync_job_streams.list` Retrieve a list of sync job streams identified by sync job id read

**Test job streams 2**

- `azure_automation.test_job_streams.get` Retrieve a test job stream of the test job identified by runbook name and stream id read
- `azure_automation.test_job_streams.list` Retrieve a list of test job streams identified by runbook name read

**Account keys 1**

- `azure_automation.account_keys.list` Retrieve the automation keys for an account read

**Deleted automation accounts 1**

- `azure_automation.deleted_automation_accounts.list` Retrieve deleted automation account read

**DSC node counts 1**

- `azure_automation.dsc_node_counts.get` Retrieve counts for Dsc Nodes read

**Linked workspace 1**

- `azure_automation.linked_workspace.get` Retrieve the linked workspace for the account id read

**Module type fields 1**

- `azure_automation.module_type_fields.list` Retrieve a list of fields of a given type identified by module name read

**Operations 1**

- `azure_automation.operations.list` Lists all of the available Automation REST API operations read

**Private link resources 1**

- `azure_automation.private_link_resources.list` Gets the private link resources that need to be created for Automation account read

**Resource groups 1**

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

**Statistics 1**

- `azure_automation.statistics.list` Retrieve the statistics for the account read

**Subscriptions 1**

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

**Usages 1**

- `azure_automation.usages.list` Retrieve the usage for the account id read

Questions

## The Azure Automation MCP server, answered.

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

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 160 Azure Automation actions across runbooks, watchers, automation accounts and hybrid runbook workers, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Azure Automation.

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

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_automation" } lists exactly what to paste.

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

Only if its key allows it, and only with an explicit confirmation. 30 Azure Automation actions are destructive, including delete the webhook by name, delete the schedule identified by schedule name and delete the runbook by name. 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 Automation API limit?**

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

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

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (41 Azure Automation actions page). Cache hits, searches, dry runs and calls Azure Automation 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 Automation API does it cover?**

The Azure Automation (runbooks, jobs and job streams, schedules, variables, credentials, Hybrid Runbook Workers, DSC) API Azure Resource Manager Microsoft.Automation: openapi.json (2024-10-23) at management.azure.com. It is built from Azure Automation's documentation as read on 23 October 2026. 160 actions in 45 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my Azure Automation 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 Automation 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 Automation

Shares the most action names with

- [Pulseway RMM 6](https://actionlake.com/connectors/pulseway-rmm)
- [Blumira 4](https://actionlake.com/connectors/blumira)
- [Automox 4](https://actionlake.com/connectors/automox)
- [Tailscale 4](https://actionlake.com/connectors/tailscale)
- [Azure Container Apps 3](https://actionlake.com/connectors/azure-container-apps)
- [Lansweeper 3](https://actionlake.com/connectors/lansweeper)

Joins with, on shared entities

- [Google Vertex AI 1](https://actionlake.com/connectors/google-vertex-ai)
- [Kubernetes 1](https://actionlake.com/connectors/kubernetes)
- [Veeam Backup & Replication 1](https://actionlake.com/connectors/veeam-backup-and-replication)
- [Veeam Backup for Microsoft 365 1](https://actionlake.com/connectors/veeam-backup-for-microsoft-365)
- [Northflank 1](https://actionlake.com/connectors/northflank)
- [HashiCorp Nomad 1](https://actionlake.com/connectors/hashicorp-nomad)

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 Automation; the name is the vendor's own. Counts are from the Azure Automation service file, version 1.0.0.

## Give your agent Azure Automation today.

[Connect Azure Automation 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-automation
More: https://actionlake.com/llms.txt
