2
3
4
5
6
7
8
9
10
11
12
13
14
|
# File 'lib/ruby_mcp/handlers/prompts_get.rb', line 2
def handle(server, request)
if prompt = server.prompts.find_by_name(request.name)
required_arguments = prompt[:arguments].filter_map { _1[:name].to_sym if _1[:required] }
all_required_arguments_given = (required_arguments - request.arguments.keys).empty?
if all_required_arguments_given
server.answer(request, **prompt[:result].call(**request.arguments))
else
server.error(request, code: -32602, message: "Missing required param")
end
else
server.error(request, code: -32602, message: "Invalid params")
end
end
|