1 parent
0c88ed932b
commit
774446bd90
27 files changed
+145
-132
No files matched your search
@@ -65,8 +65,8 @@ var downloadTool = mcp.NewTool(
|
||||
mcp.Description(fileUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"tfmt", mcp.DefaultString(""),
|
||||
mcp.Description(tfmtUsage), mcp.Required(),
|
||||
"tfmt", mcp.Enum("sbv", "srt", "vtt"),
|
||||
mcp.DefaultString(""), mcp.Description(tfmtUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"tlang", mcp.DefaultString(""),
|
||||
|
||||
+31
-29
@@ -5,6 +5,7 @@ import (
|
||||
"context"
|
||||
"github.com/eat-pray-ai/yutu/cmd"
|
||||
"github.com/eat-pray-ai/yutu/pkg/caption"
|
||||
"github.com/eat-pray-ai/yutu/pkg/utils"
|
||||
"github.com/mark3labs/mcp-go/mcp"
|
||||
"github.com/spf13/cobra"
|
||||
"io"
|
||||
@@ -74,28 +75,29 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(fileUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"audioTrackType", mcp.DefaultString("unknown"),
|
||||
mcp.Description(attUsage), mcp.Required(),
|
||||
"audioTrackType",
|
||||
mcp.Enum("unknown", "primary", "commentary", "descriptive"),
|
||||
mcp.DefaultString("unknown"), mcp.Description(attUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isAutoSynced", mcp.DefaultBool(true),
|
||||
mcp.Description(iasUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isAutoSynced", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("true"), mcp.Description(iasUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isCC", mcp.DefaultBool(false),
|
||||
mcp.Description(iscUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isCC", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(iscUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isDraft", mcp.DefaultBool(false),
|
||||
mcp.Description(isdUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isDraft", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(isdUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isEasyReader", mcp.DefaultBool(false),
|
||||
mcp.Description(iserUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isEasyReader", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(iserUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isLarge", mcp.DefaultBool(false),
|
||||
mcp.Description(islUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isLarge", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(islUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"language", mcp.DefaultString(""),
|
||||
@@ -106,8 +108,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(nameUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"trackKind", mcp.DefaultString("standard"),
|
||||
mcp.Description(tkUsage), mcp.Required(),
|
||||
"trackKind", mcp.Enum("standard", "ASR", "forced"),
|
||||
mcp.DefaultString("standard"), mcp.Description(tkUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoId", mcp.DefaultString(""),
|
||||
@@ -137,16 +139,16 @@ func insertHandler(
|
||||
args := request.GetArguments()
|
||||
file, _ = args["file"].(string)
|
||||
audioTrackType, _ = args["audioTrackType"].(string)
|
||||
isAutoSyncedRaw, _ := args["isAutoSynced"].(bool)
|
||||
isAutoSynced = &isAutoSyncedRaw
|
||||
isCCRaw, _ := args["isCC"].(bool)
|
||||
isCC = &isCCRaw
|
||||
isDraftRaw, _ := args["isDraft"].(bool)
|
||||
isDraft = &isDraftRaw
|
||||
isEasyReaderRaw, _ := args["isEasyReader"].(bool)
|
||||
isEasyReader = &isEasyReaderRaw
|
||||
isLargeRaw, _ := args["isLarge"].(bool)
|
||||
isLarge = &isLargeRaw
|
||||
isAutoSyncedRaw, _ := args["isAutoSynced"].(string)
|
||||
isAutoSynced = utils.BoolPtr(isAutoSyncedRaw)
|
||||
isCCRaw, _ := args["isCC"].(string)
|
||||
isCC = utils.BoolPtr(isCCRaw)
|
||||
isDraftRaw, _ := args["isDraft"].(string)
|
||||
isDraft = utils.BoolPtr(isDraftRaw)
|
||||
isEasyReaderRaw, _ := args["isEasyReader"].(string)
|
||||
isEasyReader = utils.BoolPtr(isEasyReaderRaw)
|
||||
isLargeRaw, _ := args["isLarge"].(string)
|
||||
isLarge = utils.BoolPtr(isLargeRaw)
|
||||
language, _ = args["language"].(string)
|
||||
name, _ = args["name"].(string)
|
||||
trackKind, _ = args["trackKind"].(string)
|
||||
|
||||
+28
-27
@@ -5,6 +5,7 @@ import (
|
||||
"context"
|
||||
"github.com/eat-pray-ai/yutu/cmd"
|
||||
"github.com/eat-pray-ai/yutu/pkg/caption"
|
||||
"github.com/eat-pray-ai/yutu/pkg/utils"
|
||||
"github.com/mark3labs/mcp-go/mcp"
|
||||
"github.com/spf13/cobra"
|
||||
"io"
|
||||
@@ -76,25 +77,25 @@ var updateTool = mcp.NewTool(
|
||||
"audioTrackType", mcp.DefaultString("unknown"),
|
||||
mcp.Description(attUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isAutoSynced", mcp.DefaultBool(true),
|
||||
mcp.Description(iasUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isAutoSynced", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("true"), mcp.Description(iasUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isCC", mcp.DefaultBool(false),
|
||||
mcp.Description(iscUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isCC", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(iscUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isDraft", mcp.DefaultBool(false),
|
||||
mcp.Description(isdUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isDraft", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(isdUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isEasyReader", mcp.DefaultBool(false),
|
||||
mcp.Description(iserUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isEasyReader", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(iserUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithBoolean(
|
||||
"isLarge", mcp.DefaultBool(false),
|
||||
mcp.Description(islUsage), mcp.Required(),
|
||||
mcp.WithString(
|
||||
"isLarge", mcp.Enum("true", "false", ""),
|
||||
mcp.DefaultString("false"), mcp.Description(islUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"language", mcp.DefaultString(""),
|
||||
@@ -105,8 +106,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(nameUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"trackKind", mcp.DefaultString("standard"),
|
||||
mcp.Description(tkUsage), mcp.Required(),
|
||||
"trackKind", mcp.Enum("standard", "ASR", "forced"),
|
||||
mcp.DefaultString("standard"), mcp.Description(tkUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoId", mcp.DefaultString(""),
|
||||
@@ -136,16 +137,16 @@ func updateHandler(
|
||||
args := request.GetArguments()
|
||||
file, _ = args["file"].(string)
|
||||
audioTrackType, _ = args["audioTrackType"].(string)
|
||||
isAutoSyncedRaw, _ := args["isAutoSynced"].(bool)
|
||||
isAutoSynced = &isAutoSyncedRaw
|
||||
isCCRaw, _ := args["isCC"].(bool)
|
||||
isCC = &isCCRaw
|
||||
isDraftRaw, _ := args["isDraft"].(bool)
|
||||
isDraft = &isDraftRaw
|
||||
isEasyReaderRaw, _ := args["isEasyReader"].(bool)
|
||||
isEasyReader = &isEasyReaderRaw
|
||||
isLargeRaw, _ := args["isLarge"].(bool)
|
||||
isLarge = &isLargeRaw
|
||||
isAutoSyncedRaw, _ := args["isAutoSynced"].(string)
|
||||
isAutoSynced = utils.BoolPtr(isAutoSyncedRaw)
|
||||
isCCRaw, _ := args["isCC"].(string)
|
||||
isCC = utils.BoolPtr(isCCRaw)
|
||||
isDraftRaw, _ := args["isDraft"].(string)
|
||||
isDraft = utils.BoolPtr(isDraftRaw)
|
||||
isEasyReaderRaw, _ := args["isEasyReader"].(string)
|
||||
isEasyReader = utils.BoolPtr(isEasyReaderRaw)
|
||||
isLargeRaw, _ := args["isLarge"].(string)
|
||||
isLarge = utils.BoolPtr(isLargeRaw)
|
||||
language, _ = args["language"].(string)
|
||||
name, _ = args["name"].(string)
|
||||
trackKind, _ = args["trackKind"].(string)
|
||||
|
||||
@@ -17,7 +17,7 @@ const (
|
||||
tfUsage = "textFormatUnspecified, html, or plainText"
|
||||
toUsage = "Text of the comment"
|
||||
msUsage = "heldForReview, published, or rejected"
|
||||
baUsage = "true or false"
|
||||
baUsage = "If set to true the author of the comment gets added to the ban list"
|
||||
vidUsage = "ID of the video"
|
||||
vrUsage = "none, like, or dislike"
|
||||
partsUsage = "Comma separated parts"
|
||||
|
||||
+2
-2
@@ -70,8 +70,8 @@ var listTool = mcp.NewTool(
|
||||
mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"textFormat", mcp.DefaultString("html"),
|
||||
mcp.Description(tfUsage), mcp.Required(),
|
||||
"textFormat", mcp.Enum("textFormatUnspecified", "html", "plainText"),
|
||||
mcp.DefaultString("html"), mcp.Description(tfUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithArray(
|
||||
"parts", mcp.DefaultArray([]string{"id", "snippet"}),
|
||||
|
||||
@@ -66,8 +66,8 @@ var setModerationStatusTool = mcp.NewTool(
|
||||
mcp.Description(idsUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"moderationStatus", mcp.DefaultString(""),
|
||||
mcp.Description(msUsage), mcp.Required(),
|
||||
"moderationStatus", mcp.Enum("heldForReview", "published", "rejected"),
|
||||
mcp.DefaultString(""), mcp.Description(msUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"banAuthor", mcp.Enum("true", "false", ""),
|
||||
|
||||
@@ -69,8 +69,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(toUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"viewerRating", mcp.DefaultString(""),
|
||||
mcp.Description(vrUsage), mcp.Required(),
|
||||
"viewerRating", mcp.Enum("none", "like", "dislike"),
|
||||
mcp.DefaultString(""), mcp.Description(vrUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"output", mcp.DefaultString(""),
|
||||
|
||||
@@ -16,7 +16,7 @@ const (
|
||||
msUsage = "published, heldForReview, likelySpam, or rejected"
|
||||
orderUsage = "orderUnspecified, time, or relevance"
|
||||
stUsage = "Search terms"
|
||||
tfUsage = "textFormatUnspecified or html"
|
||||
tfUsage = "textFormatUnspecified, or html"
|
||||
toUsage = "Text of the comment"
|
||||
partsUsage = "Comma separated parts"
|
||||
)
|
||||
|
||||
@@ -79,20 +79,21 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(mrUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"moderationStatus", mcp.DefaultString("published"),
|
||||
mcp.Description(msUsage), mcp.Required(),
|
||||
"moderationStatus",
|
||||
mcp.Enum("published", "heldForReview", "likelySpam", "rejected"),
|
||||
mcp.DefaultString("published"), mcp.Description(msUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"order", mcp.DefaultString("time"),
|
||||
mcp.Description(orderUsage), mcp.Required(),
|
||||
"order", mcp.Enum("orderUnspecified", "time", "relevance"),
|
||||
mcp.DefaultString("time"), mcp.Description(orderUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"searchTerms", mcp.DefaultString(""),
|
||||
mcp.Description(stUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"textFormat", mcp.DefaultString("html"),
|
||||
mcp.Description(tfUsage), mcp.Required(),
|
||||
"textFormat", mcp.Enum("textFormatUnspecified", "html"),
|
||||
mcp.DefaultString("html"), mcp.Description(tfUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoId", mcp.DefaultString(""),
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package cmd
|
||||
|
||||
const (
|
||||
// TODO: mcp.Enum
|
||||
TableUsage = "json, yaml, or table"
|
||||
SilentUsage = "json, yaml, or silent"
|
||||
JpUsage = "JSONPath expression to filter the output"
|
||||
|
||||
@@ -9,7 +9,7 @@ const (
|
||||
short = "List YouTube i18n languages"
|
||||
long = "List YouTube i18n languages' id, hl, and name"
|
||||
hlUsage = "Host language"
|
||||
partsUsage = "Comma separated parts"
|
||||
partsUsage = "Comma separated parts" // TODO: extract constants
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
+2
-2
@@ -62,8 +62,8 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(mrUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"mode", mcp.DefaultString("all_current"),
|
||||
mcp.Description(mmUsage), mcp.Required(),
|
||||
"mode", mcp.Enum("listMembersModeUnknown", "updates", "all_current"),
|
||||
mcp.DefaultString("all_current"), mcp.Description(mmUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithArray(
|
||||
"parts", mcp.DefaultArray([]string{"snippet"}),
|
||||
|
||||
@@ -10,7 +10,7 @@ const (
|
||||
long = "List channel's members' info, such as channelId, displayName, etc"
|
||||
mcidUsage = "Comma separated list of channel IDs. Only data about members that are part of this list will be included"
|
||||
hatlUsage = "Filter members in the results set to the ones that have access to a level"
|
||||
mrUsage = "The maximum number of items that should be returned"
|
||||
mrUsage = "The maximum number of items that should be returned" // TODO: extract constant
|
||||
mmUsage = "listMembersModeUnknown, updates, or all_current"
|
||||
partsUsage = "Comma separated parts"
|
||||
)
|
||||
|
||||
@@ -17,7 +17,7 @@ func init() {
|
||||
listCmd.Flags().StringSliceVarP(
|
||||
&parts, "parts", "p", []string{"id, snippet"}, partsUsage,
|
||||
)
|
||||
listCmd.Flags().StringVarP(&output, "output", "o", "table", outputUsage)
|
||||
listCmd.Flags().StringVarP(&output, "output", "o", "table", cmd.TableUsage)
|
||||
listCmd.Flags().StringVarP(&jpath, "jsonpath", "j", "", cmd.JpUsage)
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ var listTool = mcp.NewTool(
|
||||
),
|
||||
mcp.WithString(
|
||||
"output", mcp.DefaultString("table"),
|
||||
mcp.Description(outputUsage), mcp.Required(),
|
||||
mcp.Description(cmd.TableUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"jsonpath", mcp.DefaultString(""),
|
||||
|
||||
@@ -6,10 +6,9 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
short = "List memberships levels' info"
|
||||
long = "List memberships levels' info, such as id, displayName, etc"
|
||||
partsUsage = "Comma separated parts"
|
||||
outputUsage = "json yaml, or table"
|
||||
short = "List memberships levels' info"
|
||||
long = "List memberships levels' info, such as id, displayName, etc"
|
||||
partsUsage = "Comma separated parts"
|
||||
)
|
||||
|
||||
var (
|
||||
|
||||
@@ -76,8 +76,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(insertCidUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"output", mcp.DefaultString(""),
|
||||
|
||||
@@ -75,8 +75,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(languageUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"output", mcp.DefaultString(""),
|
||||
|
||||
@@ -71,8 +71,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(descUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"kind", mcp.DefaultString(""),
|
||||
mcp.Description(kindUsage), mcp.Required(),
|
||||
"kind", mcp.Enum("video", "channel", "playlist"),
|
||||
mcp.DefaultString(""), mcp.Description(kindUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"kVideoId", mcp.DefaultString(""),
|
||||
@@ -95,8 +95,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(cidUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"onBehalfOfContentOwner", mcp.DefaultString(""),
|
||||
|
||||
@@ -67,8 +67,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(descUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"onBehalfOfContentOwner", mcp.DefaultString(""),
|
||||
|
||||
+27
-21
@@ -84,12 +84,14 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(cidUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"channelType", mcp.DefaultString("channelTypeUnspecified"),
|
||||
"channelType",
|
||||
mcp.Enum("channelTypeUnspecified", "any", "show"),
|
||||
mcp.DefaultString("channelTypeUnspecified"),
|
||||
mcp.Description(ctUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"eventType", mcp.DefaultString("none"),
|
||||
mcp.Description(etUsage), mcp.Required(),
|
||||
"eventType", mcp.Enum("none", "upcoming", "live", "completed"),
|
||||
mcp.DefaultString("none"), mcp.Description(etUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"forContentOwner", mcp.Enum("true", "false", ""),
|
||||
@@ -144,8 +146,9 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(rlUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"safeSearch", mcp.DefaultString("moderate"),
|
||||
mcp.Description(ssUsage), mcp.Required(),
|
||||
"safeSearch",
|
||||
mcp.Enum("safeSearchSettingUnspecified", "none", "moderate", "strict"),
|
||||
mcp.DefaultString("moderate"), mcp.Description(ssUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"topicId", mcp.DefaultString(""),
|
||||
@@ -157,8 +160,9 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(typesUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoCaption", mcp.DefaultString("any"),
|
||||
mcp.Description(vcUsage), mcp.Required(),
|
||||
"videoCaption",
|
||||
mcp.Enum("videoCaptionUnspecified", "any", "closedCaption", "none"),
|
||||
mcp.DefaultString("any"), mcp.Description(vcUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoCategoryId", mcp.DefaultString(""),
|
||||
@@ -169,32 +173,34 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(vdeUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoDimension", mcp.DefaultString("any"),
|
||||
mcp.Description(vdiUsage), mcp.Required(),
|
||||
"videoDimension", mcp.Enum("any", "2d", "3d"),
|
||||
mcp.DefaultString("any"), mcp.Description(vdiUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoDuration", mcp.DefaultString("any"),
|
||||
mcp.Description(vduUsage), mcp.Required(),
|
||||
"videoDuration",
|
||||
mcp.Enum("videoDurationUnspecified", "any", "short", "medium", "long"),
|
||||
mcp.DefaultString("any"), mcp.Description(vduUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoEmbeddable", mcp.DefaultString(""),
|
||||
mcp.Description(veUsage), mcp.Required(),
|
||||
"videoEmbeddable", mcp.Enum("videoEmbeddableUnspecified", "any", "true"),
|
||||
mcp.DefaultString(""), mcp.Description(veUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoLicense", mcp.DefaultString(""),
|
||||
mcp.Description(vlUsage), mcp.Required(),
|
||||
"videoLicense", mcp.Enum("any", "youtube", "creativeCommon"),
|
||||
mcp.DefaultString(""), mcp.Description(vlUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoPaidProductPlacement", mcp.DefaultString(""),
|
||||
mcp.Description(vpppUsage), mcp.Required(),
|
||||
"videoPaidProductPlacement",
|
||||
mcp.Enum("videoPaidProductPlacementUnspecified", "any", "true"),
|
||||
mcp.DefaultString(""), mcp.Description(vpppUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoSyndicated", mcp.DefaultString(""),
|
||||
mcp.Description(vsUsage), mcp.Required(),
|
||||
"videoSyndicated", mcp.Enum("videoSyndicatedUnspecified", "any", "true"),
|
||||
mcp.DefaultString(""), mcp.Description(vsUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"videoType", mcp.DefaultString(""),
|
||||
mcp.Description(vtUsage), mcp.Required(),
|
||||
"videoType", mcp.Enum("videoTypeUnspecified", "any", "movie", "episode"),
|
||||
mcp.DefaultString(""), mcp.Description(vtUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithArray(
|
||||
"parts", mcp.DefaultArray([]string{"id", "snippet"}),
|
||||
|
||||
@@ -103,8 +103,10 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(""), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"order", mcp.DefaultString("relevance"),
|
||||
mcp.Description(orderUsage), mcp.Required(),
|
||||
"order", mcp.Enum(
|
||||
"subscriptionOrderUnspecified", "relevance", "unread", "alphabetical",
|
||||
),
|
||||
mcp.DefaultString("relevance"), mcp.Description(orderUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithArray(
|
||||
"parts", mcp.DefaultArray([]string{"id", "snippet"}),
|
||||
|
||||
@@ -14,7 +14,7 @@ const (
|
||||
fcidUsage = "Return the subscriptions to the subset of these channels that the authenticated user is subscribed to"
|
||||
mrUsage = "The maximum number of items that should be returned"
|
||||
mineUsage = "Return the subscriptions of the authenticated user"
|
||||
mrsUsage = "true or false"
|
||||
mrsUsage = "true, false, or leave empty"
|
||||
msUsage = "Return the subscribers of the given channel owner"
|
||||
orderUsage = "subscriptionOrderUnspecified, relevance, unread, or alphabetical"
|
||||
titleUsage = "Title of the subscription"
|
||||
|
||||
+4
-4
@@ -107,8 +107,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(insertLangUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"license", mcp.DefaultString("youtube"),
|
||||
mcp.Description(licenseUsage), mcp.Required(),
|
||||
"license", mcp.Enum("youtube", "creativeCommon"),
|
||||
mcp.DefaultString("youtube"), mcp.Description(licenseUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"thumbnail", mcp.DefaultString(""),
|
||||
@@ -127,8 +127,8 @@ var insertTool = mcp.NewTool(
|
||||
mcp.Description(caidUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"forKids", mcp.Enum("true", "false", ""),
|
||||
|
||||
+2
-2
@@ -67,8 +67,8 @@ var listTool = mcp.NewTool(
|
||||
mcp.Description(listIdsUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"chart", mcp.DefaultString(""),
|
||||
mcp.Description(chartUsage), mcp.Required(),
|
||||
"chart", mcp.Enum("chartUnspecified", "mostPopular"),
|
||||
mcp.DefaultString(""), mcp.Description(chartUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"hl", mcp.DefaultString(""),
|
||||
|
||||
+2
-2
@@ -54,8 +54,8 @@ var rateTool = mcp.NewTool(
|
||||
mcp.Description(rateIdsUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"rating", mcp.DefaultString(""),
|
||||
mcp.Description(rateRUsage), mcp.Required(),
|
||||
"rating", mcp.Enum("like", "dislike", "none"),
|
||||
mcp.DefaultString(""), mcp.Description(rateRUsage), mcp.Required(),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
+4
-4
@@ -84,8 +84,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(updateLangUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"license", mcp.DefaultString("youtube"),
|
||||
mcp.Description(licenseUsage), mcp.Required(),
|
||||
"license", mcp.Enum("youtube", "creativeCommon"),
|
||||
mcp.DefaultString("youtube"), mcp.Description(licenseUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"thumbnail", mcp.DefaultString(""),
|
||||
@@ -100,8 +100,8 @@ var updateTool = mcp.NewTool(
|
||||
mcp.Description(caidUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"privacy", mcp.DefaultString(""),
|
||||
mcp.Description(privacyUsage), mcp.Required(),
|
||||
"privacy", mcp.Enum("public", "private", "unlisted"),
|
||||
mcp.DefaultString(""), mcp.Description(privacyUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"embeddable", mcp.Enum("true", "false", ""),
|
||||
|
||||
@@ -64,8 +64,9 @@ var setTool = mcp.NewTool(
|
||||
mcp.Description(fileUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"inVideoPosition", mcp.DefaultString(""),
|
||||
mcp.Description(ivpUsage), mcp.Required(),
|
||||
"inVideoPosition",
|
||||
mcp.Enum("topLeft", "topRight", "bottomLeft", "bottomRight"),
|
||||
mcp.DefaultString(""), mcp.Description(ivpUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithNumber(
|
||||
"durationMs", mcp.DefaultNumber(0),
|
||||
@@ -76,8 +77,8 @@ var setTool = mcp.NewTool(
|
||||
mcp.Description(omUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"offsetType", mcp.DefaultString(""),
|
||||
mcp.Description(otUsage), mcp.Required(),
|
||||
"offsetType", mcp.Enum("offsetFromStart", "offsetFromEnd"),
|
||||
mcp.DefaultString(""), mcp.Description(otUsage), mcp.Required(),
|
||||
),
|
||||
mcp.WithString(
|
||||
"onBehalfOfContentOwner", mcp.DefaultString(""),
|
||||
|
||||
Reference in new issue
Block a user