---
title: "Update the MCP Routing config of an MCP API Proxy"
method: PUT
path: "/apiops/projects/{projectName}/apiProxies/{apiProxyName}/mcp-routing/"
tags: ["ApiProxy"]
---

# Update the MCP Routing config of an MCP API Proxy

`PUT /apiops/projects/{projectName}/apiProxies/{apiProxyName}/mcp-routing/`

## Request

- Base URL: `http://167.86.118.166:32080`
- URL: `http://167.86.118.166:32080/apiops/projects/{projectName}/apiProxies/{apiProxyName}/mcp-routing/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/apinizer/apis/apinizer-management-apis/docs/apiops/projects/:projectName/apiProxies/:apiProxyName/mcp-routing/put.ts> (a function with typed inputs; its response is checked against the schema)

Permission: API_MANAGEMENT or AI_DEVELOPMENT × MANAGE. Replaces the McpRouting config of an MCP proxy. The backend target is given inline via backendServers[] — each entry needs a non-blank endpoint; entries without one are ignored. Deployed environments are marked redeploy-required.

## Path parameters

- `projectName` string, required
- `apiProxyName` string, required

## Request body

- McpRouting
  - `routingMode` 'TOOL_EXPOSE' | 'PASSTHROUGH'
  - `protocolVersion` string
  - `serverJsonOverride` string
  - `exposedTools` McpExposedTool[]
    - `proxyId` string
    - `toolName` string
    - `toolDescription` string
    - `overrideSchema` string
    - `apiMethodHttpMethod` string
    - `apiMethodPath` string
    - `requiredScopes` string[]
    - `downstreamIdentity` 'SERVICE' | 'DELEGATED'
    - `riskTier` 'LOW' | 'MEDIUM' | 'HIGH'
    - `argumentConstraints` ArgumentConstraintRule[]
      - `argumentPath` string
      - `ruleType` 'REGEX' | 'MAX_LENGTH' | 'ENUM' | 'REQUIRED'
      - `value` string
  - `backendServers` ConnectionConfigMcp[]
    - `id` string
    - `projectId` string
    - `name` string
    - `description` string
    - `enabled` boolean
    - `projectName` string
    - `environmentId` string
    - `circuitBreakerEnabled` boolean
    - `errorThresholdValue` integer
    - `sleepWindow` integer
    - `endpoint` string
    - `transport` 'HTTP_SSE' | 'STDIO'
    - `mcpProtocolVersion` string
    - `allowPrivateNetworkEgress` boolean
    - `authScheme` 'BEARER' | 'OAUTH2_CLIENT_CREDENTIALS' | 'MTLS' | 'NONE' | 'API_KEY' | 'BASIC' | 'OAUTH2_TOKEN_EXCHANGE'
    - `bearerToken` string
    - `credentialRef` string
    - `tokenEndpoint` string
    - `clientId` string
    - `clientSecret` string
    - `scope` string
    - `tokenExchangeAudience` string
    - `apiKeyHeaderName` string
    - `apiKey` string
    - `basicUsername` string
    - `basicPassword` string
    - `bearerTokenSet` boolean
    - `clientSecretSet` boolean
    - `apiKeySet` boolean
    - `basicPasswordSet` boolean
    - `capabilityCacheTtlSeconds` integer
    - `capabilityCacheEnabled` boolean
    - `trustToolAnnotations` boolean
    - `relayElicitation` boolean
    - `discoveredTools` McpDiscoveredTool[]
      - `name` string
      - `description` string
      - `inputSchemaJson` string
    - `toolsParsedAt` integer
    - `credentialMappingRef` string
    - `healthStatus` string
    - `lastHealthCheckAt` string, date-time
    - `healthMessage` string
    - `driftPolicy` 'WARN_ONLY' | 'FAIL_CLOSED'
    - `pinnedCatalogHash` string
    - `driftDetected` boolean
    - `driftMessage` string
    - `driftStatePushPending` boolean
    - `resolvedEndpoint` string
    - `resolvedTokenEndpoint` string
    - `resolvedClientId` string
    - `resolvedApiKeyHeaderName` string
    - `resolvedBasicUsername` string
    - `resolvedTokenExchangeAudience` string
    - `resolvedScope` string
    - `mTLSSettings` ConnectionMTLSSettings
      - `enabled` boolean
      - `skipSslVerification` boolean
      - `keyStoreId` string
      - `trustStoreId` string
      - `certificateId` string
      - `supportedProtocolList` string[]
      - `hostnameVerifierType` 'NOOP' | 'DEFAULT' | 'STRICT' | 'BROWSER_COMPAT'
  - `allowedToolNames` string[]
  - `tokenForwardSettings` AgentTokenForwardSettings
    - `enabled` boolean
    - `source` 'CLIENT_AUTHORIZATION_HEADER'
    - `audienceAllowList` string[]
    - `stripGatewayCredential` boolean
  - `forwardedHeaders` McpForwardedHeader[]
    - `name` string
    - `required` boolean
    - `errorMessage` string
  - `toolOutputFilter` McpToolOutputFilter
    - `enabled` boolean
    - `maskPii` boolean
    - `denyPatterns` string[]
  - `identityAcl` IdentityAclRule[]
    - `principalType` 'CREDENTIAL' | 'ROLE' | 'ORGANIZATION'
    - `principalName` string
    - `allow` string[]
    - `deny` string[]
  - `argumentConstraints` McpToolArgumentConstraints[]
    - `toolName` string
    - `rules` ArgumentConstraintRule[]
      - `argumentPath` string
      - `ruleType` 'REGEX' | 'MAX_LENGTH' | 'ENUM' | 'REQUIRED'
      - `value` string
  - `riskPolicy` McpRiskPolicy
    - `low` 'ALLOW' | 'REQUIRE_APPROVAL' | 'DENY'
    - `medium` 'ALLOW' | 'REQUIRE_APPROVAL' | 'DENY'
    - `high` 'ALLOW' | 'REQUIRE_APPROVAL' | 'DENY'
  - `riskPolicyExemptions` IdentityAclRule[]
    - `principalType` 'CREDENTIAL' | 'ROLE' | 'ORGANIZATION'
    - `principalName` string
    - `allow` string[]
    - `deny` string[]
  - `toolRiskOverrides` McpToolRiskOverride[]
    - `toolName` string
    - `riskTier` 'LOW' | 'MEDIUM' | 'HIGH'
  - `authProfile` 'LEGACY' | 'STANDARD_MCP_OAUTH'
  - `serviceClientName` string
  - `standardMcpOAuthProfile` boolean
  - `routingModeRaw` 'TOOL_EXPOSE' | 'PASSTHROUGH'

## Response `200`

successful operation!

- ApiOpsResponseSuccess
  - `status` 'SUCCESS' | 'FAILURE'
  - `resultMessage` string
  - `resultList` string[]
  - `resultCount` integer
  - `deploymentResult` DeploymentResult
    - `envName` string
    - `podName` string
    - `podIp` string
    - `success` boolean
    - `detail` string
    - `responseTime` integer
    - `detailList` unknown[]
      - unknown
    - `firstFromApiResultList` unknown
  - `unresolvedReferences` string[]
  - `advisories` ApiOpsAdvisoryDTO[]
    - `level` string
    - `key` string
    - `params` object

## Other responses

- `401`: not authorized for this operation!
- `500`: internal error!

## Changes

- **2026-10-28** `e083046b24cd`: 2 warning
  - removed the request property `backendServers/items/resolvedBearerToken`
  - removed the request property `backendServers/items/resolvedClientSecret`
- **2026-08-11** `9ae232e55479`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/apinizer/apis/apinizer-management-apis/changes/apiops/projects/:projectName/apiProxies/:apiProxyName/mcp-routing/put.md)

---

[API](https://skmtc.dev/apinizer/apis/apinizer-management-apis.md) - [All operations](https://skmtc.dev/apinizer/apis/apinizer-management-apis/llms.txt) - [OpenAPI document](https://skmtc.dev/apinizer/apis/apinizer-management-apis/revisions/e083046b24cd?raw)
