Skip to content

Commit 1c9d1aa

Browse files
committed
move mcp args to internal/mcp
1 parent bcde96d commit 1c9d1aa

File tree

4 files changed

+14
-18
lines changed

4 files changed

+14
-18
lines changed

cmd/src/mcp.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func mcpMain(args []string) error {
3939
}
4040

4141
func handleMcpTool(tool *mcp.ToolDef, args []string) error {
42-
fs, vars, err := buildArgFlagSet(tool)
42+
fs, vars, err := mcp.BuildArgFlagSet(tool)
4343
if err != nil {
4444
return err
4545
}
@@ -60,7 +60,7 @@ func handleMcpTool(tool *mcp.ToolDef, args []string) error {
6060
return fmt.Errorf("not enough arguments provided - the following flags are required:\n%s", strings.Join(inputSchema.Required, "\n"))
6161
}
6262

63-
derefFlagValues(vars)
63+
mcp.DerefFlagValues(vars)
6464

6565
fmt.Println("Flags")
6666
for name, val := range vars {

cmd/src/mcp_args.go renamed to internal/mcp/mcp_args.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
package main
1+
package mcp
22

33
import (
44
"flag"
55
"fmt"
66
"reflect"
77
"strings"
8-
9-
"github.com/sourcegraph/src-cli/internal/mcp"
108
)
119

1210
var _ flag.Value = (*strSliceFlag)(nil)
@@ -24,7 +22,7 @@ func (s *strSliceFlag) String() string {
2422
return strings.Join(s.vals, ",")
2523
}
2624

27-
func derefFlagValues(vars map[string]any) {
25+
func DerefFlagValues(vars map[string]any) {
2826
for k, v := range vars {
2927
rfl := reflect.ValueOf(v)
3028
if rfl.Kind() == reflect.Pointer {
@@ -37,13 +35,13 @@ func derefFlagValues(vars map[string]any) {
3735
}
3836
}
3937

40-
func buildArgFlagSet(tool *mcp.ToolDef) (*flag.FlagSet, map[string]any, error) {
38+
func BuildArgFlagSet(tool *ToolDef) (*flag.FlagSet, map[string]any, error) {
4139
fs := flag.NewFlagSet(tool.Name, flag.ContinueOnError)
4240
flagVars := map[string]any{}
4341

4442
for name, pVal := range tool.InputSchema.Properties {
4543
switch pv := pVal.(type) {
46-
case *mcp.SchemaPrimitive:
44+
case *SchemaPrimitive:
4745
switch pv.Kind {
4846
case "integer":
4947
dst := fs.Int(name, 0, pv.Description)
@@ -59,11 +57,11 @@ func buildArgFlagSet(tool *mcp.ToolDef) (*flag.FlagSet, map[string]any, error) {
5957
return nil, nil, fmt.Errorf("unknown schema primitive kind %q", pv.Kind)
6058

6159
}
62-
case *mcp.SchemaArray:
60+
case *SchemaArray:
6361
strSlice := new(strSliceFlag)
6462
fs.Var(strSlice, name, pv.Description)
6563
flagVars[name] = strSlice
66-
case *mcp.SchemaObject:
64+
case *SchemaObject:
6765
// not supported yet
6866
}
6967
}

cmd/src/mcp_args_test.go renamed to internal/mcp/mcp_args_test.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
package main
1+
package mcp
22

33
import (
44
"testing"
5-
6-
"github.com/sourcegraph/src-cli/internal/mcp"
75
)
86

97
func TestFlagSetParse(t *testing.T) {
@@ -46,12 +44,12 @@ func TestFlagSetParse(t *testing.T) {
4644
]
4745
}`)
4846

49-
defs, err := mcp.LoadToolDefinitions(toolJSON)
47+
defs, err := loadToolDefinitions(toolJSON)
5048
if err != nil {
5149
t.Fatalf("failed to load tool json: %v", err)
5250
}
5351

54-
flagSet, vars, err := buildArgFlagSet(defs["sg_test_tool"])
52+
flagSet, vars, err := BuildArgFlagSet(defs["sg_test_tool"])
5553
if err != nil {
5654
t.Fatalf("failed to build flagset from mcp tool definition: %v", err)
5755
}
@@ -65,7 +63,7 @@ func TestFlagSetParse(t *testing.T) {
6563
if err := flagSet.Parse(args); err != nil {
6664
t.Fatalf("flagset parsing failed: %v", err)
6765
}
68-
derefFlagValues(vars)
66+
DerefFlagValues(vars)
6967

7068
if v, ok := vars["repos"].([]string); ok {
7169
if len(v) != 2 {

internal/mcp/mcp_parse.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ type parser struct {
6969
}
7070

7171
func LoadDefaultToolDefinitions() (map[string]*ToolDef, error) {
72-
return LoadToolDefinitions(mcpToolListJSON)
72+
return loadToolDefinitions(mcpToolListJSON)
7373
}
7474

75-
func LoadToolDefinitions(data []byte) (map[string]*ToolDef, error) {
75+
func loadToolDefinitions(data []byte) (map[string]*ToolDef, error) {
7676
defs := struct {
7777
Tools []struct {
7878
Name string `json:"name"`

0 commit comments

Comments
 (0)