class RailsAiAdmin::Mcp::AccessToken::Server
JSON-RPC 2.0 over one POST. Notifications get no body; batches are not accepted (MCP 2025-06-18 removed them).
Constants
- Error
- ToolCall
Public Class Methods
Source
# File lib/rails_ai_admin/mcp.rb, line 70 def initialize(context:, token:, review_url:) @context, @token, @review_url = context, token, review_url end
Public Instance Methods
Source
# File lib/rails_ai_admin/mcp.rb, line 75 def handle(message) raise Error.new(-32600, "Invalid request") unless message.is_a?(Hash) && message["jsonrpc"] == "2.0" && message["method"].is_a?(String) id = message["id"] notification = !message.key?("id") result = dispatch(message["method"], message["params"].is_a?(Hash) ? message["params"] : {}) return [ 202, nil ] if notification [ 200, { "jsonrpc" => "2.0", "id" => id, "result" => result } ] rescue Error => error [ 200, { "jsonrpc" => "2.0", "id" => message.is_a?(Hash) ? message["id"] : nil, "error" => { "code" => error.code, "message" => error.message } } ] end
Returns [status, body or nil].