Detailed changes
@@ -44,6 +44,8 @@ Returns the new entity's ID and deep link.`
func CreateToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
DestructiveHint: ptr(false),
+ OpenWorldHint: ptr(true),
+ Title: "Create entity",
}
}
@@ -24,6 +24,8 @@ This action cannot be undone. The entity and its associations are removed.`
func DeleteToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
DestructiveHint: ptr(true),
+ OpenWorldHint: ptr(true),
+ Title: "Delete entity",
}
}
@@ -29,7 +29,9 @@ Prefer MCP resources (lunatask://tasks/today, lunatask://areas) when available.`
// QueryToolAnnotations returns hints about tool behavior.
func QueryToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
- ReadOnlyHint: true,
+ ReadOnlyHint: true,
+ OpenWorldHint: ptr(true),
+ Title: "Query entities",
}
}
@@ -28,6 +28,8 @@ Task note/content replaces existing (not appended). Idempotent.`
func UpdateToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
IdempotentHint: true,
+ OpenWorldHint: ptr(true),
+ Title: "Update entity",
}
}
@@ -27,9 +27,13 @@ Tracks for today by default. Idempotentβre-tracking the same date has no effec
func TrackToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
IdempotentHint: true,
+ OpenWorldHint: ptr(true),
+ Title: "Track habit",
}
}
+func ptr[T any](v T) *T { return &v }
+
// TrackInput is the input schema for tracking a habit.
type TrackInput struct {
HabitID string `json:"habit_id" jsonschema:"Habit UUID, lunatask:// deep link, or config key"`
@@ -27,6 +27,8 @@ interactions, meetings, or memorable moments with someone.`
func ToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
DestructiveHint: ptr(false),
+ OpenWorldHint: ptr(true),
+ Title: "Add timeline note",
}
}
@@ -27,10 +27,14 @@ Empty input returns today.`
// ToolAnnotations returns hints about tool behavior.
func ToolAnnotations() *mcp.ToolAnnotations {
return &mcp.ToolAnnotations{
- ReadOnlyHint: true,
+ ReadOnlyHint: true,
+ OpenWorldHint: ptr(true),
+ Title: "Parse date",
}
}
+func ptr[T any](v T) *T { return &v }
+
// Input is the input schema for the timestamp tool.
type Input struct {
Date string `json:"date" jsonschema:"Date/time expression to parse (empty = today)"`