MCPRoute
API reference for MCP Routes (clrk.apoxy.dev/v1alpha1)
API Group: clrk.apoxy.dev/v1alpha1
Operations
List MCPRoute
GET/apis/clrk.apoxy.dev/v1alpha1/mcproutes
List MCPRoute
Response
200: OK
List MCPRoute
GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes
List MCPRoute
Response
200: OK
Create MCPRoute
POST/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes
Create a MCPRoute
Request Body
Spec fields (MCPRouteSpec):
| Field | Type | Description |
|---|---|---|
hostnames | string[] | Hostnames scopes to MCP server endpoints by Host header. |
parentRefs | ParentReference[] | ParentRefs attaches this route to EgressGateway listeners. (required) |
rules | MCPRouteRule[] | (required) |
Response
200: OK201: Created202: Accepted
Delete All MCPRoute
DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes
Delete collection of MCPRoute
Response
200: OK
Get MCPRoute
GET/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes/{name}
Get the specified MCPRoute
Response
200: OK
Replace MCPRoute
PUT/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes/{name}
Replace the specified MCPRoute
Request Body
Spec fields (MCPRouteSpec):
| Field | Type | Description |
|---|---|---|
hostnames | string[] | Hostnames scopes to MCP server endpoints by Host header. |
parentRefs | ParentReference[] | ParentRefs attaches this route to EgressGateway listeners. (required) |
rules | MCPRouteRule[] | (required) |
Response
200: OK201: Created
Update MCPRoute
PATCH/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes/{name}
Partially update the specified MCPRoute
Response
200: OK201: Created
Delete MCPRoute
DELETE/apis/clrk.apoxy.dev/v1alpha1/namespaces/{namespace}/mcproutes/{name}
Delete a MCPRoute
Response
200: OK202: Accepted
Schema Reference
MCPRouteRule
| Field | Type | Description |
|---|---|---|
backendRefs | BackendRef[] | BackendRefs optionally routes through an explicit proxy. Empty = passthrough to original destination. |
filters | MCPRouteFilter[] | Filters apply policy to matched MCP traffic. |
matches | MCPRouteMatch[] |
MCPRouteFilter
| Field | Type | Description |
|---|---|---|
extensionRef | LocalObjectReference | ExtensionRef for cross-cutting policies. |
toolPolicy | ToolPolicyFilter | ToolPolicy — inline, MCP-specific. |
type | string | Type selects the filter. (required) |
ToolPolicyFilter
| Field | Type | Description |
|---|---|---|
allowedTools | string[] | AllowedTools is an explicit allowlist. Supports glob. If set, only matching tools may be invoked. |
allowedToolsRegex | string[] | AllowedToolsRegex is an explicit allowlist of Go regexp patterns. Evaluated as a union with AllowedTools: when either list is non-empty, the tool must match at least one entry across both. |
deniedTools | string[] | DeniedTools blocks specific tools. Evaluated after AllowedTools. |
deniedToolsRegex | string[] | DeniedToolsRegex blocks tools by Go regexp pattern. Evaluated as a union with DeniedTools; a match in either list denies the call. |
maxCallsPerExecution | integer (int32) | MaxCallsPerExecution caps total tool invocations per agent run. |
rateLimits | ToolRateLimit[] | RateLimits enforces per-tool rate limits using the same windowing vocabulary as RateLimitPolicy. Each entry is scoped independently. |
requireConfirmation | string[] | RequireConfirmation lists tools that need out-of-band human confirmation before execution proceeds. |
ToolRateLimit
| Field | Type | Description |
|---|---|---|
requests | integer (int32) | Requests is the maximum number of invocations permitted within Window before further calls are rejected. (required) |
scope | string | Scope chooses the counter dimension. Defaults to PerAgent. |
tools | string[] | Tools selects which tools this limit applies to. Supports glob. Empty means all tools matched by the enclosing rule. |
toolsRegex | string[] | ToolsRegex restricts the limit to tools matching any Go regexp pattern here. Evaluated as a union with Tools; empty Tools and empty ToolsRegex means "any tool matched by the enclosing rule". |
window | string | Window is a Go duration string (e.g. "1m", "1h", "24h") over which Requests are counted. (required) |
MCPRouteMatch
| Field | Type | Description |
|---|---|---|
methods | string[] | Methods matches MCP JSON-RPC methods. |
resources | string[] | Resources matches by MCP resource URI pattern. |
servers | string[] | Servers matches by MCP server identity (URL pattern). |
tools | string[] | Tools matches by tool name. Supports glob: "github_*". |
toolsRegex | string[] | ToolsRegex matches by tool name via Go regexp. Evaluated as a union with Tools; a match on either selects the rule. |