Private/Receive-McpNotification.ps1
|
function Receive-McpNotification { [CmdletBinding()] param( [Parameter(Mandatory)]$Session, [Parameter(Mandatory)][System.Collections.IDictionary]$Message ) $name = $Session.Name switch ($Message.method) { 'notifications/tools/list_changed' { $Session.ToolsStale = $true Write-Verbose "[$name] tools/list_changed received; tool cache marked stale" } 'notifications/message' { $level = $Message.params.level $data = $Message.params.data $rendered = if ($data -is [string]) { $data } elseif ($null -ne $data) { ConvertTo-Json -InputObject $data -Compress -Depth 10 } else { '' } Write-Verbose "[$name] server log [$level] $rendered" } default { Write-Verbose "[$name] ignoring notification '$($Message.method)'" } } } |