Update MCP config

Changed on

<Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Changes how the app's MCP server authenticates clients, which tools it serves, or both. The app needs an MCP server first, which the builder sets up when you ask it to in chat.

Send only the keys you want to change. tools replaces the stored tools object whole, so read the current one with Get MCP config, change it, and send all of it back.

Changes reach AI clients once you deploy the app. The response shows the config as saved, and each tool's published tells you whether the live server already matches it.

Switching to none needs the app to be open to visitors without logging in. A workspace can also turn MCP off for its apps, or require oauth.

This is limited to 60 requests a minute for each app. Some workspaces have a different limit.

<Note>This endpoint accepts a personal API key belonging to a user with editor access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>

patch/api/apps/platform/{app_id}/mcp/config

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps/platform/{app_id}/mcp/config
  • Auth: HTTP bearer

Path parameters

app_idstring required

ID of the app.

Request body

auth'none' | 'oauth' nullable

How clients authenticate. Either "oauth", where clients sign in, or "none", where anyone can call the entity read tools without signing in. Leave it out to keep the current mode.

toolsobject nullable

The whole tools object, which replaces the stored one. excluded_agents lists agents to hold back. entity_overrides maps an entity name to the operations to serve, where an empty list holds the entity back. functions lists the custom tools, and one with disabled set to true is held back. Leave it out to keep the current tools.

Example request

{
  "auth": "oauth",
  "tools": {
    "entity_overrides": {
      "Invoice": {
        "operations": []
      }
    },
    "excluded_agents": [
      "support_bot"
    ],
    "functions": []
  }
}

Response

The config as saved, and its tools.

configobject nullable

The editable config, or null when the app has no MCP server. It has auth, login_path, consent_path, and the tools object that Update MCP config replaces.

Example response

{
  "config": {
    "auth": "oauth",
    "tools": {
      "entity_overrides": {
        "Invoice": {
          "operations": []
        }
      },
      "excluded_agents": [
        "support_bot"
      ],
      "functions": []
    }
  },
  "tools": [
    {
      "key": "entity:Task:read:",
      "name": "query_task",
      "kind": "entity",
      "source": "Task",
      "operation": "read",
      "handler": "sendInvoice",
      "title": "Query tasks",
      "description": "Find Task records by ID or filter.",
      "read_only_hint": true,
      "exposed": true,
      "published": true
    }
  ],
  "pending_removal": [
    {
      "name": "query_invoice",
      "kind": "entity",
      "title": "Query invoices",
      "description": "Find Invoice records by ID or filter.",
      "read_only_hint": true
    }
  ]
}

Changes