Connectors · MSP & PSA
Openprovider MCP server for AI agents.
actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Openprovider and the rest of your systems. It gives your agent 137 Openprovider actions (61 reads, 56 writes and 20 that wait for a confirmation) and holds the Openprovider credential itself, so the agent never does. It paces Openprovider'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/mcpdo { action: "openprovider.customers.list", intent: "check which Openprovider account is connected"}# List customers · read · 1 upstream call- 137actionsin one signed file
- 61readlook, never change
- 56writecreate and update
- 20wait for a yesdestructive, confirmed first
Set up
Connect Openprovider in three steps.
- 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 - 02
Connect Openprovider.
Session login. actionlake opens the session and renews it when it expires. actionlake stores what you paste write-only, sealed under your tenant's key.
usernameUsername of the Openprovider reseller account (or an API sub-user contact with API access enabled) that actionlake…passwordPassword of that Openprovider account. actionlake exchanges it at /v1beta/auth/login for a bearer token
account { op: "connections.requirements", service: "openprovider" } # free: exactly what to paste, and what is found for you - 03
Make the first call. Check before a write.
Ask in plain words; Claude picks the action. Before anything changes,
checkvalidates the call and prices it, for free.do { action: "openprovider.customers.list" }# list customers · read · 1 upstream callcheck { action: "openprovider.customers.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent
Openprovider at a glance
- Sign-in
- Session login. actionlake opens the session and renews it when it expires.
- You provide
usernamepassword- Limits we pace to
- 10 calls a second, per connection
- API covered
- Openprovider REST API v1beta (Swagger 2.0)
api.openprovider.eu - Built from
- Openprovider's documentation, read 23 October 2026docs.openprovider.comdocs.openprovider.com
- Service file
- Version 1.0.0, signed (Ed25519)
- Cached reads
- 55 of 61 reads, for up to 5 minutes; a write clears what it affects
- Shared entities
- 3, so ask can line Openprovider up with your other systems
- Data
- Processed and stored in Sydney, Australia. No US region yet
Capabilities
What an AI agent can do in Openprovider.
137 actions in 42 areas. Every one carries its effect, so a key can allow the reads and hold the rest.
- 61readlook, never change
- 56writecreate and update
- 20destructivewait for a confirmation
Domains
144 read · 7 write · 3 destructive
Check domain · Create domain · List domains · Send foa1
SSL orders
102 read · 7 write · 1 destructive
List orders · Create order · Get order · Update order
Mail orders
73 read · 3 write · 1 destructive
Assign mailbox · Create order · List order · Get order
Easydmarc orders
63 read · 2 write · 1 destructive
Create easy dmarc · List easy dmarc · Get easy dmarc · Get easy dmarc sso
Plesk licenses
63 read · 2 write · 1 destructive
Create plesk license · Get plesk license · Update plesk license · Delete plesk license
Virtuozzo licenses
63 read · 2 write · 1 destructive
Create virtuozzo license · List virtuozzo licenses · Get virtuozzo license · Get virtuozzo key
Contacts
52 read · 2 write · 1 destructive
List contacts · Create contact · Get contact · Update contact
Customers
52 read · 2 write · 1 destructive
List customers · Create customer · Get customer · Update customer
34 more areas · 78 actions
- DNS zones 5
- Mail aliases 5
- Nameserver groups 5
- Nameservers 5
- DNS templates 4
- Email templates 4
- Spam expert domains 4
- Email verifications 3
- Mail dkim 3
- Mail domains 3
- Mailboxes 3
- Tags 3
- Contact notification settings 2
- Domain auth codes 2
- Licenses 2
- Mail time limited aliases 2
- Payments 2
- Reseller 2
- SSL CSRS 2
- SSL products 2
- TLDS 2
- DNS domain tokens 1
- DNS zone records 1
- Domain additional data 1
- Domain customer additional data 1
- Domain prices 1
- Invoices 1
- License items 1
- Mail statistics 1
- Reseller settings 1
- Reseller statistics 1
- Spam expert login urls 1
- SSL approver emails 1
- Transactions 1
Top actions
The Openprovider API, shaped for agents.
The ids your agent types, what each does, and the one name it shares with other systems. 29 of Openprovider's 29 action names are shared with at least one other connector, so an agent learns them once.
| Action | What it does | Effect | Same name in |
|---|---|---|---|
openprovider.customers.listList customers | List customers. | read | crm.contact.list177 connectors |
openprovider.customers.createCreate customer | Create customer. | write | crm.contact.create161 connectors |
openprovider.customers.deleteDelete customer | Delete customer. | destructive | crm.contact.delete147 connectors |
openprovider.dns_zone_records.listList zone records | List zone records. | read | infra.dns_record.list12 connectors |
openprovider.dns_zones.listList zones | List zones. | read | infra.dns_zone.list10 connectors |
openprovider.dns_zones.createCreate zone | Create zone. | write | infra.dns_zone.create8 connectors |
openprovider.email_templates.listList emails | List emails. | read | comm.email_template.list40 connectors |
openprovider.email_templates.createCreate email | Create email. | write | comm.email_template.create34 connectors |
openprovider.ssl_csrs.createCreate csr | Create csr. | write | infra.certificate_signing_request.create2 connectors |
openprovider.invoices.listList invoices | List invoices. | read | platform.invoice.list26 connectors |
openprovider.licenses.listList licenses with price version | List licenses with price version. | read | asset.license_record.list6 connectors |
openprovider.plesk_licenses.createCreate plesk license | Create plesk license. | write | asset.license_record.create4 connectors |
Try it
Prompts to paste into Claude.
Each one names the Openprovider actions it will call, so you know what it reads and what it changes before you send it.
- Readread
Find the Openprovider contacts with no email address, so we can clean them up.
calls
openprovider.customers.list - Writewrite
Create customer in Openprovider. Show me exactly what you will send before you save it.
calls
openprovider.customers.create - Across systemsread
Which contacts are in both Openprovider and NetSuite, and how many are in only one of them?
calls
openprovider.customers.listnetsuite.views.contacts
Across your systems
Openprovider, joined to the rest of your business.
One ask fetches from Openprovider and another system, joins the rows on the same customer on our side, and hands your agent the answer, not every row.
Which contacts are in both Openprovider and NetSuite, and how many are in only one of them?
openprovider.customers.list+netsuite.views.contacts, oncrm.contact· NetSuiteWhich contacts are in both Openprovider and HubSpot CRM, and how many are in only one of them?
openprovider.customers.list+hubspot_crm.contacts.list, oncrm.contact· HubSpot CRM
identity.user 517crm.contact 192platform.invoice 12ask { intent: "which contacts are in both Openprovider and NetSuite, and how many are in only one of them", steps: [ { action: "openprovider.customers.list", as: "people", input: {}, limit: 100, max_pages: 5 }, { action: "netsuite.views.contacts", as: "people2", input: {}, limit: 100, max_pages: 5 }, { join: { left: "people", right: "people2", on: "crm.contact", group_by: "people.email", select: ["people.email", "count(people2.id) as in_netsuite"] } } ]}Governance for Openprovider
Destructive actions wait for a yes.
20 Openprovider actions are destructive. These are all of them:
- Delete customer
openprovider.customers.delete - Delete zone
openprovider.dns_zones.delete - Delete email
openprovider.email_templates.delete - Delete plesk license
openprovider.plesk_licenses.delete - Delete tag
openprovider.tags.delete - Delete domain
openprovider.domains.delete - Delete contact
openprovider.contacts.delete - Transfer domain
openprovider.domains.transfer - Delete Dkim records for a domain.
openprovider.mail_dkim.delete - Delete order
openprovider.mail_orders.delete - Delete nameserver
openprovider.nameservers.delete - Delete alias
openprovider.mail_aliases.delete - Delete domain
openprovider.mail_domains.delete - Delete template
openprovider.dns_templates.delete - Delete easy dmarc
openprovider.easydmarc_orders.delete - Approve transfer
openprovider.domains.approve_transfer - Delete group
openprovider.nameserver_groups.delete - Delete virtuozzo license
openprovider.virtuozzo_licenses.delete - Delete domain
openprovider.spam_expert_domains.delete - Cancel order
openprovider.ssl_orders.cancel
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.
Delete customer?
intent: the user asked me to delete customer
account { op: "keys.create", name: "openprovider-agent", allowed_actions: ["openprovider.*"], cap_calls: 2000, confirm_policy: "human_for_writes", approval_rules: [ { match: "openprovider.customers.delete", approver: "[email protected]" }, { match: "openprovider.dns_zones.delete", approver: "[email protected]" }, { match: "openprovider.email_templates.delete", approver: "[email protected]" } ]}Cost
What Openprovider costs on actionlake.
Every Openprovider action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Openprovider 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 137 Openprovider actions
- 137actions pageeach page of a long list is one call
- 55reads can be cacheda cache hit costs nothing
- 100,000calls a month, freepaid plans from US$49 a month for 250,000
Action index
Every Openprovider action.
137 actions by area: the id your agent calls, what it does, and its effect.
Domains14
openprovider.domains.approve_transferApprove transferdestructiveopenprovider.domains.checkCheck domainreadopenprovider.domains.createCreate domainwriteopenprovider.domains.deleteDelete domaindestructiveopenprovider.domains.getGet domainreadopenprovider.domains.listList domainsreadopenprovider.domains.renewRenew domainwriteopenprovider.domains.restart_last_operationTry again last operationwriteopenprovider.domains.restoreRestore domainwriteopenprovider.domains.send_foa1Send foa1writeopenprovider.domains.suggest_nameSuggest name domainreadopenprovider.domains.tradeTrade domainwriteopenprovider.domains.transferTransfer domaindestructiveopenprovider.domains.updateUpdate domainwrite
SSL orders10
openprovider.ssl_orders.cancelCancel orderdestructiveopenprovider.ssl_orders.createCreate orderwriteopenprovider.ssl_orders.create_otp_tokenCreate otp tokenwriteopenprovider.ssl_orders.getGet orderreadopenprovider.ssl_orders.listList ordersreadopenprovider.ssl_orders.reissueReissue orderwriteopenprovider.ssl_orders.renewRenew orderwriteopenprovider.ssl_orders.resend_approver_emailResend approver emailwriteopenprovider.ssl_orders.updateUpdate orderwriteopenprovider.ssl_orders.update_approver_emailUpdate approver email addresswrite
Mail orders7
openprovider.mail_orders.assign_mailboxAssign mailboxwriteopenprovider.mail_orders.createCreate orderwriteopenprovider.mail_orders.deleteDelete orderdestructiveopenprovider.mail_orders.getGet orderreadopenprovider.mail_orders.get_passwordGet mailbox passwordreadopenprovider.mail_orders.listList orderreadopenprovider.mail_orders.retain_mailboxRetain mailboxwrite
Easydmarc orders6
openprovider.easydmarc_orders.createCreate easy dmarcwriteopenprovider.easydmarc_orders.deleteDelete easy dmarcdestructiveopenprovider.easydmarc_orders.getGet easy dmarcreadopenprovider.easydmarc_orders.get_sso_urlGet easy dmarc ssoreadopenprovider.easydmarc_orders.listList easy dmarcreadopenprovider.easydmarc_orders.retryRetry easy dmarcwrite
Plesk licenses6
openprovider.plesk_licenses.createCreate plesk licensewriteopenprovider.plesk_licenses.deleteDelete plesk licensedestructiveopenprovider.plesk_licenses.getGet plesk licensereadopenprovider.plesk_licenses.get_keyGet plesk keyreadopenprovider.plesk_licenses.listList plesk licensesreadopenprovider.plesk_licenses.updateUpdate plesk licensewrite
Virtuozzo licenses6
openprovider.virtuozzo_licenses.createCreate virtuozzo licensewriteopenprovider.virtuozzo_licenses.deleteDelete virtuozzo licensedestructiveopenprovider.virtuozzo_licenses.getGet virtuozzo licensereadopenprovider.virtuozzo_licenses.get_keyGet virtuozzo keyreadopenprovider.virtuozzo_licenses.listList virtuozzo licensesreadopenprovider.virtuozzo_licenses.updateUpdate virtuozzo licensewrite
Contacts5
openprovider.contacts.createCreate contactwriteopenprovider.contacts.deleteDelete contactdestructiveopenprovider.contacts.getGet contactreadopenprovider.contacts.listList contactsreadopenprovider.contacts.updateUpdate contactwrite
Customers5
openprovider.customers.createCreate customerwriteopenprovider.customers.deleteDelete customerdestructiveopenprovider.customers.getGet customerreadopenprovider.customers.listList customersreadopenprovider.customers.updateUpdate customerwrite
DNS zones5
openprovider.dns_zones.createCreate zonewriteopenprovider.dns_zones.deleteDelete zonedestructiveopenprovider.dns_zones.getGet zonereadopenprovider.dns_zones.listList zonesreadopenprovider.dns_zones.updateUpdate zonewrite
Mail aliases5
openprovider.mail_aliases.createAdd aliaswriteopenprovider.mail_aliases.deleteDelete aliasdestructiveopenprovider.mail_aliases.getGet aliasreadopenprovider.mail_aliases.listList aliasreadopenprovider.mail_aliases.updateEdit aliaswrite
Nameserver groups5
openprovider.nameserver_groups.createCreate groupwriteopenprovider.nameserver_groups.deleteDelete groupdestructiveopenprovider.nameserver_groups.getGet groupreadopenprovider.nameserver_groups.listList groupsreadopenprovider.nameserver_groups.updateUpdate groupwrite
Nameservers5
openprovider.nameservers.createCreate nameserverwriteopenprovider.nameservers.deleteDelete nameserverdestructiveopenprovider.nameservers.getGet nameserverreadopenprovider.nameservers.listList nameserversreadopenprovider.nameservers.updateUpdate nameserverwrite
DNS templates4
openprovider.dns_templates.createCreate templatewriteopenprovider.dns_templates.deleteDelete templatedestructiveopenprovider.dns_templates.getGet templatereadopenprovider.dns_templates.listList templatesread
Email templates4
openprovider.email_templates.createCreate emailwriteopenprovider.email_templates.deleteDelete emaildestructiveopenprovider.email_templates.listList emailsreadopenprovider.email_templates.updateUpdate emailwrite
Spam expert domains4
openprovider.spam_expert_domains.createCreate domainwriteopenprovider.spam_expert_domains.deleteDelete domaindestructiveopenprovider.spam_expert_domains.getGet domainreadopenprovider.spam_expert_domains.updateUpdate domainwrite
Email verifications3
openprovider.email_verifications.listList domain email verificationsreadopenprovider.email_verifications.restartRestart email verificationwriteopenprovider.email_verifications.startStart email verificationwrite
Mail dkim3
openprovider.mail_dkim.createGet Dkim records for the domain.writeopenprovider.mail_dkim.deleteDelete Dkim records for a domain.destructiveopenprovider.mail_dkim.getGet Dkim records for the domain.read
Mail domains3
openprovider.mail_domains.createAdd domainwriteopenprovider.mail_domains.deleteDelete domaindestructiveopenprovider.mail_domains.listList domainread
Mailboxes3
openprovider.mailboxes.increase_quotaIncrease mailbox quotawriteopenprovider.mailboxes.renameModify mailbox namewriteopenprovider.mailboxes.updateEdit mailboxwrite
Tags3
openprovider.tags.createCreate tagwriteopenprovider.tags.deleteDelete tagdestructiveopenprovider.tags.listList tagsread
Contact notification settings2
openprovider.contact_notification_settings.getGet contact notification settingreadopenprovider.contact_notification_settings.updateUpdate contact notification settingwrite
Domain auth codes2
openprovider.domain_auth_codes.getGet auth codereadopenprovider.domain_auth_codes.resetReset auth codewrite
Licenses2
openprovider.licenses.listList licenses with price versionreadopenprovider.licenses.reset_hwidReset hwidwrite
Mail time limited aliases2
openprovider.mail_time_limited_aliases.createAdd time limited aliaswriteopenprovider.mail_time_limited_aliases.listGet time limited aliasread
Payments2
openprovider.payments.get_suggested_top_up_amountGet suggested top up amountreadopenprovider.payments.listList paymentsread
Reseller2
openprovider.reseller.getGet resellerreadopenprovider.reseller.updateUpdate resellerwrite
SSL CSRS2
openprovider.ssl_csrs.createCreate csrwriteopenprovider.ssl_csrs.decodeDecode csrread
SSL products2
openprovider.ssl_products.getGet productreadopenprovider.ssl_products.listList productsread
TLDS2
openprovider.tlds.getGet tldreadopenprovider.tlds.listList tldsread
DNS domain tokens1
openprovider.dns_domain_tokens.createCreate tokenwrite
DNS zone records1
openprovider.dns_zone_records.listList zone recordsread
Domain additional data1
openprovider.domain_additional_data.getGet additional dataread
Domain customer additional data1
openprovider.domain_customer_additional_data.getGet dataread
Domain prices1
openprovider.domain_prices.getGet priceread
Invoices1
openprovider.invoices.listList invoicesread
License items1
openprovider.license_items.listList itemsread
Mail statistics1
openprovider.mail_statistics.getGet mailcow statisticsread
Reseller settings1
openprovider.reseller_settings.getGet settingsread
Reseller statistics1
openprovider.reseller_statistics.getGet statisticsread
Spam expert login urls1
openprovider.spam_expert_login_urls.createGenerate login urlwrite
SSL approver emails1
openprovider.ssl_approver_emails.listList approver emailsread
Transactions1
openprovider.transactions.listList transactionsread
Questions
The Openprovider MCP server, answered.
Is there an Openprovider MCP server for Claude?
Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 137 Openprovider actions across domains, SSL orders, mail orders and easydmarc orders, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Openprovider.
What do I need to connect Openprovider?
Username of the Openprovider reseller account (or an API sub-user contact with API access enabled) that actionlake… and Password of that Openprovider account. actionlake exchanges it at /v1beta/auth/login for a bearer token. The free call account { op: "connections.requirements", service: "openprovider" } lists exactly what to paste.
Can an AI agent delete or change things in Openprovider?
Only if its key allows it, and only with an explicit confirmation. 20 Openprovider actions are destructive, including delete customer, delete zone and delete email. 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 Openprovider API limit?
actionlake paces every call to the limits in the Openprovider service file: 10 calls a second per connection. Repeated reads are answered from cache (55 Openprovider actions can be), which never reaches Openprovider.
What does an Openprovider action cost?
One upstream call, the only unit actionlake bills. A list that pages bills one call per page (137 Openprovider actions page). Cache hits, searches, dry runs and calls Openprovider 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 Openprovider API does it cover?
The Openprovider REST API v1beta (Swagger 2.0) at api.openprovider.eu. It is built from Openprovider's documentation as read on 23 October 2026. 137 actions in 42 areas, each one in the signed service file (version 1.0.0).
Can I combine Openprovider with my other systems?
Yes. ask joins Openprovider to NetSuite or HubSpot CRM on the same customer and returns the answer rather than every row. Openprovider maps crm.contact, which 192 other connectors also map.
Does actionlake keep my Openprovider 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 Openprovider 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 Openprovider today.
Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.