From eedf326505d29de89cb70a641881872d915947e0 Mon Sep 17 00:00:00 2001 From: Alex Bucknall Date: Mon, 15 Sep 2025 12:49:13 +0100 Subject: [PATCH 1/2] fix: include markdown files --- blues-expert/.dockerignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/blues-expert/.dockerignore b/blues-expert/.dockerignore index 03a7a59..7271099 100644 --- a/blues-expert/.dockerignore +++ b/blues-expert/.dockerignore @@ -3,7 +3,6 @@ .gitignore # Documentation -*.md README* # Test files @@ -35,4 +34,4 @@ main # Build artifacts /build/ -/dist/ +/dist/ From e4a16d2bd0265a8e8732fa653087e62d39b6ef19 Mon Sep 17 00:00:00 2001 From: Alex Bucknall Date: Mon, 15 Sep 2025 13:20:34 +0100 Subject: [PATCH 2/2] fix: validate SDK parameter in HandleFirmwareEntrypointTool --- blues-expert/lib/handlers.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/blues-expert/lib/handlers.go b/blues-expert/lib/handlers.go index 285b4a6..5bd5d2d 100644 --- a/blues-expert/lib/handlers.go +++ b/blues-expert/lib/handlers.go @@ -41,6 +41,16 @@ var docs embed.FS // Firmware Tools func HandleFirmwareEntrypointTool(ctx context.Context, request *mcp.CallToolRequest, args FirmwareEntrypointArgs) (*mcp.CallToolResult, any, error) { + + if args.Sdk == "" { + return &mcp.CallToolResult{ + Content: []mcp.Content{ + &mcp.TextContent{Text: "Error: SDK parameter is required and cannot be empty. Valid values are: Arduino, C, Zephyr, Python"}, + }, + IsError: true, + }, nil, nil + } + // Get the SDK & Index file - convert to lowercase for directory name sdk := strings.ToLower(args.Sdk) indexFile := fmt.Sprintf("docs/%s/index.md", sdk)