All tools
Every tool the Modulify MCP server exposes, grouped by area, with the scope each one needs.
On this page
The server exposes 239 tools. A client only sees the ones its token has scopes for, so the list a client gets depends on the token. Every tool has its own page with what it does, the scope it needs, whether it only reads, makes changes or is destructive, and every input it takes.
Tools marked destructive are registered with a destructive hint, which most clients surface as a confirmation prompt before they run. Tokens and scopes explains what each scope permits.
Every tool here is also a method of the HTTP API, called as POST https://api.modulify.ai/v1/<tool> with the same token.
Workspaces
These act on the workspace itself and the people in it, rather than on any one site: members, invitations, roles and AI credits.
| Tool | Scope | What it does |
|---|---|---|
list_workspaces |
workspaces:read |
Lists every Modulify workspace your account can reach, with the name, plan and your role in each. |
get_workspace |
workspaces:read |
Reads one workspace with its name, plan and AI credits, including a ready-made balance. |
list_workspace_members |
workspaces:read |
Lists the members of a workspace and its pending invitations, with each person's name, email, role and when they joined. |
check_member_email |
workspaces:read |
Checks one email address before inviting it, reporting whether it is already a member, already invited or free to invite. |
get_workspace_credits |
workspaces:read |
Reads the reconciled AI credit balance of a workspace, the figure to trust right after a renewal or a top up. |
get_workspace_credit_usage |
workspaces:read |
Reads what a workspace spent its credits on over a period, so you can see where they went rather than only how many are left. |
list_workspace_credit_activity |
workspaces:read |
Lists the individual credit charges and refunds of a workspace, newest first, 20 at a time. |
get_role_member_counts |
workspaces:read |
Counts how many people hold each role in a workspace. |
create_workspace |
workspaces:write |
Creates a new, empty workspace owned by you, on the Free plan and with no AI credits of its own. |
rename_workspace |
workspaces:write |
Changes the name of a workspace, and optionally its logo. |
set_default_workspace |
workspaces:write |
Makes a workspace your default, the one the dashboard opens on and the one the Free plan grants its allowance to. |
leave_workspace |
workspaces:write |
Removes you from a workspace you were invited to, ending your access to every site in it. |
invite_workspace_member |
members:write |
Invites one or more people to a workspace by email, each with a join link. |
resend_workspace_invite |
members:write |
Sends the invitation email again for a pending invitation, with a fresh link that expires 7 days later. |
cancel_workspace_invite |
members:write |
Withdraws an invitation that has not been accepted yet, so its link stops working. |
remove_workspace_member |
members:write |
Removes a person from a workspace, ending their access to every site in it immediately. |
assign_member_role |
members:write |
Puts an existing member on a different role, which changes what they can do across the whole workspace. |
create_workspace_role |
workspaces:write |
Creates a custom role in a workspace with a chosen set of permissions. |
update_workspace_role |
workspaces:write |
Changes the name or the permissions of a custom role, for everyone who holds it at once. |
delete_workspace_role |
workspaces:write |
Deletes a custom role from a workspace and moves everyone holding it back to the stock Member role. |
Sites
| Tool | Scope | What it does |
|---|---|---|
list_sites |
sites:read |
Lists the sites in a workspace, newest first, with the name, description, web addresses and last publish date of each. |
get_site |
sites:read |
Reads one site in full by its workspace and subdomain. |
create_site |
sites:create |
Creates a new site in a workspace and starts building it from your prompt straight away. |
rename_site |
sites:write |
Changes the name, description or server location of a site. |
check_subdomain_available |
sites:read |
Checks whether a free modulify.website subdomain is still available before change_subdomain takes it. |
list_templates |
sites:read |
Browses the public Modulify site templates, the published and cloneable sites Modulify showcases. |
duplicate_site |
sites:create |
Copies an existing site into a workspace as a new, independent site with its own subdomain and URL. |
delete_site |
sites:delete |
Permanently deletes a site and takes the live site offline. |
archive_sites |
sites:write |
Puts one or more sites in the Archive of their workspace, at most 200 per call. |
unarchive_sites |
sites:write |
Brings one or more archived sites back out of the Archive, at most 200 per call. |
set_show_badge |
sites:write |
Turns the Modulify badge on the published site on or off. |
get_ai_preferences |
sites:read |
Reads the AI media preferences of a site, the settings that decide what its generated pictures and clips cost. |
update_ai_preferences |
sites:write |
Changes the AI media preferences of a site, from whether paid media is on to the image and video models it uses. |
change_subdomain |
sites:write |
Changes the free modulify.website address a site is served on, and the old address stops working at once. |
update_sharing |
sites:write |
Replaces every sharing setting of a site at once, from who can view it to what a clone takes along. |
Folders
Folders group sites in the dashboard. A site sits in at most one, and a folder only ever holds sites from its own workspace. See Folders.
| Tool | Scope | What it does |
|---|---|---|
list_folders |
sites:read |
Lists the folders in a workspace with the name, slug, position, creator and a stored count of the sites in each. |
create_folder |
sites:write |
Creates a folder in a workspace to group sites in the dashboard. |
rename_folder |
sites:write |
Changes the name of one folder and leaves its slug, and with it the dashboard URL, as it is. |
update_folder_slug |
sites:write |
Changes the slug of one folder, the part of the dashboard URL that identifies it. |
check_folder_slug_available |
sites:read |
Checks whether a folder slug is free in a workspace before update_folder_slug takes it. |
move_sites_to_folder |
sites:write |
Puts one or more sites into a folder, at most 200 per call, moving them out of whichever folder they were in. |
remove_sites_from_folder |
sites:write |
Takes one or more sites out of whatever folder they are in, at most 200 per call, so they sit loose in the dashboard. |
reorder_folders |
sites:write |
Sets the order the folders of a workspace appear in on the dashboard. |
delete_folder |
sites:delete |
Permanently deletes one folder without deleting the sites inside it. |
move_folder_to_workspace |
sites:delete |
Moves a folder and every site inside it into a different workspace, in a one-way move that cannot be undone. |
Site chat
These talk to the agent that builds a site, the same conversation the editor's chat shows. See Site chat.
| Tool | Scope | What it does |
|---|---|---|
send_message |
chat:write |
Sends a prompt to the agent that builds a site, starting a generation at once or adding it to the queue when the site is busy. |
get_job |
chat:read |
Reads the progress of a site generation and the events it has produced since your last call. |
cancel_job |
chat:write |
Stops a generation that is currently running on a site. |
list_messages |
chat:read |
Reads the conversation between the site owner and the agent that builds the site. |
list_queued_messages |
chat:read |
Reads the messages waiting to run on a site, oldest first, from the same queue everyone in the workspace sees. |
edit_queued_message |
chat:write |
Rewrites a message that is still waiting in a site's queue, before the site agent picks it up. |
remove_queued_message |
sites:delete |
Takes a message out of a site's queue so the site agent never runs it. |
reorder_queued_message |
chat:write |
Moves a message that is still waiting in a site's queue so it runs earlier or later. |
resume_queue |
chat:write |
Releases a site's parked message queue and runs the message at the front of it. |
clear_site_chat |
sites:delete |
Deletes the entire chat transcript of a site for everyone and throws away every message queued to run next. |
Source code
| Tool | Scope | What it does |
|---|---|---|
list_files |
code:read |
Lists the source files of a site with their sizes. |
read_file |
code:read |
Reads one text file from a site's source code by its exact path. |
get_site_logs |
logs:read |
Reads the recent server logs of a site, the same stream the Logs panel shows. |
write_file |
code:write |
Writes one or more source files straight into the running preview of a site, replacing whatever was at each path. |
Publishing
See Publish a site.
| Tool | Scope | What it does |
|---|---|---|
publish_site |
publish:write |
Publishes a site so its current build goes live on its public address. |
get_publish_status |
sites:read |
Reads the state of a site's most recent publish, plus its public subdomain and custom domains. |
list_deployments |
sites:read |
Lists the past publishes of a site, newest first, with their status and timings. |
unpublish_site |
publish:write |
Takes a published site off its public address, so visitors can no longer reach it. |
get_publish_logs |
logs:read |
Reads the build output of a publish, which is where the reason for a failed publish actually lives. |
get_publish_timeline |
sites:read |
Reads a publish step by step, with when each step started and finished and how long it took. |
stop_publish |
publish:write |
Stops a publish that is still running, so nothing from it reaches the live site. |
Custom domains
A site can have up to 10 custom domains, and every connected one serves the same site. Each domain carries an _id, returned by get_domain_status and add_custom_domain, and the tools that act on one domain take it as domainId. See Connect a custom domain.
| Tool | Scope | What it does |
|---|---|---|
get_domain_status |
config:read |
Reads the custom domains of a site, with whether each one is connected and the exact DNS records each hostname needs. |
get_domain_connect_url |
config:read |
Returns a link that has the DNS provider add the records one custom domain needs automatically, where the provider supports it. |
add_custom_domain |
config:write |
Adds a custom domain to a site, alongside any it already has. |
remove_custom_domain |
config:write |
Removes one custom domain from a site, deleting the domain and its TLS certificate. |
add_www_domain |
config:write |
Adds the www version of one of a site's custom domains, so the root and the www address both reach the site. |
remove_www_domain |
config:write |
Detaches only the www companion of one custom domain, leaving that domain and every other domain of the site connected. |
start_domain_verification |
config:write |
Begins the ownership check for a domain before it is attached to a site, returning one TXT record to add. |
verify_domain |
config:write |
Finishes a domain ownership check and adds the domain to the site once its TXT record matches. |
cancel_domain_verification |
config:write |
Abandons the domain a site is waiting to verify, deleting the pending domain and its verification token. |
Secrets
These are the environment variables on the editor's Secrets tab. Reading a value back takes the credentials:reveal scope. See Secrets.
| Tool | Scope | What it does |
|---|---|---|
list_secrets |
config:read |
Lists the environment variables configured for a site, the same set the Secrets tab shows. |
set_secret |
config:write |
Creates or replaces one environment variable on a site. |
set_secrets |
config:write |
Creates, replaces and deletes environment variables on a site in one call, which is how a whole .env file is applied. |
get_secret |
credentials:reveal |
Returns the value of one environment variable in plain text, decrypting it when it is stored encrypted. |
get_all_secrets |
credentials:reveal |
Returns every environment variable a person set on a site in plain text at once, keyed by variable id. |
delete_secret |
config:write |
Deletes one environment variable from a site. |
rename_secret |
config:write |
Renames one environment variable on a site and keeps its value, without reading the value. |
Skills and connectors
These are the skills and connectors a site's chat uses while it builds.
| Tool | Scope | What it does |
|---|---|---|
list_site_skills |
config:read |
Lists every skill a site can use, the built-in ones and the workspace's own. |
set_site_skill |
config:write |
Turns one skill on or off for a site. |
list_site_connectors |
config:read |
Lists the connectors installed in a site's workspace and whether each one is on for the site. |
set_site_connector |
config:write |
Turns one connector on or off for a site. |
Scheduled jobs
These are the site's own scheduled jobs, the ones configured in the editor, not anything internal to Modulify. See Scheduled jobs.
| Tool | Scope | What it does |
|---|---|---|
list_site_crons |
config:read |
Lists the scheduled jobs configured on a site, with their schedules, their state and how their last scheduled run went. |
list_site_cron_runs |
config:read |
Lists recent runs of the scheduled jobs on a site, newest first, 25 to a page. |
toggle_site_cron |
config:write |
Turns one scheduled job on a site on or off. |
run_site_cron |
config:write |
Fires one scheduled job on a site immediately, without waiting for its schedule. |
create_site_cron |
config:write |
Creates a scheduled job on a site that calls a URL on a repeating schedule. |
update_site_cron |
config:write |
Changes the name, the schedule or the step of one scheduled job on a site. |
preview_cron_schedule |
config:read |
Works out the next 5 times a schedule would fire, without saving anything. |
delete_site_cron |
config:write |
Permanently deletes one scheduled job from a site, along with its whole run history. |
delete_all_site_crons |
config:write |
Permanently deletes every scheduled job on a site and all of their run history in one call. |
delete_site_cron_run |
config:write |
Hides one run from the scheduled job history of a site. |
clear_site_cron_runs |
config:write |
Hides the stored run history of the scheduled jobs on a site. |
export_site_crons |
config:read |
Exports every scheduled job on a site as plain data. |
Webhooks
Destination URLs come back stripped to their host, because a webhook URL is itself a credential. See Webhooks.
| Tool | Scope | What it does |
|---|---|---|
list_site_webhooks |
config:read |
Lists the webhook endpoints on a site and the events each one listens to. |
list_webhook_deliveries |
config:read |
Lists recent webhook delivery attempts on a site, newest first, 30 to a page. |
get_webhook_delivery_stats |
config:read |
Counts the webhook deliveries of a site over a period, split into delivered, in progress and failed. |
toggle_site_webhook |
config:write |
Turns one webhook on a site on or off without deleting it. |
test_site_webhook |
config:write |
Sends a publish.succeeded test payload to one webhook endpoint so you can confirm it is wired up. |
create_site_webhook |
config:write |
Creates a webhook on a site, a URL Modulify calls when something happens to that site. |
update_site_webhook |
config:write |
Changes the name, destination URL, payload type or event list of one webhook. |
delete_site_webhook |
config:write |
Permanently deletes one webhook from a site, along with its delivery history and signing secret. |
delete_all_site_webhooks |
config:write |
Permanently deletes every webhook on a site, with all of their delivery history and signing secrets. |
delete_webhook_delivery |
config:write |
Hides a single delivery record from a site's webhook delivery log. |
clear_webhook_deliveries |
config:write |
Clears a site's stored webhook delivery log from view and reports how many entries went. |
export_site_webhooks |
config:read |
Exports every webhook on a site as plain data, without signing secrets or full URLs. |
get_site_webhook_secret |
credentials:reveal |
Returns the signing secret of one webhook in plain text. |
rotate_site_webhook_secret |
credentials:reveal |
Replaces the signing secret of one webhook with a freshly generated one and returns it. |
Deploy hooks
A deploy hook is a secret URL that starts a publish of the site when anything calls it with a plain GET. These tools manage the hooks and read their call log. See Deploy hooks.
| Tool | Scope | What it does |
|---|---|---|
list_deploy_hooks |
config:read |
Lists the deploy hooks on a site with their name, whether each is on and how their calls went. |
list_deploy_hook_calls |
config:read |
Lists the calls made to a site's deploy hooks, 30 to a page. |
get_deploy_hook_call_stats |
config:read |
Counts the calls to a site's deploy hooks over a period, split into builds started, already building and rejected. |
toggle_deploy_hook |
config:write |
Turns one deploy hook on or off without deleting it. |
trigger_deploy_hook |
publish:write |
Calls one deploy hook now, exactly as its URL would be called, which starts a real publish of the site. |
create_deploy_hook |
config:write |
Creates a deploy hook, a secret URL that publishes the site whenever something calls it with a plain GET. |
rename_deploy_hook |
config:write |
Changes the name of one deploy hook. |
delete_deploy_hook |
config:write |
Permanently deletes one deploy hook and its whole call log. |
delete_all_deploy_hooks |
config:write |
Permanently deletes every deploy hook on a site, with all of their call logs. |
delete_deploy_hook_call |
config:write |
Hides one call from a site's deploy hook call log and from the counts. |
clear_deploy_hook_calls |
config:write |
Hides a site's stored deploy hook call log and reports how many calls went. |
export_deploy_hooks |
config:read |
Exports every deploy hook on a site as plain data, with each URL masked. |
get_deploy_hook_url |
credentials:reveal |
Returns the full URL of one deploy hook in plain text. |
rotate_deploy_hook_url |
credentials:reveal |
Replaces the URL of one deploy hook with a freshly generated one and returns it. |
Emails
These cover everything the Emails tab does: the sending side, the history and its insights, the blocked addresses, the site's email domains and forwarding. Downloading the whole history as one file stays in the tab. See Emails.
| Tool | Scope | What it does |
|---|---|---|
get_site_email_settings |
config:read |
Reads how a site sends email, from its address, usage and limits to its own email domains and where mail sent to it is forwarded. |
get_site_email_usage |
config:read |
Reads this calendar month's email usage of a site on its own, with the sends used, included and left and when the count resets. |
list_site_email_sends |
config:read |
Lists the emails a site has sent, 30 to a page, with each one's recipients, status, source and opens and clicks. |
get_site_email |
config:read |
Reads one email a site sent in full, with every recipient's own status, the delivery events, the stored body and the clicked links. |
get_site_email_stats |
config:read |
Counts the emails a site sent over a period, split into delivered, still pending and failed, with open and click rates and the top links. |
list_site_email_suppressions |
config:read |
Lists the addresses and domains a site is blocked from emailing, 50 to a page, newest first, with why each one is there. |
toggle_site_emails |
config:write |
Turns email sending on or off for a site, keeping its address, settings, blocked list and history either way. |
update_site_email_settings |
config:write |
Changes how a site's email appears in an inbox, from the sender name and sending address to the reply-to and open and click tracking. |
send_site_email |
config:write |
Sends one real email from a site's own sending address, right now, to the recipients you named. |
send_test_site_email |
config:write |
Sends one free test email from a site to the email address of the connected account, and to no other address. |
block_site_email_address |
config:write |
Adds one address, or one whole domain, to a site's blocked list by hand, so the site never emails it again. |
delete_site_email_suppression |
config:write |
Takes one address, or one whole domain blocked by hand, off a site's blocked list, so the site emails it again from the next message on. |
add_site_email_domain |
config:write |
Adds a domain you own, or a subdomain of it, to a site so the site can send email from it and, when you want, receive email at it. |
check_site_email_domain |
config:write |
Checks one email domain of a site again now, looking up its DNS records and asking the mail provider where it stands. |
remove_site_email_domain |
config:write |
Removes an email domain from a site, so the site stops sending from it and mail sent to it is no longer forwarded. |
set_site_email_sending_domain |
config:write |
Chooses the domain a site sends its email from, one of its verified email domains or its built-in sending domain. |
set_site_email_domain_receiving |
config:write |
Turns receiving on or off for one verified email domain of a site, which decides whether mail sent to that domain is forwarded. |
restart_site_email_domain_verification |
config:write |
Starts the verification of an email domain over when the mail provider gave up on it, which changes its three DKIM records. |
get_site_email_domain_connect_url |
config:write |
Checks whether the DNS provider of an email domain offers one-click setup and, when it does, returns the link that adds its records there. |
set_site_email_forwarding |
config:write |
Turns the forwarding of incoming mail on or off for a site, which is on by default for every site. |
add_site_email_forward_address |
config:write |
Adds an address to the forwarding addresses of a site, which every forwarded email goes to once the address is confirmed. |
resend_site_email_forward_address |
config:write |
Sends a new confirmation link to a forwarding address that is still pending, for example when the first link expired or never arrived. |
remove_site_email_forward_address |
config:write |
Takes one address off the forwarding addresses of a site, so mail sent to the site stops reaching it at once. |
list_site_email_engagement |
config:read |
Lists the emails a site sent with open and click tracking on, 30 to a page, the way the Opens and clicks view of the Emails tab shows them. |
list_site_email_credits |
config:read |
Lists the AI credits a site's email used, newest first and 20 to a page, with every block of extra emails it bought and every refund. |
get_site_email_credit_stats |
config:read |
Counts the AI credits a site's email used over a period and the extra emails they bought. |
delete_site_email_send |
config:write |
Removes one email from a site's history, without unsending it or changing this month's allowance. |
clear_site_email_history |
config:write |
Clears the whole email history of a site, while sending, this month's allowance and the blocked addresses stay as they are. |
get_site_email_key |
credentials:reveal |
Reveals the email key of a site in plain text, with the API URL it goes with, creating the key when the site has none yet. |
rotate_site_email_key |
config:write |
Replaces the email key of a site with a new one, so the old key stops working at once and everywhere. |
Database
These read and change the collections, schemas and rows of a site's database, the same data the CMS edits. None of them returns the credentials to the database. See Site databases.
| Tool | Scope | What it does |
|---|---|---|
get_site_database |
data:read |
Checks whether a site has a database, whether it is running and which engine it runs. |
list_collections |
data:read |
Lists the tables in a site database with an exact row count for each. |
get_collection_schema |
data:read |
Reads the columns of one table in a site database, with their types, nullability, primary key and CMS field type. |
list_rows |
data:read |
Reads rows from one table in a site database, ordered by primary key. |
create_row |
data:write |
Inserts one row into a table in a site database. |
update_row |
data:write |
Overwrites fields on one existing row in a site database, identified by its primary key. |
delete_row |
data:write |
Permanently deletes one row from a table in a site database, identified by its primary key. |
clear_collection |
sites:delete |
Deletes every row in one table of a site database in a single irreversible step, keeping the table and its columns. |
create_site_database |
data:write |
Gives a site a database if it does not have one yet. |
list_reference_options |
data:read |
Lists the rows another collection offers as targets for a reference column. |
list_enum_options |
data:read |
Lists every value a database enum type accepts. |
clear_site_database |
sites:delete |
Drops every collection in a site database, destroying the tables along with their columns and relationships. |
execute_sql |
data:sql |
Runs a SQL statement against a site database and returns the rows. |
export_collection |
data:read |
Reads every row of one collection in a single call, with the column names and types alongside. |
Storage
These reach the site's file storage. While a storage backup is being restored, the tools that change storage are refused until it finishes, and the ones that only read keep working. See Storage.
| Tool | Scope | What it does |
|---|---|---|
list_storage_files |
data:read |
Browses a site's storage bucket one folder at a time, returning the folders and files directly under a path. |
get_storage_stats |
data:read |
Reads how much a site is storing, with the total number of files, the number of folders and the combined size in bytes. |
get_storage_info |
data:read |
Reads how a site's storage is served to the public, from its CDN address to the traffic it has served over a period. |
get_storage_file_url |
data:read |
Returns a link to one stored file so it can be opened or downloaded. |
read_storage_file |
data:read |
Returns the contents of one stored file, base64 encoded. |
upload_storage_file |
data:write |
Puts a file into a site's storage bucket, as a public or a private file. |
create_storage_folder |
data:write |
Creates an empty folder in a site's storage bucket, so files can be organized before they are uploaded. |
move_storage_files |
data:write |
Moves files and folders to another folder in a site's storage bucket, or renames a single file. |
delete_storage_files |
data:write |
Permanently deletes files from a site's storage bucket. |
delete_storage_folder |
data:write |
Permanently deletes a folder from a site's storage bucket, along with everything inside it, nested subfolders included. |
clear_storage |
data:write |
Permanently deletes the files and folders in a site's storage bucket, public and private alike. |
set_storage_visibility |
data:write |
Makes stored files or whole folders public or private. |
set_storage_root_visibility |
data:write |
Sets whether new files uploaded with no visibility default to public or private at the top level of a site's storage. |
get_storage_key |
credentials:reveal |
Returns a site's private storage key in plain text, minting one if the site never had one. |
rotate_storage_key |
credentials:reveal |
Replaces a site's private storage key with a freshly generated one and returns it in plain text. |
Backups
These reach project backups, the code backup history, and the archives under the Storage and Database tabs of Backups. None of them downloads a backup, or a file out of one: downloading happens only in the editor.
| Tool | Scope | What it does |
|---|---|---|
list_backups |
sites:read |
Lists the snapshots taken of a site, newest first, with the name, who took it, when, its size and how many pages and components it holds. |
create_backup |
sites:write |
Takes a snapshot of a site's pages and components as they are right now, so restore_backup can roll the site back to it later. |
restore_backup |
sites:write |
Replaces the entire current content of a site with the content of an earlier backup. |
delete_backup |
sites:delete |
Permanently deletes one backup of a site, removing a restore point you may be relying on. |
list_code_backups |
chat:read |
Lists the code backup history of a site, newest first, with the title, file count and author of each code backup. |
restore_code_backup |
sites:delete |
Rolls the source code of a site back to an earlier code backup and reloads the preview from it, deleting the whole site chat history. |
list_storage_backups |
sites:read |
Lists the archives taken of a site's file storage, newest first, with the state of each and the site's manual backup allowance. |
create_storage_backup |
sites:write |
Takes an archive of a site's whole file storage, public and private files alike, so its files can be put back from it later. |
delete_storage_backup |
sites:delete |
Permanently deletes one storage backup of a site, leaving the live storage of the site untouched. |
clear_storage_backups |
sites:delete |
Permanently deletes every storage backup of a site in one call, leaving the live storage of the site untouched. |
set_storage_backup_schedule |
sites:write |
Turns the automatic daily storage backup of a site on or off, the same as the Daily backups switch in Storage configuration. |
browse_storage_backup |
data:read |
Looks inside one storage backup without changing anything, a folder at a time or by searching the whole archive. |
read_storage_backup_file |
data:read |
Reads one file out of a storage backup as plain text, without changing anything. |
restore_storage_backup |
data:write |
Puts files back into a site's storage from one of its backups, after a first call that only answers the plan. |
get_storage_restore_status |
data:read |
Reads how a storage restore is going, from its status and current step to the files written back and removed so far. |
list_database_backups |
sites:read |
Lists the archives taken of a site's database, newest first, with the state of each and whether the site can be backed up at all. |
create_database_backup |
sites:write |
Takes an archive of a site's database, a plain SQL dump of every table and row, so the data can be recovered by hand later. |
delete_database_backup |
sites:delete |
Permanently deletes one database backup of a site, leaving the live database of the site untouched. |
clear_database_backups |
sites:delete |
Permanently deletes every database backup of a site in one call, leaving the live database of the site untouched. |
set_database_backup_schedule |
sites:write |
Turns the automatic daily database backup of a site on or off, the same as the Daily backups switch in CMS settings. |
Analytics
The tools here that read numbers share 1,200 analytics lookups per site per hour across every AI client and every HTTP API call made with a token, counted apart from the site's own analytics API key. See Rate limits and result size.
| Tool | Scope | What it does |
|---|---|---|
get_site_analytics |
analytics:read |
Reads a site's visitor numbers over a fixed period, the six headline metrics plus a visitors series to chart. |
get_site_analytics_overview |
analytics:read |
Reads everything the Analytics tab shows for a site in one call, from the headline totals and series to the top lists and live count. |
get_analytics_status |
analytics:read |
Reads whether visitor analytics is on for a site, whether the published site carries the tracking script, and whether it is collecting now. |
get_site_realtime_visitors |
analytics:read |
Reads how many people are on a published site at this moment, as a single visitor count. |
check_analytics_installation |
analytics:read |
Checks whether analytics is installed and collecting on a site, and whether the site is published yet. |
query_site_analytics |
analytics:read |
Asks an arbitrary question of a site's visitor analytics as a Plausible Stats v2 query, such as its top pages, sources or countries. |
export_site_analytics |
analytics:read |
Exports the all-time visitor analytics of a site in one call, as top pages, sources, countries, browsers, operating systems and devices. |
set_analytics_enabled |
sites:write |
Turns visitor analytics collection on or off for a site, reaching visitors only once the site is published again. |
clear_site_analytics |
sites:delete |
Permanently deletes the entire visitor history of a site, with no export taken first. |
get_analytics_key |
credentials:reveal |
Returns the analytics API key of a site in plain text, minting one if the site never had one. |
rotate_analytics_key |
credentials:reveal |
Replaces the analytics API key of a site with a freshly generated one and returns the new key in plain text. |
Comments
Review comments are pinned to a spot on the site preview. They belong to the people reviewing the site, so these tools are how an agent finds out what has been asked for and reports back that it is done. See Comments.
| Tool | Scope | What it does |
|---|---|---|
list_comments |
comments:read |
Lists the review comments left on a site, with each one's author, status, reply count, reactions and attachments. |
get_comment |
comments:read |
Reads one comment in full together with its replies, reactions and attachments. |
count_open_comments |
comments:read |
Counts the open comment threads on a site, the number the product shows on the comments badge. |
create_comment |
comments:write |
Leaves a new review comment pinned to a spot on the preview of a site. |
reply_to_comment |
comments:write |
Adds a reply to an existing comment thread. |
update_comment |
comments:write |
Changes the text of a comment or a reply you wrote. |
resolve_comment |
comments:write |
Marks a comment thread as resolved, signing off a reviewer's point once it has been dealt with. |
reopen_comment |
comments:write |
Puts a resolved comment thread back to open, for when what it asked for turned out not to be done. |
delete_comment |
comments:write |
Deletes a comment or a reply you wrote, or one left by someone outside the workspace. |
move_comment_pin |
comments:write |
Moves the pin of a comment to a different spot on the preview. |
add_comment_reaction |
comments:write |
Adds an emoji reaction to a comment or a reply. |
remove_comment_reaction |
comments:write |
Removes your own emoji reaction from a comment or a reply. |
list_comment_attachments |
comments:read |
Lists the images attached to one comment or reply, with their public URLs. |
upload_comment_attachment |
comments:write |
Attaches one or more images to a comment or a reply. |
delete_comment_attachment |
comments:write |
Permanently removes one image from a comment or reply. |
Your account
These act on the account the token belongs to and cannot be pointed at anybody else.
| Tool | Scope | What it does |
|---|---|---|
get_account |
account:read |
Reads the account the token belongs to, with its name, email, avatar, phone and email, notification and sound preferences. |
update_account |
account:write |
Changes the display name, phone number, avatar or notification preferences of the account the token belongs to. |
get_site_usage |
workspaces:read |
Reads how many sites the default workspace you own has used against its plan's site limit. |
list_pending_invitations |
account:read |
Lists the invitations waiting for you, from workspace invitations to workspace and site transfers. |
list_referrals |
account:read |
Lists the accounts that subscribed through your referral code, with their status and monthly earnings. |
list_payouts |
account:read |
Lists the payouts made to you for referrals, with their status. |
check_affiliate_code |
account:read |
Checks whether a referral code is free before you claim it. |
update_affiliate |
account:write |
Sets the referral code people use to sign up under you, and the email your payouts go to. |
Next
- Tokens and scopes maps scopes to these tools.
- Connect a client if you have not set the connection up yet.