fix: handle resource not found according to spec #567
                
     Merged
            
            
          
      
        
          +68
        
        
          −30
        
        
          
        
      
    
  
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
Motivation and Context
This pull-request fixes the handling of resource not found to be as described in the specification.
see: https://modelcontextprotocol.io/specification/2025-06-18/server/resources#error-handling
Resource not found should send a JSON RPC response such as:
{ "jsonrpc": "2.0", "id": 5, "error": { "code": -32002, "message": "Resource not found", "data": { "uri": "file:///nonexistent.txt" } } }How Has This Been Tested?
I added a unit tests.
Breaking Changes
This is not a breaking change but bug fix.
Types of changes
Checklist
Additional context
This PR also changes some instances where a
McpErrorwas thrown instead of being passed in the reactive chain withMono.error