forked from DevOps/deploy.stack
feat: 添加MCP时间服务器及相关工具
实现一个基于Golang的MCP时间服务器,提供获取当前时间和日期功能 包含客户端示例、安装脚本和详细文档 refactor: 优化磁盘巡检脚本以支持SAS和SSD硬盘 增强磁盘巡检脚本的兼容性,改进SMART信息解析逻辑 添加硬盘类型检测和更全面的错误处理 docs: 更新README和安装说明 添加MCP时间服务器的使用文档和API说明 完善磁盘巡检报告格式和内容
This commit is contained in:
46
mcptime/main.go
Normal file
46
mcptime/main.go
Normal file
@@ -0,0 +1,46 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/mark3labs/mcp-go/mcp"
|
||||
"github.com/mark3labs/mcp-go/server"
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := server.NewMCPServer(
|
||||
"Time Service",
|
||||
"1.0.0",
|
||||
server.WithResourceCapabilities(true, true),
|
||||
server.WithLogging(),
|
||||
)
|
||||
|
||||
tool_time := mcp.NewTool("get_current_time",
|
||||
mcp.WithDescription("获取当前系统时间,返回格式:yyyy-MM-dd HH:mm:ss"),
|
||||
)
|
||||
s.AddTool(tool_time, currentTimeHandler)
|
||||
|
||||
tool_date := mcp.NewTool("get_current_date",
|
||||
mcp.WithDescription("get current date,output format:yyyy-MM-dd"),
|
||||
)
|
||||
s.AddTool(tool_date, currentDateHandler)
|
||||
|
||||
if err := server.ServeStdio(s); err != nil {
|
||||
fmt.Printf("Server start fail: %v\n", err)
|
||||
} else {
|
||||
log.Println("Time MCP start")
|
||||
}
|
||||
}
|
||||
|
||||
func currentTimeHandler(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
||||
currentTime := time.Now().Format("2006-01-02 15:04:05")
|
||||
return mcp.NewToolResultText(fmt.Sprintf("%s", currentTime)), nil
|
||||
}
|
||||
|
||||
func currentDateHandler(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) {
|
||||
currentTime := time.Now().Format("2006-01-02")
|
||||
return mcp.NewToolResultText(fmt.Sprintf("%s", currentTime)), nil
|
||||
}
|
||||
Reference in New Issue
Block a user