Skip to content

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.

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
  • 160actionsin one signed file
  • 80readlook, never change
  • 50writecreate and update
  • 30wait for a yesdestructive, 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_idEntra application (client) id of a service principal with an Azure RBAC role on the subscription
    • client_secretEntra client secret
    • tenant_idYour 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 callcheck { 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_idclient_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 2026OpenAPI spec (GitHub)learn.microsoft.com
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.

  • 80readlook, never change
  • 50writecreate and update
  • 30destructivewait 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.

ActionWhat it doesEffectSame name in
azure_automation.jobs.listRetrieve a list of jobsRetrieve a list of jobs.readinfra.job.list12 connectors
azure_automation.webhooks.listRetrieve a list of webhooksRetrieve a list of webhooks.readautomation.webhook.list202 connectors
azure_automation.runbooks.listRetrieve a list of runbooksRetrieve a list of runbooks.readautomation.script.list18 connectors
azure_automation.schedules.listRetrieve a list of schedulesRetrieve a list of schedules.readautomation.schedule.list18 connectors
azure_automation.jobs.getRetrieve the job identified by job nameRetrieve the job identified by job name.readinfra.job.get11 connectors
azure_automation.webhooks.getRetrieve the webhook identified by webhook nameRetrieve the webhook identified by webhook name.readautomation.webhook.get162 connectors
azure_automation.runbooks.getRetrieve the runbook identified by runbook nameRetrieve the runbook identified by runbook name.readautomation.script.get15 connectors
azure_automation.schedules.getRetrieve the schedule identified by schedule nameRetrieve the schedule identified by schedule name.readautomation.schedule.get13 connectors
azure_automation.jobs.createCreate a job of the runbookCreate a job of the runbook.writeinfra.job.create10 connectors
azure_automation.webhooks.updateUpdate the webhook identified by webhook nameUpdate the webhook identified by webhook name.writeautomation.webhook.update175 connectors
azure_automation.webhooks.deleteDelete the webhook by nameDelete the webhook by name.destructiveautomation.webhook.delete211 connectors
azure_automation.schedules.updateUpdate the schedule identified by schedule nameUpdate the schedule identified by schedule name.writeautomation.schedule.update16 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. Readread

    Lists all of the available Automation REST API operations in Azure Automation and tell me what stands out.

    callsazure_automation.operations.list

  2. Writewrite

    Create a job of the runbook in Azure Automation. Show me exactly what you will send before you save it.

    callsazure_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 nameazure_automation.webhooks.delete
  • Delete the schedule identified by schedule nameazure_automation.schedules.delete
  • Delete the runbook by nameazure_automation.runbooks.delete
  • Delete the module by nameazure_automation.modules.delete
  • Delete the watcher by nameazure_automation.watchers.delete
  • Delete the dsc node identified by node idazure_automation.dsc_nodes.delete
  • Delete the variableazure_automation.variables.delete
  • Delete the connectionazure_automation.connections.delete
  • Delete the credentialazure_automation.credentials.delete
  • Delete the certificateazure_automation.certificates.delete
  • Delete the job schedule identified by job schedule nameazure_automation.job_schedules.delete
  • Delete the source controlazure_automation.source_controls.delete
  • Delete the connection typeazure_automation.connection_types.delete
  • Delete the python 2 package by nameazure_automation.python2_packages.delete
  • Delete the python 3 package by nameazure_automation.python3_packages.delete
  • Undo draft edit to last known published state identified by runbook nameazure_automation.runbook_drafts.undo_edit
  • Delete the dsc configuration identified by configuration nameazure_automation.dsc_configurations.delete
  • Delete an automation accountazure_automation.automation_accounts.delete
  • Delete the Runtime Environmentazure_automation.runtime_environments.delete
  • Delete a hybrid runbook workerazure_automation.hybrid_runbook_workers.delete
  • Delete the Dsc node configurations by node configurationazure_automation.dsc_node_configurations.delete
  • Replaces the runbook draft contentazure_automation.runbook_drafts.replace_content
  • Delete a hybrid runbook worker groupazure_automation.hybrid_runbook_worker_groups.delete
  • Deletes a private endpoint connection with a given nameazure_automation.private_endpoint_connections.delete
  • Delete the package by nameazure_automation.runtime_environment_packages.delete
  • Regenerate a primary or secondary agent registration keyazure_automation.agent_registration_information.regenerate_key
  • Stop the job identified by jobNameazure_automation.jobs.stop
  • Suspend the job identified by job nameazure_automation.jobs.suspend
  • Stop the test jobazure_automation.test_jobs.stop
  • Suspend the test jobazure_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.

doazure_automation.webhooks.deleteconfirm_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: "[email protected]" },    { match: "azure_automation.schedules.delete", approver: "[email protected]" },    { match: "azure_automation.runbooks.delete", approver: "[email protected]" }  ]}
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.

  • 1upstream call per actionall 160 Azure Automation actions
  • 41actions pageeach page of a long list is one call
  • 73reads can be cacheda cache hit costs nothing
  • 100,000calls a month, freepaid plans from US$49 a month for 250,000

See pricing

Action index

Every Azure Automation action.

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

Runbooks8
  • azure_automation.runbooks.convert_graph_contentPost operation to serialize or deserialize GraphRunbookContentread
  • azure_automation.runbooks.create_or_updateCreate the runbook identified by runbook namewrite
  • azure_automation.runbooks.deleteDelete the runbook by namedestructive
  • azure_automation.runbooks.getRetrieve the runbook identified by runbook nameread
  • azure_automation.runbooks.listRetrieve a list of runbooksread
  • azure_automation.runbooks.list_deletedRetrieve the deleted runbooks for an automation accountread
  • azure_automation.runbooks.publishPublish runbook draftwrite
  • azure_automation.runbooks.updateUpdate the runbook identified by runbook namewrite
Watchers7
  • azure_automation.watchers.create_or_updateCreate the watcher identified by watcher namewrite
  • azure_automation.watchers.deleteDelete the watcher by namedestructive
  • azure_automation.watchers.getRetrieve the watcher identified by watcher nameread
  • azure_automation.watchers.listRetrieve a list of watchersread
  • azure_automation.watchers.startResume the watcher identified by watcher namewrite
  • azure_automation.watchers.stopResume the watcher identified by watcher namewrite
  • azure_automation.watchers.updateUpdate the watcher identified by watcher namewrite
Automation accounts6
  • azure_automation.automation_accounts.create_or_updateCreate or update automation accountwrite
  • azure_automation.automation_accounts.deleteDelete an automation accountdestructive
  • azure_automation.automation_accounts.getGet information about an Automation Accountread
  • azure_automation.automation_accounts.listLists the Automation Accounts within an Azure subscriptionread
  • azure_automation.automation_accounts.list_by_resource_groupRetrieve a list of accounts within a given resource groupread
  • azure_automation.automation_accounts.updateUpdate an automation accountwrite
Hybrid runbook workers6
  • azure_automation.hybrid_runbook_workers.createCreate a hybrid runbook workerwrite
  • azure_automation.hybrid_runbook_workers.deleteDelete a hybrid runbook workerdestructive
  • azure_automation.hybrid_runbook_workers.getRetrieve a hybrid runbook workerread
  • azure_automation.hybrid_runbook_workers.listRetrieve a list of hybrid runbook workersread
  • azure_automation.hybrid_runbook_workers.moveMove a hybrid worker to a different groupwrite
  • azure_automation.hybrid_runbook_workers.patchUpdate a hybrid runbook workerwrite
Jobs6
  • azure_automation.jobs.createCreate a job of the runbookwrite
  • azure_automation.jobs.getRetrieve the job identified by job nameread
  • azure_automation.jobs.listRetrieve a list of jobsread
  • azure_automation.jobs.resumeResume the job identified by jobNamewrite
  • azure_automation.jobs.stopStop the job identified by jobNamedestructive
  • azure_automation.jobs.suspendSuspend the job identified by job namedestructive
Webhooks6
  • azure_automation.webhooks.create_or_updateCreate the webhook identified by webhook namewrite
  • azure_automation.webhooks.deleteDelete the webhook by namedestructive
  • azure_automation.webhooks.generate_uriGenerates a Uri for use in creating a webhookread
  • azure_automation.webhooks.getRetrieve the webhook identified by webhook nameread
  • azure_automation.webhooks.listRetrieve a list of webhooksread
  • azure_automation.webhooks.updateUpdate the webhook identified by webhook namewrite
Certificates5
  • azure_automation.certificates.create_or_updateCreate a certificatewrite
  • azure_automation.certificates.deleteDelete the certificatedestructive
  • azure_automation.certificates.getRetrieve the certificate identified by certificate nameread
  • azure_automation.certificates.listRetrieve a list of certificatesread
  • azure_automation.certificates.updateUpdate a certificatewrite
Connections5
  • azure_automation.connections.create_or_updateCreate or update a connectionwrite
  • azure_automation.connections.deleteDelete the connectiondestructive
  • azure_automation.connections.getRetrieve the connection identified by connection nameread
  • azure_automation.connections.listRetrieve a list of connectionsread
  • azure_automation.connections.updateUpdate a connectionwrite
Credentials5
  • azure_automation.credentials.create_or_updateCreate a credentialwrite
  • azure_automation.credentials.deleteDelete the credentialdestructive
  • azure_automation.credentials.getRetrieve the credential identified by credential nameread
  • azure_automation.credentials.listRetrieve a list of credentialsread
  • azure_automation.credentials.updateUpdate a credentialwrite
DSC configurations5
  • azure_automation.dsc_configurations.create_or_updateCreate the configuration identified by configuration namewrite
  • azure_automation.dsc_configurations.deleteDelete the dsc configuration identified by configuration namedestructive
  • azure_automation.dsc_configurations.getRetrieve the configuration identified by configuration nameread
  • azure_automation.dsc_configurations.listRetrieve a list of configurationsread
  • azure_automation.dsc_configurations.updateCreate the configuration identified by configuration namewrite
Hybrid runbook worker groups5
  • azure_automation.hybrid_runbook_worker_groups.createCreate a hybrid runbook worker groupwrite
  • azure_automation.hybrid_runbook_worker_groups.deleteDelete a hybrid runbook worker groupdestructive
  • azure_automation.hybrid_runbook_worker_groups.getRetrieve a hybrid runbook worker groupread
  • azure_automation.hybrid_runbook_worker_groups.listRetrieve a list of hybrid runbook worker groupsread
  • azure_automation.hybrid_runbook_worker_groups.updateUpdate a hybrid runbook worker groupwrite
Modules5
  • azure_automation.modules.create_or_updateCreate or Update the module identified by module namewrite
  • azure_automation.modules.deleteDelete the module by namedestructive
  • azure_automation.modules.getRetrieve the module identified by module nameread
  • azure_automation.modules.listRetrieve a list of modulesread
  • azure_automation.modules.updateUpdate the module identified by module namewrite
Python2 packages5
  • azure_automation.python2_packages.create_or_updateCreate or Update the python 2 package identified by package namewrite
  • azure_automation.python2_packages.deleteDelete the python 2 package by namedestructive
  • azure_automation.python2_packages.getRetrieve the python 2 package identified by package nameread
  • azure_automation.python2_packages.listRetrieve a list of python 2 packagesread
  • azure_automation.python2_packages.updateUpdate the python 2 package identified by package namewrite
Python3 packages5
  • azure_automation.python3_packages.create_or_updateCreate or Update the python 3 package identified by package namewrite
  • azure_automation.python3_packages.deleteDelete the python 3 package by namedestructive
  • azure_automation.python3_packages.getRetrieve the python 3 package identified by package nameread
  • azure_automation.python3_packages.listRetrieve a list of python 3 packagesread
  • azure_automation.python3_packages.updateUpdate the python 3 package identified by package namewrite
Runtime environment packages5
  • azure_automation.runtime_environment_packages.create_or_updateCreate or update the package identified by package namewrite
  • azure_automation.runtime_environment_packages.deleteDelete the package by namedestructive
  • azure_automation.runtime_environment_packages.getRetrieve the Package identified by Package nameread
  • azure_automation.runtime_environment_packages.listRetrieve the a list of Packagesread
  • azure_automation.runtime_environment_packages.updateUpdate the Package identified by Package namewrite
Runtime environments5
  • azure_automation.runtime_environments.createCreate or update Runtime Environmentwrite
  • azure_automation.runtime_environments.deleteDelete the Runtime Environmentdestructive
  • azure_automation.runtime_environments.getGet information about the Runtime Environmentread
  • azure_automation.runtime_environments.listRetrieve a list of RuntimeEnvironmentsread
  • azure_automation.runtime_environments.updateUpdate an Runtime Environmentwrite
Schedules5
  • azure_automation.schedules.create_or_updateCreate a schedulewrite
  • azure_automation.schedules.deleteDelete the schedule identified by schedule namedestructive
  • azure_automation.schedules.getRetrieve the schedule identified by schedule nameread
  • azure_automation.schedules.listRetrieve a list of schedulesread
  • azure_automation.schedules.updateUpdate the schedule identified by schedule namewrite
Source controls5
  • azure_automation.source_controls.create_or_updateCreate a source controlwrite
  • azure_automation.source_controls.deleteDelete the source controldestructive
  • azure_automation.source_controls.getRetrieve the source control identified by source control nameread
  • azure_automation.source_controls.listRetrieve a list of source controlsread
  • azure_automation.source_controls.updateUpdate a source controlwrite
Test jobs5
  • azure_automation.test_jobs.createCreate a test job of the runbookwrite
  • azure_automation.test_jobs.getRetrieve the test job for the specified runbookread
  • azure_automation.test_jobs.resumeResume the test jobwrite
  • azure_automation.test_jobs.stopStop the test jobdestructive
  • azure_automation.test_jobs.suspendSuspend the test jobdestructive
Variables5
  • azure_automation.variables.create_or_updateCreate a variablewrite
  • azure_automation.variables.deleteDelete the variabledestructive
  • azure_automation.variables.getRetrieve the variable identified by variable nameread
  • azure_automation.variables.listRetrieve a list of variablesread
  • azure_automation.variables.updateUpdate a variablewrite
Connection types4
  • azure_automation.connection_types.create_or_updateCreate a connection typewrite
  • azure_automation.connection_types.deleteDelete the connection typedestructive
  • azure_automation.connection_types.getRetrieve the connection type identified by connection type nameread
  • azure_automation.connection_types.listRetrieve a list of connection typesread
DSC node configurations4
  • azure_automation.dsc_node_configurations.create_or_updateCreate the node configuration identified by node configuration namewrite
  • azure_automation.dsc_node_configurations.deleteDelete the Dsc node configurations by node configurationdestructive
  • azure_automation.dsc_node_configurations.getRetrieve the Dsc node configurations by node configurationread
  • azure_automation.dsc_node_configurations.listRetrieve a list of dsc node configurationsread
DSC nodes4
  • azure_automation.dsc_nodes.deleteDelete the dsc node identified by node iddestructive
  • azure_automation.dsc_nodes.getRetrieve the dsc node identified by node idread
  • azure_automation.dsc_nodes.listRetrieve a list of dsc nodesread
  • azure_automation.dsc_nodes.updateUpdate the dsc nodewrite
Job schedules4
  • azure_automation.job_schedules.createCreate a job schedulewrite
  • azure_automation.job_schedules.deleteDelete the job schedule identified by job schedule namedestructive
  • azure_automation.job_schedules.getRetrieve the job schedule identified by job schedule nameread
  • azure_automation.job_schedules.listRetrieve a list of job schedulesread
Private endpoint connections4
  • azure_automation.private_endpoint_connections.create_or_updateApprove or reject a private endpoint connection with a given namewrite
  • azure_automation.private_endpoint_connections.deleteDeletes a private endpoint connection with a given namedestructive
  • azure_automation.private_endpoint_connections.getGets a private endpoint connectionread
  • azure_automation.private_endpoint_connections.listList all private endpoint connections on an Automation accountread
Runbook drafts3
  • azure_automation.runbook_drafts.getRetrieve the runbook draft identified by runbook nameread
  • azure_automation.runbook_drafts.replace_contentReplaces the runbook draft contentdestructive
  • azure_automation.runbook_drafts.undo_editUndo draft edit to last known published state identified by runbook namedestructive
Source control sync jobs3
  • azure_automation.source_control_sync_jobs.createCreates the sync job for a source controlwrite
  • azure_automation.source_control_sync_jobs.getRetrieve the source control sync job identified by job idread
  • azure_automation.source_control_sync_jobs.listRetrieve a list of source control sync jobsread
Activities2
  • azure_automation.activities.getRetrieve the activity in the module identified by module name and activity nameread
  • azure_automation.activities.listRetrieve a list of activities in the module identified by module nameread
Agent registration information2
  • azure_automation.agent_registration_information.getRetrieve the automation agent registration informationread
  • azure_automation.agent_registration_information.regenerate_keyRegenerate a primary or secondary agent registration keydestructive
DSC node reports2
  • azure_automation.dsc_node_reports.getRetrieve the Dsc node report data by node id and report idread
  • azure_automation.dsc_node_reports.listRetrieve the Dsc node report list by node idread
Job streams2
  • azure_automation.job_streams.getRetrieve the job stream identified by job stream idread
  • azure_automation.job_streams.listRetrieve a list of jobs streams identified by job nameread
Object data types2
  • azure_automation.object_data_types.list_fieldsRetrieve a list of fields of a given type across all accessible modulesread
  • azure_automation.object_data_types.list_fields_by_moduleRetrieve a list of fields of a given type identified by module nameread
Source control sync job streams2
  • azure_automation.source_control_sync_job_streams.getRetrieve a sync job stream identified by stream idread
  • azure_automation.source_control_sync_job_streams.listRetrieve a list of sync job streams identified by sync job idread
Test job streams2
  • azure_automation.test_job_streams.getRetrieve a test job stream of the test job identified by runbook name and stream idread
  • azure_automation.test_job_streams.listRetrieve a list of test job streams identified by runbook nameread
Account keys1
  • azure_automation.account_keys.listRetrieve the automation keys for an accountread
Deleted automation accounts1
  • azure_automation.deleted_automation_accounts.listRetrieve deleted automation accountread
DSC node counts1
  • azure_automation.dsc_node_counts.getRetrieve counts for Dsc Nodesread
Linked workspace1
  • azure_automation.linked_workspace.getRetrieve the linked workspace for the account idread
Module type fields1
  • azure_automation.module_type_fields.listRetrieve a list of fields of a given type identified by module nameread
Operations1
  • azure_automation.operations.listLists all of the available Automation REST API operationsread
Private link resources1
  • azure_automation.private_link_resources.listGets the private link resources that need to be created for Automation accountread
Resource groups1
  • azure_automation.resource_groups.listList the resource groups in a subscriptionread
Statistics1
  • azure_automation.statistics.listRetrieve the statistics for the accountread
Subscriptions1
  • azure_automation.subscriptions.listList the subscriptions the credential can seeread
Usages1
  • azure_automation.usages.listRetrieve the usage for the account idread

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.

Give your agent Azure Automation today.

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