> ## Documentation Index
> Fetch the complete documentation index at: https://docs.2501.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Check an assigned MCP connection

> The engine initializes the saved endpoint with anonymous access, the Bearer/API-key credential the plugin sends or its valid OAuth authorization, lists tools without calling them, then closes the client. The credential and its resolved value are checked again before success. Disabled assignments may be checked without enabling them, except a hosted MCP server: the check starts it, so only a tenant-level administrator may check one that is turned off, and anyone else gets 403. A failed check returns 200 with safe failure categories; an unavailable engine returns ENGINE_ERROR.



## OpenAPI

````yaml /0.17/openapi.json post /api/v1/agents/{id}/plugins/{pluginId}/check
openapi: 3.0.3
info:
  title: 2501 Public API
  version: v1
  description: >-
    The stable, versioned HTTP API for driving 2501 as code. See the API
    Overview for authentication, the org_id rule, cursor pagination, and the
    error envelope.
servers:
  - url: https://{command_center_host}
    variables:
      command_center_host:
        default: your-command-center-host
        description: Your Command Center host
security:
  - bearerAuth: []
paths:
  /api/v1/agents/{id}/plugins/{pluginId}/check:
    post:
      tags:
        - Agents
      summary: Check an assigned MCP connection
      description: >-
        The engine initializes the saved endpoint with anonymous access, the
        Bearer/API-key credential the plugin sends or its valid OAuth
        authorization, lists tools without calling them, then closes the client.
        The credential and its resolved value are checked again before success.
        Disabled assignments may be checked without enabling them, except a
        hosted MCP server: the check starts it, so only a tenant-level
        administrator may check one that is turned off, and anyone else gets
        403. A failed check returns 200 with safe failure categories; an
        unavailable engine returns ENGINE_ERROR.
      parameters:
        - schema:
            type: string
          required: true
          name: id
          in: path
        - schema:
            type: string
          required: true
          name: pluginId
          in: path
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties: {}
              default: {}
              additionalProperties: false
      responses:
        '200':
          description: Connection check result
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      agent_id:
                        type: string
                      plugin_id:
                        type: string
                      checked_at:
                        type: string
                        format: date-time
                      success:
                        type: boolean
                        enum:
                          - true
                      tool_count:
                        type: integer
                        minimum: 0
                      account_name:
                        type: string
                        description: >-
                          For an OAuth plugin, who the connected account signs
                          in as.
                      transport:
                        type: string
                        enum:
                          - streamable-http
                          - http-sse
                      protocol_version:
                        type: string
                    required:
                      - agent_id
                      - plugin_id
                      - checked_at
                      - success
                      - tool_count
                  - type: object
                    properties:
                      agent_id:
                        type: string
                      plugin_id:
                        type: string
                      checked_at:
                        type: string
                        format: date-time
                      success:
                        type: boolean
                        enum:
                          - false
                      failures:
                        type: array
                        items:
                          type: string
                          enum:
                            - migration_required
                            - invalid_configuration
                            - connection_or_discovery_failed
                            - tool_budget_exceeded
                            - cleartext_not_allowed
                            - destination_not_allowed
                            - redirect_not_followed
                            - access_check_failed
                            - credential_unavailable
                            - authorization_required
                            - authentication_failed
                            - image_unavailable
                            - assignment_changed
                            - cleanup_failed
                            - hosted_server_starting
                            - hosted_server_start_failed
                        minItems: 1
                      detail:
                        type: string
                        maxLength: 500
                        description: >-
                          What went wrong, when the engine can say more than the
                          category: an HTTP status, a DNS or TLS failure, or a
                          hosted MCP server start error such as an image that
                          cannot be pulled, a used-up quota or a missing
                          permission.
                    required:
                      - agent_id
                      - plugin_id
                      - checked_at
                      - success
                      - failures
        '400':
          description: >-
            Bad request - a field is missing, malformed, or not allowed
            (VALIDATION_FAILED, BAD_REQUEST, INVALID_CURSOR)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: >-
            No credentials, or a key that is invalid, revoked, or expired
            (UNAUTHORIZED)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            Authenticated but not allowed (FORBIDDEN, ORG_ACCESS_DENIED,
            STEP_UP_REFUSED, TWO_FACTOR_ENROLLMENT_REQUIRED,
            LICENSE_CAP_REACHED, LICENSE_EXPIRED)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: No such row that this caller can see (NOT_FOUND)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server or engine error (INTERNAL_ERROR, ENGINE_ERROR)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      properties:
        code:
          type: string
          example: VALIDATION_FAILED
        message:
          type: string
          example: Validation failed
        request_id:
          type: string
          example: req_3702b7e7-...
        field:
          type: string
          description: Set when one input is at fault
        errors:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
            required:
              - field
              - message
          description: Set when several inputs are at fault
        details:
          type: object
          additionalProperties:
            nullable: true
      required:
        - code
        - message
        - request_id
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key minted in Command Center (Settings -> API Keys), sent as
        `Authorization: Bearer 2501_ak_...`. A Command Center session cookie is
        also accepted.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.