🎨 更新项目版本
This commit is contained in:
56
resource/mcp/tools.tpl
Normal file
56
resource/mcp/tools.tpl
Normal file
@@ -0,0 +1,56 @@
|
||||
package mcpTool
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/mark3labs/mcp-go/mcp"
|
||||
)
|
||||
|
||||
func init() {
|
||||
RegisterTool(&{{.Name | title}}{})
|
||||
}
|
||||
|
||||
type {{.Name | title}} struct {
|
||||
}
|
||||
|
||||
// {{.Description}}
|
||||
func (t *{{.Name | title}}) Handle(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
||||
// TODO: 实现工具逻辑
|
||||
// 参数示例:
|
||||
// {{- range .Params}}
|
||||
// {{.Name}} := request.GetArguments()["{{.Name}}"]
|
||||
// {{- end}}
|
||||
return &mcp.CallToolResult{
|
||||
Content: []mcp.Content{
|
||||
{{- range .Response}}
|
||||
mcp.{{.Type | title}}Content{
|
||||
Type: "{{.Type}}",
|
||||
// TODO: 填充{{.Type}}内容
|
||||
},
|
||||
{{- end}}
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (t *{{.Name | title}}) New() mcp.Tool {
|
||||
return mcp.NewTool("{{.Name}}",
|
||||
mcp.WithDescription("{{.Description}}"),
|
||||
{{- range .Params}}
|
||||
mcp.With{{.Type | title}}("{{.Name}}",
|
||||
{{- if .Required}}mcp.Required(),{{end}}
|
||||
mcp.Description("{{.Description}}"),
|
||||
{{- if .Default}}
|
||||
{{- if eq .Type "string"}}
|
||||
mcp.DefaultString("{{.Default}}"),
|
||||
{{- else if eq .Type "number"}}
|
||||
mcp.DefaultNumber({{.Default}}),
|
||||
{{- else if eq .Type "boolean"}}
|
||||
mcp.DefaultBoolean({{if or (eq .Default "true") (eq .Default "True")}}true{{else}}false{{end}}),
|
||||
{{- else if eq .Type "array"}}
|
||||
// 注意:数组默认值需要在后端代码中预处理为正确的格式
|
||||
// mcp.DefaultArray({{.Default}}),
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
),
|
||||
{{- end}}
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user