The spec specifies a unique identifier for tools (name), prompts (name) and resources (URI), but not resource templates. It's possible but awkward to work with resource templates without a unique ID, and odd that they don't behave like the other features.
In fact, all of the four official SDKs assume a unique ID for resource templates. The typescript SDK uses the name, and the Python, Java and C# SDKs use the URI. So this gap in the spec has already led to incompatible behavior.
The spec specifies a unique identifier for tools (name), prompts (name) and resources (URI), but not resource templates. It's possible but awkward to work with resource templates without a unique ID, and odd that they don't behave like the other features.
In fact, all of the four official SDKs assume a unique ID for resource templates. The typescript SDK uses the name, and the Python, Java and C# SDKs use the URI. So this gap in the spec has already led to incompatible behavior.