首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

使用golang快速构建你的MCP Server

  • 25-04-22 00:40
  • 4091
  • 7328
juejin.cn

MCP golang sdk

目前官方并没有go版本的sdk,我们选择的是https://github.com/mark3labs/mcp-go,这个项目✨已超过3000。

MCP Server 代码

这里我们构建一个Milvus助手,让他查询有哪些数据库,具体示例代码如下:

golang
代码解读
复制代码
package main import ( "context" "errors" "fmt" "github.com/milvus-io/milvus-sdk-go/v2/client" "log" "github.com/mark3labs/mcp-go/mcp" "github.com/mark3labs/mcp-go/server" ) var milvusDb client.Client func init() { ctx := context.Background() config := client.Config{ Address: "localhost:19530", //DBName: "my_database", } var err error milvusDb, err = client.NewClient(ctx, config) if err != nil { log.Fatal("connect err:", err) } } func main() { // Create MCP server s := server.NewMCPServer( "Milvus 🚀", "1.0.0", ) // Add tool tool := mcp.NewTool("list_database", mcp.WithDescription("Get all database of milvus")) // Add tool handler s.AddTool(tool, ListDatabaseHandler) // Start the stdio server if err := server.ServeStdio(s); err != nil { fmt.Printf("Server error: %v\n", err) } } func ListDatabaseHandler(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { databases, err := milvusDb.ListDatabases(ctx) if err != nil { return nil, err } cts := []mcp.Content{} for _, database := range databases { content := mcp.NewTextContent(database.Name) cts = append(cts, content) } return &mcp.CallToolResult{ Content: cts, }, nil }

构建完成后使用go build -o mcp_test mian.go编译出mcp_test文件,之后就可以测试这个server了。

测试Server

这里我们使用mark3labs的另外一个项目https://github.com/mark3labs/mcphost, mcphost支持本地ollama模型,我们使用Llama 3.1这个模型,需要注意的是,模型需要支持tools调用才行。

配置

ruby
代码解读
复制代码
{ "mcpServers": {        "milvus":{           "command": "/Users/jhonroxton/Desktop/code/golang/mcp-server-milvus/mcp_test", //路径替换成你自己的 "args":[]        }   } }

启动ollama测试

使用命令./mcphost -m ollama:llama3.1:latest启动项目

image.png 可以看到成功连接到了milvus,让它以表格形式返回milvus中有哪些数据库

image.png 可以看到调用了list_database这个tool,返回了default和rag_test,而这两个和实际的也是对应上的: image.png

总结

本文完整的展示了使用golang构建一个mcp server的示例,主要分四步:

  • 1.创建一个server
  • 2.向server注册tools
  • 3.为对应的tool添加相应的handler
  • 4.启动server

你也可以根据自身需求做扩展,构建出符合自己需求的server。mcp在大型模型应用中展现出巨大的潜力和广阔的发展前景,希望本文能够为您的学习和了解提供有价值的参考。

注:本文转载自juejin.cn的jhonroxton的文章"https://juejin.cn/post/7491956577563475980"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top