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

# Count how many of an MCP server's tools need attention

> Returns counts of an MCP server's tools that need attention. `new` is the number of tools the server offers that aren't imported here, including every tool you deliberately declined, so it isn't a problem indicator. `newSinceReview` is the subset of those that the server added since you last synced it. Clients should surface this count. It is 0 for a server that has never been synced. `changed` is the number of imported tools that have drifted, and `missing` is the number of imported tools that the server no longer offers. These two counts need attention. The counts are computed on each call, with no scheduler or background job, so each call makes one live round trip to your MCP server. An unreachable server returns 200 with `unreachable: true` instead of a transport error. If the server was reached but refused the request (HTTP 401 or 403), the response also includes `authFailed: true`, so a client can report that the server refused the request instead of that it couldn't be reached.



## OpenAPI

````yaml https://api-trial.cognigy.ai/swagger/openapi.json get /mcp-servers/{id}/drift
openapi: 3.0.3
info:
  contact:
    email: support@example.com
    name: API Support
  description: API for managing agents and related resources
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: http://swagger.io/terms/
  title: Agents API
  version: '1.0'
servers:
  - url: https://api-trial.cognigy.ai/v1
security:
  - ApiKey: []
tags:
  - name: Agents
  - name: Brand personas
  - name: Tools
  - name: Built-in tools
  - name: Skills
  - name: Built-in skills
  - name: MCP servers
  - name: Tool references
paths:
  /mcp-servers/{id}/drift:
    get:
      tags:
        - MCP servers
      summary: Count how many of an MCP server's tools need attention
      description: >-
        Returns counts of an MCP server's tools that need attention. `new` is
        the number of tools the server offers that aren't imported here,
        including every tool you deliberately declined, so it isn't a problem
        indicator. `newSinceReview` is the subset of those that the server added
        since you last synced it. Clients should surface this count. It is 0 for
        a server that has never been synced. `changed` is the number of imported
        tools that have drifted, and `missing` is the number of imported tools
        that the server no longer offers. These two counts need attention. The
        counts are computed on each call, with no scheduler or background job,
        so each call makes one live round trip to your MCP server. An
        unreachable server returns 200 with `unreachable: true` instead of a
        transport error. If the server was reached but refused the request (HTTP
        401 or 403), the response also includes `authFailed: true`, so a client
        can report that the server refused the request instead of that it
        couldn't be reached.
      parameters:
        - description: The unique identifier for the mcp server.
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_mcpservers.DriftSummaryResponse'
          description: OK
        '400':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailBadRequest
          description: Invalid ID format
        '403':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailForbidden
          description: Access denied
        '404':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailNotFound
          description: MCP server not found
        '500':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailInternalError
          description: Internal server error
components:
  schemas:
    internal_mcpservers.DriftSummaryResponse:
      properties:
        authFailed:
          description: >-
            AuthFailed narrows an `unreachable` to the case where the server
            answered

            and refused the request (HTTP 401/403), which is a credential or

            `authType` problem rather than a network one. Never set without

            `unreachable`.
          example: false
          type: boolean
        changed:
          description: >-
            Changed is imported but the server's description or schema has
            drifted.
          example: 1
          type: integer
        missing:
          description: >-
            Missing is imported but no longer offered; the row will fail at call
            time.
          example: 0
          type: integer
        new:
          description: New is offered and not imported yet.
          example: 3
          type: integer
        newSinceReview:
          description: >-
            NewSinceReview is offered, not imported, and absent from the
            catalogue

            recorded at the last sync — i.e. the server added it after the
            customer

            last looked. A SUBSET of New.


            Badge on this, never on New: New includes every tool the customer

            deliberately declined, so badging it warns forever about a healthy
            server.
          example: 1
          type: integer
        unreachable:
          description: >-
            Unreachable says the counts are not answers because the server could
            not

            be reached. A state rather than a 502, because a client fans this
            out one

            call per server and renders badges progressively.


            Also set when the server WAS reached and refused us — see
            AuthFailed. The

            counts are equally meaningless either way, so a client that reads
            only

            this field stays correct.
          example: false
          type: boolean
      type: object
    github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailBadRequest:
      properties:
        detail:
          example: request body validation failed
          type: string
        errors:
          items:
            $ref: >-
              #/components/schemas/github_com_cognigy_ai-agents-v2_internal_middleware.FieldError
          type: array
        instance:
          example: /v1/{resource}
          type: string
        status:
          example: 400
          type: integer
        title:
          example: Bad Request
          type: string
        traceId:
          example: api--a4d2f126-bec4-4544-a049-7c0cf08524ed
          type: string
        type:
          example: about:blank
          type: string
      type: object
    github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailForbidden:
      properties:
        detail:
          example: 'access denied: insufficient permissions'
          type: string
        instance:
          example: /v1/{resource}/{id}
          type: string
        status:
          example: 403
          type: integer
        title:
          example: Forbidden
          type: string
        traceId:
          example: api--a4d2f126-bec4-4544-a049-7c0cf08524ed
          type: string
        type:
          example: about:blank
          type: string
      type: object
    github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailNotFound:
      properties:
        detail:
          example: the requested resource does not exist
          type: string
        instance:
          example: /v1/{resource}/{id}
          type: string
        status:
          example: 404
          type: integer
        title:
          example: Not Found
          type: string
        traceId:
          example: api--a4d2f126-bec4-4544-a049-7c0cf08524ed
          type: string
        type:
          example: about:blank
          type: string
      type: object
    github_com_cognigy_ai-agents-v2_internal_middleware.ProblemDetailInternalError:
      properties:
        detail:
          example: internal server error
          type: string
        instance:
          example: /v1/{resource}
          type: string
        status:
          example: 500
          type: integer
        title:
          example: Internal Server Error
          type: string
        traceId:
          example: api--a4d2f126-bec4-4544-a049-7c0cf08524ed
          type: string
        type:
          example: about:blank
          type: string
      type: object
    github_com_cognigy_ai-agents-v2_internal_middleware.FieldError:
      properties:
        field:
          type: string
        message:
          type: string
      type: object
  securitySchemes:
    ApiKey:
      description: '[Production] API key for production authentication'
      in: header
      name: X-API-Key
      type: apiKey

````