---
title: "Get MCP status"
method: GET
path: "/api/apps/platform/{app_id}/mcp-status"
---

# Get MCP status

`GET /api/apps/platform/{app_id}/mcp-status`

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

Returns the app's live MCP server. That covers whether AI clients can connect to it now, its endpoint, how clients authenticate, and the tools it serves.

This reports what the last publish put live, not the config you're editing. Read that with [Get MCP config](/api-reference/get-mcp-config). A server is only active while the app is published, and a workspace rule can turn it off without a publish, which `workspace_policy` tells you.

This is limited to 120 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 access to the app. A read-only key is refused, and workspace API keys are not accepted.</Note>

## Path parameters

- `app_id` string, required — ID of the app.

## Response `200`

The app's live MCP server.

- AppMcpStatusResponse — The app's live MCP server.
  - `active` boolean — Whether AI clients can use the server right now. It's `false` until the app is published, while it's unpublished or blocked, when the workspace has turned MCP off or requires `oauth` from a `none` server, and when a `none` server's app requires visitors to log in.
  - `published` boolean — Whether a publish has put an MCP server live for the app.
  - `endpoint` string, nullable — URL AI clients connect to, or `null` when the app has no address yet.
  - `auth` 'none' | 'oauth', nullable — How clients authenticate with the live server, or `null` when none is published. Either `"oauth"`, where clients sign in, or `"none"`, where anyone can call the public tools.
  - `tools` AppMcpToolSummary[] — Tools the live server serves. A `none` server lists only its public tools.
    - `name` string, required — Name AI clients call the tool by.
    - `title` string, nullable — Display title of the tool, or `null` when it has none.
    - `description` string, required — What the tool does, as AI clients see it.
    - `kind` string, required — Where the tool comes from. Either `"entity"`, `"agent"`, or `"function"` for a custom tool backed by a backend function.
    - `handler` string, nullable — Backend function a custom tool runs, or `null` for entity and agent tools.
    - `read_only_hint` boolean — Whether the tool is marked as only reading data.
    - `public` boolean — Whether the tool can be called without signing in when the server's `auth` is `none`. Only entity read tools can. On an `oauth` server every tool still needs a signed-in client.
  - `effective_public_settings` string, nullable — Who can open the app after its next publish, once workspace SSO rules apply. A `none` server only works while this is `public_without_login`.
  - `workspace_policy` string — The workspace's rule for app MCP servers. Either `"allow"`, `"oauth_only"`, which stops `none` servers, or `"disabled"`, which stops every server in the workspace.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — You don't have access to this app, it doesn't exist, or your API key is read-only.
- `404` — App not found, or it's outside the workspace your credential is scoped to.
- `429` — Too many MCP status requests for this app in the last minute.

## Changes

- **2026-09-29** `347e2afcf94a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/platform/:app_id/mcp-status/get.md)

---

[API](https://skmtc.dev/idealspot/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/idealspot/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/idealspot/apis/base44-app-management-api/revisions/e2a6a9f1fe4c?raw)
