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

# Update an MCP server.

> Updates an MCP server belonging to the caller's account. Only the fields present in the
request body are changed - name, isActive, connections and
workflows are each left unchanged when omitted (null); supplying
connections or workflows replaces the entire set, it does not merge with
the existing one. Every connection entry must carry an explicit connectionId.
isAnonymousAllowed is read-only here and is always preserved.



## OpenAPI

````yaml /api-reference/openapi.json patch /v1/mcpservers/{mcpServerToken}
openapi: 3.0.0
info:
  title: Engini DeveloperAPI
  version: v1
  description: 'Merged public developer API spec: Identity + WorkflowApi.'
servers:
  - url: https://api.engini.io
security:
  - Bearer: []
  - ApiKey: []
tags:
  - name: Auth
    description: Identify the caller a Developer API request is authenticated as.
  - name: Applications
    description: >-
      Discover the applications (toolkits) available in Engini and their
      connection requirements.
  - name: Tools
    description: Browse and execute the tools exposed by Engini applications.
  - name: Toolsets
    description: Manage toolsets - named groupings of connections and tools.
  - name: McpServers
    description: >-
      Inspect and maintain MCP servers - the account-wide endpoints that expose
      Engini tools and workflows over the Model Context Protocol. Distinct from
      the MCPClient connection kind, which is Engini consuming a third-party MCP
      server.
  - name: Connections
    description: >-
      Manage connections to applications, including OAuth sign-in and
      default-connection selection.
  - name: Triggers
    description: >-
      Create triggers that fire when something changes in a connected app, and
      manage the destinations their events are delivered to.
paths:
  /v1/mcpservers/{mcpServerToken}:
    patch:
      tags:
        - McpServers
      summary: Update an MCP server.
      description: >-
        Updates an MCP server belonging to the caller's account. Only the fields
        present in the

        request body are changed - name, isActive, connections and

        workflows are each left unchanged when omitted (null); supplying

        connections or workflows replaces the entire set, it does not merge with

        the existing one. Every connection entry must carry an explicit
        connectionId.

        isAnonymousAllowed is read-only here and is always preserved.
      operationId: McpServers_UpdateMcpServer
      parameters:
        - name: mcpServerToken
          in: path
          required: true
          description: The token identifying the MCP server to update.
          schema:
            type: string
          x-position: 1
      requestBody:
        x-name: request
        description: The fields to update on the MCP server.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMcpServerRequest'
        required: true
        x-position: 2
      responses:
        '200':
          description: The updated MCP server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/McpServerPublicDTO'
        '400':
          description: Bad request - malformed body or invalid parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - missing or invalid bearer token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden - the caller lacks access to the resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found - the resource does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many requests - rate limit exceeded.
          headers:
            Retry-After:
              description: Number of seconds to wait before retrying.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error - an unexpected error occurred.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - Bearer: []
        - ApiKey: []
components:
  schemas:
    UpdateMcpServerRequest:
      type: object
      description: >-
        Request body for updating an MCP server; null members are left
        unchanged, and a non-null

        Connections or Workflows replaces the whole set rather than

        merging into it.
      additionalProperties: false
      properties:
        name:
          type: string
          description: New display name; null leaves it unchanged.
          nullable: true
        isActive:
          type: boolean
          description: New active state; null leaves it unchanged.
          nullable: true
        connections:
          type: array
          description: Replacement connection set; null leaves it unchanged.
          nullable: true
          items:
            $ref: '#/components/schemas/McpServerConnectionRequest'
        workflows:
          type: array
          description: Replacement workflow set; null leaves it unchanged.
          nullable: true
          items:
            $ref: '#/components/schemas/McpServerWorkflowRequest'
    McpServerPublicDTO:
      type: object
      description: >-
        Public-shape DTO for an MCP server — an account-wide endpoint that
        exposes a chosen set of

        Engini tools and workflows over the Model Context Protocol.
                    
        Not to be confused with the MCPClient connection kind, which is Engini
        *consuming* a

        third-party MCP server. This resource is Engini *exposing* one.
                    
        The internal UI shape is McpServerDTO; that type

        carries the account token and the raw tool-catalog blob and is
        deliberately not reused here.
      additionalProperties: false
      required:
        - mcpServerToken
        - name
        - isActive
        - isAnonymousAllowed
        - connections
        - workflows
        - createdDate
      properties:
        mcpServerToken:
          type: string
          description: >-
            Unique identifier of the MCP server (its token); also the component
            of the server's SSE URL.
        name:
          type: string
          description: Display name of the MCP server.
        url:
          type: string
          description: Public SSE endpoint URL of the MCP server.
          nullable: true
        isActive:
          type: boolean
          description: >-
            Whether the server is currently serving requests. Unlike a toolset,
            this is a real on/off

            toggle rather than a deletion tombstone — a deactivated server still
            appears in list and get.
        isAnonymousAllowed:
          type: boolean
          description: >-
            Whether the server accepts unauthenticated callers. Read-only on
            this API: it is

            configured from the engini.io UI and is preserved unchanged by every
            update here.
        connections:
          type: array
          description: Connections exposed by this server and their permitted tools.
          items:
            $ref: '#/components/schemas/McpServerConnectionDTO'
        workflows:
          type: array
          description: Workflows exposed by this server as MCP tools.
          items:
            $ref: '#/components/schemas/McpServerWorkflowDTO'
        createdDate:
          type: string
          description: When the MCP server was created.
          format: date-time
        updatedDate:
          type: string
          description: When the MCP server was last updated; null if never updated.
          format: date-time
          nullable: true
        createdByAccountUserId:
          type: integer
          description: Account-user ID that created the MCP server.
          format: int32
          nullable: true
        updatedByAccountUserId:
          type: integer
          description: >-
            Account-user ID that last updated the MCP server; null until first
            updated.
          format: int32
          nullable: true
    ErrorResponse:
      type: object
      description: >-
        Unified error envelope for every non-200 response from
        /api/DeveloperAPI/v1/*.

        See applications-tools-spec.md §"Error envelope".
      additionalProperties: false
      required:
        - errorCode
        - message
        - requestId
        - timestamp
        - path
      properties:
        errorCode:
          type: string
          description: Machine-readable error code identifying the failure.
        message:
          type: string
          description: Human-readable error message.
        requestId:
          type: string
          description: Identifier of the request, for support/correlation.
        timestamp:
          type: string
          description: Timestamp when the error occurred (ISO 8601).
        path:
          type: string
          description: Request path that produced the error.
        details:
          type: array
          description: Per-field validation details, when applicable.
          nullable: true
          items:
            $ref: '#/components/schemas/ErrorDetail'
    McpServerConnectionRequest:
      type: object
      description: A connection entry in an update-MCP-server request.
      additionalProperties: false
      properties:
        connectionId:
          type: integer
          description: >-
            Identifier of the connection (Connector ID). Required: unlike a
            toolset, an MCP server is

            account-wide, so there is no single caller whose default connection
            could stand in.
          format: int32
          nullable: true
        applicationSlug:
          type: string
          description: >-
            Optional application slug. When supplied alongside ConnectionId it
            must

            match the connection's application, and is rejected otherwise.
          nullable: true
        toolSlugs:
          type: array
          description: >-
            Tool slugs to permit for this connection; omit/empty to permit all
            tools of the app.
          nullable: true
          items:
            type: string
    McpServerWorkflowRequest:
      type: object
      description: A workflow entry in an update-MCP-server request.
      additionalProperties: false
      required:
        - workflowToken
      properties:
        workflowToken:
          type: string
          description: Workflow token identifying the workflow to expose. Required.
        toolName:
          type: string
          description: >-
            Override for the tool name; omit to derive it from the workflow's
            slug.
          nullable: true
        toolDescription:
          type: string
          description: >-
            Override for the tool description; omit to derive it from the
            workflow's description.
          nullable: true
    McpServerConnectionDTO:
      type: object
      description: >-
        A connection exposed by an MCP server, scoped to a set of permitted
        tools.
      additionalProperties: false
      required:
        - connectionId
        - applicationSlug
        - toolSlugs
        - availableToolsCount
        - selectedToolsCount
      properties:
        connectionId:
          type: integer
          description: Identifier of the connection (Connector ID).
          format: int32
        applicationSlug:
          type: string
          description: Slug of the connection's application.
        applicationName:
          type: string
          description: Display name of the connection's application.
          nullable: true
        toolSlugs:
          type: array
          description: >-
            Tool slugs permitted for this connection; empty means all tools of
            the app are permitted.
          items:
            type: string
        availableToolsCount:
          type: integer
          description: Number of tools the connection's application offers in total.
          format: int32
        selectedToolsCount:
          type: integer
          description: Number of tools explicitly selected; 0 when all tools are permitted.
          format: int32
    McpServerWorkflowDTO:
      type: object
      description: A workflow exposed by an MCP server as a callable tool.
      additionalProperties: false
      required:
        - workflowToken
      properties:
        workflowToken:
          type: string
          description: Workflow token identifying the workflow.
        workflowName:
          type: string
          description: Display name of the workflow.
          nullable: true
        toolName:
          type: string
          description: >-
            Name the workflow is addressable by as an MCP tool; defaults to the
            workflow's slug.
          nullable: true
        toolDescription:
          type: string
          description: >-
            Description shown for the tool; defaults to the workflow's
            description.
          nullable: true
    ErrorDetail:
      type: object
      description: A single field-level error detail within an ErrorResponse.
      additionalProperties: false
      required:
        - field
        - issue
      properties:
        field:
          type: string
          description: Name of the field the issue relates to.
        issue:
          type: string
          description: Description of the issue with the field.
  securitySchemes:
    Bearer:
      type: http
      description: Enter your JWT token
      scheme: bearer
      bearerFormat: JWT
    ApiKey:
      type: apiKey
      description: >-
        Opaque Developer API key (prefix `eng_`). Authenticates as the key's
        owner and resolves the account automatically.
      name: x-api-key
      in: header

````