Skip to content

Connectors · Email & messaging

Appwrite Cloud MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to Appwrite Cloud and the rest of your systems. It gives your agent 763 Appwrite Cloud actions (237 reads, 436 writes and 90 that wait for a confirmation) and holds the Appwrite Cloud credential itself, so the agent never does. It paces Appwrite Cloud'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: "appwrite.users.list",  intent: "check which Appwrite Cloud account is connected"}# List users · read · 1 upstream call
  • 763actionsin one signed file
  • 237readlook, never change
  • 436writecreate and update
  • 90wait for a yesdestructive, confirmed first

Set up

Connect Appwrite Cloud 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 Appwrite Cloud.

    Header credentials. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.

    • project_idAppwrite project ID (Console > project > Settings)
    • api_keyAppwrite API key (Console > project > Overview > Integrations > API keys) with the scopes the actions you call need
    • hostWhere your Appwrite Cloud lives: your host
    • organization_idYour Appwrite Cloud organization id
    account { op: "connections.requirements", service: "appwrite" }
    # 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: "appwrite.users.list" }# list users · read · 1 upstream callcheck { action: "appwrite.users.create", input: { … } }# free: inputs, permissions, cost and confirmations, nothing sent

Appwrite Cloud at a glance

Sign-in
Header credentials. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.
You provide
project_idapi_key
Setup fields
hostorganization_id
Limits we pace to
25 calls a second, per connection
API covered
Appwrite REST API 2.5.0 (server SDK surface, /v1)cloud.appwrite.io/v1
Built from
Appwrite Cloud's documentation, read 23 October 2026OpenAPI spec (GitHub)appwrite.io
Service file
Version 1.0.0, signed (Ed25519)
Cached reads
216 of 237 reads, for up to 5 minutes; a write clears what it affects
Shared entities
6, so ask can line Appwrite Cloud up with your other systems
Data
Processed and stored in Sydney, Australia. No US region yet

Capabilities

What an AI agent can do in Appwrite Cloud.

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

  • 237readlook, never change
  • 436writecreate and update
  • 90destructivewait for a confirmation
  1. Project

    116

    17 read · 93 write · 6 destructive

    Create project Android platform · Create project Apple platform · Create project environment · Create ephemeral project key

  2. Tables DB

    81

    18 read · 55 write · 8 destructive

    List tables · List databases · Create table · Create database

  3. Databases

    71

    12 read · 52 write · 7 destructive

    Create database · Create bigint attribute · Create boolean attribute · Create collections

  4. Domains

    46

    13 read · 31 write · 2 destructive

    Create a new domain. · Create Google Workspace preset (Records) · Create iCloud preset (Records) · Create Mailgun preset (Records)

  5. Users

    41

    11 read · 24 write · 6 destructive

    List users · Create user · Get user · Delete user

  6. Messaging

    40

    9 read · 27 write · 4 destructive

    Create Appwrite provider · Create email · Create Mailgun provider · Create Msg91 provider

  7. Postgresql

    38

    16 read · 17 write · 5 destructive

    Create database · Create backup · Create backup policy · Create branch

  8. Documents DB

    37

    14 read · 17 write · 6 destructive

    Create database · Create collection · Create document · Create failover

22 more areas · 293 actions
  • Mysql 35
  • Vectors DB 35
  • Mongo 32
  • Functions 24
  • Organization 23
  • Sites 23
  • Apps 22
  • Teams 15
  • Waf 13
  • Backups 12
  • Proxy 10
  • Storage 9
  • Locale 8
  • Analytics 7
  • Webhooks 6
  • Advisor 5
  • Tokens 5
  • Presences 3
  • Activities 2
  • Graphql 2
  • Embeddings 1
  • Ping 1

Top actions

The Appwrite Cloud API, shaped for agents.

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

ActionWhat it doesEffectSame name in
appwrite.users.listList usersList users.readidentity.user.list474 connectors
appwrite.storage.list_filesList filesList files.readcontent.file.list77 connectors
appwrite.teams.listList teamsList teams.readidentity.group.list262 connectors
appwrite.teams.list_membershipsList team membershipsList team memberships.readidentity.group_member.list103 connectors
appwrite.tables_db.list_tablesList tablesList tables.readcontent.table.list21 connectors
appwrite.tables_db.listList databasesList databases.readcontent.database.list12 connectors
appwrite.users.createCreate userCreate user.writeidentity.user.create262 connectors
appwrite.teams.createCreate teamCreate team.writeidentity.group.create205 connectors
appwrite.storage.get_fileGet fileGet file.readcontent.file.get74 connectors
appwrite.storage.delete_fileDelete fileDelete file.destructivecontent.file.delete68 connectors
appwrite.tables_db.create_tableCreate tableCreate table.writecontent.table.create16 connectors
appwrite.tables_db.createCreate databaseCreate database.writecontent.database.create15 connectors

Try it

Prompts to paste into Claude.

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

  1. Readread

    Which Appwrite Cloud files changed this week, and who changed them?

    callsappwrite.storage.list_files

  2. Writewrite

    Create user in Appwrite Cloud. Show me exactly what you will send before you save it.

    callsappwrite.users.create

Governance for Appwrite Cloud

Destructive actions wait for a yes.

90 Appwrite Cloud actions are destructive. The first 10:

  • Delete fileappwrite.storage.delete_file
  • Delete userappwrite.users.delete
  • Delete teamappwrite.teams.delete
  • Delete tableappwrite.tables_db.delete_table
  • Delete databaseappwrite.tables_db.delete
  • Delete Applicationappwrite.apps.delete
  • Delete databaseappwrite.mongo.delete
  • Delete databaseappwrite.mysql.delete
  • Delete siteappwrite.sites.delete
  • Delete tokenappwrite.tokens.delete

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.

doappwrite.storage.delete_fileconfirm_policy: human

Delete file?

intent: the user asked me to delete file

run suspended · waiting for a named person · key appwrite-agent cannot confirm itself
In the console, or from an emailed signed link.
a key for this connector
account {  op: "keys.create", name: "appwrite-agent",  allowed_actions: ["appwrite.*"], cap_calls: 2000,  confirm_policy: "human_for_writes",  approval_rules: [    { match: "appwrite.storage.delete_file", approver: "[email protected]" },    { match: "appwrite.users.delete", approver: "[email protected]" },    { match: "appwrite.teams.delete", approver: "[email protected]" }  ]}
Illustrative. Scoped to Appwrite Cloud only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

What Appwrite Cloud costs on actionlake.

Every Appwrite Cloud action is one upstream call, the only thing actionlake bills. Searching, check, cost, account and any call Appwrite Cloud 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 763 Appwrite Cloud actions
  • 763actions pageeach page of a long list is one call
  • 216reads 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 Appwrite Cloud action.

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

Project116
  • appwrite.project.create_android_platformCreate project Android platformwrite
  • appwrite.project.create_apple_platformCreate project Apple platformwrite
  • appwrite.project.create_environmentCreate project environmentwrite
  • appwrite.project.create_ephemeral_keyCreate ephemeral project keywrite
  • appwrite.project.create_linux_platformCreate project Linux platformwrite
  • appwrite.project.create_mock_phoneCreate project mock phonewrite
  • and 110 more in this area
Tables DB81
  • appwrite.tables_db.createCreate databasewrite
  • appwrite.tables_db.create_tableCreate tablewrite
  • appwrite.tables_db.listList databasesread
  • appwrite.tables_db.list_tablesList tablesread
  • appwrite.tables_db.create_big_int_columnCreate bigint columnwrite
  • appwrite.tables_db.create_boolean_columnCreate boolean columnwrite
  • and 75 more in this area
Databases71
  • appwrite.databases.createCreate databasewrite
  • appwrite.databases.create_big_int_attributeCreate bigint attributewrite
  • appwrite.databases.create_boolean_attributeCreate boolean attributewrite
  • appwrite.databases.create_collectionCreate collectionswrite
  • appwrite.databases.create_datetime_attributeCreate datetime attributewrite
  • appwrite.databases.create_documentCreate documentwrite
  • and 65 more in this area
Domains46
  • appwrite.domains.createCreate a new domain.write
  • appwrite.domains.create_preset_google_workspaceCreate Google Workspace preset (Records)write
  • appwrite.domains.create_preset_i_cloudCreate iCloud preset (Records)write
  • appwrite.domains.create_preset_mailgunCreate Mailgun preset (Records)write
  • appwrite.domains.create_preset_outlookCreate Outlook preset (Records)write
  • appwrite.domains.create_preset_proton_mailCreate ProtonMail preset (Records)write
  • and 40 more in this area
Users41
  • appwrite.users.createCreate userwrite
  • appwrite.users.deleteDelete userdestructive
  • appwrite.users.getGet userread
  • appwrite.users.listList usersread
  • appwrite.users.create_argon_2_userCreate user with Argon2 passwordwrite
  • appwrite.users.create_bcrypt_userCreate user with bcrypt passwordwrite
  • and 35 more in this area
Messaging40
  • appwrite.messaging.create_appwrite_providerCreate Appwrite providerwrite
  • appwrite.messaging.create_emailCreate emailwrite
  • appwrite.messaging.create_mailgun_providerCreate Mailgun providerwrite
  • appwrite.messaging.create_msg_91_providerCreate Msg91 providerwrite
  • appwrite.messaging.create_pushCreate push notificationwrite
  • appwrite.messaging.create_resend_providerCreate Resend providerwrite
  • and 34 more in this area
Postgresql38
  • appwrite.postgresql.createCreate databasewrite
  • appwrite.postgresql.create_backupCreate backupwrite
  • appwrite.postgresql.create_backup_policyCreate backup policywrite
  • appwrite.postgresql.create_branchCreate branchwrite
  • appwrite.postgresql.create_executionCreate executionwrite
  • appwrite.postgresql.create_extensionCreate extensionwrite
  • and 32 more in this area
Documents DB37
  • appwrite.documents_db.createCreate databasewrite
  • appwrite.documents_db.create_collectionCreate collectionwrite
  • appwrite.documents_db.create_documentCreate documentwrite
  • appwrite.documents_db.create_failoverCreate failoverwrite
  • appwrite.documents_db.create_indexCreate indexwrite
  • appwrite.documents_db.create_operationsCreate operationswrite
  • and 31 more in this area
Mysql35
  • appwrite.mysql.createCreate databasewrite
  • appwrite.mysql.create_backupCreate backupwrite
  • appwrite.mysql.create_backup_policyCreate backup policywrite
  • appwrite.mysql.create_branchCreate branchwrite
  • appwrite.mysql.create_executionCreate executionwrite
  • appwrite.mysql.create_failoverCreate failoverwrite
  • and 29 more in this area
Vectors DB35
  • appwrite.vectors_db.createCreate databasewrite
  • appwrite.vectors_db.create_collectionCreate collectionwrite
  • appwrite.vectors_db.create_documentCreate documentwrite
  • appwrite.vectors_db.create_failoverCreate failoverwrite
  • appwrite.vectors_db.create_indexCreate indexwrite
  • appwrite.vectors_db.create_operationsCreate operationswrite
  • and 29 more in this area
Mongo32
  • appwrite.mongo.createCreate databasewrite
  • appwrite.mongo.create_backupCreate backupwrite
  • appwrite.mongo.create_backup_policyCreate backup policywrite
  • appwrite.mongo.create_branchCreate branchwrite
  • appwrite.mongo.create_failoverCreate failoverwrite
  • appwrite.mongo.create_migrationCreate migrationwrite
  • and 26 more in this area
Functions24
  • appwrite.functions.createCreate functionwrite
  • appwrite.functions.create_duplicate_deploymentCreate duplicate deploymentwrite
  • appwrite.functions.create_executionCreate executionwrite
  • appwrite.functions.create_template_deploymentCreate template deploymentwrite
  • appwrite.functions.create_variableCreate variablewrite
  • appwrite.functions.create_vcs_deploymentCreate VCS deploymentwrite
  • and 18 more in this area
Organization23
  • appwrite.organization.create_ephemeral_project_keyCreate ephemeral project keywrite
  • appwrite.organization.create_installationCreate Installationwrite
  • appwrite.organization.create_membershipCreate organization membershipwrite
  • appwrite.organization.create_projectCreate organization projectwrite
  • appwrite.organization.deleteDelete organizationdestructive
  • appwrite.organization.delete_installationDelete Installationdestructive
  • and 17 more in this area
Sites23
  • appwrite.sites.createCreate sitewrite
  • appwrite.sites.create_duplicate_deploymentCreate duplicate deploymentwrite
  • appwrite.sites.create_template_deploymentCreate template deploymentwrite
  • appwrite.sites.create_variableCreate variablewrite
  • appwrite.sites.create_vcs_deploymentCreate VCS deploymentwrite
  • appwrite.sites.deleteDelete sitedestructive
  • and 17 more in this area
Apps22
  • appwrite.apps.createCreate Applicationwrite
  • appwrite.apps.create_installation_tokenCreate Installation Tokenwrite
  • appwrite.apps.create_keyCreate App Keywrite
  • appwrite.apps.create_secretCreate Secretwrite
  • appwrite.apps.deleteDelete Applicationdestructive
  • appwrite.apps.delete_installationDelete Installationdestructive
  • and 16 more in this area
Teams15
  • appwrite.teams.createCreate teamwrite
  • appwrite.teams.getGet teamread
  • appwrite.teams.listList teamsread
  • appwrite.teams.list_membershipsList team membershipsread
  • appwrite.teams.create_installationCreate Installationwrite
  • appwrite.teams.create_membershipCreate team membershipwrite
  • and 9 more in this area
Waf13
  • appwrite.waf.create_bypass_ruleCreate a bypass WAF rule.write
  • appwrite.waf.create_challenge_ruleCreate a challenge WAF rule.write
  • appwrite.waf.create_deny_ruleCreate a deny WAF rule.write
  • appwrite.waf.create_rate_limit_ruleCreate a rate-limit WAF rule.write
  • appwrite.waf.create_redirect_ruleCreate a redirect WAF rule.write
  • appwrite.waf.delete_ruleDelete a WAF rule.destructive
  • and 7 more in this area
Backups12
  • appwrite.backups.create_archiveCreate archivewrite
  • appwrite.backups.create_policyCreate backup policywrite
  • appwrite.backups.create_restorationCreate restorationwrite
  • appwrite.backups.list_archivesList archivesread
  • appwrite.backups.delete_archiveDelete archivedestructive
  • appwrite.backups.delete_policyDelete backup policydestructive
  • and 6 more in this area
Proxy10
  • appwrite.proxy.create_api_ruleCreate API rulewrite
  • appwrite.proxy.create_function_ruleCreate function rulewrite
  • appwrite.proxy.create_invalidationCreate invalidationwrite
  • appwrite.proxy.create_redirect_ruleCreate redirect rulewrite
  • appwrite.proxy.create_site_ruleCreate site rulewrite
  • appwrite.proxy.create_smtp_ruleCreate SMTP function rulewrite
  • and 4 more in this area
Storage9
  • appwrite.storage.create_bucketCreate bucketwrite
  • appwrite.storage.delete_fileDelete filedestructive
  • appwrite.storage.get_fileGet fileread
  • appwrite.storage.list_filesList filesread
  • appwrite.storage.delete_bucketDelete bucketdestructive
  • appwrite.storage.get_bucketGet bucketread
  • and 3 more in this area
Locale8
  • appwrite.locale.list_codesList locale codesread
  • appwrite.locale.list_continentsList continentsread
  • appwrite.locale.list_countriesList countriesread
  • appwrite.locale.list_countries_euList EU countriesread
  • appwrite.locale.getGet user localeread
  • appwrite.locale.list_countries_phonesList countries phone codesread
  • and 2 more in this area
Analytics7
  • appwrite.analytics.create_eventTrack analytics eventwrite
  • appwrite.analytics.create_propertyCreate analytics propertywrite
  • appwrite.analytics.list_metricsList analytics metrics for a propertyread
  • appwrite.analytics.list_propertiesList analytics propertiesread
  • appwrite.analytics.delete_propertyDelete analytics propertydestructive
  • appwrite.analytics.get_propertyGet analytics propertyread
  • and 1 more in this area
Webhooks6
  • appwrite.webhooks.createCreate webhookwrite
  • appwrite.webhooks.getGet webhookread
  • appwrite.webhooks.listList webhooksread
  • appwrite.webhooks.updateUpdate webhookwrite
  • appwrite.webhooks.deleteDelete webhookdestructive
  • appwrite.webhooks.update_secretUpdate webhook secret keywrite
Advisor5
  • appwrite.advisor.get_insightGet insightread
  • appwrite.advisor.get_reportGet reportread
  • appwrite.advisor.list_insightsList insightsread
  • appwrite.advisor.list_reportsList reportsread
  • appwrite.advisor.delete_reportDelete reportdestructive
Tokens5
  • appwrite.tokens.create_file_tokenCreate file tokenwrite
  • appwrite.tokens.getGet tokenread
  • appwrite.tokens.listList tokensread
  • appwrite.tokens.updateUpdate tokenwrite
  • appwrite.tokens.deleteDelete tokendestructive
Presences3
  • appwrite.presences.deleteDelete presencedestructive
  • appwrite.presences.getGet presenceread
  • appwrite.presences.listList presencesread
Activities2
  • appwrite.activities.get_eventGet eventread
  • appwrite.activities.list_eventsList eventsread
Graphql2
  • appwrite.graphql.mutationGraphQL endpointwrite
  • appwrite.graphql.queryGraphQL endpointread
Embeddings1
  • appwrite.embeddings.create_text_embeddingsCreate text embeddingswrite
Ping1
  • appwrite.ping.getTest the connection between the Appwrite and the SDK.read

This index shows a sample of each area. All 763 actions, with their inputs and prices, are in the catalogue, which a free sandbox key can search.

Questions

The Appwrite Cloud MCP server, answered.

Is there an Appwrite Cloud MCP server for Claude?

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 763 Appwrite Cloud actions across project, tables DB, databases and domains, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by Appwrite Cloud.

What do I need to connect Appwrite Cloud?

Appwrite project ID (Console > project > Settings) and Appwrite API key (Console > project > Overview > Integrations > API keys) with the scopes the actions you call need. Plus your host and your organization id. The free call account { op: "connections.requirements", service: "appwrite" } lists exactly what to paste.

Can an AI agent delete or change things in Appwrite Cloud?

Only if its key allows it, and only with an explicit confirmation. 90 Appwrite Cloud actions are destructive, including delete file, delete user and delete team. 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 Appwrite Cloud API limit?

actionlake paces every call to the limits in the Appwrite Cloud service file: 25 calls a second per connection. Repeated reads are answered from cache (216 Appwrite Cloud actions can be), which never reaches Appwrite Cloud.

What does an Appwrite Cloud action cost?

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

The Appwrite REST API 2.5.0 (server SDK surface, /v1) at cloud.appwrite.io/v1 by default, or the base URL set when you connect. It is built from Appwrite Cloud's documentation as read on 23 October 2026. 763 actions in 30 areas, each one in the signed service file (version 1.0.0).

Does actionlake keep my Appwrite Cloud 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 Appwrite Cloud 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 Appwrite Cloud today.

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