Module: CompletionKit::McpTools::Datasets
- Extended by:
- Base
- Defined in:
- app/services/completion_kit/mcp_tools/datasets.rb
Constant Summary
collapse
- TOOLS =
{
"datasets_list" => {
description: "List all datasets",
inputSchema: {type: "object", properties: {}, required: []},
handler: :list
},
"datasets_get" => {
description: "Get a dataset by ID",
inputSchema: {type: "object", properties: {id: {type: "integer"}}, required: ["id"]},
handler: :get
},
"datasets_create" => {
description: "Create a dataset with CSV data",
inputSchema: {
type: "object",
properties: {name: {type: "string"}, csv_data: {type: "string"}},
required: ["name", "csv_data"]
},
handler: :create
},
"datasets_update" => {
description: "Update a dataset",
inputSchema: {
type: "object",
properties: {id: {type: "integer"}, name: {type: "string"}, csv_data: {type: "string"}},
required: ["id"]
},
handler: :update
},
"datasets_delete" => {
description: "Delete a dataset",
inputSchema: {type: "object", properties: {id: {type: "integer"}}, required: ["id"]},
handler: :delete
}
}.freeze
Class Method Summary
collapse
Methods included from Base
call, definitions, error_result, text_result
Class Method Details
.create(args) ⇒ Object
50
51
52
53
54
55
56
57
|
# File 'app/services/completion_kit/mcp_tools/datasets.rb', line 50
def self.create(args)
dataset = Dataset.new(args.slice("name", "csv_data"))
if dataset.save
text_result(dataset.as_json)
else
error_result(dataset.errors.full_messages.join(", "))
end
end
|
.delete(args) ⇒ Object
68
69
70
71
|
# File 'app/services/completion_kit/mcp_tools/datasets.rb', line 68
def self.delete(args)
Dataset.find(args["id"]).destroy!
text_result("Dataset #{args["id"]} deleted")
end
|
.get(args) ⇒ Object
46
47
48
|
# File 'app/services/completion_kit/mcp_tools/datasets.rb', line 46
def self.get(args)
text_result(Dataset.find(args["id"]).as_json)
end
|
.list(_args) ⇒ Object
42
43
44
|
# File 'app/services/completion_kit/mcp_tools/datasets.rb', line 42
def self.list(_args)
text_result(Dataset.order(created_at: :desc).map(&:as_json))
end
|
.update(args) ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'app/services/completion_kit/mcp_tools/datasets.rb', line 59
def self.update(args)
dataset = Dataset.find(args["id"])
if dataset.update(args.except("id").slice("name", "csv_data"))
text_result(dataset.as_json)
else
error_result(dataset.errors.full_messages.join(", "))
end
end
|