Modulify

What is MCP

Modulify runs an MCP server, so an AI client can work on your sites for you.

On this page

MCP, the Model Context Protocol, is the standard way an AI client talks to an outside system. Modulify runs an MCP server, so a client like Claude Code, Claude Desktop or Cursor can connect to your Modulify account and work on your sites from wherever you are already working.

The mental model

Your AI assistant becomes a client of your Modulify workspace. It signs in with an access token you create, and from then on it can call Modulify the same way you would click through the dashboard: list your sites, send a prompt to one, watch the build, read the resulting code, publish it.

The token is the whole boundary. It belongs to you, it acts as you, and it can only do the things you ticked when you created it.

What a connected client can do

The server exposes 73 tools, grouped by the part of Modulify they touch:

  • Workspaces: read your workspaces, your role in each and your AI credit balance.
  • Sites: list, create, duplicate, rename, delete, change the free address, change sharing.
  • Chat: send a prompt to the site agent, poll the generation, read the history, manage the queue.
  • Code: list and read the source files of a site.
  • Publishing: publish, check the publish, list past publishes, take a site offline.
  • Domains: add a custom domain, read the DNS records, verify it, remove it.
  • Configuration: environment variables, scheduled jobs and webhooks.
  • Content: the collections, schemas and rows of a site database, plus its file storage.
  • Backups: snapshots and code version history.
  • Analytics: visitor numbers for a published site.

Tools lists every one of them with its inputs.

Scopes decide what the client even sees

A token carries a list of scopes. When a client connects, Modulify builds the tool list for that token alone: a tool whose scope the token does not hold is never registered, so the client cannot see it, cannot call it and will not try. Untick data:write and the client behaves as though row editing does not exist.

Each tool is also registered with a read-only hint and a destructive hint. Clients that surface those hints will ask you before running something marked destructive, such as delete_site or clear_collection.

It acts as you, inside your permissions

A token is tied to your user account, not to a workspace. By default it can reach every workspace where you are a member and your role allows API access, and you can narrow it to specific workspaces when you create it.

Every call has to resolve to a workspace, from the workspaceId it names or from the workspace that owns the site it names, and one that resolves to neither is refused before it runs. That workspace then has to be one the token is allowed to reach, and your role in it has to hold the API access permission. Workspace owners hold it already. For anyone else it is a permission the owner grants to a role, described in the product as "Reach this workspace with a token from an AI client".

What it deliberately cannot do

Some things are withheld on purpose, and no tool can get at them:

  • No tool writes source files. To change code, the client describes the change with send_message and the site agent edits it, because the agent owns the sync between the running preview and the repository.
  • Environment variable values are never returned. list_secrets gives names and flags only.
  • Webhook destination URLs are stripped to their host, because a webhook URL is itself a credential.
  • Database credentials are never returned. get_site_database tells you whether a database exists and is running, not how to connect to it.

Credits and cost

Reading costs nothing. send_message and create_site spend AI credits from the workspace that owns the site, exactly as prompting from the dashboard does. A workspace with no AI credits left refuses both rather than running them part of the way, so a client that checks get_workspace first can tell you before it tries.

Limits

A token may make 240 tool calls per minute. Past that, calls come back with the number of seconds to wait, and the window is per token rather than per account.

A single tool result is capped at 60,000 characters. A larger result is cut off with a note saying so, which is why the paging tools exist: list_rows, list_sites, list_messages and the rest all page.

Next