Module: RailsVitals::MCP::ResponseBuilder

Included in:
RequestHandler
Defined in:
lib/rails_vitals/mcp/response_builder.rb

Constant Summary collapse

JSON_RPC_VERSION =
"2.0"
PARSE_ERROR =

JSON-RPC 2.0 standard error codes

-32_700
INVALID_REQUEST =
-32_600
METHOD_NOT_FOUND =
-32_601
INVALID_PARAMS =
-32_602
AUTH_ERROR =

RailsVitals custom error codes

-32_000
TOOL_EXEC_ERROR =
-32_001

Class Method Summary collapse

Class Method Details

.error(id, code, message, data = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/rails_vitals/mcp/response_builder.rb', line 25

def self.error(id, code, message, data = nil)
  err = { code: code, message: message }
  err[:data] = data if data.present?

  {
    jsonrpc: JSON_RPC_VERSION,
    id: id,
    error: err
  }
end

.success(id, result) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/rails_vitals/mcp/response_builder.rb', line 6

def self.success(id, result)
  {
    jsonrpc: JSON_RPC_VERSION,
    id: id,
    result: result
  }
end

.tool_success(id, data) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/rails_vitals/mcp/response_builder.rb', line 14

def self.tool_success(id, data)
  success(id, {
    content: [
      {
        type: "text",
        text: data.to_json
      }
    ]
  })
end