From dd9f0284c057e29143175e18a41ab20c4829f3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaros=C5=82aw=20Zywert?= Date: Mon, 26 May 2025 22:41:03 +0200 Subject: [PATCH] fix missing required parameters for openai mcp tool call --- internal/openai/format.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/internal/openai/format.go b/internal/openai/format.go index 799040fc..483ef24b 100644 --- a/internal/openai/format.go +++ b/internal/openai/format.go @@ -1,7 +1,6 @@ package openai import ( - "encoding/json" "fmt" "github.com/charmbracelet/mods/internal/proto" @@ -14,8 +13,14 @@ func fromMCPTools(mcps map[string][]mcp.Tool) []openai.ChatCompletionToolParam { var tools []openai.ChatCompletionToolParam for name, serverTools := range mcps { for _, tool := range serverTools { - var params map[string]any - _ = json.Unmarshal(tool.RawInputSchema, ¶ms) + params := map[string]any{ + "type": "object", + "properties": tool.InputSchema.Properties, + } + if len(tool.InputSchema.Required) > 0 { + params["required"] = tool.InputSchema.Required + } + tools = append(tools, openai.ChatCompletionToolParam{ Type: constant.Function("function"), Function: openai.FunctionDefinitionParam{