diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaAction.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaAction.java index 515737b0..379a790a 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaAction.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaAction.java @@ -17,7 +17,7 @@ public class MetaAction { /** * 行动程序可接受的参数,由调用处设置 */ - private Map params; + private Map params; /** * 行动结果,包括执行状态和相应内容(执行结果或者错误信息) */ diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaActionInfo.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaActionInfo.java index 5f957b24..45a6db44 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaActionInfo.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/entity/MetaActionInfo.java @@ -11,7 +11,7 @@ public class MetaActionInfo { private boolean io; private MetaActionType type; - private Map params; + private Map params; private String description; private List tags; diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java index 66bd93d8..64dc6936 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java @@ -3,6 +3,8 @@ package work.slhaf.partner.core.action.runner; import cn.hutool.core.io.FileUtil; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; +import io.modelcontextprotocol.client.McpSyncClient; +import io.modelcontextprotocol.spec.McpSchema; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.jetbrains.annotations.NotNull; @@ -72,7 +74,7 @@ public class LocalRunnerClient extends RunnerClient { } //TODO 后续需在加载时、或者通过配置文件获取可用命令并注册匹配 - private String[] buildCommands(String ext, Map params, String absolutePath) { + private String[] buildCommands(String ext, Map params, String absolutePath) { String command = switch (ext) { case "py" -> "python"; case "sh" -> "bash"; @@ -86,14 +88,21 @@ public class LocalRunnerClient extends RunnerClient { commands[1] = absolutePath; AtomicInteger paramCount = new AtomicInteger(2); params.forEach((param, value) -> { - commands[paramCount.getAndIncrement()] = "--" + param + "=" + value; + commands[paramCount.getAndIncrement()] = "--" + param + "=" + value.toString(); }); return commands; } private RunnerResponse doRunWithMcp(MetaAction metaAction) { RunnerResponse response = new RunnerResponse(); - + McpSyncClient mcpClient = mcpClients.get(metaAction.getLocation()); + McpSchema.CallToolRequest callToolRequest = McpSchema.CallToolRequest.builder() + .name(metaAction.getName()) + .arguments(metaAction.getParams()) + .build(); + McpSchema.CallToolResult callToolResult = mcpClient.callTool(callToolRequest); + response.setOk(callToolResult.isError()); + response.setData(callToolResult.structuredContent().toString()); return response; } diff --git a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/GeneratorInput.java b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/GeneratorInput.java index ed601ec8..67c9094a 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/GeneratorInput.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/module/modules/action/dispatcher/executor/entity/GeneratorInput.java @@ -7,7 +7,7 @@ import java.util.Map; @Data public class GeneratorInput { private String actionName; - private Map params; + private Map params; private String description; private Map paramsDescription; }