---
title: "Create or update one admin-managed virtual MCP server"
method: PUT
path: "/admin/mcp-virtual-servers"
tags: ["admin"]
---

# Create or update one admin-managed virtual MCP server

`PUT /admin/mcp-virtual-servers`

## Request

- Base URL: `http://localhost:8080`
- URL: `http://localhost:8080/admin/mcp-virtual-servers`
- Auth: HTTP bearer

Members must be existing MCP servers. A new virtual server may not use an MCP server's slug, and config-declared virtual servers are read-only.

## Request body

- AdminUpsertMCPVirtualServerRequest
  - `description` string
  - `name` string
  - `servers` string[]
  - `tool_discovery` string

## Response `200`

OK

- AdminMcpVirtualServerResponse
  - `configured_tool_discovery` string: ConfiguredToolDiscovery is the stored setting: "off", "search", or "" to inherit the gateway default. ToolDiscovery is the effective mode.
  - `conflict` string
  - `description` string
  - `managed` boolean
  - `missing_servers` string[]
  - `name` string
  - `servers` string[]
  - `tool_discovery` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `502`: Bad Gateway
- `503`: Service Unavailable

## Changes

- **2026-10-20** `b6dc69ca9610`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/enterpilot/apis/gomodel-api/changes/admin/mcp-virtual-servers/put.md)

---

[API](https://skmtc.dev/enterpilot/apis/gomodel-api.md) - [All operations](https://skmtc.dev/enterpilot/apis/gomodel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/enterpilot/apis/gomodel-api/revisions/02d5643d7bec?raw)
