Skip to content

Commit 6f6550e

Browse files
authored
Fix/support to connect claude mcp filesystem (#85)
1 parent 5ac0ad7 commit 6f6550e

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

client.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type Client struct {
1515
protocol *protocol.Protocol
1616
capabilities *ServerCapabilities
1717
initialized bool
18+
info ClientInfo
1819
}
1920

2021
// NewClient creates a new MCP client with the specified transport
@@ -25,6 +26,20 @@ func NewClient(transport transport.Transport) *Client {
2526
}
2627
}
2728

29+
type ClientInfo struct {
30+
Name string `json:"name"`
31+
Version string `json:"version"`
32+
}
33+
34+
// NewClientWithInfo create a new client with info. This is required by anthorpic mcp tools
35+
func NewClientWithInfo(transport transport.Transport, info ClientInfo) *Client {
36+
return &Client{
37+
transport: transport,
38+
protocol: protocol.NewProtocol(nil),
39+
info: info,
40+
}
41+
}
42+
2843
// Initialize connects to the server and retrieves its capabilities
2944
func (c *Client) Initialize(ctx context.Context) (*InitializeResponse, error) {
3045
if c.initialized {
@@ -37,7 +52,11 @@ func (c *Client) Initialize(ctx context.Context) (*InitializeResponse, error) {
3752
}
3853

3954
// Make initialize request to server
40-
response, err := c.protocol.Request(ctx, "initialize", map[string]interface{}{}, nil)
55+
response, err := c.protocol.Request(ctx, "initialize", map[string]interface{}{
56+
"protocolVersion": "1.0",
57+
"capabilities": map[string]interface{}{},
58+
"clientInfo": c.info,
59+
}, nil)
4160
if err != nil {
4261
return nil, errors.Wrap(err, "failed to initialize")
4362
}

0 commit comments

Comments
 (0)