Skip to content

Commit 1e60729

Browse files
committed
feat: get_order_trades tool added
1 parent 1fba373 commit 1e60729

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

mcp/get_tools.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,55 @@ func (*GTTOrdersTool) Handler(manager *kc.Manager) server.ToolHandlerFunc {
327327
}
328328
}
329329

330+
type OrderTradesTool struct{}
331+
332+
func (*OrderTradesTool) Tool() mcp.Tool {
333+
return mcp.NewTool("get_order_trades",
334+
mcp.WithDescription("Get trades for a specific order"),
335+
mcp.WithString("order_id",
336+
mcp.Description("ID of the order to fetch trades for"),
337+
mcp.Required(),
338+
),
339+
)
340+
}
341+
342+
func (*OrderTradesTool) Handler(manager *kc.Manager) server.ToolHandlerFunc {
343+
return func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
344+
sess := server.ClientSessionFromContext(ctx)
345+
346+
kc, err := manager.GetSession(sess.SessionID())
347+
if err != nil {
348+
log.Println("error getting session", err)
349+
return nil, err
350+
}
351+
352+
args := request.GetArguments()
353+
orderID := assertString(args["order_id"])
354+
355+
orderTrades, err := kc.Kite.Client.GetOrderTrades(orderID)
356+
if err != nil {
357+
log.Println("error getting order trades", err)
358+
return nil, err
359+
}
360+
361+
v, err := json.Marshal(orderTrades)
362+
if err != nil {
363+
log.Println("error marshalling order trades", err)
364+
return nil, err
365+
}
366+
367+
orderTradesJSON := string(v)
368+
return &mcp.CallToolResult{
369+
Content: []mcp.Content{
370+
mcp.TextContent{
371+
Type: "text",
372+
Text: orderTradesJSON,
373+
},
374+
},
375+
}, nil
376+
}
377+
}
378+
330379
type OrderHistoryTool struct{}
331380

332381
func (*OrderHistoryTool) Tool() mcp.Tool {

mcp/mcp.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ var (
2424
&TradesTool{},
2525
&OrdersTool{},
2626
&OrderHistoryTool{},
27+
&OrderTradesTool{},
2728
&GTTOrdersTool{},
2829
&MFHoldingsTool{},
2930

0 commit comments

Comments
 (0)