---
title: "Get MCP server health"
method: GET
path: "/api/mcp/servers"
tags: ["MCP"]
---

# Get MCP server health

`GET /api/mcp/servers`

## Request

- Base URL: `/api/plugins/consensys-asko11y-app/resources` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/plugins/consensys-asko11y-app/resources/api/mcp/servers`
- Auth: one of:
  - API key in cookie `grafana_session`
  - HTTP bearer

Returns health status for all configured MCP servers. Used for monitoring MCP server connectivity.

## Response `200`

MCP server health status

- object
  - `servers` object[]
    - `serverId` string
    - `name` string
    - `url` string
    - `type` 'openapi' | 'standard' | 'sse' | 'streamable-http'
    - `status` 'healthy' | 'unhealthy' | 'degraded' | 'disconnected'
    - `lastCheck` string, date-time
    - `responseTime` number
    - `successRate` number
    - `errorCount` integer
    - `consecutiveFailures` integer
    - `toolCount` integer
    - `tools` Tool[]
      - `name` string, required: Tool name (unique identifier)
      - `description` string: Human-readable tool description
      - `inputSchema` object, required: JSON Schema for tool input parameters
      - `annotations` ToolAnnotations: MCP tool annotations for RBAC and behavior hints
        - `readOnlyHint` boolean, nullable: Tool only reads data (safe for Viewer role). Null means unspecified.
        - `destructiveHint` boolean, nullable: Tool may delete or modify data. Null means unspecified.
        - `idempotentHint` boolean, nullable: Tool is idempotent (safe to retry). Null means unspecified.
        - `openWorldHint` boolean, nullable: Tool may access external resources. Null means unspecified.
  - `systemHealth` object
    - `overallStatus` 'healthy' | 'degraded' | 'unhealthy'
    - `total` integer
    - `healthy` integer
    - `unhealthy` integer
    - `degraded` integer
    - `disconnected` integer
  - `oauth` object: Per-user OAuth connection state keyed by server ID; present only for servers configured with an oauth block.

## Other responses

- `500`: Internal server error

## Changes

- **2026-08-25** `336f05fb2b50`: 1 info
  - added the optional property `oauth` to the response with the `200` status

[Operation history](https://skmtc.dev/consensys/apis/ask-o11y-ai-powered-observability-assistant-api/changes/api/mcp/servers/get.md)

---

[API](https://skmtc.dev/consensys/apis/ask-o11y-ai-powered-observability-assistant-api.md) - [All operations](https://skmtc.dev/consensys/apis/ask-o11y-ai-powered-observability-assistant-api/llms.txt) - [OpenAPI document](https://skmtc.dev/consensys/apis/ask-o11y-ai-powered-observability-assistant-api/revisions/ee3ccd0f186d?raw)
