@@ -214,17 +214,23 @@ func (c *Client) Request(method string, params any) (json.RawMessage, error) {
214214 }
215215 }
216216
217- paramsData , err := json .Marshal (params )
218- if err != nil {
219- return nil , fmt .Errorf ("failed to marshal params: %w" , err )
217+ var paramsData json.RawMessage
218+ if params == nil {
219+ paramsData = json .RawMessage ("{}" )
220+ } else {
221+ var err error
222+ paramsData , err = json .Marshal (params )
223+ if err != nil {
224+ return nil , fmt .Errorf ("failed to marshal params: %w" , err )
225+ }
220226 }
221227
222228 // Send request
223229 request := Request {
224230 JSONRPC : "2.0" ,
225231 ID : json .RawMessage (`"` + requestID + `"` ),
226232 Method : method ,
227- Params : json . RawMessage ( paramsData ) ,
233+ Params : paramsData ,
228234 }
229235
230236 if err := c .sendMessage (request ); err != nil {
@@ -261,15 +267,19 @@ func (c *Client) Request(method string, params any) (json.RawMessage, error) {
261267
262268// Notify sends a JSON-RPC notification (no response expected)
263269func (c * Client ) Notify (method string , params any ) error {
264- paramsData , err := json .Marshal (params )
265- if err != nil {
266- return fmt .Errorf ("failed to marshal params: %w" , err )
270+ var paramsData json.RawMessage
271+ if params != nil {
272+ var err error
273+ paramsData , err = json .Marshal (params )
274+ if err != nil {
275+ return fmt .Errorf ("failed to marshal params: %w" , err )
276+ }
267277 }
268278
269279 notification := Request {
270280 JSONRPC : "2.0" ,
271281 Method : method ,
272- Params : json . RawMessage ( paramsData ) ,
282+ Params : paramsData ,
273283 }
274284 return c .sendMessage (notification )
275285}
0 commit comments