> ## Documentation Index
> Fetch the complete documentation index at: https://www.macaly.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# An MCP server for your app

> Let Claude, ChatGPT, and other AI assistants use your app's data

Every project you build in Macaly can have its own [MCP](https://modelcontextprotocol.io) server. That lets other AI assistants use your app. Someone working with Claude or ChatGPT can then say "add a booking for Friday at 10" or "how many orders came in this week", and the assistant carries out the action through your app.

Which parts of the app you expose is up to you. Set it up in the **MCP** tab of your [chat](/docs/en/chat/overview), which also holds the connection details.

<Callout icon="user">
  Available on all plans
</Callout>

## Creating the server

Open the **MCP** tab and click **Create MCP for this app**. The agent looks at what your app does and proposes a set of tools, for example one to list items, one to create them, and one to edit them. If you want different ones, tell the agent in chat. It then builds those tools into your app's backend.

You can also just ask in chat: "Turn my app into an MCP server so Claude can manage the inventory." Later, **Add or change tools** in the MCP tab takes you back to the agent to adjust what's exposed.

Once the server exists, the tab shows its **Server URL** and how it authenticates:

* **Sign-in required**: Assistants sign in through your app's own login, so each person only reaches their own data. This is the method Claude and ChatGPT require.
* **Access token**: A single secret key. Useful for scripts and Claude Code, but the Claude and ChatGPT apps can't use it. If your server only accepts a token, click **Add sign-in** and the agent adds a login to your app.

<Note>
  Assistants sign in through your published app, so you need to publish the project first. If the chat uses the Testing database, Claude and ChatGPT still sign in to the Live database. Once the Testing version is ready, switch to Live in the Database tab. See [Live and Testing databases](/docs/en/features/databases#live-and-testing-databases).
</Note>

## Connecting an assistant

The **Connect** section has step-by-step instructions for each client. You only need to connect once.

<Tabs>
  <Tab title="Claude">
    1. In Claude, open **Settings → Connectors** and click **Add custom connector**.
    2. Give it a name and paste your server URL into the **Remote MCP server URL** field.
    3. Click **Connect**. Claude opens your app's sign-in page. Sign in and approve access.
  </Tab>

  <Tab title="ChatGPT">
    1. In ChatGPT, open **Settings → Apps & Connectors → Advanced settings** and enable **Developer mode**.
    2. Back in **Apps & Connectors**, click **Create**, give it a name, and paste your server URL. Keep **OAuth** as the authentication.
    3. Sign in with your app account and approve access. In a chat, pick your app from the **+** menu.
  </Tab>

  <Tab title="Claude Code">
    Copy the command shown in the MCP tab and run it in your terminal. It contains your access token, so don't share it with anyone. Then type `/mcp` in Claude Code and finish signing in in your browser.
  </Tab>
</Tabs>

Custom connectors need a paid Claude or ChatGPT plan and are added from the web or desktop app, not the phone app.

## What connected assistants can do

The **Tools** list at the bottom of the tab shows every tool your server offers, with a short description of each. Tools badged **Read-only** can only view data. Tools badged **Can delete data** can remove data, so take care when you set their permissions.

If the tab reports that the server isn't responding, it may still be deploying. Try again in a moment, or click **Ask Macaly to fix it** and the agent looks into it.

## Example uses

* A booking app where clients ask their assistant to find a free slot and book it.
* An internal CRM where the sales team asks ChatGPT for a customer's history before a call.
* An inventory app where Claude checks stock levels and records deliveries.

The server runs on your app's [API domain](/docs/en/features/domains#api-domain-for-your-apps-backend), so its address stays the same even if you rename or move the site.
