* Add resource discovery service and UI for managing MCP resources
* Consolidate duplicate IsBuiltIn logic into StringCaseUtility.IsBuiltInMcpType
* Add resource enable/disable enforcement and improve error response handling
- Block execution of disabled resources in TransportCommandDispatcher with clear error message
- Add parse_resource_response() utility to handle error responses without Pydantic validation failures
- Replace inline response parsing with parse_resource_response() across all resource handlers
- Export parse_resource_response from models/__init__.py for consistent usage
* Block execution of disabled built-in tools in TransportCommandDispatcher with clear error message
Add tool enable/disable enforcement before command execution. Check tool metadata and enabled state, returning error response if tool is disabled. Prevents execution of disabled tools with user-friendly error message.
* Fire warning in the rare chance there are duplicate names
* Handle rare case a resource name is null
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>