Skip to content

Commit ce6afe2

Browse files
authored
enhance: expose MCP server capabilities (#976)
Signed-off-by: Donnie Adams <[email protected]>
1 parent 977aabb commit ce6afe2

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

pkg/mcp/client.go

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
package mcp
2+
3+
import (
4+
"context"
5+
6+
mcpclient "github.com/mark3labs/mcp-go/client"
7+
"github.com/mark3labs/mcp-go/mcp"
8+
)
9+
10+
type Client interface {
11+
mcpclient.MCPClient
12+
Capabilities() mcp.ServerCapabilities
13+
}
14+
15+
func (l *Local) Client(server ServerConfig) (Client, error) {
16+
session, err := l.loadSession(server, true)
17+
if err != nil {
18+
return nil, err
19+
}
20+
21+
return &client{session}, nil
22+
}
23+
24+
type client struct {
25+
*Session
26+
}
27+
28+
func (c *client) Initialize(ctx context.Context, request mcp.InitializeRequest) (*mcp.InitializeResult, error) {
29+
return c.Client.Initialize(ctx, request)
30+
}
31+
32+
func (c *client) Ping(ctx context.Context) error {
33+
return c.Client.Ping(ctx)
34+
}
35+
36+
func (c *client) ListResourcesByPage(ctx context.Context, request mcp.ListResourcesRequest) (*mcp.ListResourcesResult, error) {
37+
return c.Client.ListResourcesByPage(ctx, request)
38+
}
39+
40+
func (c *client) ListResources(ctx context.Context, request mcp.ListResourcesRequest) (*mcp.ListResourcesResult, error) {
41+
return c.Client.ListResources(ctx, request)
42+
}
43+
44+
func (c *client) ListResourceTemplatesByPage(ctx context.Context, request mcp.ListResourceTemplatesRequest) (*mcp.ListResourceTemplatesResult, error) {
45+
return c.Client.ListResourceTemplatesByPage(ctx, request)
46+
}
47+
48+
func (c *client) ListResourceTemplates(ctx context.Context, request mcp.ListResourceTemplatesRequest) (*mcp.ListResourceTemplatesResult, error) {
49+
return c.Client.ListResourceTemplates(ctx, request)
50+
}
51+
52+
func (c *client) ReadResource(ctx context.Context, request mcp.ReadResourceRequest) (*mcp.ReadResourceResult, error) {
53+
return c.Client.ReadResource(ctx, request)
54+
}
55+
56+
func (c *client) Subscribe(ctx context.Context, request mcp.SubscribeRequest) error {
57+
return c.Client.Subscribe(ctx, request)
58+
}
59+
60+
func (c *client) Unsubscribe(ctx context.Context, request mcp.UnsubscribeRequest) error {
61+
return c.Client.Unsubscribe(ctx, request)
62+
}
63+
64+
func (c *client) ListPromptsByPage(ctx context.Context, request mcp.ListPromptsRequest) (*mcp.ListPromptsResult, error) {
65+
return c.Client.ListPromptsByPage(ctx, request)
66+
}
67+
68+
func (c *client) ListPrompts(ctx context.Context, request mcp.ListPromptsRequest) (*mcp.ListPromptsResult, error) {
69+
return c.Client.ListPrompts(ctx, request)
70+
}
71+
72+
func (c *client) GetPrompt(ctx context.Context, request mcp.GetPromptRequest) (*mcp.GetPromptResult, error) {
73+
return c.Client.GetPrompt(ctx, request)
74+
}
75+
76+
func (c *client) ListToolsByPage(ctx context.Context, request mcp.ListToolsRequest) (*mcp.ListToolsResult, error) {
77+
return c.Client.ListToolsByPage(ctx, request)
78+
}
79+
80+
func (c *client) ListTools(ctx context.Context, request mcp.ListToolsRequest) (*mcp.ListToolsResult, error) {
81+
return c.Client.ListTools(ctx, request)
82+
}
83+
84+
func (c *client) CallTool(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
85+
return c.Client.CallTool(ctx, request)
86+
}
87+
88+
func (c *client) SetLevel(ctx context.Context, request mcp.SetLevelRequest) error {
89+
return c.Client.SetLevel(ctx, request)
90+
}
91+
92+
func (c *client) Complete(ctx context.Context, request mcp.CompleteRequest) (*mcp.CompleteResult, error) {
93+
return c.Client.Complete(ctx, request)
94+
}
95+
96+
func (c *client) Close() error {
97+
return c.Client.Close()
98+
}
99+
100+
func (c *client) OnNotification(handler func(notification mcp.JSONRPCNotification)) {
101+
c.Client.OnNotification(handler)
102+
}
103+
104+
func (c *client) Capabilities() mcp.ServerCapabilities {
105+
return c.InitResult.Capabilities
106+
}

0 commit comments

Comments
 (0)