Issue:
When creating a new MCP server in Azure API Management, a specific GET operation is listed in the available operations but cannot be selected as an MCP tool. Selecting it and clicking Create produces the validation error: "MCP tool selection can't be empty".
Observed behavior:
The operation appears in the operation selection list during MCP server creation
Selecting only this operation and attempting to create the MCP server results in the error
Other operations from the same API (including a DELETE operation on the same path) can be successfully exposed as MCP tools
The issue persists regardless of the operationId format used
Environment:
API imported via Swagger 2.0 (OpenAPI 2.0) JSON specification
The failing operation is a GET with path, query, and header parameters (no request body)
The same path has sibling DELETE and PUT operations that work fine as MCP tools
The API has ~50+ operations; many others are successfully exposed
Troubleshooting already performed:
Verified the operation has a valid operationId, description, and fully defined parameters with descriptions
Ensured path parameter names are consistent between the path template and parameter definition
Corrected parameter types and response schema property definitions
Renamed the operationId to follow the same naming convention as working operations
Re-imported the swagger into APIM
Expected behavior:
The operation should be selectable as an MCP tool, same as other GET operations with similar parameter structures (e.g., path param + optional/required query params + header params).
Question:
What validation does APIM perform on an operation when generating an MCP tool definition, and what specific conditions would cause it to silently fail with this error? Are there undocumented constraints on operation schema complexity, parameter count, or response schema size for MCP tool generation?
Issue:
When creating a new MCP server in Azure API Management, a specific GET operation is listed in the available operations but cannot be selected as an MCP tool. Selecting it and clicking Create produces the validation error: "MCP tool selection can't be empty".
Observed behavior:
The operation appears in the operation selection list during MCP server creation
Selecting only this operation and attempting to create the MCP server results in the error
Other operations from the same API (including a DELETE operation on the same path) can be successfully exposed as MCP tools
The issue persists regardless of the operationId format used
Environment:
API imported via Swagger 2.0 (OpenAPI 2.0) JSON specification
The failing operation is a GET with path, query, and header parameters (no request body)
The same path has sibling DELETE and PUT operations that work fine as MCP tools
The API has ~50+ operations; many others are successfully exposed
Troubleshooting already performed:
Verified the operation has a valid operationId, description, and fully defined parameters with descriptions
Ensured path parameter names are consistent between the path template and parameter definition
Corrected parameter types and response schema property definitions
Renamed the operationId to follow the same naming convention as working operations
Re-imported the swagger into APIM
Expected behavior:
The operation should be selectable as an MCP tool, same as other GET operations with similar parameter structures (e.g., path param + optional/required query params + header params).
Question:
What validation does APIM perform on an operation when generating an MCP tool definition, and what specific conditions would cause it to silently fail with this error? Are there undocumented constraints on operation schema complexity, parameter count, or response schema size for MCP tool generation?