diff --git a/.gitignore b/.gitignore index e553ef6..ce3c366 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.tar.gz build.sh compose.yml -__pycache__ \ No newline at end of file +__pycache__ +.cursor \ No newline at end of file diff --git a/mcp_go/README.md b/mcp_go/README.md index 7433097..6ad64cd 100644 --- a/mcp_go/README.md +++ b/mcp_go/README.md @@ -202,6 +202,19 @@ func APIName(ctx context.Context, req *RequestType) (ResultType, error) { return resp.Data, nil } ``` +5. **Tool Registration (init.go)** + +The tool registration file `internal/tools/init.go` is used to centrally manage all tool registrations + - Register all tools uniformly in the `init()` function + - Use the `AppendTool()` method for registration + - Example: + ```go + // Register create application tool + AppendTool(&app.CreateApp{}) + + // Register create blacklist rule tool + AppendTool(&rule.CreateBlacklistRule{}) + ``` ### Development Standards diff --git a/mcp_go/internal/api/types.go b/mcp_go/internal/api/types.go index 7eda553..5113ce2 100644 --- a/mcp_go/internal/api/types.go +++ b/mcp_go/internal/api/types.go @@ -1,5 +1,13 @@ package api +type PolicyRuleAction int + +const ( + PolicyRuleActionAllow PolicyRuleAction = iota + PolicyRuleActionDeny + PolicyRuleActionMax +) + type Key = string const ( diff --git a/mcp_go/internal/tools/init.go b/mcp_go/internal/tools/init.go index 8dbf1de..8331f47 100644 --- a/mcp_go/internal/tools/init.go +++ b/mcp_go/internal/tools/init.go @@ -1,8 +1,11 @@ package tools -import "github.com/chaitin/SafeLine/mcp_server/internal/tools/app" +import ( + "github.com/chaitin/SafeLine/mcp_server/internal/tools/app" + "github.com/chaitin/SafeLine/mcp_server/internal/tools/rule" +) func init() { - AppendTool(&CalculateSum{}) AppendTool(&app.CreateApp{}) + AppendTool(&rule.CreateBlacklistRule{}) } diff --git a/mcp_go/internal/tools/rule/create_blacklist_rule.go b/mcp_go/internal/tools/rule/create_blacklist_rule.go index 0aec2dd..29a4ca5 100644 --- a/mcp_go/internal/tools/rule/create_blacklist_rule.go +++ b/mcp_go/internal/tools/rule/create_blacklist_rule.go @@ -32,6 +32,7 @@ func (t *CreateBlacklistRule) Execute(ctx context.Context, params CreateBlacklis Name: params.Name, IP: params.IP, IsEnabled: true, + Action: int(api.PolicyRuleActionDeny), Pattern: [][]api.Pattern{ { {