当前位置: 首页 > news >正文

go + vscode + cline +qwen 快速构建 MCP Server

go 编译自定义 mcp tool

  • current time tool 代码
package main

import (
	"context"
	"fmt"
	"time"

	"github.com/mark3labs/mcp-go/mcp"
	"github.com/mark3labs/mcp-go/server"
)

func main() {
	// Create MCP server
	s := server.NewMCPServer(
		"Demo ?",
		"1.0.0",
	)
	// Add tool
	tool := 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 handler
	s.AddTool(tool, currentTimeHandler)
	// Start the stdio server
	if 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
    在这里插入图片描述

相关文章:

  • 鸿蒙 元服务摘要
  • 「JavaScript深入」轮询(Polling):基础的实时通信方式
  • MySQL:建表,修改,删除
  • 再次认识虚拟地址空间 可执行程序的加载 ─── linux第21课
  • 极限网关六个企业级应用场景
  • 微信小程序状态管理与计算属性同时使用:miniprogram-computed 和 mobx-miniprogram
  • vcenter 虚机共享盘笔记
  • 锦华新材业绩波动明显:偿债能力偏弱,大额分红引关注
  • 20250320在荣品的PRO-RK3566开发板的buildroot系统下使用J27口的OTG0口接鼠标
  • AI社交的服务走向
  • 【力扣刷题实战】只出现一次的数字III
  • CVPR2025 | 蚂蚁浙大提出MP-GUI算法:全方位增强MLLM的GUI理解能力
  • VLAN的处理机制
  • 爬虫——playwright获取亚马逊数据
  • Web爬虫利器FireCrawl:全方位助力AI训练与高效数据抓取
  • 服务器部署Kong和Konga过程
  • vue路由去掉#
  • 07. 面向对象高级(2)_设计模式
  • 基于ssm的在线点歌系统(全套)
  • 电源电路篇
  • 经济日报:人工智能开启太空经济新格局
  • 2025全球城市科技传播能力指数出炉,上海位列第六
  • 国宝文物子弹库帛书二、三卷从美启程,18日凌晨抵京
  • 61岁云浮市律师协会副会长谭炳光因突发疾病逝世
  • 雷军内部演讲回应质疑:在不服输、打不倒方面,没人比我们更有耐心
  • 阿里上季度营收增7%:淘天营收创新高,AI产品营收连续七个季度三位数增长