mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2025-08-23 14:23:05 +00:00
38 lines
741 B
Go
38 lines
741 B
Go
package tool
|
|
|
|
import (
|
|
"gitea.com/gitea/gitea-mcp/pkg/flag"
|
|
"github.com/mark3labs/mcp-go/server"
|
|
)
|
|
|
|
type Tool struct {
|
|
write []server.ServerTool
|
|
read []server.ServerTool
|
|
}
|
|
|
|
func New() *Tool {
|
|
return &Tool{
|
|
write: make([]server.ServerTool, 0, 100),
|
|
read: make([]server.ServerTool, 0, 100),
|
|
}
|
|
}
|
|
|
|
func (t *Tool) RegisterWrite(s server.ServerTool) {
|
|
t.write = append(t.write, s)
|
|
}
|
|
|
|
func (t *Tool) RegisterRead(s server.ServerTool) {
|
|
t.read = append(t.read, s)
|
|
}
|
|
|
|
func (t *Tool) Tools() []server.ServerTool {
|
|
tools := make([]server.ServerTool, 0, len(t.write)+len(t.read))
|
|
if flag.ReadOnly {
|
|
tools = append(tools, t.read...)
|
|
return tools
|
|
}
|
|
tools = append(tools, t.write...)
|
|
tools = append(tools, t.read...)
|
|
return tools
|
|
}
|