> ## Documentation Index
> Fetch the complete documentation index at: https://conductorone-docs-c1-ai-rename-baton.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Create

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



## OpenAPI

````yaml https://spec.speakeasy.com/conductor-one/conductorone/my-source-with-code-samples post /api/v1/virtual_mcp_servers
openapi: 3.1.0
info:
  description: The C1 API is a HTTP API for managing C1 resources.
  title: C1 API
  version: 0.1.0-alpha
servers:
  - description: The C1 API server for the current tenant.
    url: https://{tenantDomain}.conductor.one
    variables:
      tenantDomain:
        default: example
        description: The domain of the tenant to use for this request.
security:
  - bearerAuth: []
    oauth: []
paths:
  /api/v1/virtual_mcp_servers:
    post:
      tags:
        - Virtual MCP Servers
      summary: Create
      description: >-
        Create creates a Raw-tools Virtual MCP Server from one Hosted or
        External
         MCP source or an initially empty Assigned-tools catalog.
      operationId: c1.api.ai_governance.v1.VirtualMCPServerService.Create
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceCreateRequest
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/c1.api.ai_governance.v1.VirtualMCPServerServiceCreateResponse
          description: >-
            VirtualMCPServerServiceCreateResponse contains the created Virtual
            MCP Server.
components:
  schemas:
    c1.api.ai_governance.v1.VirtualMCPServerServiceCreateRequest:
      description: >
        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
      properties:
        allowPersonalSources:
          description: Permit owner-scoped personal MCP sources on supported compositions.
          type: boolean
        assignedTools:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPAssignedTools
            - type: 'null'
        displayName:
          description: Human-readable name shown to administrators and users.
          type: string
        mappedSource:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPMappedSource
            - type: 'null'
        presentation:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPPresentation
            - type: 'null'
        requireDeviceTrust:
          description: >-
            When true, require an active ConductorOne-managed device in addition
            to
             DPoP. require_device_trust=true requires require_dpop=true.
          type: boolean
        requireDpop:
          description: When true, require DPoP proof-of-possession for OAuth access tokens.
          type: boolean
        slug:
          description: Initial canonical lowercase route segment, unique for the tenant.
          type: string
      title: Virtual Mcp Server Service Create Request
      type: object
      x-speakeasy-name-override: VirtualMCPServerServiceCreateRequest
    c1.api.ai_governance.v1.VirtualMCPServerServiceCreateResponse:
      description: >-
        VirtualMCPServerServiceCreateResponse contains the created Virtual MCP
        Server.
      properties:
        virtualMcpServer:
          oneOf:
            - $ref: '#/components/schemas/c1.api.ai_governance.v1.VirtualMCPServer'
            - type: 'null'
      title: Virtual Mcp Server Service Create Response
      type: object
      x-speakeasy-name-override: VirtualMCPServerServiceCreateResponse
    c1.api.ai_governance.v1.VirtualMCPAssignedTools:
      description: >-
        VirtualMCPAssignedTools marks a Virtual MCP Server composed from
        selected
         Toolsets and individual tools.
      title: Virtual Mcp Assigned Tools
      type: object
      x-speakeasy-name-override: VirtualMCPAssignedTools
    c1.api.ai_governance.v1.VirtualMCPMappedSource:
      description: VirtualMCPMappedSource identifies one app-scoped MCP source.
      properties:
        appId:
          description: Application that owns the MCP source.
          type: string
        connectorId:
          description: Connector that provides the MCP source within the application.
          type: string
      title: Virtual Mcp Mapped Source
      type: object
      x-speakeasy-name-override: VirtualMCPMappedSource
    c1.api.ai_governance.v1.VirtualMCPPresentation:
      description: >
        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
      properties:
        codeMode:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPCodeModePresentation
            - type: 'null'
        dynamicTools:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPDynamicToolsPresentation
            - type: 'null'
        rawTools:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPRawToolsPresentation
            - type: 'null'
      title: Virtual Mcp Presentation
      type: object
      x-speakeasy-name-override: VirtualMCPPresentation
    c1.api.ai_governance.v1.VirtualMCPServer:
      description: >
        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
      properties:
        allowPersonalSources:
          description: Permit owner-scoped personal MCP sources on supported compositions.
          type: boolean
        assignedTools:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPAssignedTools
            - type: 'null'
        createdAt:
          format: date-time
          type:
            - string
            - 'null'
        displayName:
          description: Human-readable name shown to administrators and users.
          type: string
        id:
          description: Immutable unique identifier for this Virtual MCP Server.
          type: string
        mappedSource:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPMappedSource
            - type: 'null'
        presentation:
          oneOf:
            - $ref: >-
                #/components/schemas/c1.api.ai_governance.v1.VirtualMCPPresentation
            - type: 'null'
        requireDeviceTrust:
          description: >-
            When true, require an active ConductorOne-managed device in addition
            to
             DPoP. require_device_trust=true requires require_dpop=true.
          type: boolean
        requireDpop:
          description: When true, require DPoP proof-of-possession for OAuth access tokens.
          type: boolean
        slug:
          description: >-
            Current canonical lowercase route segment, unique for the tenant.
            Renaming
             preserves the previous slug as a deprecated alias until it is reused.
          type: string
        state:
          description: Current lifecycle state.
          enum:
            - VIRTUAL_MCP_SERVER_STATE_UNSPECIFIED
            - VIRTUAL_MCP_SERVER_STATE_ACTIVE
            - VIRTUAL_MCP_SERVER_STATE_DISABLED
          type: string
          x-speakeasy-unknown-values: allow
        updatedAt:
          format: date-time
          type:
            - string
            - 'null'
        useEntitlementId:
          description: >-
            Identifier of the governed `use` entitlement for this server. This
            is the
             same immutable identifier as id and is returned for access-profile setup.
          type: string
      title: Virtual Mcp Server
      type: object
      x-speakeasy-name-override: VirtualMCPServer
    c1.api.ai_governance.v1.VirtualMCPCodeModePresentation:
      description: VirtualMCPCodeModePresentation configures code-execution presentation.
      title: Virtual Mcp Code Mode Presentation
      type: object
      x-speakeasy-name-override: VirtualMCPCodeModePresentation
    c1.api.ai_governance.v1.VirtualMCPDynamicToolsPresentation:
      description: >-
        VirtualMCPDynamicToolsPresentation configures a session-specific tool
        registry.
      title: Virtual Mcp Dynamic Tools Presentation
      type: object
      x-speakeasy-name-override: VirtualMCPDynamicToolsPresentation
    c1.api.ai_governance.v1.VirtualMCPRawToolsPresentation:
      description: VirtualMCPRawToolsPresentation configures direct tool presentation.
      title: Virtual Mcp Raw Tools Presentation
      type: object
      x-speakeasy-name-override: VirtualMCPRawToolsPresentation
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    oauth:
      description: >-
        This API uses OAuth2 with the Client Credential flow.

        Client Credentials must be sent in the BODY, not the headers.

        For an example of how to implement this, refer to the
        [c1TokenSource.Token()](https://github.com/ConductorOne/conductorone-sdk-go/blob/3375fe7c0126d17e7ec4e711693dee7b791023aa/token_source.go#L101-L187)
        function.
      flows:
        clientCredentials:
          scopes: {}
          tokenUrl: /auth/v1/token
      type: oauth2

````