From 2d74fc0a6aa695a3586bfc20bc7a6546c4b6dd51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Jun 2025 18:30:40 +0000 Subject: [PATCH 1/2] Bump github.com/mark3labs/mcp-go from 0.25.0 to 0.31.0 Bumps [github.com/mark3labs/mcp-go](https://github.com/mark3labs/mcp-go) from 0.25.0 to 0.31.0. - [Release notes](https://github.com/mark3labs/mcp-go/releases) - [Commits](https://github.com/mark3labs/mcp-go/compare/v0.25.0...v0.31.0) --- updated-dependencies: - dependency-name: github.com/mark3labs/mcp-go dependency-version: 0.31.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b875a3f..a5018be 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24.0 require ( github.com/davecgh/go-spew v1.1.1 github.com/fsnotify/fsnotify v1.9.0 - github.com/mark3labs/mcp-go v0.25.0 + github.com/mark3labs/mcp-go v0.31.0 github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 github.com/stretchr/testify v1.10.0 golang.org/x/text v0.25.0 diff --git a/go.sum b/go.sum index 9ae5405..830440b 100644 --- a/go.sum +++ b/go.sum @@ -24,8 +24,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/mark3labs/mcp-go v0.25.0 h1:UUpcMT3L5hIhuDy7aifj4Bphw4Pfx1Rf8mzMXDe8RQw= -github.com/mark3labs/mcp-go v0.25.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4= +github.com/mark3labs/mcp-go v0.31.0 h1:4UxSV8aM770OPmTvaVe/b1rA2oZAjBMhGBfUgOGut+4= +github.com/mark3labs/mcp-go v0.31.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= From 8cebb46c747294732623208b4b0b4b8e6fd46d2c Mon Sep 17 00:00:00 2001 From: Dustin Spicuzza Date: Fri, 6 Jun 2025 01:07:42 -0400 Subject: [PATCH 2/2] Fix compilation errors in upgraded mcp-go --- tools.go | 99 +++++++++++++++++++++----------------------------------- 1 file changed, 36 insertions(+), 63 deletions(-) diff --git a/tools.go b/tools.go index 55898ca..4aeca7b 100644 --- a/tools.go +++ b/tools.go @@ -43,13 +43,13 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(applyTextEditTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - filePath, ok := request.Params.Arguments["filePath"].(string) - if !ok { - return mcp.NewToolResultError("filePath must be a string"), nil + filePath, err := request.RequireString("filePath") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } // Extract edits array - editsArg, ok := request.Params.Arguments["edits"] + editsArg, ok := request.GetArguments()["edits"] if !ok { return mcp.NewToolResultError("edits is required"), nil } @@ -105,9 +105,9 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(readDefinitionTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - symbolName, ok := request.Params.Arguments["symbolName"].(string) - if !ok { - return mcp.NewToolResultError("symbolName must be a string"), nil + symbolName, err := request.RequireString("symbolName") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } coreLogger.Debug("Executing definition for symbol: %s", symbolName) @@ -129,9 +129,9 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(findReferencesTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - symbolName, ok := request.Params.Arguments["symbolName"].(string) - if !ok { - return mcp.NewToolResultError("symbolName must be a string"), nil + symbolName, err := request.RequireString("symbolName") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } coreLogger.Debug("Executing references for symbol: %s", symbolName) @@ -161,20 +161,13 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(getDiagnosticsTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - filePath, ok := request.Params.Arguments["filePath"].(string) - if !ok { - return mcp.NewToolResultError("filePath must be a string"), nil - } - - contextLines := 5 // default value - if contextLinesArg, ok := request.Params.Arguments["contextLines"].(int); ok { - contextLines = contextLinesArg + filePath, err := request.RequireString("filePath") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - showLineNumbers := true // default value - if showLineNumbersArg, ok := request.Params.Arguments["showLineNumbers"].(bool); ok { - showLineNumbers = showLineNumbersArg - } + contextLines := request.GetInt("contextLines", 5) + showLineNumbers := request.GetBool("showLineNumbers", true) coreLogger.Debug("Executing diagnostics for file: %s", filePath) text, err := tools.GetDiagnosticsForFile(s.ctx, s.lspClient, filePath, contextLines, showLineNumbers) @@ -268,29 +261,19 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(hoverTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - filePath, ok := request.Params.Arguments["filePath"].(string) - if !ok { - return mcp.NewToolResultError("filePath must be a string"), nil + filePath, err := request.RequireString("filePath") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - // Handle both float64 and int for line and column due to JSON parsing - var line, column int - switch v := request.Params.Arguments["line"].(type) { - case float64: - line = int(v) - case int: - line = v - default: - return mcp.NewToolResultError("line must be a number"), nil + line, err := request.RequireInt("line") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - switch v := request.Params.Arguments["column"].(type) { - case float64: - column = int(v) - case int: - column = v - default: - return mcp.NewToolResultError("column must be a number"), nil + column, err := request.RequireInt("column") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } coreLogger.Debug("Executing hover for file: %s line: %d column: %d", filePath, line, column) @@ -324,34 +307,24 @@ func (s *mcpServer) registerTools() error { s.mcpServer.AddTool(renameSymbolTool, func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { // Extract arguments - filePath, ok := request.Params.Arguments["filePath"].(string) - if !ok { - return mcp.NewToolResultError("filePath must be a string"), nil + filePath, err := request.RequireString("filePath") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - newName, ok := request.Params.Arguments["newName"].(string) - if !ok { - return mcp.NewToolResultError("newName must be a string"), nil + newName, err := request.RequireString("newName") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - // Handle both float64 and int for line and column due to JSON parsing - var line, column int - switch v := request.Params.Arguments["line"].(type) { - case float64: - line = int(v) - case int: - line = v - default: - return mcp.NewToolResultError("line must be a number"), nil + line, err := request.RequireInt("line") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } - switch v := request.Params.Arguments["column"].(type) { - case float64: - column = int(v) - case int: - column = v - default: - return mcp.NewToolResultError("column must be a number"), nil + column, err := request.RequireInt("column") + if err != nil { + return mcp.NewToolResultError(err.Error()), nil } coreLogger.Debug("Executing rename_symbol for file: %s line: %d column: %d newName: %s", filePath, line, column, newName)