go 编译自定义 mcp tool
- current time tool 代码
package mainimport ("context""fmt""time""github.com/mark3labs/mcp-go/mcp""github.com/mark3labs/mcp-go/server"
)func main() {// Create MCP servers := server.NewMCPServer("Demo ?","1.0.0",)// Add tooltool := mcp.NewTool("current time",mcp.WithDescription("Get current time with timezone, Asia/Shanghai is default"),mcp.WithString("timezone",mcp.Required(),mcp.Description("current time timezone"),),)// Add tool handlers.AddTool(tool, currentTimeHandler)// Start the stdio serverif err := server.ServeStdio(s); err != nil {fmt.Printf("Server error: %v\n", err)}
}func currentTimeHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {timezone, ok := request.Params.Arguments["timezone"].(string)if !ok {return mcp.NewToolResultError("timezone must be a string"), nil}loc, err := time.LoadLocation(timezone)if err != nil {return mcp.NewToolResultError(fmt.Sprintf("parse timezone with error: %v", err)), nil}return mcp.NewToolResultText(fmt.Sprintf(`current time is %s`, time.Now().In(loc))), nil
}
- 编译
go build -o current-time-tool.exe .\current_time.go
阿里云百炼平台获取大模型 api key
https://bailian.console.aliyun.com/#/home
vscode插件市场安装cline
-
安装
搜索cline安装即可 -
配置 千问大模型
API Provider 选择 OPENAI Compatiable
Base URL 设置为 https://dashscope.aliyuncs.com/compatible-mode/v1
API Key 设置为 从阿里云百炼平台获取的大模型 api key
Model ID 设置为 qwen-max-latest -
MCP Servers配置 current time tool
MCP Servers -> Installed -> Configure MCP Servers , 配置成如下内容
{"mcpServers": {"current-time-tool": {"command": "E:\\GolangProjects\\src\\mcp-learning\\current_time\\current-time-tool.exe","args": [],"env": {}}}
}
- Auto-approve 选择 Use MCP Servers
cline 点击 + 新建对话
- 输入 “上海时间现在是多少”
- 输出之后,点击 Approve, 可以发现已经使用了 current-time-tool