in pkg/rules/mcp/server_setup.go [87:149]
func getSubRequest(method mcp.MCPMethod, request *mcpRequest, message any) *mcp.Request {
switch method {
case mcp.MethodToolsCall:
if msg, ok := message.(*mcp.CallToolRequest); ok {
if request != nil {
request.operationName = "execute_tool"
request.methodName = msg.Params.Name
}
return &msg.Request
}
case mcp.MethodPromptsGet:
if msg, ok := message.(*mcp.GetPromptRequest); ok {
if request != nil {
request.input["prompt_name"] = msg.Params.Name
}
return &msg.Request
}
case mcp.MethodResourcesRead:
if msg, ok := message.(*mcp.ReadResourceRequest); ok {
if request != nil {
request.input["resources_uri"] = msg.Params.URI
}
return &msg.Request
}
case mcp.MethodInitialize:
if msg, ok := message.(*mcp.InitializeRequest); ok {
if request != nil {
request.input["client_info_name"] = msg.Params.ClientInfo.Name
request.input["client_info_version"] = msg.Params.ClientInfo.Version
}
return &msg.Request
}
case mcp.MethodResourcesList:
if msg, ok := message.(*mcp.ListResourcesRequest); ok {
if request != nil {
request.input["cursor"] = msg.Params.Cursor
}
return &msg.Request
}
case mcp.MethodResourcesTemplatesList:
if msg, ok := message.(*mcp.ListResourceTemplatesRequest); ok {
if request != nil {
request.input["cursor"] = msg.Params.Cursor
}
return &msg.Request
}
case mcp.MethodPromptsList:
if msg, ok := message.(*mcp.ListPromptsRequest); ok {
if request != nil {
request.input["cursor"] = msg.Params.Cursor
}
return &msg.Request
}
case mcp.MethodToolsList:
if msg, ok := message.(*mcp.ListToolsRequest); ok {
if request != nil {
request.input["cursor"] = msg.Params.Cursor
}
return &msg.Request
}
}
return nil
}