---
title: "List MCP servers"
method: GET
path: "/api/v1/servers"
tags: ["Servers"]
---

# List MCP servers

`GET /api/v1/servers`

## Request

- Base URL: `https://dashboard.sealgate.ai`
- URL: `https://dashboard.sealgate.ai/api/v1/servers`
- Auth: HTTP bearer

List MCP servers visible to the caller, with pagination and optional name search.

## Query parameters

- `page` integer
- `per_page` integer
- `q` string
- `my_mcps` boolean

## Response `200`

A page of server summaries

- ServerSummaryPage: Paginated list of server summaries.
  - `items` ServerSummary[], required
    - `id` integer, required: Server ID
    - `name` string, required: Server MCP prefix name (alphanumeric)
    - `display_name` string, required: Human-readable display name
    - `command` string, required: Server command
    - `enabled` boolean, required: Whether the server is enabled at the admin/global level
    - `tool_count` integer, required: Number of registered tools/elements
    - `needs_config` boolean, required: Whether the server has unconfigured required template fields
    - `domain` string, required: Domain this server belongs to
    - `is_builtin` boolean: Whether this is the auto-provisioned builtin server
    - `user_enabled` boolean, nullable: User-level enablement override; null means no override
    - `parent_enabled` boolean, required: Effective enabled state from the role/global hierarchy, ignoring any user override
    - `user_locked` boolean: Whether the caller's enablement override is admin-locked
    - `config_warnings` string[]: Human-readable warnings about missing configuration
    - `icon_url` string, nullable: Remote icon URL
    - `runtime_health` ServerRuntimeHealth: Live runtime health of a mounted MCP server.
      - `state` 'ok' | 'starting' | 'degraded', required: Runtime state
      - `error_kind` 'auth_required' | 'forbidden' | 'rate_limited' | 'upstream_error' | 'http_error' | 'timeout' | 'unreachable' | 'mount_failed' | 'no_tools' | 'unknown' | 'null', nullable: Discriminating reason when state is degraded; null otherwise
      - `reason` string, nullable: Short user-facing label derived from error_kind
      - `detail` string, nullable: Longer error message tail
      - `last_check_at` string, date-time, nullable
      - `consecutive_failures` integer
      - `next_check_at` string, date-time, nullable
    - `authenticated_user_emails` string[]: Emails of users who have invoked tools on this server
    - `transport_type` string: Transport: 'http' (remote URL) or 'stdio_tunnel' (proxied via daemon)
    - `device_id` string, nullable: Human-readable device label for a bound stdio_tunnel device
    - `device_owner_email` string, nullable: Email of the device owner for a stdio_tunnel server
  - `total` integer, required: Total items across all pages
  - `page` integer, required: Current page number (1-indexed)
  - `per_page` integer, required: Items per page
  - `total_pages` integer, required: Total number of pages

## Other responses

- `401`: Missing or invalid API key
- `422`: Request validation failed

---

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