Files
ai-agent/internal/ai/mcps/providers/system_tools_provider.go
T
mlogclub 5d7c10aeab refactor: rename agent widget references to AI agent for consistency
- Updated runtime configuration to use __CS_AI_AGENT_WIDGET_CONFIG__ instead of __CS_AGENT_WIDGET_CONFIG__.
- Changed message types in support host bridge from "cs-agent" to "cs-ai-agent".
- Minified SDK script updated to reflect new AI agent naming conventions.
- Adjusted scrollbar styles in main.scss to use .cs-ai-agent-scrollbar instead of .cs-agent-scrollbar.
2026-05-30 21:19:36 +08:00

70 lines
1.7 KiB
Go

package providers
import (
"context"
"cs-ai-agent/internal/pkg/config"
"time"
"github.com/modelcontextprotocol/go-sdk/mcp"
)
type systemToolProvider struct{}
func NewSystemToolProvider() ToolProvider {
return &systemToolProvider{}
}
func (p *systemToolProvider) Name() string {
return "system"
}
func (p *systemToolProvider) Register(server *mcp.Server) error {
mcp.AddTool(
server,
&mcp.Tool{
Name: "server_time",
Description: "获取当前服务端时间,可选传入时区。",
},
func(_ context.Context, _ *mcp.CallToolRequest, args serverTimeArgs) (*mcp.CallToolResult, map[string]any, error) {
loc := time.Local
timezone := args.Timezone
if timezone == "" {
timezone = "Local"
} else if loaded, err := time.LoadLocation(timezone); err == nil {
loc = loaded
}
now := time.Now().In(loc)
return nil, map[string]any{
"timezone": timezone,
"timestamp": now.Format("2006-01-02 15:04:05"),
"unix": now.Unix(),
}, nil
},
)
mcp.AddTool(
server,
&mcp.Tool{
Name: "service_info",
Description: "查看当前 cs-ai-agent 服务的基础运行信息。",
},
func(ctx context.Context, req *mcp.CallToolRequest, _ struct{}) (*mcp.CallToolResult, map[string]any, error) {
cfg := config.Current()
return nil, map[string]any{
"name": "cs-ai-agent",
"version": "v1",
"mcpPath": "/api/mcp",
"port": cfg.Server.Port,
"mcpEnabled": cfg.MCP.Enabled,
"vectorDb": cfg.VectorDB.Type,
"storageType": cfg.Storage.Default,
}, nil
},
)
return nil
}
type serverTimeArgs struct {
Timezone string `json:"timezone,omitempty" jsonschema:"可选时区名称,例如 Asia/Shanghai 或 UTC"`
}