using Flurl;
using Flurl.Http;
using ModelContextProtocol.Server;
using System.ComponentModel;
namespace lazy52API.Tool
{
[McpServerToolType]
public static class Painting
{
///
/// 调用豆包绘图接口
///
///
[McpServerTool(Name = "DouBaoPainting"), Description("调用豆包绘图接口;输出image_url数组(一般是四个)")]
public static string DouBao(
[Description("要生成图片的描述")] string description,
[Description("绘画风格")] string type,
[Description("绘画比例,可选9:16,2:3,3:4,4:3,1:1,3:2,16:9。不填默认16:9")] string ratio = "16:9"
)
{
Console.WriteLine($"接收到绘图任务:{description}");
var Painting = new
{
description,
type,
ratio
};
var filteredPainting = new System.Collections.Generic.Dictionary();
foreach (var prop in Painting.GetType().GetProperties())
{
var value = prop.GetValue(Painting);
if (value != null)
{
filteredPainting[prop.Name] = value;
}
}
var request = new FlurlRequest("https://npi.lazy52.com/api/doubao")
.WithTimeout(Timeout.InfiniteTimeSpan);
var response = request
.SetQueryParams(filteredPainting).GetAsync().GetAwaiter().GetResult();
if (response != null)
{
var responseString = response.GetStringAsync().GetAwaiter().GetResult();
//JToken rootToken = JToken.Parse(responseString);
//var resultPath = "$.image_url[*]";
//IEnumerable resultTokens = rootToken.SelectTokens(resultPath);
return responseString;
}
return "";
}
}
}