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

# Update Connection Tools

> List the connection's tools (GET), or edit its available set (PATCH). The available
set is streams-style — a tool is either in it or gone, there is no per-tool status.

GET returns the caller's view: managers/bypassed principals (and flag-off orgs) get
the full snapshot with the transitional ``enabled`` flag (the management view);
everyone else gets only the tools their accesses give them (spec §5.7).

PATCH accepts the declarative replace ``{tools: [names]}`` (the full desired set,
mirror of stream selection) or, transitionally until the FE ships, the legacy
``{name, enabled}`` toggle mapped onto the set. Writes serialize on the connection
row lock, and removals cascade into existing access tool scopes (§5.3) — re-adding
a tool later does not restore explicitly-scoped accesses.



## OpenAPI

````yaml PATCH /api/v1/live-connections/{slug}/tools/
openapi: 3.0.3
info:
  title: Nekt API
  version: v1
  description: Nekt API Documentation
  contact:
    email: support@nekt.ai
servers:
  - url: https://api.nekt.ai
security: []
paths:
  /api/v1/live-connections/{slug}/tools/:
    patch:
      tags:
        - v1
      description: >-
        List the connection's tools (GET), or edit its available set (PATCH).
        The available

        set is streams-style — a tool is either in it or gone, there is no
        per-tool status.


        GET returns the caller's view: managers/bypassed principals (and
        flag-off orgs) get

        the full snapshot with the transitional ``enabled`` flag (the management
        view);

        everyone else gets only the tools their accesses give them (spec §5.7).


        PATCH accepts the declarative replace ``{tools: [names]}`` (the full
        desired set,

        mirror of stream selection) or, transitionally until the FE ships, the
        legacy

        ``{name, enabled}`` toggle mapped onto the set. Writes serialize on the
        connection

        row lock, and removals cascade into existing access tool scopes (§5.3) —
        re-adding

        a tool later does not restore explicitly-scoped accesses.
      operationId: v1_live_connections_tools_partial_update
      parameters:
        - in: path
          name: slug
          schema:
            type: string
            description: >-
              Stable identifier and tool namespace; globally unique. Defaults to
              the connector slug (uniquified) when left blank.
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedLiveConnection'
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PatchedLiveConnection'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/PatchedLiveConnection'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LiveConnection'
          description: ''
      security:
        - ApiKeyAuth: []
components:
  schemas:
    PatchedLiveConnection:
      type: object
      description: >-
        A connection to an external system that AI agents can call tools
        against.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        connector:
          type: string
          description: Connector of this connection (Expandable)
        connector_version:
          type: string
          format: uuid
          readOnly: true
        connector_config:
          type: object
          additionalProperties: {}
          readOnly: true
        config:
          writeOnly: true
        callback_webhook:
          allOf:
            - $ref: '#/components/schemas/LiveConnectionCallbackWebhook'
          writeOnly: true
          nullable: true
        has_callback_webhook:
          type: boolean
          readOnly: true
        credentials_version:
          type: integer
          readOnly: true
          description: >-
            Bumped whenever connector_config changes (in the viewset/serializer,
            not a signal); the MCP uses it to invalidate its credential cache
        active:
          type: boolean
          description: The user on/off toggle. Activating clears draft and error.
        draft:
          type: boolean
          readOnly: true
          description: >-
            Not yet activated for the first time; the setup-link flow is only
            valid while draft (or error).
        error:
          type: boolean
          readOnly: true
          description: >-
            Set by the credential broker on a refused OAuth refresh; the
            connection needs a reconnect and is not served while set.
        archived:
          type: boolean
          readOnly: true
          description: >-
            Set via the archive/unarchive endpoints (mirrors Pipeline.archived);
            archived connections are never served to the MCP server.
        slug:
          type: string
          description: >-
            Stable identifier and tool namespace; globally unique. Defaults to
            the connector slug (uniquified) when left blank.
          maxLength: 256
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          nullable: true
        available_tools:
          type: array
          items:
            type: string
        tags:
          type: array
          items: {}
          readOnly: true
        permission_level:
          type: string
          readOnly: true
          nullable: true
        created_by:
          type: object
          additionalProperties: {}
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
    LiveConnection:
      type: object
      description: >-
        A connection to an external system that AI agents can call tools
        against.
      properties:
        id:
          type: string
          format: uuid
          readOnly: true
        connector:
          type: string
          description: Connector of this connection (Expandable)
        connector_version:
          type: string
          format: uuid
          readOnly: true
        connector_config:
          type: object
          additionalProperties: {}
          readOnly: true
        config:
          writeOnly: true
        callback_webhook:
          allOf:
            - $ref: '#/components/schemas/LiveConnectionCallbackWebhook'
          writeOnly: true
          nullable: true
        has_callback_webhook:
          type: boolean
          readOnly: true
        credentials_version:
          type: integer
          readOnly: true
          description: >-
            Bumped whenever connector_config changes (in the viewset/serializer,
            not a signal); the MCP uses it to invalidate its credential cache
        active:
          type: boolean
          description: The user on/off toggle. Activating clears draft and error.
        draft:
          type: boolean
          readOnly: true
          description: >-
            Not yet activated for the first time; the setup-link flow is only
            valid while draft (or error).
        error:
          type: boolean
          readOnly: true
          description: >-
            Set by the credential broker on a refused OAuth refresh; the
            connection needs a reconnect and is not served while set.
        archived:
          type: boolean
          readOnly: true
          description: >-
            Set via the archive/unarchive endpoints (mirrors Pipeline.archived);
            archived connections are never served to the MCP server.
        slug:
          type: string
          description: >-
            Stable identifier and tool namespace; globally unique. Defaults to
            the connector slug (uniquified) when left blank.
          maxLength: 256
          pattern: ^[-a-zA-Z0-9_]+$
        description:
          type: string
          nullable: true
        available_tools:
          type: array
          items:
            type: string
        tags:
          type: array
          items: {}
          readOnly: true
        permission_level:
          type: string
          readOnly: true
          nullable: true
        created_by:
          type: object
          additionalProperties: {}
          readOnly: true
        created_at:
          type: string
          format: date-time
          readOnly: true
        updated_at:
          type: string
          format: date-time
          readOnly: true
      required:
        - archived
        - connector
        - connector_config
        - connector_version
        - created_at
        - created_by
        - credentials_version
        - draft
        - error
        - has_callback_webhook
        - id
        - permission_level
        - tags
        - updated_at
    LiveConnectionCallbackWebhook:
      type: object
      description: >-
        Where Nekt announces that someone finished configuring this connection
        through a setup link.
      properties:
        url:
          type: string
          format: uri
          maxLength: 2048
        header_name:
          type: string
          maxLength: 256
        header_value:
          type: string
          writeOnly: true
          maxLength: 2048
      required:
        - url
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: 'API Key authentication. Format: ''x-api-key: api_key'''

````