feat: 添加MCP时间服务器及相关工具

实现一个基于Golang的MCP时间服务器,提供获取当前时间和日期功能
包含客户端示例、安装脚本和详细文档

refactor: 优化磁盘巡检脚本以支持SAS和SSD硬盘

增强磁盘巡检脚本的兼容性,改进SMART信息解析逻辑
添加硬盘类型检测和更全面的错误处理

docs: 更新README和安装说明

添加MCP时间服务器的使用文档和API说明
完善磁盘巡检报告格式和内容
This commit is contained in:
cnphpbb
2025-09-12 13:45:08 +08:00
parent 45d8181205
commit 648faac289
12 changed files with 1160 additions and 20 deletions

46
mcptime/main.go Normal file
View 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 dateoutput 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
}