46 lines
1.1 KiB
Plaintext
46 lines
1.1 KiB
Plaintext
|
|
# Schema for kanban_create_task MCP tool
|
||
|
|
# Validates task creation requests with contracts
|
||
|
|
{
|
||
|
|
tool_name = "kanban_create_task",
|
||
|
|
|
||
|
|
description = "Create task in Kanban board with validation",
|
||
|
|
|
||
|
|
parameters = {
|
||
|
|
# Project UUID - must be valid UUID format
|
||
|
|
project_id
|
||
|
|
| String
|
||
|
|
| doc "UUID of the target project"
|
||
|
|
| std.string.NonEmpty
|
||
|
|
| std.string.match "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
|
||
|
|
|
||
|
|
# Task title - 3 to 200 characters
|
||
|
|
title
|
||
|
|
| String
|
||
|
|
| doc "Task title (3-200 chars)"
|
||
|
|
| std.string.NonEmpty
|
||
|
|
| std.string.length.min 3
|
||
|
|
| std.string.length.max 200,
|
||
|
|
|
||
|
|
# Optional description
|
||
|
|
description
|
||
|
|
| String
|
||
|
|
| doc "Task description (optional)"
|
||
|
|
| default = "",
|
||
|
|
|
||
|
|
# Priority level - enum validation
|
||
|
|
priority
|
||
|
|
| String
|
||
|
|
| doc "Task priority level"
|
||
|
|
| std.string.NonEmpty
|
||
|
|
| std.enum.TaggedUnion
|
||
|
|
| [| 'low, 'medium, 'high, 'critical |],
|
||
|
|
},
|
||
|
|
|
||
|
|
# Validation contracts (custom predicates)
|
||
|
|
contracts = {
|
||
|
|
# Title must not be only whitespace
|
||
|
|
title_not_whitespace = fun params =>
|
||
|
|
std.string.trim params.title != "",
|
||
|
|
},
|
||
|
|
}
|