---
title: "Update"
method: POST
path: "/api/v1/virtual_mcp_servers/{id}"
tags: ["Virtual MCP Servers"]
---

# Update

`POST /api/v1/virtual_mcp_servers/{id}`

## Request

- Base URL: `https://example.conductor.one`
- URL: `https://example.conductor.one/api/v1/virtual_mcp_servers/{id}`
- Auth: HTTP bearer and OAuth 2
  - Client credentials
  - Token URL: `/auth/v1/token`

Update mutable fields on a Virtual MCP Server. Renaming preserves the
 previous route as an alias until it is reused; the server ID never changes.

## Path parameters

- `id` string, required: Immutable unique identifier for this Virtual MCP Server.

## Request body

- C1ApiAiGovernanceV1VirtualMCPServerServiceUpdateRequestInput: VirtualMCPServerServiceUpdateRequest updates mutable Virtual MCP Server fields.
  - `updateMask` string, nullable
  - `virtualMcpServer` C1ApiAiGovernanceV1VirtualMCPServer: VirtualMCPServer is a tenant-managed MCP endpoint backed by one composition. This message contains a oneof named composition. Only a single field of the following list may be set at a time: - mappedSource - assignedTools
    - `allowPersonalSources` boolean: Permit owner-scoped personal MCP sources on supported compositions.
    - `assignedTools` C1ApiAiGovernanceV1VirtualMCPAssignedTools: VirtualMCPAssignedTools marks a Virtual MCP Server composed from selected Toolsets and individual tools.
    - `createdAt` string, date-time, nullable
    - `displayName` string: Human-readable name shown to administrators and users.
    - `id` string: Immutable unique identifier for this Virtual MCP Server.
    - `mappedSource` C1ApiAiGovernanceV1VirtualMCPMappedSource: VirtualMCPMappedSource identifies one app-scoped MCP source.
      - `appId` string: Application that owns the MCP source.
      - `connectorId` string: Connector that provides the MCP source within the application.
    - `presentation` C1ApiAiGovernanceV1VirtualMCPPresentation: VirtualMCPPresentation selects one presentation mode and provides a stable location for mode-specific settings. This message contains a oneof named mode. Only a single field of the following list may be set at a time: - rawTools - codeMode - dynamicTools
      - `codeMode` C1ApiAiGovernanceV1VirtualMCPCodeModePresentation: VirtualMCPCodeModePresentation configures code-execution presentation.
      - `dynamicTools` C1ApiAiGovernanceV1VirtualMCPDynamicToolsPresentation: VirtualMCPDynamicToolsPresentation configures a session-specific tool registry.
      - `rawTools` C1ApiAiGovernanceV1VirtualMCPRawToolsPresentation: VirtualMCPRawToolsPresentation configures direct tool presentation.
    - `requireDeviceTrust` boolean: When true, require an active ConductorOne-managed device in addition to DPoP. require_device_trust=true requires require_dpop=true.
    - `requireDpop` boolean: When true, require DPoP proof-of-possession for OAuth access tokens.
    - `slug` string: Current canonical lowercase route segment, unique for the tenant. Renaming preserves the previous slug as a deprecated alias until it is reused.
    - `state` 'VIRTUAL_MCP_SERVER_STATE_UNSPECIFIED' | 'VIRTUAL_MCP_SERVER_STATE_ACTIVE' | 'VIRTUAL_MCP_SERVER_STATE_DISABLED': Current lifecycle state.
    - `updatedAt` string, date-time, nullable
    - `useEntitlementId` string: Identifier of the governed `use` entitlement for this server. This is the same immutable identifier as id and is returned for access-profile setup.

## Response `200`

VirtualMCPServerServiceUpdateResponse contains the updated Virtual MCP Server.

- C1ApiAiGovernanceV1VirtualMCPServerServiceUpdateResponse: VirtualMCPServerServiceUpdateResponse contains the updated Virtual MCP Server.
  - `virtualMcpServer` C1ApiAiGovernanceV1VirtualMCPServer: VirtualMCPServer is a tenant-managed MCP endpoint backed by one composition. This message contains a oneof named composition. Only a single field of the following list may be set at a time: - mappedSource - assignedTools
    - `allowPersonalSources` boolean: Permit owner-scoped personal MCP sources on supported compositions.
    - `assignedTools` C1ApiAiGovernanceV1VirtualMCPAssignedTools: VirtualMCPAssignedTools marks a Virtual MCP Server composed from selected Toolsets and individual tools.
    - `createdAt` string, date-time, nullable
    - `displayName` string: Human-readable name shown to administrators and users.
    - `id` string: Immutable unique identifier for this Virtual MCP Server.
    - `mappedSource` C1ApiAiGovernanceV1VirtualMCPMappedSource: VirtualMCPMappedSource identifies one app-scoped MCP source.
      - `appId` string: Application that owns the MCP source.
      - `connectorId` string: Connector that provides the MCP source within the application.
    - `presentation` C1ApiAiGovernanceV1VirtualMCPPresentation: VirtualMCPPresentation selects one presentation mode and provides a stable location for mode-specific settings. This message contains a oneof named mode. Only a single field of the following list may be set at a time: - rawTools - codeMode - dynamicTools
      - `codeMode` C1ApiAiGovernanceV1VirtualMCPCodeModePresentation: VirtualMCPCodeModePresentation configures code-execution presentation.
      - `dynamicTools` C1ApiAiGovernanceV1VirtualMCPDynamicToolsPresentation: VirtualMCPDynamicToolsPresentation configures a session-specific tool registry.
      - `rawTools` C1ApiAiGovernanceV1VirtualMCPRawToolsPresentation: VirtualMCPRawToolsPresentation configures direct tool presentation.
    - `requireDeviceTrust` boolean: When true, require an active ConductorOne-managed device in addition to DPoP. require_device_trust=true requires require_dpop=true.
    - `requireDpop` boolean: When true, require DPoP proof-of-possession for OAuth access tokens.
    - `slug` string: Current canonical lowercase route segment, unique for the tenant. Renaming preserves the previous slug as a deprecated alias until it is reused.
    - `state` 'VIRTUAL_MCP_SERVER_STATE_UNSPECIFIED' | 'VIRTUAL_MCP_SERVER_STATE_ACTIVE' | 'VIRTUAL_MCP_SERVER_STATE_DISABLED': Current lifecycle state.
    - `updatedAt` string, date-time, nullable
    - `useEntitlementId` string: Identifier of the governed `use` entitlement for this server. This is the same immutable identifier as id and is returned for access-profile setup.

## Changes

- **2026-10-06** `918a4e749f56`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/virtual_mcp_servers/:id/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) - [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conductorone/apis/c1-api/revisions/fe943bedf41b?raw)
