mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-01 15:07:17 +08:00
fix(mcp-server): query scope params (#25171)
This commit is contained in:
@@ -36,6 +36,7 @@ func (a CloudpodsAdapter) ListCloudRegions(ctx context.Context, limit int, offse
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -92,6 +93,7 @@ func (a *CloudpodsAdapter) ListVPCs(ctx context.Context, limit int, offset int,
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -148,6 +150,7 @@ func (a *CloudpodsAdapter) ListNetworks(ctx context.Context, limit int, offset i
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -205,6 +208,7 @@ func (a *CloudpodsAdapter) ListImages(ctx context.Context, limit int, offset int
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -263,6 +267,7 @@ func (a *CloudpodsAdapter) ListServerSkus(ctx context.Context, limit int, offset
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -361,6 +366,7 @@ func (a *CloudpodsAdapter) ListStorages(ctx context.Context, limit int, offset i
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
@@ -447,6 +453,7 @@ func (a *CloudpodsAdapter) ListServers(ctx context.Context, limit int, offset in
|
||||
|
||||
// 构造查询参数
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("scope", jsonutils.NewString("max"))
|
||||
if limit > 0 {
|
||||
// 设置查询结果数量限制
|
||||
params.Set("limit", jsonutils.NewInt(int64(limit)))
|
||||
|
||||
@@ -44,8 +44,8 @@ func NewCloudpodsServerStartTool(adapter *adapters.CloudpodsAdapter) *CloudpodsS
|
||||
func (c *CloudpodsServerStartTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_start_server",
|
||||
mcp.WithDescription("启动指定的Cloudpods虚拟机实例"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID")),
|
||||
mcp.WithDescription("启动指定的Cloudpods虚拟机实例。用户要求开机/启动时必须调用本工具真正执行启动,仅调用cloudpods_list_servers 查询不算完成。若尚不知 server_id,先用 cloudpods_list_servers(可用 search)定位,拿到 id 后立即调用本工具,不要只查询就结束。"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID,来自 cloudpods_list_servers 返回的 id 字段")),
|
||||
mcp.WithString("auto_prepaid", mcp.Description("按量机器自动转换为包年包月,默认为false")),
|
||||
mcp.WithString("qemu_version", mcp.Description("指定启动虚拟机的Qemu版本,可选值:2.12.1, 4.2.0,仅适用于KVM虚拟机")),
|
||||
mcp.WithString("ak", mcp.Description("用户登录cloudpods后获取的access key")),
|
||||
@@ -132,8 +132,8 @@ func NewCloudpodsServerStopTool(adapter *adapters.CloudpodsAdapter) *CloudpodsSe
|
||||
func (c *CloudpodsServerStopTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_stop_server",
|
||||
mcp.WithDescription("停止指定的Cloudpods虚拟机实例"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID")),
|
||||
mcp.WithDescription("停止指定的Cloudpods虚拟机实例。用户要求关机/停止时必须调用本工具真正执行停止,仅调用 cloudpods_list_servers 查询不算完成。若尚不知 server_id,先用 cloudpods_list_servers(可用 search)定位,拿到 id 后立即调用本工具,不要只查询就结束,也不要再次向用户确认。"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID,来自 cloudpods_list_servers 返回的 id 字段")),
|
||||
mcp.WithString("is_force", mcp.Description("是否强制停止,默认为false")),
|
||||
mcp.WithString("stop_charging", mcp.Description("是否关机停止计费,默认为false")),
|
||||
mcp.WithString("timeout_secs", mcp.Description("关机等待时间,如果是强制关机,则等待时间为0,如果不设置,默认为30秒")),
|
||||
@@ -233,8 +233,8 @@ func NewCloudpodsServerRestartTool(adapter *adapters.CloudpodsAdapter) *Cloudpod
|
||||
func (c *CloudpodsServerRestartTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_restart_server",
|
||||
mcp.WithDescription("重启指定的Cloudpods虚拟机实例"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID")),
|
||||
mcp.WithDescription("重启指定的Cloudpods虚拟机实例。用户要求重启时必须调用本工具真正执行重启,仅调用 cloudpods_list_servers 查询不算完成。若尚不知 server_id,先用 cloudpods_list_servers(可用 search)定位,拿到 id 后立即调用本工具,不要只查询就结束,也不要再次向用户确认。"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID,来自 cloudpods_list_servers 返回的 id 字段")),
|
||||
mcp.WithString("is_force", mcp.Description("是否强制重启,默认为false")),
|
||||
mcp.WithString("ak", mcp.Description("用户登录cloudpods后获取的access key")),
|
||||
mcp.WithString("sk", mcp.Description("用户登录cloudpods后获取的secret key")),
|
||||
@@ -316,8 +316,8 @@ func NewCloudpodsServerResetPasswordTool(adapter *adapters.CloudpodsAdapter) *Cl
|
||||
func (c *CloudpodsServerResetPasswordTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_reset_server_password",
|
||||
mcp.WithDescription("重置指定Cloudpods虚拟机的登录密码"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID")),
|
||||
mcp.WithDescription("重置指定Cloudpods虚拟机的登录密码。用户要求重置密码时必须调用本工具真正执行,仅调用 cloudpods_list_servers 查询不算完成。若尚不知 server_id,先用 cloudpods_list_servers 定位,拿到 id 后立即调用本工具。"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID,来自 cloudpods_list_servers 返回的 id 字段")),
|
||||
mcp.WithString("password", mcp.Required(), mcp.Description("新密码,长度8-30个字符")),
|
||||
mcp.WithString("reset_password", mcp.Description("是否重置密码,默认为true")),
|
||||
mcp.WithString("auto_start", mcp.Description("重置后是否自动启动,默认为true")),
|
||||
@@ -424,8 +424,8 @@ func NewCloudpodsServerDeleteTool(adapter *adapters.CloudpodsAdapter) *Cloudpods
|
||||
func (c *CloudpodsServerDeleteTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_delete_server",
|
||||
mcp.WithDescription("删除指定的Cloudpods虚拟机实例"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID")),
|
||||
mcp.WithDescription("删除指定的Cloudpods虚拟机实例。用户要求删除时必须调用本工具真正执行删除,仅调用 cloudpods_list_servers 查询不算完成。若尚不知 server_id,先用 cloudpods_list_servers 定位,拿到 id 后立即调用本工具。"),
|
||||
mcp.WithString("server_id", mcp.Required(), mcp.Description("虚拟机ID,来自 cloudpods_list_servers 返回的 id 字段")),
|
||||
mcp.WithString("override_pending_delete", mcp.Description("是否强制删除(包括在回收站中的实例),默认为false")),
|
||||
mcp.WithString("purge", mcp.Description("是否仅删除本地资源,默认为false")),
|
||||
mcp.WithString("delete_snapshots", mcp.Description("是否删除快照,默认为false")),
|
||||
|
||||
@@ -54,7 +54,7 @@ func NewCloudpodsServersTool(adapter *adapters.CloudpodsAdapter) *CloudpodsServe
|
||||
func (c *CloudpodsServersTool) GetTool() mcp.Tool {
|
||||
return mcp.NewTool(
|
||||
"cloudpods_list_servers",
|
||||
mcp.WithDescription("查询Cloudpods虚拟机实例列表,获取虚拟机信息"),
|
||||
mcp.WithDescription("查询Cloudpods虚拟机实例列表,获取虚拟机信息(含id、name、status)。当用户要求启动/停止/重启/删除/重置密码时:先用本工具定位目标虚拟机,拿到返回结果中的id后,必须立刻继续调用对应操作工具(cloudpods_start_server / cloudpods_stop_server / cloudpods_restart_server / cloudpods_delete_server / cloudpods_reset_server_password)完成操作,不要只查询就结束,也不要再次向用户确认(除非匹配到多台需用户选择)。"),
|
||||
mcp.WithString("limit", mcp.Description("返回结果数量限制,默认为50")),
|
||||
mcp.WithString("offset", mcp.Description("结果偏移量,默认为0")),
|
||||
mcp.WithString("search", mcp.Description("按名称或ID模糊搜索")),
|
||||
|
||||
Reference in New Issue
Block a user