> For the complete documentation index, see [llms.txt](https://docs.flowcp.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.flowcp.ai/reference/app-health.md).

# App health

The **Health** page gives an App-focused, real-time view of everything that has to be working for that app's MCP server to serve traffic: the hosted MCP server(s), the connected upstream API, and the FlowCP platform infrastructure.

Open it from the dashboard sidebar under **Monitor → Health**.

## What it shows

The page is organized into three sections.

### MCP servers

One card per MCP server belonging to the app. Each card shows:

| Field              | Description                                                         |
| ------------------ | ------------------------------------------------------------------- |
| **Status badge**   | Derived health — Operational, Degraded, or Outage                   |
| **Publish status** | The server's configured state (`draft`, `published`, or `disabled`) |
| **Recent calls**   | Number of tool invocations in the last 24 hours                     |
| **Server errors**  | Count and share of those calls that returned a 5xx error            |
| **Avg latency**    | Average tool execution latency over the window                      |

A `draft` or `disabled` server is reported as Operational because it is not serving traffic. A `published` server degrades to **Degraded** once its recent 5xx error rate passes 10%, and to **Outage** past 50%.

### APIs

Live reachability probes of the URLs that define the connected upstream API:

| Target           | What is checked                                        |
| ---------------- | ------------------------------------------------------ |
| **API base URL** | The app's request base URL responds to an HTTP request |
| **OpenAPI spec** | The Swagger / OpenAPI document URL is reachable        |

Any served response — including a 4xx — counts as reachable. A 5xx is reported as **Degraded**; a connection failure or timeout is an **Outage**. Each card shows the probed URL and round-trip latency.

### Our servers

The shared FlowCP platform infrastructure, identical to the public [system status](/reference/system-status.md) checks:

| Service         | What is checked                                           |
| --------------- | --------------------------------------------------------- |
| **API**         | The control-plane API process is handling requests        |
| **Database**    | PostgreSQL is reachable and responding to queries         |
| **Redis Cache** | Redis is reachable and responding to pings                |
| **MCP Runtime** | The MCP protocol server is running and accepting requests |

## Status levels

| Banner                      | Meaning                                                    |
| --------------------------- | ---------------------------------------------------------- |
| **All systems operational** | Every checked component is healthy                         |
| **Partial degradation**     | One or more components are slow or intermittently erroring |
| **Major outage**            | One or more components are unreachable or failing          |

The overall banner reflects the worst status across all three sections.

## Auto-refresh

The page re-checks everything every **20 seconds** automatically. You can also click **Refresh** to trigger an immediate check; the header shows the time of the last check.

## Programmatic health check

The underlying endpoint is workspace-scoped and returns the same payload the page renders:

```
GET /api/workspaces/:workspaceId/apps/:appId/health
```

Example response:

```json
{
  "appId": "app_123",
  "checkedAt": "2026-06-08T12:00:00.000Z",
  "overall": "ok",
  "platform": {
    "api": { "status": "ok", "latencyMs": 0 },
    "database": { "status": "ok", "latencyMs": 4 },
    "redis": { "status": "ok", "latencyMs": 1 },
    "mcpRuntime": { "status": "ok", "latencyMs": 8 }
  },
  "upstreamApis": [
    { "label": "API base URL", "url": "https://api.example.com", "status": "ok", "latencyMs": 120 }
  ],
  "mcpServers": [
    {
      "id": "server_1",
      "name": "Live",
      "slug": "live-abc",
      "configStatus": "published",
      "status": "ok",
      "invocationCount": 20,
      "serverErrorCount": 0,
      "recentErrorRate": 0,
      "avgLatencyMs": 42
    }
  ]
}
```
