# What is MCP

Source: https://modulify.ai/docs/mcp/what-is-mcp

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

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](/docs/mcp/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

- [Connect a client](/docs/mcp/connect-a-client) walks through creating a token and wiring up Claude Code, Claude Desktop or Cursor.
- [Tokens and scopes](/docs/mcp/tokens-and-scopes) covers every scope and what it permits.
- [Tools](/docs/mcp/tools) is the full catalog.