package mcp import "encoding/json" const ( CodePermissionDenied = -32001 CodeNotFound = -32002 CodeConflict = -32003 CodeValidation = -32004 CodeUpstreamGitea = -32005 ) type Request struct { JSONRPC string `json:"jsonrpc"` ID any `json:"id,omitempty"` Method string `json:"method"` Params json.RawMessage `json:"params,omitempty"` } type Response struct { JSONRPC string `json:"jsonrpc"` ID any `json:"id,omitempty"` Result any `json:"result,omitempty"` Error *RPCError `json:"error,omitempty"` } type RPCError struct { Code int `json:"code"` Message string `json:"message"` Data any `json:"data,omitempty"` } func NewResponse(id any, result any) Response { return Response{JSONRPC: "2.0", ID: id, Result: result} } func NewErrorResponse(id any, code int, msg string, data any) Response { return Response{ JSONRPC: "2.0", ID: id, Error: &RPCError{Code: code, Message: msg, Data: data}, } }