Skip to content

Commit 25d9300

Browse files
authored
Merge pull request #1063 from planetscale/upgrade-mcp-library
Upgrade MCP Go library to v0.30.1
2 parents ec8798f + e9a5c65 commit 25d9300

4 files changed

Lines changed: 28 additions & 12 deletions

File tree

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ require (
1818
github.com/hashicorp/go-cleanhttp v0.5.2
1919
github.com/hashicorp/go-version v1.7.0
2020
github.com/lensesio/tableprinter v0.0.0-20201125135848-89e81fc956e7
21-
github.com/mark3labs/mcp-go v0.27.0
21+
github.com/mark3labs/mcp-go v0.30.1
2222
github.com/matoous/go-nanoid/v2 v2.1.0
2323
github.com/mattn/go-isatty v0.0.20
2424
github.com/mattn/go-shellwords v1.0.12

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,8 @@ github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69
123123
github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0=
124124
github.com/mark3labs/mcp-go v0.27.0 h1:iok9kU4DUIU2/XVLgFS2Q9biIDqstC0jY4EQTK2Erzc=
125125
github.com/mark3labs/mcp-go v0.27.0/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
126+
github.com/mark3labs/mcp-go v0.30.1 h1:3R1BPvNT/rC1iPpLx+EMXFy+gvux/Mz/Nio3c6XEU9E=
127+
github.com/mark3labs/mcp-go v0.30.1/go.mod h1:rXqOudj/djTORU/ThxYx8fqEVj/5pvTuuebQ2RC7uk4=
126128
github.com/matoous/go-nanoid/v2 v2.1.0 h1:P64+dmq21hhWdtvZfEAofnvJULaRR1Yib0+PnU669bE=
127129
github.com/matoous/go-nanoid/v2 v2.1.0/go.mod h1:KlbGNQ+FhrUNIHUxZdL63t7tl4LaPkZNpUULS8H4uVM=
128130
github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=

internal/cmd/mcp/server_handlers.go

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,10 @@ func HandleListBranches(ctx context.Context, request mcp.CallToolRequest, ch *cm
103103
return nil, fmt.Errorf("failed to initialize PlanetScale client: %w", err)
104104
}
105105

106+
args := request.GetArguments()
107+
106108
// Get the required database parameter
107-
dbArg, ok := request.Params.Arguments["database"]
109+
dbArg, ok := args["database"]
108110
if !ok || dbArg == "" {
109111
return nil, fmt.Errorf("database parameter is required")
110112
}
@@ -158,15 +160,17 @@ func HandleListKeyspaces(ctx context.Context, request mcp.CallToolRequest, ch *c
158160
return nil, fmt.Errorf("failed to initialize PlanetScale client: %w", err)
159161
}
160162

163+
args := request.GetArguments()
164+
161165
// Get the required database parameter
162-
dbArg, ok := request.Params.Arguments["database"]
166+
dbArg, ok := args["database"]
163167
if !ok || dbArg == "" {
164168
return nil, fmt.Errorf("database parameter is required")
165169
}
166170
database := dbArg.(string)
167171

168172
// Get the required branch parameter
169-
branchArg, ok := request.Params.Arguments["branch"]
173+
branchArg, ok := args["branch"]
170174
if !ok || branchArg == "" {
171175
return nil, fmt.Errorf("branch parameter is required")
172176
}
@@ -215,8 +219,10 @@ func HandleListKeyspaces(ctx context.Context, request mcp.CallToolRequest, ch *c
215219

216220
// HandleRunQuery implements the run_query tool
217221
func HandleRunQuery(ctx context.Context, request mcp.CallToolRequest, ch *cmdutil.Helper) (*mcp.CallToolResult, error) {
222+
args := request.GetArguments()
223+
218224
// Get the required query parameter
219-
queryArg, ok := request.Params.Arguments["query"]
225+
queryArg, ok := args["query"]
220226
if !ok || queryArg == "" {
221227
return nil, fmt.Errorf("query parameter is required")
222228
}
@@ -292,8 +298,10 @@ func HandleListTables(ctx context.Context, request mcp.CallToolRequest, ch *cmdu
292298

293299
// HandleGetSchema implements the get_schema tool
294300
func HandleGetSchema(ctx context.Context, request mcp.CallToolRequest, ch *cmdutil.Helper) (*mcp.CallToolResult, error) {
301+
args := request.GetArguments()
302+
295303
// Get the required tables parameter
296-
tablesArg, ok := request.Params.Arguments["tables"]
304+
tablesArg, ok := args["tables"]
297305
if !ok || tablesArg == "" {
298306
return nil, fmt.Errorf("tables parameter is required")
299307
}
@@ -377,14 +385,16 @@ func HandleGetSchema(ctx context.Context, request mcp.CallToolRequest, ch *cmdut
377385

378386
// HandleGetInsights implements the get_insights tool
379387
func HandleGetInsights(ctx context.Context, request mcp.CallToolRequest, ch *cmdutil.Helper) (*mcp.CallToolResult, error) {
388+
args := request.GetArguments()
389+
380390
// Get the required parameters
381-
dbArg, ok := request.Params.Arguments["database"]
391+
dbArg, ok := args["database"]
382392
if !ok || dbArg == "" {
383393
return nil, fmt.Errorf("database parameter is required")
384394
}
385395
database := dbArg.(string)
386396

387-
branchArg, ok := request.Params.Arguments["branch"]
397+
branchArg, ok := args["branch"]
388398
if !ok || branchArg == "" {
389399
return nil, fmt.Errorf("branch parameter is required")
390400
}

internal/cmd/mcp/server_helpers.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ type DatabaseConnection struct {
2828

2929
// getOrganization extracts the organization from the request parameters or falls back to defaults
3030
func getOrganization(request mcp.CallToolRequest, ch *cmdutil.Helper) (string, error) {
31+
args := request.GetArguments()
32+
3133
// Get the organization from the parameters or use the default
3234
var orgName string
33-
if org, ok := request.Params.Arguments["org"].(string); ok && org != "" {
35+
if org, ok := args["org"].(string); ok && org != "" {
3436
orgName = org
3537
} else {
3638
// Try to load from default config file
@@ -59,22 +61,24 @@ func createDatabaseConnection(ctx context.Context, request mcp.CallToolRequest,
5961
return nil, fmt.Errorf("failed to initialize PlanetScale client: %w", err)
6062
}
6163

64+
args := request.GetArguments()
65+
6266
// Extract the required database parameter
63-
dbArg, ok := request.Params.Arguments["database"]
67+
dbArg, ok := args["database"]
6468
if !ok || dbArg == "" {
6569
return nil, fmt.Errorf("database parameter is required")
6670
}
6771
database := dbArg.(string)
6872

6973
// Extract the required branch parameter
70-
branchArg, ok := request.Params.Arguments["branch"]
74+
branchArg, ok := args["branch"]
7175
if !ok || branchArg == "" {
7276
return nil, fmt.Errorf("branch parameter is required")
7377
}
7478
branch := branchArg.(string)
7579

7680
// Extract the required keyspace parameter
77-
keyspaceArg, ok := request.Params.Arguments["keyspace"]
81+
keyspaceArg, ok := args["keyspace"]
7882
if !ok || keyspaceArg == "" {
7983
return nil, fmt.Errorf("keyspace parameter is required")
8084
}

0 commit comments

Comments
 (0)