---
title: "Create"
method: POST
path: "/api/v1/virtual_mcp_servers"
tags: ["Virtual MCP Servers"]
---

# Create

`POST /api/v1/virtual_mcp_servers`

## Request

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

Create creates a Raw-tools Virtual MCP Server from one Hosted or External
 MCP source or an initially empty Assigned-tools catalog.

## Request body

- C1ApiAiGovernanceV1VirtualMCPServerServiceCreateRequest: VirtualMCPServerServiceCreateRequest creates an active Virtual MCP Server with Raw tool presentation and either a mapped source or explicit tool assignments. 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.
  - `displayName` string: Human-readable name shown to administrators and users.
  - `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: Initial canonical lowercase route segment, unique for the tenant.

## Response `200`

VirtualMCPServerServiceCreateResponse contains the created Virtual MCP Server.

- C1ApiAiGovernanceV1VirtualMCPServerServiceCreateResponse: VirtualMCPServerServiceCreateResponse contains the created 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/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)
