44 lines
1.0 KiB
Go
44 lines
1.0 KiB
Go
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},
|
|
}
|
|
}
|