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

# Update MCP server

> Update a registered MCP server.

Updates a registered MCP server.

Common uses:

* rotate endpoint URL (`base_url`)
* change display name
* set or clear server-level authorization (`authorization` or `authorization_secret_id`)

Datagrid automatically attempts a tool re-sync when MCP connectivity/auth fields are updated.

If both `authorization` and `authorization_secret_id` are sent, `authorization` takes precedence.

Ownership note:

* `authorization` creates or rotates a Datagrid-managed secret for this MCP server.
* `authorization_secret_id` switches the server to an existing caller-managed secret reference.
* Clearing auth removes the MCP server's reference. Datagrid only auto-deletes secrets that it created from `authorization`.

<CodeGroup>
  ```bash theme={null}
  curl -X PATCH https://api.datagrid.com/v1/organization/mcp-servers/SERVER_ID \
    -H "Authorization: Bearer $DATAGRID_API_KEY" \
    -H "Datagrid-Teamspace: $DATAGRID_TEAMSPACE_ID" \
    -H "Content-Type: application/json" \
    -d '{
      "authorization": "Bearer rotated-token"
    }'
  ```

  ```python Python SDK theme={null}
  server = client.organization.mcp_servers.update(
      "SERVER_ID",
      authorization="Bearer rotated-token",
  )
  ```

  ```typescript TypeScript SDK theme={null}
  const server = await client.organization.mcpServers.update("SERVER_ID", {
    authorization: "Bearer rotated-token",
  });
  ```
</CodeGroup>


## OpenAPI

````yaml patch /organization/mcp-servers/{server_id}
openapi: 3.0.3
info:
  version: 0.1.1
  title: Datagrid API
  description: Datagrid API
servers:
  - url: https://api.datagrid.com/v1
security:
  - BearerAuth: []
paths:
  /organization/mcp-servers/{server_id}:
    patch:
      tags:
        - MCP Servers
      summary: Update MCP server
      description: Update a registered MCP server.
      operationId: UpdateMcpServer
      parameters:
        - name: server_id
          in: path
          required: true
          schema:
            type: string
          description: The ID of the MCP server.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMcpServerRequest'
      responses:
        '200':
          description: Updated MCP server
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/McpServer'
        '404':
          description: MCP server not found
        '429':
          description: >-
            Rate limit exceeded. The request has been throttled because the rate
            limit for this endpoint has been reached. Check the `Retry-After`
            response header and retry after the specified number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RateLimitError'
      x-codeSamples:
        - lang: JavaScript
          source: >-
            import Datagrid from 'datagrid-ai';


            const client = new Datagrid({
              apiKey: process.env['DATAGRID_API_KEY'], // This is the default and can be omitted
            });


            const mcpServer = await
            client.organization.mcpServers.update('server_id');


            console.log(mcpServer.id);
        - lang: Python
          source: |-
            import os
            from datagrid_ai import Datagrid

            client = Datagrid(
                api_key=os.environ.get("DATAGRID_API_KEY"),  # This is the default and can be omitted
            )
            mcp_server = client.organization.mcp_servers.update(
                server_id="server_id",
            )
            print(mcp_server.id)
components:
  schemas:
    UpdateMcpServerRequest:
      type: object
      properties:
        name:
          type: string
          maxLength: 255
        base_url:
          type: string
          format: uri
          description: The HTTPS URL of the MCP server.
        transport:
          type: string
          enum:
            - http
          nullable: true
          maxLength: 64
        icon_url:
          type: string
          nullable: true
          maxLength: 1024
        protocol_version:
          type: string
          nullable: true
          maxLength: 32
        authorization_secret_id:
          type: string
          nullable: true
          description: >-
            Secret ID containing the full Authorization header value to use when
            calling this MCP server. Set to null to clear.
        authorization:
          type: string
          nullable: true
          maxLength: 64000
          description: >-
            Raw Authorization header value (for example, 'Bearer <token>').
            Datagrid stores it as a secret and links it to this server. Set to
            null to clear. If both authorization and authorization_secret_id are
            provided, authorization takes precedence.
    McpServer:
      type: object
      required:
        - object
        - id
        - name
        - icon_url
        - base_url
        - transport
        - protocol_version
        - authorization_secret_id
        - status
        - metadata
        - created_at
        - updated_at
      properties:
        object:
          type: string
          enum:
            - mcp_server
        id:
          type: string
        name:
          type: string
        icon_url:
          type: string
          nullable: true
        base_url:
          type: string
          format: uri
        transport:
          type: string
        protocol_version:
          type: string
          nullable: true
        authorization_secret_id:
          type: string
          nullable: true
          description: >-
            Secret ID containing the full Authorization header value used for
            this registered MCP server.
        status:
          type: string
        metadata:
          $ref: '#/components/schemas/McpServerMetadata'
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    RateLimitError:
      type: object
      description: >-
        Returned when the rate limit is exceeded. Rate limits are enforced per
        teamspace, endpoint path, and HTTP method over a 60-second sliding
        window. Each endpoint may have its own limit — check the
        X-RateLimit-Limit response header for the effective value.
      required:
        - error
        - message
        - retryable
        - status_code
      properties:
        status_code:
          type: integer
          description: The HTTP status code (429).
        statusCode:
          type: integer
          deprecated: true
          description: Deprecated. Use status_code instead.
        error:
          type: string
          enum:
            - rate_limit_exceeded
          description: The error code identifying this as a rate limit error.
        message:
          type: string
          description: A human-readable error message.
        mitigation:
          type: string
          description: Suggested action to resolve the error.
        retryable:
          type: boolean
          description: Whether the request can be retried after a delay.
        details:
          type: object
          properties:
            reason:
              type: string
              description: A detailed explanation of why the rate limit was exceeded.
    McpServerMetadata:
      type: object
      additionalProperties: true
      description: Safe subset of server metadata exposed to API consumers.
      properties:
        requires_oauth:
          type: boolean
        oauth_configured:
          type: boolean
        tool_count:
          type: integer
        last_synced_at:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````