> ## 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 plugin connection

> Checks that the engine can reach an assigned plugin. A failed check returns 200 with safe failure categories; an unavailable engine returns ENGINE_ERROR.

- **MCP server**: the engine connects with anonymous access, the Bearer or API key credential the plugin sends or its valid OAuth authorization, lists the tools without calling them, then closes the client. The credential and its resolved value are checked again before success.
- **HTTP API on Main executor**: the engine opens a connection to the base URL, sends no request and uses no credential; tool_count is 0.
- **HTTP API on a cluster**: not checked here, and the result is a failure. Check it from the plugin page in Command Center, where the check runs in the cluster.
- **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 (403).



## OpenAPI

````yaml /0.18/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 plugin connection
      description: >-
        Checks that the engine can reach an assigned plugin. A failed check
        returns 200 with safe failure categories; an unavailable engine returns
        ENGINE_ERROR.


        - **MCP server**: the engine connects with anonymous access, the Bearer
        or API key credential the plugin sends or its valid OAuth authorization,
        lists the tools without calling them, then closes the client. The
        credential and its resolved value are checked again before success.

        - **HTTP API on Main executor**: the engine opens a connection to the
        base URL, sends no request and uses no credential; tool_count is 0.

        - **HTTP API on a cluster**: not checked here, and the result is a
        failure. Check it from the plugin page in Command Center, where the
        check runs in the cluster.

        - **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 (403).
      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
                        description: The tools the MCP server lists; 0 for an HTTP API.
                      account_name:
                        type: string
                        description: >-
                          For an OAuth plugin, who the connected account signs
                          in as.
                      transport:
                        type: string
                        enum:
                          - streamable-http
                          - http-sse
                        description: The transport a remote MCP server answered on.
                      protocol_version:
                        type: string
                        description: The MCP protocol version the server agreed to.
                    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
                        description: Why the check failed, as safe categories.
                      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.