mirror of
https://github.com/chaitin/SafeLine.git
synced 2026-02-02 14:53:54 +08:00
47 lines
923 B
Go
47 lines
923 B
Go
package tools
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/chaitin/SafeLine/mcp_server/pkg/errors"
|
|
"github.com/chaitin/SafeLine/mcp_server/pkg/logger"
|
|
)
|
|
|
|
type CalculateSum struct{}
|
|
|
|
func (t *CalculateSum) Name() string {
|
|
return "calculate_sum"
|
|
}
|
|
|
|
func (t *CalculateSum) Description() string {
|
|
return "Add two numbers together"
|
|
}
|
|
|
|
type MyToolInput struct {
|
|
A int `json:"a" desc:"number a" required:"true"`
|
|
B int `json:"b" desc:"number b" required:"true"`
|
|
}
|
|
|
|
type MyToolOutput struct {
|
|
C int `json:"c"`
|
|
}
|
|
|
|
func (t *CalculateSum) Validate(params MyToolInput) error {
|
|
return nil
|
|
}
|
|
|
|
func (t *CalculateSum) Execute(ctx context.Context, params MyToolInput) (MyToolOutput, error) {
|
|
logger.With("a", params.A).
|
|
With("b", params.B).
|
|
Debug("Executing calculation")
|
|
|
|
result := MyToolOutput{
|
|
C: params.A + params.B,
|
|
}
|
|
|
|
logger.With("result", result.C).
|
|
Debug("Calculation completed")
|
|
|
|
return result, errors.New("test error")
|
|
}
|